From 45c18a4c7839dfa528445e070f4449cc27ff47fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Dec 2024 09:43:24 +0000 Subject: [PATCH 001/417] [upd] pypi: Bump redis from 5.0.8 to 5.2.1 Bumps [redis](https://github.com/redis/redis-py) from 5.0.8 to 5.2.1. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](https://github.com/redis/redis-py/compare/v5.0.8...v5.2.1) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e8cf3bd95..f950d53c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ Brotli==1.1.0 uvloop==0.21.0 httpx-socks[asyncio]==0.7.7 setproctitle==1.3.4 -redis==5.0.8 +redis==5.2.1 markdown-it-py==3.0.0 fasttext-predict==0.9.2.4 tomli==2.0.2; python_version < '3.11' From 3d55008f23d4ce9fa03ba679122a8f3316fbdbc1 Mon Sep 17 00:00:00 2001 From: return42 Date: Sun, 29 Dec 2024 00:14:56 +0000 Subject: [PATCH 002/417] [data] update searx.data - update_ahmia_blacklist.py --- searx/data/ahmia_blacklist.txt | 506 +++++++++++++++++++++++++++++++++ 1 file changed, 506 insertions(+) diff --git a/searx/data/ahmia_blacklist.txt b/searx/data/ahmia_blacklist.txt index d05d5a6a9..4701524fe 100644 --- a/searx/data/ahmia_blacklist.txt +++ b/searx/data/ahmia_blacklist.txt @@ -33,6 +33,7 @@ 00330b4b5f58fae6332d011c3d3e4148 0033533c049d45cdc0a9616cbb689d5a 0034e8102d0d6b44a12c44940e79e134 +003643e74457908023c9e65a718c8766 003812e34e7167d209ba9feae4edcfc5 0039c382c69930d22052403e0cd28e67 003c8ab32e48864e752719d07bfd3eb6 @@ -135,6 +136,7 @@ 00bbc48f3f141b2ec38d0cdeb0f022c2 00bbe567d13b101562c550087a4d9034 00becb6b2b40e864ded4fea6ab53662b +00bf83001c1eb97ae7ee83903c8e6388 00c4f3ad3cbefd56025614c9135730f1 00c5ba46fb5e18efbebad6b03b33881d 00c8548b81ef4b436956f7c924a89ad0 @@ -228,6 +230,7 @@ 015f858ae2d5a196bf6ca21d46d5745e 01609515a753b4134a1c5fde01aa3839 0161f22ae3963829c175a2a4065873b3 +01643351765c517eef26ebcfb2305d74 0166b9829bbf2f34904259f2fafa78cf 0168b9c0b31b73358fb734913cca05b1 0169b19e22e7a15f09a7a064d665efe2 @@ -264,6 +267,7 @@ 019664c068a61b955b1df9fc6a633da6 0196f878b3b635130c5bb06b037153a1 0197260635dfec18d1ca367413fc20ff +01996ce6f349fe9158941a2a565590c1 019ae64ed14fde2e9c6fe55e801357e0 019c09bb7bfaa190774087d511cd5732 019c9f1220f71f2e1aabd20025f1c121 @@ -288,6 +292,7 @@ 01bae8101fc3e4130433d68fe6f88fd2 01bb8766589166620cc790b603acc02b 01bd4f11efd6179a91de8f516cd21741 +01be5ffc8325fada193e22e9f01a57df 01bf9fa63a2bc814a7895ee0d4665787 01c083cbd068d0ff1bcc2a958f315e04 01c2307c6a605f9180dc05ba85726452 @@ -310,6 +315,7 @@ 01da8bb65d24e887255055f858423597 01e07cee478068e733e781e923958941 01e0dd68d34d2c1efb55fdae0bd6f320 +01e1a9a340912b34962d98f2918f7a68 01e37fc7951eed79cf4ab99d7de56008 01e4401d99331ce53f961e3fe4bc19c2 01e8b29a6fc8ea28dabcfc58619325cd @@ -367,6 +373,7 @@ 02400fd7eb58ed95cebf6b8ab9175ef6 02405af04ec61aeef1a908e8a457c39a 0240c3830c6a4535ba7d6ef471816698 +024178ab3e72fe35669b112837bbfbb5 0243d5347b160cb048743de75bb5656f 0244aaa19103ad080c1893741c857f8c 0245236428a5f036063fa6e2aa1564ef @@ -415,6 +422,7 @@ 027b202b5b7ba986173f9ef73bf6ac0d 027be8431f9547b4bf4efa1d373d8a76 0283800ef84581899b03c312e7ef87ed +0283da8adca7a7901a66cffab76f108a 0284eabbeda12d423ea6bc08d4fbfc48 0285bee564427a45431c7dfe3e146dc0 028ac9a6db7956b63889d3b2f5f02286 @@ -463,6 +471,7 @@ 02cc2dc5875b7e4e3bb3dbfe1f1a8bf8 02cdcc8e338403df6d0875f129011649 02cf7f4e4d0a4ee49897e51a29da0978 +02d153b5d18b4c5fc5aba1fc1703c280 02d1fc9174dcb337d292c7b81869aaf9 02d5518cc4e5db4f88e699f414a3e4e5 02d69484634c79e89ea1a7a8ae6713c1 @@ -517,6 +526,7 @@ 033385d8a02bde83f262585712dc56cb 0333fe7404cd8ec3503514a45ef899b7 033407adafffa2553350983bf78311ea +0334b41a4968ce0b794b61a9afe964b9 0335526416b10bbe045e2ca0abfa363f 0338b7dfeca04ea69413547279d66451 033a9a2d4ef41c014e2f8df305974533 @@ -581,6 +591,7 @@ 039dd6be1f103d38602837e84fe96ead 03a0dc9107b4fe1bff1bc6feb9fc774f 03a0fbb47e78e49c6db67a693fb905ad +03a182ca5339fd6fb441b817fa40ae0c 03a1b57ccedac923faed4913416aaf1f 03a3f565eedbfc534b4101b2b855723a 03a48ae1b7e439c894a52e91c585c83a @@ -713,6 +724,7 @@ 04552c4e66a0b105c073b01024700bf0 04567e39195bb7df0bf9b83edfe28a3b 045a3a11bfad512d2b620d2be894eeae +045dcdc4ac2b18cbdd3f7164b8173e0b 045e292803fa0592bfc2a2eac71ce779 045f2d5b46df7a53abfd46aa254c956f 0461b57407074a3669678688b534e871 @@ -727,6 +739,7 @@ 046a3cbec7311a64109170bb4f606629 046bfc916369d4130ad6848701792941 046d1203c215157180348b7569b71c17 +046ea2a7e2660e0253c67449a3a04d84 046f6740984029704e72d7522b601303 04718655e06dc9f3b44e05a26d3e02d6 0471ef145d63d06c04bfef869f9ed019 @@ -735,6 +748,7 @@ 0475afdc32bae322b58e7f14c65ca703 047657fad1a0e1ecde91aa8dc903ddec 04794982e18a48a8d39f10a946751d31 +047c5370f8283ae08d5033ea6804f833 047c9505707fbe1f54af4567310288cd 047f85bfcc38d242c205e842c87cd8cd 0483142ed905cde7ba285ebafb114b4b @@ -1021,6 +1035,7 @@ 061aa197c8d3e5592c8d3d8064f9d189 061ad4833fb9859ffe934d6c49178b90 061be4a2cdfba37074c748480356098d +061bf5a2903c480292f74067b004c620 061ed1e32bb49a9ae8e6038ec5bd006a 0621021db6618411c38557df7e34a8f2 062125aa910bfb32a88dbab8e2b1b9ff @@ -1185,6 +1200,7 @@ 072a20eb4ce544651d40cf1aeffd6dc0 072db8b2892ece39463f203fe7a105f1 072ec20abec943c6788195df611ce49f +07306a26a5ad3e60fd5331849b111ea5 07326b4b66ce1e7ee28480f72bd628c3 0739fa4c66341622bedeb92e37a1ef4c 073e79dd4d6cebbef16baac0ff2af060 @@ -1199,6 +1215,7 @@ 07473e90e994a61931d33cc18ea9dc39 07477bfbd67a71588324c3e9c11b5370 0747e2f11ae1a5dc077649ecfa250b40 +07483992bdbc28f35ac3823e8fc968f4 0749d86ac7cf61a4ab89b6c3085ae810 074b47a27b346f1def7308a22c8455a9 074bb73756ea700393b7134a882341a2 @@ -1271,6 +1288,7 @@ 07c1b34d7b91f78e27056e6a293177b3 07c1ff9cee66d7b6d5f2752dd6c15a7c 07c2bdb4ce7a346d7b1c809e0ec2bfc4 +07c3f90b58a756b3bd81d91440ad8031 07c8c45138d46033b20a72defe556d8b 07ce3d3b6e1b0ad31ed26da57e5c86fc 07d0e81eaa469a5ec0c371f264416049 @@ -1433,12 +1451,14 @@ 08c6cc3b3979744f6bf246f8e7bc166d 08c7b6c3eed9f972c64ab026f74a8fc4 08ca1183b0544f178fcd40eb902cba2d +08cd824d7aee36b0c93f8604f4984ae3 08ce6d2ae53e6b62e470eab1006b52a4 08d0ca5f0a5f64f0edf2dd5904f4dd51 08d11ca8766bcbfd2c4c0d131a7276e2 08d264b2ad0f843ed36260dd293fc10d 08db07963589eec155bad147bf024f68 08dc0b5de16a48cad0102ed21221c0d0 +08dcbee883d4ba47ac3ab522c94f8523 08e13de1a9be0bf210e375be72aa8981 08e1cbbaa4b23a4344e3a31ee045ea78 08e4b375d02a5c2ca19d5044da6a0ec8 @@ -1584,6 +1604,7 @@ 09b721034b9fcae1bc3b9385557a4fb0 09b8f48f95edc48cc7bd9cc4e618ffef 09b99bb0ae4f3f704e888add186b03a0 +09ba76a1930bc0894db5f2322bb8a8d6 09bac3b68ae0b1a373c2dfc92b328c5b 09bb36f2199b2a8fd8a6c5a2c8a736a5 09bc6e9b4bb8b14f81a30ebff96cd618 @@ -1664,6 +1685,7 @@ 0a3b4e58eb99243dff24695a7a3da28c 0a41e632ed883ab060b50ac276b5407d 0a427d8a7be38f17b82abf92692dec80 +0a42f4dd2d6ec527dabab384f10cbb10 0a457a368be960ea239eee86edb45f41 0a4707e6a37b2340ed6f51b393958d8c 0a470f6f211e1250bbf3f626df1b7113 @@ -1739,6 +1761,7 @@ 0aba4e8d20862cfcdcfc35471918b947 0abd7a1972564a3b9b701cee515d64ac 0abe5bb65b90045ec63cc1cac7c7d3e4 +0abf433fe0b57547a4444174f94ca94a 0ac29cf3cb0e0677cfab2b44f6c45eed 0ac36aaa2c5dfbd86c8510da88be01b6 0ac4af5c448eab8b97db317ab5c4e840 @@ -1789,6 +1812,7 @@ 0b198f4715f0fe3d0e26341927a74421 0b1bff846337e71f021f9e480fb4062b 0b1d091da860f7d530078cbb4ed63b3f +0b20add5eae8402547926b105ac38b59 0b2161e4271374ea76a5a42e08aedbd4 0b21840be0044deafec0e40aae7ca5e4 0b21c9f01ee0cb818633166ebb271063 @@ -1810,9 +1834,11 @@ 0b2fca8c5e71452d15619eee6a1b73d7 0b2fd6c779da8ea921f5ce84acab59ec 0b30e6062669fba4cf030a1ac395f811 +0b3145c63c65bde78579467cec40adf7 0b34a84b3b19608b78b4a69c22dc7b32 0b398244d4f0f516a1ab64789c5dc69c 0b3b13ab3a0eeaf8fcbf10a052149bff +0b41b847c639bf196e95ab854a8c0609 0b42012f071c59b42fe1044625926c13 0b460a05032a490af8fc02dbcce86dae 0b46b2aaacd9e6a7ec358aa3dfb80f60 @@ -1837,6 +1863,7 @@ 0b6267f29ef60dc08902cfff7020a76a 0b6279049a0de1bbc7bdcf6e49442a3d 0b6327d51c106bca3ffc0a9dce5be465 +0b634c8023466d9821182425584a9efe 0b63c33a1946ef3b6250a67b2a7bf6a1 0b64a5d098bcbdc677558c02c07f9531 0b653d7255312b2cc1e64adb356b41ef @@ -1918,10 +1945,12 @@ 0bdb6b35d0471146383b699f630326dd 0bdc17222afee2ece9698e39f920077b 0bdc4bedab4c5905a7fef42f501d51f9 +0bdcaefa30ac1cb004dc23520838a88d 0bddff61793eeefd08ce666ef9de6152 0bdefadf3984c1c5625777a6b4ffb5c1 0bdf1e4ec20455579d1683ba7d684a05 0be23d71115132e7b3f7ca210781a8c3 +0be2f06171d5f1e7d7184bcd7ce11481 0be6484ac54d3c0d98c6096053fa6705 0be78d1ae4c482c95b70d53684d24d91 0be82985eb2129bd6c45a752ba6930a8 @@ -2038,6 +2067,7 @@ 0c9277b0c6188626f9cb418c9f126387 0c92ca8b0d0c5b1f3c7bc0a57e8c6264 0c93487026ff1412ad3f09d48d45591c +0c95b57e3c8090c300203e36ebc1eb0f 0c99e6b24c3f6c388c91dd04192d1886 0c9aadf935828dd7c01b73e957749a79 0c9bc241df2049e0ef539377fe41a52c @@ -2108,9 +2138,11 @@ 0d0112cd889f41521841a7dee86a0e9f 0d02580a286144b06b12f5aae347c7dc 0d039ad3e282cf15979e5377d43c4142 +0d06dd373d6b3c9818a3465ecd206ed9 0d0bc9d1717dcca0e8e815d6bb6b4faf 0d0cceb7e0660d4bd08600ffea73b9d9 0d0f4f4e0a493ac6aa9de96389a94bb1 +0d13b022ade504a43c7d7f7520e63bac 0d13ec68ae2ef6d5b80bf900e5f5135a 0d1549ee4d25e2a11c26f34ee947ebb5 0d16613f6dc50e49ddff751c6d32dad1 @@ -2484,6 +2516,7 @@ 0f7319c6f60105970cad3cf70536baa4 0f73d7ae3801b9eb2e9e11386badaddd 0f7747bf1619b13b1a3c94e8227d69c5 +0f77828d8a5282444aa1b3cc41a2b6e3 0f77f17f17eef32ea57c5875420993a8 0f78557fc4299c2d43a97f8471045297 0f78ef359e2aa1cfe4e8e3dc8cde1446 @@ -2542,6 +2575,7 @@ 0fc2ce4e86a1c636980f874fecc00938 0fc3d7053944ed12291a10deaae0eda4 0fc5bd5cd39e85122af1fdfe25468330 +0fc7d40037880382c3adbdd97e3d9209 0fca412012e33e508b4d030f813b7274 0fca9b9243d5b9c7a1c7eee2afefa4fa 0fcaca1ce22dd1d819ca713a2a35b725 @@ -2611,6 +2645,7 @@ 1032b852300df9d58f0668f354dfca7c 1032d1af8bfab20760f55836670e8c56 1033daa4dc4cb82fe24f6157165a0525 +1036cf2a645d3cbe4597e3b602eca27a 10392d2560783431cf6427c4c27e5268 10399d699028c33f650bbae63fd44c25 103c50fdbb304504f47b3736b45ac287 @@ -2624,6 +2659,7 @@ 104a9af7982c7c2bb44872f9a758ef96 104aa1314a993927f17163289fa61028 104cb0e65f42aecb39b67ba6f111bf8a +10525b0ad53d8d8f3cd1f1648f11183c 105350dd40539c247a3b3dcb773fa979 105443b75c5f20429071d9d51b4cfb08 1054ec8ca6d108f67ee489a53bd19905 @@ -2713,6 +2749,7 @@ 10e3017b4c5dabd8fc2b1ff1fd250045 10e3a9c5495d60d4b32378bf38d087e5 10e5aecaa113e019450876b6aa37ba56 +10e651d64758701f4645126e8b8d0ed1 10e69a53a260abcbc27ac669e375357f 10e818c507513e2f7c6f7ce45dac0f9a 10e91ab3787ab489e3a2d4d9642a53bd @@ -2726,6 +2763,7 @@ 10fded255f199f1a3b9dc860d6ed88dd 10fdfe47df56011732b61ebd1804da0e 10fe9fe4ca4f537f304086c9b176e292 +10ff12f14ef50239d333ea63e1ecaa6b 11009862226b73c427ee4110f52208bf 1103f4e871f1c4d4b219caa826b7ad85 1105d1b2e0ba783521dc8dd8e7e0ecf9 @@ -2768,6 +2806,7 @@ 114b3af0528fa2d9798063db99c02b4a 114b5390a2b31a5a486ea4883f6172f8 114baa2f7579635bc7eca552d48c2ba6 +114f5f9ca00b102cc502bed753d3ce5c 11511355e57e98b25f65a96c2f837553 1151fe5347c521e28cdc9e9b474a9e3a 115410572b90eafd604e7ea47a646e2b @@ -2997,6 +3036,7 @@ 12897b6a16ca2f9fa8374da6ddf08b1b 128b8ba289fa6b9221c3ed6a555a503e 128b9b562ee2883ba9bba2de9f427a6d +128c4a9dddf94e1a89484fe5fd21f8a9 128c80ca33d86e8a3e1b58a432770190 128e0ac438b487a77adf0dfb71383c47 128e5ab3871d171f823879ca9b76f490 @@ -3006,6 +3046,8 @@ 1294beb3b0d3684df1b6fc7ef9fc87e7 1295dae92c7efbd147e67358a2bd7e9b 12970c454b98ce8495e23cc8265e40f8 +129759309909dfb2549621065fda4df9 +129a4c30a7c7abbff61ccc0b898c188a 129a5cddb99673767fad864235ad2695 129efe69cb4e975e60e8cc1de3309411 12a006792a90c01ef65a5f2adb34536b @@ -3015,6 +3057,7 @@ 12a77b697957ea2c133a31ce19dcb63b 12a845487cd2d20ce3b95a5c8e6070b3 12a849ad5efd65d0e5643fd59fb79d2e +12a8560e08e04f5aa2a9d7b8ce01baf6 12aad08269f55aa450eb51e76484ccd1 12ab366a7db18fc00b7a2bf9e3686b69 12acf2248e52f75a5f3ff1460af2b1be @@ -3179,6 +3222,7 @@ 13a2beefe4c2bb687baebdb1a64f47ed 13a5a929e76217372728a42a84b0957a 13a5d904845d039bedb167a6f890f336 +13a7505655b81f1ebe5bf3ed24577efc 13a877ddd4f0ad638d12b901ecf015fe 13ae87c06e574ea8b94dd147c941cd9f 13af1120e7eb46d1fff62defa1acd994 @@ -3186,6 +3230,7 @@ 13b0cc33cecd308ddf5cfbee3a2c5cc1 13b4986b93ef62b60dbb4467ab7b0d63 13b5374fc6da8bb270242fa9325ac5c0 +13b684f588f9c42594713e44552dd04a 13b73144d75641b54fed7a8d1b668a1c 13b8277e7040be5b23bcab1381597c7e 13b835f43e880515fe4d00d82ec4d879 @@ -3234,6 +3279,7 @@ 13fabb133562f71e597bd15cb2b001dd 13fad78df24e2a5709adde62e403e01d 13fc0e6c8f5a25bbc13e328dd891dd9a +13fc48922737fb81069291e97c5a561f 13fcb2eef2ef448746a3a7d3990ced5c 14016f698f2863502157a3e3ecd3e499 1401e6efcb10da2271e94212f81719f7 @@ -3248,6 +3294,7 @@ 140d531906b03aa4001087c401a69911 1410d53f9b83996aaf62c4cb10fa1d69 1411017bd6e69eba5f4b44c7d705a1ef +1411ac28f3204b921264050d9972d07d 1411d6f3864195d543c2c62c932bc80e 1413cdd7edfb54c9450318693fedab9e 14150e931084b23207ee45a7995a0aae @@ -3450,6 +3497,7 @@ 153cff860211b3e48c595fc1ef3cf78d 153d89dfcc5468f183483c07d004b9fc 153ef118b703d08e188212c09b12e242 +153ff407da06b6703eeccb3238eb1750 1541b37529db87ae97ae35d6f3230d51 15438fd15f559c03ac03320239c20214 1543b3efb4c711a8dae734331ab34c9b @@ -3508,6 +3556,7 @@ 1594722012046a8a684c32008cb898ca 1595bd44ee243a8186dfbf4ec57f9cb7 1597c6a4a03ceddd6f44ba96b28a93e6 +159be5a5bc97c9212c24257341d4b9cb 159d253b6a28b3d7557f9592f830fc67 159e8a6c866119443c5c7ee0e0422e39 159f45a5bc0d401d55c7b00977edf1f9 @@ -3604,12 +3653,14 @@ 162efaedfbeb5eed177beeee401b0f96 1633bf5cbd7353814346d93d17029fed 1635dbb10dcc971be8a88d829c5214a3 +16368f829f96e5af5bcfd2edcf83c7e8 163715dcf7592c68467ce310c142f316 1637bc504dc5d9b78990069f07403f72 1639c99217770576573436006c42a7ea 163b5c67688203a0c6dc2f3582b599ee 163b7302c00302d76e31f36554f970f4 163e98594065855616387d40d5f57328 +163f0371085d9557320d5c11499caaf0 16414e857597d08ab874678e7f9d76d7 164402dddd32b886e4dc167c0d73a379 16449a03262ea64e0172730af5bf21a0 @@ -3638,6 +3689,7 @@ 167654a6325c7ef6c60bdccd896c2a4b 1676a13396a4f78080662dd0419a45c1 1677b760edcf80a0ff07f308ebe300e4 +1678639220d10cf30df4a1ea5add8a34 1678ea4e5910d7d433d5eab5309a1864 1679390b5ea6a85fcb4132eaf7bfab48 16796bbfecaa7ecabddac7dfc4ca571a @@ -3761,6 +3813,7 @@ 1746f2e2f0f3b273cf7442ffc33ffa0e 174724c1ee5887034883dd810a9c8bc0 174753d21c660af786e1d07583248421 +17475d04bb34c534604424871aceb547 174873d780c137af4054064591d7f876 174971b5571b6b2571a3d7345f2fb942 174a24543d97e2af6820aa7848cbf7db @@ -3895,6 +3948,7 @@ 181d72902b0583970801f58c0b48ef0a 181ec495bc6757feb53d42ad0a4996e7 181edda21556d87c7fdf9ab5552e9eb0 +1820c81a5f6b97edeb755678941a2772 1820fc372cd8bcbb4294cdf8e37e9581 18213343b5ae02717340d1c0859e6598 1823896127491d5329dc5cba7f7748cd @@ -3944,6 +3998,7 @@ 1869de645f1255561a6752ef05bf0d86 186a58dd6a30a634edef45c791598f57 186b7b5128ab702d21b6548defb62111 +186c86c7d931f02c606b1a0576a94746 186e2f1289b7ea79eafc589429bf33ae 186ef2a0e1f1eda4d75c733d3e274539 1870cdf6aaafc7a63b5a672fb78124f5 @@ -3967,6 +4022,7 @@ 1892ac802f3871194009f36545f48c66 1892b73fddcdbc8f1bd8f0e8eea0ea57 18940b4431c066231884eadfc7c7060a +1895c61a6d3466f5aee62640cc8c7002 1896c58883bea94fd477654286c1150c 1897586300d7aa4fb06850e982e96bce 189abb518f993774be46bbf26dc1f61e @@ -4054,6 +4110,7 @@ 191b4b4321637ecf8e5101270d1ba0cb 191ba67816fe474d9140980689da96fd 191d5b4806849276a244124279dd157f +192059b32b84b2a7acde113edcca3f2e 1920dbe1f7cf7088dca731f673ebd41e 19267f072147c67ed42f61c57988cb74 192d16af41ff10b9182cefb0ce36b18b @@ -4076,6 +4133,7 @@ 1950214aaae0f2893d4ce549ea4bd9eb 195305dea1da8ee64ae179eb506ca886 195364193a58733875928c6bf1994e8a +1953c8307962c34751f8694c8941b40c 19541f5c90221ca4d3184853ab7769a4 19542ca76687ccfc5d8f953825ef75cd 19549cc2a14e437d48222abacd54d757 @@ -4206,6 +4264,7 @@ 1a0c0c367e4460c92fe1313c535d3f2e 1a13154b243fb5a905ec19220824f27c 1a1599cf935b1e8fee3faea9bbc61bad +1a15ac0b11422bf81263c1082ed95321 1a163b8810f6d09c091a905075e6fde1 1a19d4bddf84fd5d790acef7c175a199 1a19eea68a65f0d1e4018bc64e7469de @@ -4273,6 +4332,7 @@ 1a732d4077cb1573372d3540d7e65526 1a769236364c7e8c95a351d41f035977 1a7832e11817b2c6c9d630d4494537e7 +1a78d887d01ce121a826adf31ebc4caa 1a7b799085e4cbcdb4fa854b86dc45fc 1a7dd438f7ea2e54a1e4bbff4966f3bf 1a7dd5f0d338d8a089916144b20172f0 @@ -4327,6 +4387,7 @@ 1ad471949611edec77aba09a0c6ce843 1ad57255c144d4d635507b50492d68a0 1ad7b78fe59a95e7c37f10783ba9cf91 +1ad82543c20f47b95e85920cfae2cb52 1ad8ac4cf7d46d5f41ed64c6fb4d71d2 1adba28da2f899494aa0da09cfb69197 1adfda5ca096dbad40fa9bdd70b78d57 @@ -4345,6 +4406,7 @@ 1af1b3638460a1a0c42ec51bc57f454e 1af21db55e8ffafce4618880d9489daa 1af5d56fc7f37b786f9ea7597dee2462 +1af6829bcc11fd39bea7ef61b35f9280 1afa3a4ab0f9e8aa44ba29dfe9e6f43e 1afa4fc1f5f95bbe3b3f3c8dc3330db6 1afb497ddb661e4df1530fed59eb04a6 @@ -4361,6 +4423,7 @@ 1b0ee95fca2e57eb8c166736fb9574e6 1b0fd04acde07874ef708acef5dab48e 1b11a39e9954cb9e3f1bae02c30593f0 +1b12c15419228b955798f4ce6eccfac0 1b148187e48b6f0ffc2904bbd9077a42 1b155cbbf86ab9016281a59aed96b3bc 1b1755c66c2b4a4e26bc94368f17970a @@ -4382,6 +4445,7 @@ 1b2f6a49fbb2bee6311cee18ba53bd8c 1b32be008525d4f02a9ac08f0361ac20 1b33793abca22da965835fc6dd1d5c26 +1b346d314450b568921b4f6b76c01447 1b35c1cc0a2108c7e7b181c4099ef6d6 1b371e4fcad90d1fadf4f5be78501acb 1b385097ba5788f9e8c4587aebac41b2 @@ -4449,6 +4513,7 @@ 1b9868d5306c11cf74b4d04e0a4a9aa8 1b9a9b58cbc635e3717b66624e42900a 1b9ba5caa3022edd0706a1dc3233e0cb +1b9d2991991ce7cf7f7717dbff8bc6e7 1b9f8c3c9e06834885a1510790bc1653 1ba03bc884c3090fc80a1584402d8d6e 1ba0cc2396335322aba5b6f832fb4b7d @@ -4543,10 +4608,12 @@ 1c241bb3dcbbafdd716ec5e0862702dc 1c247dd3fe7d7b8d2f712726180a3f24 1c272a95b70832b19fa3435ab0c57418 +1c28cd0d9c1e1e5a31665e422752ce62 1c2b11883587b894e1a3441ba345ffab 1c2cb091d0ba57c5a4a6d33569a9ea79 1c2d66f9376fcc493524f3cd6f13c851 1c2fbc6e3ec0ecb52935d0ce35855a9a +1c302a07d2e3e60c30f272946119097d 1c33f9bd7edb82f06ac06959ec1823fb 1c3452cce5421a1c1452ffc6986eb701 1c36597b5ffc8800e8b2ecdf891e788d @@ -4588,8 +4655,10 @@ 1c6750b1f7b616c89558cfa114a88b75 1c6760b1d8752139b96817196117eb06 1c688eda675c3198c5c1c656df6170f7 +1c68b705096c312f45269fcfb4285306 1c68bfda06ba4b45ce566486a3c29ce1 1c69cca39e64fc0b9f8b5b5dc22ff23d +1c6abdebdea5330b900150c44593dad2 1c6b8405994bef6e3536f212e419f6c9 1c6e9b7d658a4789083e8b559d817bb4 1c77481c1579fae972ef728196af583a @@ -4790,6 +4859,7 @@ 1dafceb28c1b1048cec806804c8554fe 1db139f3fccae540868554390ca39e28 1db1ae0f24d3ad63a5ad781b35ebee75 +1db1b86da889731bc5f43f07b0c52087 1db46495be34d969dbbc64cee7acd1aa 1db61d966db7a5c09dc511b44ac0b025 1db6db1d28cd82d66cbcc61d8cce58ae @@ -4966,6 +5036,7 @@ 1ec2e59765ee33f356981a4778dc4103 1ec642f8fbb3456c881930c8275bffc7 1ec680029fdb5ff420821a8dfc045dac +1ec77c446ffa6230a68a9b5fa1d18178 1ec7e3447c2779aeab6fd9d4ff37b1d9 1ec8a3b22b9c77f02f0ab3cb25b146c6 1eca4246f7d0a7c31496108f348be090 @@ -5014,6 +5085,7 @@ 1f0ec60f7301825b40132209f179f0ab 1f160194fab2a1c32d025cdd751fea50 1f16d7f270b3d636283ff9f0fe337bf6 +1f19b9e027c1ef595d86cd3feefcfb67 1f19ccec4f55a3ca8ce06b2faf7fd68e 1f1d15890a5645b58dd16c7a60bdb1e8 1f244e776d66b0c7e5099843bdf4f419 @@ -5079,7 +5151,9 @@ 1f8a22dac8684a05991ac4002b84eb3d 1f8dfbbe9a0b35d840b64ca0eacb523c 1f8e9bda4bef19b88183880e01ed216e +1f8f3a05980b8909884d937aa7e5eb33 1f8f9a2e79749ab8eedbc41930f7a41c +1f90dd4dcfb297d367bde0d4d399da4d 1f9179bb1df05eeb8aac10fc999308d0 1f92d6652c488ac0ec3ea507882f37b8 1f93f079ba0c6e2c27f9d4cd6e484059 @@ -5120,6 +5194,7 @@ 1fbfc2476d7bdd789bd53b8e955839ef 1fc074b8b0afe2970644877d2f44d662 1fc17c4ba2c0592ac2f901d90800f845 +1fc322cac7cdf03d8ca9e07278b0c7c4 1fc5a66f7cba3b5023f49f51d7409ab2 1fc5cdc590cad9cb77747d603fb702ac 1fc878882dd5e3462b04c09e36c2a8b1 @@ -5147,6 +5222,7 @@ 1feae924bea3316b6320796e4f2753d2 1feb14cf3a20bd750c9bedf1da9147a3 1fec57355d8769ab9daa555b797d1178 +1fed2975889296e51815594dbe522a28 1ff00221cb46b36725b5b21b6721a5af 1ff0ebd1526492ece3d3bb03a5f77722 1ff290d5cab9a22396748a6ddfa31768 @@ -5157,6 +5233,7 @@ 1ff8ca028cdc4879d108f217bb7246c9 1ff8d711e706baa0a474600c219f70ab 1ffa13a98eb0498ed42de9818edb79b4 +1ffb6ea9374c1b33ed83eebc8aa66f81 2003ed2266406e1c0226dd5fda00eeef 20076b6dd002d850c43d15180aa643d5 200a9368d7b1c177437bc020bdcf7ead @@ -5203,6 +5280,7 @@ 20430faa1ee362249fff6e57b7eed88c 2043f1b433ec711f0136174e3932477a 20450b59ac25b375c9f7fb395d9bc496 +2045a17572b987cf20a27d98141f7beb 2046e54a0486a2c5bfaa8d3c52c5c52f 2048e8f9259a65438d1ba6a9a84dd219 204cc68e6816c5fd01c8c8591677ecd4 @@ -5318,6 +5396,7 @@ 21185abcd8ceb3f72fdeb313de881b5e 211ed90db15244404bba05962b03dece 211fc29d632d8d6a6b20b01faa7adcf6 +212078cba6141d6b43191be7147cf8b6 2122711c913dc16c356c7dce4a90cfe9 21227b662da65688bc3c15c7e94cf00b 21229f2071cf7ae2739996e401d9a641 @@ -5460,6 +5539,7 @@ 22084210c4f083c4ac4e9877f39e117b 220a3e96b6a04197cf147bfd46e07b8a 220aae67e307f834c3231885f09b874d +220ab4877a73001c804f0a25e80c8156 220c58fccbfa67bd9dfd5490537eda2f 220c70dcbe558fa290d5c93705f9de4d 220cb6a01c4840c9b7b4619b84cbe91d @@ -5471,6 +5551,7 @@ 2217f172d747b289f96f7ee14e3097ff 22192fc30df081325fc76e6e726eec2c 221946ed4f7cf2048aa27894c8eebbd8 +2219bfd838a0580f0ab69d0518820e71 221a47ff3157b01bffc659ab3587d4cd 221c15b7aec6348c1417adccd3369e63 221cb33d55aa7d52f07384f7836ff7bc @@ -5547,6 +5628,7 @@ 2287fa2e472671355d7e42ae743a63d3 2289168f08f00226db986e88868cd9a4 2289612f7b58852474ab4fa918ef8f66 +228d8008481d7ec578445921ccbab540 228ed3e3956c9a49167374d41f0bd155 228fe1e9d8adfb2393711c22748ba48a 229088b749ae00dbbe7b92a74757c233 @@ -5574,6 +5656,7 @@ 22ab4bf2ca3875909259e0c68f3d553b 22b1add34937ecb21afefebdf9135c79 22b1bae882de70978e0635ec5bbbd417 +22b1c9c2a3caac9cea5088c7a8ea1b86 22b2800b9e45311807460a88ce3f14df 22b5e7420da2260abbda0a5bd34ccf4b 22b6a720a95902afc657feecf3f9ab21 @@ -5585,6 +5668,7 @@ 22bd7b1aaeb311f2966d1c8d03fd3407 22bec97dc2c9a956320fe329d029ed2c 22c0d17afafa1d4f4ebc32eb93c3d608 +22c2678c9b3c3db63470063c73927027 22c527aa1ceacb7960e63e492d0e6dd7 22c5f05d532a1dbedda9ef8e034397cd 22c6a8004ef0a791272994e0c54cc660 @@ -5897,6 +5981,7 @@ 249d6ccf2814bde0eb25c58cd10094bf 249f792eedbc10326657551fbe62f018 249ff164b142e07368aca3e914c3e9c0 +24a3d44af9a87acbdf4469737b5e4ca3 24a62865cc8ba6f8d738bb1400ed3f5c 24abf2e1a36d6e8a02f1951b1bea6acc 24ac289e4738cce89c8a4a89a745ad0e @@ -5996,6 +6081,8 @@ 253927a3ecbdde3f452695d139ce0218 253a1d66ad90844143dd5e0fb9c26bce 253a525a91ccf1585d4e5c63e7e74a7a +253f849df872538bd036ca1f01cd3ba2 +253fab38e0b340f8f4203b1fce523ec6 2542ecb61d373a16ce19afb9bf1cae85 25434b0ecbae400f08d1f1ce0a975a5a 254397aa8998ebead0462e983a6da12b @@ -6027,6 +6114,7 @@ 256583b3ac84f7847568705c80371010 2565b7aaa994008b92a5359702b34ee8 25673305d158e02193d1fa44b55035af +2568c4c802c90a0a170fe0d322596791 256a49008db6a4f96651120797304ba9 256e46d3b497acdd970000753460ae2c 256ed811ee9e5d2d407fcd2bad38bca7 @@ -6047,6 +6135,7 @@ 258c185e313f845438edfbed149f20c6 258e454528588aa62629bfaa566a7314 25905d1f9318495320dfbc30f843317d +25915f49fcc37979c8f80dd7263c4c59 2591d9418ef5515f569cc758edf2ddc3 2594d821d0358c0e3f9fe4a6e4f0260c 25963070b4ef685d3b761a9aad77674d @@ -6431,6 +6520,7 @@ 27fd0e9a5b396202d62a07b56604eaec 28056561630ed57586d86ff051d74405 2806edad909af910cde3ba7f65d3a36d +2809ff208cbad2d11f96e38b72ac5a69 280a1d8bd10bff4c295e53579139041b 280b00ef5777e5a42d8f109bcde1385a 280d0de635e8ad30440908e5298318da @@ -6505,12 +6595,15 @@ 287925513ccd143f8d3e5486ddb71ecc 2879aa7662565f0440138a725304aeb0 287a1319a4edddfe6a447423080038d3 +287b5f8bdd826a41dd28013265648f51 287bc3b49fe4805f3b18050b3b30c185 287cc9730a66414f01b8a45bb206c67d 287e61a2efcdd1fedf30f1a75ab992a9 287e6ceace5821d2ad8adc7aff6d22a2 +2881736d1a250b2e28abd25ea665d9eb 2885f85ff2e2664346cb7b318e3b9765 288899b60365e4c3d6d7b33dd0c1cc08 +288ad40d8a8e316d990ccf9447c1eae1 288ae09a9acaddb325e147444de24b9a 2890ff01ee0603ce951a0b5aac352ff6 2892d5b5ea08759c8ebb591844255f38 @@ -6949,6 +7042,8 @@ 2b077a5159f9df3d059cf6c1185e0307 2b0b3571bf1f4839eb1b8261d879108d 2b0bbc2a98de149da28268bc26ff0910 +2b0cb742c3ec543a1f6de01bd1d7e02e +2b0cf4b0d8d30445f4dcc4420fb0cf14 2b0d65c4f01eb0c50cb843817eb557b2 2b0e2ad619659b853631d79ff975e50a 2b0f3729ea9a39b40d6732b8e97a8360 @@ -7080,6 +7175,7 @@ 2bd4b7f8a68e5f830eb86e7f01d679e3 2bd5c83d815f543e24e5041c02ae0799 2bdaac06653f5e57848b69416ee4a6e9 +2bdd0bb805f7a24f7528077b1319b8fb 2bde4c3314cf8414efd8db02a1b9987e 2bde95c3972d9158a5a82d57496de5a5 2bdf3d0849d2d3fd0f4b2523859d294d @@ -7098,6 +7194,7 @@ 2bf5bc6ffe94ca002b71e7fbaf31e662 2bf91ec9421a077577a796de32b424a6 2bfa7a4f8203bff3f1cd040496aeae38 +2bfac3334ffc28508e9f60bd74574db4 2c026abdd1b37ae1dee4b638f38df370 2c0335d219bdc9bccd89e17ca3670f4d 2c03f12dd197ffb9d2de4f1b50b96adf @@ -7121,6 +7218,7 @@ 2c220ea2af5050df98a81f02dea9e4b8 2c2363544bf9d4c160d14ae16defa7e8 2c23789979724ed209507e5d60844b50 +2c2719869dbcd199fa054f1ba53cb109 2c275d0c64e6f917b3d40885342b624b 2c2b20492dbaa3d0616532def7ce9f9c 2c2ba77cc484af296dfc05c19da6b285 @@ -7147,6 +7245,7 @@ 2c4e352fe98924cfd7c5c8bc71c93f75 2c4f49a5925d334cb69d5f0a926efcf4 2c4ffecd062f165a9713a66a97aab477 +2c50c54b33e42c5e336356586c592fbc 2c5119c591dee58dac186d604ccbe9fe 2c51844de09eb213ef01b592bd61186c 2c52c63ad65553ba232358b53eae1603 @@ -7166,6 +7265,7 @@ 2c67d86204bbcd94d8cc20d852663ec4 2c681f7a0c545182666f57fa42b0f1a0 2c688854b8e79a063279f52b219d0560 +2c68c67d1f22a88154224dc2adc8aa53 2c6bc7298117185bc917c2b0ed7a78dd 2c6ff90976347f54d5b0cd83e36fa728 2c75ab4658de05f523bd71d3c9e3e8ea @@ -7194,6 +7294,7 @@ 2c8df90ac2248ba8396dab6fea7a82d7 2c8f643a6dabef7e5cc95a5be934757e 2c941c57b11da08436225fe150e1f614 +2c978d490f196d6a5be542016bbf4ce3 2c9cf6da13dc4b626628bc0ce2f29eea 2c9d054317fdb277c7b1bcba6a73cb75 2c9d879a8ca5e1ea6e7fc938ce593265 @@ -7257,6 +7358,7 @@ 2cfb55a04718dd776e846d52c79baec0 2cfc0bced7afb4feda1ef36b9243e46f 2cff38598129ab39a8ff64c97e40b3eb +2d0120e2d107915bc10a2ff9b28ffb64 2d04b27edb1d33186928ee483206d930 2d05179316185319a254ae07fcb4c3ca 2d087616106ccc3147cd472ba627ed23 @@ -7308,6 +7410,7 @@ 2d55a00f3a34b381295cb77f81837c80 2d57c414517fbaeec6f60883fee5f21f 2d57c7fc1219eeaf8d3731cffd4c22fb +2d591097c2c1a7080c6c6f83cee12c12 2d5d7ba662b91e403fc9bddba32857af 2d5d879cd42d8c6dabfe3fde891dacfc 2d5e135529545decc9deaf2e70ce54e5 @@ -7441,6 +7544,7 @@ 2e110340b57dc177cc01b053e1164dd5 2e1224bfae8d9ac959bfc4ff3c4f84dd 2e1646fba2336d1573d070263f6e3cf9 +2e187bc2bc6386277d866644021c74f0 2e1b6b8a7b4f42420ef24de9913bbc7f 2e20073b595b3e0ff5b44c444a5ed317 2e22445bd6ce945b585757a8e738863f @@ -7467,6 +7571,7 @@ 2e4e16c92557b81da98ea4504befa277 2e4e76ff6471721e6a5b885b074d9e4d 2e4ef5d57e867bd6931f3adaa630054f +2e5013986e7e8dc62b8038c42ff08632 2e50e2058c2d3169f761dcfd7b45fa0e 2e51b17501739435c4dfe05451d747e5 2e51eaf94f20147e509d964118f83ae1 @@ -7510,6 +7615,7 @@ 2e850c5bab1f3fa4007c35375a37cb7e 2e854bc8e5c0291d22fdbafb85a59a85 2e85c23027a6929ead855c8a5f0964b2 +2e866bd8d375855f02b3efc653ffeb1c 2e87988de9563987b1116e7bd9986132 2e89ed03fc4b1854cddf83d9a858fcb0 2e8bdc7b6476d1829c0c24e90854c1ef @@ -7558,6 +7664,7 @@ 2ee1550f62ac51eeef9ae70218715399 2ee1e6b8752e47131681e4e658f02922 2ee217435e1838cb62241f8a324cdc5e +2ee36cf06e664307d2d46762910e62a6 2ee3caf145b9120bc05c1b424cf3ebf1 2ee50f22118f33232051b6190018b9ed 2ee8f01817f248e9bfbb55d0b9a2a8ad @@ -7725,6 +7832,7 @@ 2fcefb2dc23fe5d0b84f28ad2bea2fe5 2fcf9000e8cf84528bcf4b22dddc78ae 2fd0aaf5a58d0377a06e2ce3c3df2e62 +2fd426a0a4756052ce2091066c4eacbf 2fd7edd37afb9a90f3a4550f912ccd75 2fd870c9573092316572c17c9ca55e4e 2fd8ee12541fdb6c2148af4ae2782441 @@ -7891,6 +7999,7 @@ 30c027e3a833714be5be1b3ba5b1b5ab 30c081cddc26770243e0eb6ea219f981 30c0849b5e3d121dbbd37d0de316d48f +30c12b67b8d11ba884f8b4a4749b1850 30c1c91f8e080d4a90e01294fcac0fb8 30c292b56d1a018af06b43d3ba38c1ae 30c2e85b811f8aaddee860ba31974b88 @@ -8004,6 +8113,7 @@ 31663875b29c6abf1eecee0f2da03f2d 316793604fb5ad38a3fb68cdc6900a69 316992de55932c35e18f0a59bba8cbd9 +316b0bcac0380231a05463ef5a35c02c 316bb0328f7809fec943075d93010eff 316c06fea79151cfeecf630daaaab0ca 316cf55df034204c0e81905c762c2ce3 @@ -8061,6 +8171,7 @@ 31bfa027a5275eeb526976e399646431 31c13a69d84fdb5779dbebd856a50481 31c1467747b4ab2a38912a6c2971912e +31c15879216eac765a7f25b7f27108e2 31c18a536f04a63a8e6b141fc62e254e 31c1e84d8e6a7998d83136da6e79c53c 31c2c19eb1fa0717d74b845e955bb538 @@ -8104,6 +8215,7 @@ 320450e5684e9a6032e01fd0f0080a4a 320458c437a1d1ea1e285c726147c591 32063156432708b2b1482ed7f3c9d187 +3206bf2efdb5470ce3b84b7462aaccac 3208ef5d6361aa1b7913da8b518361f5 3209a5d514d58f3809202c8bd21a2db6 320a05838497a0a6cf188dc67f510186 @@ -8192,6 +8304,7 @@ 329c049dd58f5a34885a2855111e675a 329df17e5bc90a4f09e4b7e0e9329852 329e50c82758e2335655a5a959ff32e5 +329e99fa7a34c5c3f597b17c5f127d7b 329f15c42f9f804126649471dcf7b73a 329f4735b43dcdba001cd882629e5c02 32a09f4ca1e682dd71da4494b5ed5738 @@ -8205,6 +8318,7 @@ 32acfa59511d49d383dc5ff0e9184748 32ae9157e54bd23d9db11006acd21b93 32b0ff12af1ca26ceb69c56e3e6d5190 +32b1ae75507b83c77572800a62059810 32b3b4bf08e2cdd07cfbb3d1226d4845 32b979a35c05eece2a3ebbd513cdca0c 32ba2b171d39646a38c3cf83b52ec73a @@ -8234,6 +8348,7 @@ 32d410badc1e91486f44abc084348884 32d436151543d176a2456e5637959306 32d469156085f55584a2b27e3421bd7d +32d651d26ec917d6ec21386f766ece13 32d7761d8195592e83ff7ab6c3903fc5 32d7c149692b51e0bfcbad0e13c2216d 32d825ba206888a992b6c2e2ced3ffbf @@ -8250,6 +8365,7 @@ 32e54a4afc3245216893e01ff74cf16d 32e5fed6f215d8630f1cf287a6ffc932 32e63ce5773862d2805ff14fea1dabf7 +32e7fd17ccb3d578f263ccd88d3ed29a 32e8b89daabe6f6c6cd12a310e479134 32eb4e0e25d3f592159990cf5b7f29fc 32ed59f1baaec7a07ea98157701ff56d @@ -8322,6 +8438,7 @@ 335c8a8c47f2fa2203c7ef2be55b834c 335e031b1195d45eafdeae8f341633ed 33642e2700aeb79cce8cdd97da742ead +33684de707165da68a3c6d8ae54de9ff 33685e1303068e5addafce0ce8f2271b 336a84b5038bcaf0c4cfe5cca877c23d 336b349b0ddeca4784337d7d06747c3b @@ -8336,6 +8453,7 @@ 3376c8066fee492a23ee9124b60cda95 3376d8b513fb41e75069c8c5b9f9af66 337783fcda289bd879387112aa2ed016 +3379443bbcd4d4d6f80e3695b05b26f2 337f43a7027a39aece3816ae41939059 3385ecfd6bc5587d0eb0c6e348352c1e 33879a7776b83c6ca4c99226ac14c438 @@ -8624,6 +8742,7 @@ 3530358e768dbf8f347d4fa05a5628a0 3531e183e4f880842762edcc2b649f59 35334c45c4b96976160292fe48753b74 +35339acaa70c7a0996cca772b5c8d78d 353420c46978cf6f1fa2783dbfe5707f 353754b10d239f0110682a58ff2a600f 35386a80f9320a53526723301d03deea @@ -8812,6 +8931,7 @@ 3667c7542f1af53aeaee3cdd3a75d273 3667f5215fd657efd0ef398680528ae9 366a5c619d622810714d67db09f6fe7a +366a67b9de5a41bd0bf9adf9d5554d05 366c8cd0631aa1894907947c64a1126c 366c963dc79061d74dfded24889c7fc1 3671b781eca3689a22e5d1c9d056dcb9 @@ -8858,6 +8978,7 @@ 36affd14e6e779405f5811383792abc6 36b12277ef82348ab469d25074ae5435 36b19e7b825a7ba381e72b62d8dd263c +36b1af5c882f4d11fb5b6d85764acec5 36b235ed28728793aa04b1a3033f4b29 36b3c343cc563d8a599f0b58bd195dfd 36b40c9a10c8c84affcb92b31986bb9e @@ -9064,6 +9185,7 @@ 37f233ac5ce8d1e67a47057e78d9df9b 37f2d1f5a9d30c65a8aa1dc0eb5e3d34 37f4e7a951514ed604db8be5740dd097 +37f52c66a7f420447a90174049402c3a 37f5a8c25fc054bd75e2cd98e36f355e 37f781200411524e1ccdb3d4234195d5 37f887a1a1174cac15f3ecec2ec6834a @@ -9091,6 +9213,7 @@ 3816c6be52cdef6758fce0c5356f1159 38197e3327b069282fbdd2ee55cf1850 381b376bedc0862d6c7cbc90cc15eb13 +381b74a4e7f4a32b766efbb42b07661c 381fe525967446a800fc3ab04d79baf3 3820adfed8fb537afb9075f20b542119 3821d328a8a46bf227c51ec1f3a1377f @@ -9207,6 +9330,7 @@ 38d689913adb090a400924bb415b460d 38d8568e0083ed04125d18bae470bb0d 38dc122192a611e982c1cb32e56cc4d3 +38e1b592b9241d2eb98c3f2388288847 38e23d19b41992d2f8c6075970d1a617 38e56c9f2c26264ae0edd19c1d8fc504 38e6457c6f397b3fe0b78e3af1ed9fc0 @@ -9222,8 +9346,10 @@ 38f42e273cc1e872a99f1ac294140af7 38f5ccaf6884ddf051a92a0889795cdd 38f6d2a831380b578232f9d214295ce9 +38f80f821108c3bb3e8d383dbd2a1aea 38f9c0aeadfe1fc06499c755d50af1e5 38fa1f7e35fdc38db21c2e17954425de +38fd5093d7dc284070e9b34028ff788e 38fde3d022d5f870933e44bd82f555ed 39027c02cd003145bc74c563c2059c67 39047b72ea9f2a256d6fa4edd04b7d36 @@ -9243,6 +9369,7 @@ 3916c95989ae3ed9542efe24550ca265 39199e21a762e51e76b6a3206d897e25 391cf914711b52c1dd33cc21a9637638 +391f73cf6410382a708c2108fd501834 39230277acdc4498202066225f144274 392394e1518a7f591835f8d8d449fc27 3923ab15e44cc9a14865517e0c93597e @@ -9288,6 +9415,7 @@ 395dd775b0fd34174fbc030a692a2be9 395e743ac002bc05bf5ebd7c67a2ba08 396663861d30eee7b9e61f27e2560647 +39677f56c664a98d949fee509a1217c7 3967f3cf8a9f3c7783fee3329c623941 3969511f8a61fc191e42fe5ad91b0806 3969657879234e2bb9ce774c24d4f59e @@ -9310,6 +9438,7 @@ 3995a81a5adbde2a1252d66f63e3641c 39983c15e75fe38c6584e75c57ea22aa 39986f49e8b14a589f9e6210a752d843 +39997a773360b139e36554c526697fab 3999e9010f0b8339a75b82eb516a0d4c 399b7fe3648429536a548fea6ef6914b 399c10de0eed9c6912f55294a0de3306 @@ -9317,6 +9446,7 @@ 399d663ada93cd1e8e02c07b59b7c171 399f3a857a8565b66773026614923819 399ff1a15f16964ec93649336b03550a +39a23504089bfb895f18d02021ecc310 39a4e9d48d8a9255ee37bc46198aaf2b 39a6db9a3842aff411e2afcc7cc957a0 39a8cb80d54ab3e522cf6294da4f2e63 @@ -9464,7 +9594,9 @@ 3a90429ad0e5d0d6cd4c50cf133c5781 3a92126980735afe310510c7723c897f 3a94acfc8afb5d2633cf031563a626b1 +3a957e466ea659741f0837e3f3abd39a 3a95b5cb4e02f8fec32904353e76c89b +3a9ae85ef61bbfc0d290748d888e511a 3a9bc3faac25dda2ccd213f132097002 3a9eb521712cdb3b89a123e3a96683bb 3aa1574711e6a11a0520832d9c33c312 @@ -9565,6 +9697,7 @@ 3b2c8f927b74ddbf6ff21b19e21bbc02 3b2fee4e372f376d973ab399dd35d6b1 3b314584afe96d4e701deece67cfbe06 +3b31e02cdd65585d8c21e8cadf3f0d97 3b33311b30793dd887c185a0febd5c8b 3b3446d5e0402dd6830f8202e65bbd4b 3b358900d7e5e2130918b2803d61bb20 @@ -9638,6 +9771,7 @@ 3ba29da298559fd022f3c4aa2c1015b4 3ba2f86d13c242409da7bdfeb9de4820 3ba5b6c93c33566ba2eda3b77dea96eb +3ba6dd604760bcb6c605749909977d9a 3ba8ca9069c1cf81c2adbd65d1875dce 3baaf682e05895a56d8373db8a2084f6 3bab369165085d8d0fb0d3dd3578885a @@ -9717,6 +9851,7 @@ 3c0eed24294ca8eb04bd04dd0ddb7c5e 3c12fc5933876e2f31730f8ec942d13c 3c16266ce3512eb9ec6df4acf4efcb30 +3c1822000c7b4a41b3eb55032841b10e 3c1ae4b439a72f0325befbff2869d9cd 3c1b2f1ea1d1974ad0a60c74597be96a 3c1c582e74db73d247564afaf8666bb4 @@ -9726,6 +9861,7 @@ 3c21a7b882fd269c14a0aef55db11e7d 3c228e3ba13369187f727eeb67c6f39d 3c23107f1284d02806f3a14063292230 +3c2327ba0a5be0020fadcb37a1df6105 3c2427863457c808e1e4dba3fe679c88 3c2493c304095b39e2b25faafff56e0c 3c24be895d01915cf3e60b62d3776f1f @@ -9747,6 +9883,7 @@ 3c43265d5f72c40a5799d81d1d5eb1c3 3c44a80e992c79802741a886a9d34d07 3c45e260657d5f50742b87875f7d7f27 +3c4a0bc7cee5946d36de13a1d60b1068 3c4a44452f50b22c892ada4140268eee 3c4a973a86f1372d5a87bc811a148fd1 3c4aeec0d937e9ef36f356d8d750ab9e @@ -9786,6 +9923,7 @@ 3c856288a877721b34e68b0c12c8fc69 3c8a6e3b99497633e77ca0f4c95e02f3 3c8b0ebd8f060fbc414eba3603ae53b3 +3c90eaa1d0d44ab45863c6b8f41ef027 3c92aa304ed26c7e32ef5c0523031ba0 3c9752d02033db84d8a87de070e95b50 3c978a1129bd73f46a13c404e4109923 @@ -9803,6 +9941,7 @@ 3cb309ada9158feb17460498430b173c 3cb69d0823197366cbfc59f383a5588e 3cb73463f9f268a7107238a88e745178 +3cbe51d46ae62e410d4006190d6eecb9 3cbf4b7e9864c9c71027e710a94f7ed9 3cc00a1d8d5e64623c6317fb7f04e76b 3cc08160f2aad5b18a20f21cadd0e293 @@ -9919,6 +10058,7 @@ 3d6cf9b986272437b6bca20b4f270a2e 3d6d78f1d08f8df8ede3f854f9812194 3d6f210d269b8ce5060e93185728d642 +3d7176a13991e0e5368cfd998e817503 3d71a80ac34dd222b9da883b75601050 3d7261fb2c427e3d9e32e4dca0d0b9c9 3d743f5a2559ca0fbbf903848c5917ed @@ -9932,6 +10072,7 @@ 3d889b3845d55e81d82db00615c65605 3d8ba124b08fbd2c9f0e69877c899819 3d8c80ff24b0098c0300a4cfa019a8ce +3d8e835cd79bcf8ee5d0fcc66bf484d9 3d90db3cc16aca1a38dc9b40239c763b 3d928db834fb65f40e5129b56eaeda13 3d942a5163846bcd223535172c9c1854 @@ -9965,7 +10106,9 @@ 3dbf3d7f80061a1ef2fac86370ab0fef 3dc1a985d2f70f9b408431702a08970e 3dc4b0b0f09e21a2e180f2f723f24981 +3dc51e4737ccd8387a7449b485e6c146 3dcf0652b7b069f70d4d4389183b0c7f +3dcfdbb6c5a4cc7b70e1282047fdd8ca 3dd1a6b49c2e552f7cb85a89b5433384 3dd2424a2e5976102f5b24e5fe6af688 3dd2f468eddd69ef0eb92f44d2258823 @@ -9994,6 +10137,7 @@ 3dfc722b002abb6dc00724c402d21fe2 3dff2e3de3471ee9c801bc52fb3daf63 3dffcdc0797113a59427397a0c475920 +3e05239dfcdc228cc4afbc96037458f4 3e05c9ce8078f4f5c122ec0f36a375cf 3e08b0ba8ddd6ea60b22fbd487966285 3e097ae2a14822d67c93f30f348abdf3 @@ -10008,9 +10152,11 @@ 3e20bd3d7b7912e232743cef08de4db9 3e21d846ae9e0811d43ba23276aa4526 3e2221fdee645ee888939f3febf62f51 +3e24258b7290b3d0be6fa58f25e14c06 3e25eba423e960b38356c5ef0d8a2b5f 3e27df11b19986aff4c15202e3eda93a 3e2d88d832d42ce23a18357593fb2f42 +3e2e1cc662a10a82263e25030d99018a 3e2fb20e0ac39928a072d9536f17062d 3e33659314c13bd6289aa655bcf97bd8 3e351f9301cd03f9342b1d5da0ec6602 @@ -10102,6 +10248,7 @@ 3eb4adbd7ec43ea13657bb358a1d21bd 3eb5def2272acd6938934a1a0f012034 3eb91827c475db3c7c828cb7879e25fc +3eb944f4eced7029a2bc0fe977c29c16 3eb9f72f7919658f7c9d0b373b68920d 3eba522599c6bbae50bdeec3b79a362b 3ebf274d825d273cffac4d8e2470da10 @@ -10168,6 +10315,7 @@ 3f1bc4775689edbeaab59502fc370f70 3f1c41e99a4d8ed4d1605762a4fa5f78 3f1ce36ba62284b8c7b613cddd808e16 +3f202a2153e4da9d3d338d86c06e6a9c 3f2232694e4610ca0a8b3db345e4cbaf 3f23739c51b34c2f38a74b259c62a7a1 3f248268280cc44586b5efbfedd27faf @@ -10199,6 +10347,7 @@ 3f4f88ef166e7fff935ab1a4fc4b0256 3f519a517d4dd41404984aede1530b29 3f5630fe203fb777be44e998086060aa +3f5afb688ef4ad0fa5eb795d44ff89ec 3f61ece9d8fb75348679b28b45d14075 3f627493d684c00fbe3cd5c6a5c7ba83 3f657e2c3e143e9891dd4c2372352f42 @@ -10223,6 +10372,7 @@ 3f8a28f89c0b623a888ce3b5e1660b27 3f8ddbac8ae9bcc9e4a706d59f3e0202 3f8ff66445d91b23e390a00411049a5a +3f902a826fe6943ebde0ca94f39bc820 3f91976cc07ddd09a1d980f5815695c0 3f9399ec65a29223e35fcc9b9db0f567 3f95c6bcd089fe41582d0ff9743e2aa3 @@ -10240,6 +10390,7 @@ 3fa7640779ca26bfe7b4a897af044921 3fa7f1637e2f8170276b1f2090db6bc3 3fa86b699e7ec763c79d82a02ea1ba01 +3fa8d6fe3070fc5ad1559a5956c78aef 3fad23a019f6ef265ee947ec49c9afa3 3fadeb1430063397a3c42c5cf37cf673 3faf2dfe35a06be45da6dac53e116627 @@ -10356,6 +10507,7 @@ 40630ce4526e3b14955668b58a60af85 406588b9d415ef40e519dd049cd8f8bb 4065ebe37de522c16d9750f9a1342b7d +40674a0b014bcbf79143143b923cfe67 40680ba655af2b241ea81bf19d61a292 40689df8257b52d5a9e4039a41f15705 4068e3a07d2f3b5741ca3f2cb9ec1915 @@ -10379,6 +10531,7 @@ 4084bd5d5a5460954b8be59dff9a5d62 4085e1b3e76ce3a4157f32ef256167e3 408715a8198d8723309e0c1febaad833 +4088abdff08c764348c175aba726a775 4088edc46187219368a685c6e3cd3103 408ba96e5c9513d593f857eb569e4a76 408ecb751457c511d9164e0cf6d968fe @@ -10504,6 +10657,7 @@ 4157f78dccb893c4b1367a30c00515f8 415a61d5995551ad063e08576b334556 415aeae2cefd9d807f0511fadad6fa39 +415b2a759d7f50f903d24c8ebbe3d601 415b2cac3c2350cedf8364316247ff2a 415b91350bd0c33a41b6b85085fdf610 415db6395ffce7cf090da088d12ebba5 @@ -10576,6 +10730,7 @@ 41c89a438e967081c81ea9c0fef03d10 41ca92a43e57cbeb7fb66a3dd09430f1 41d1548f7d83875378f29e594d2c9dae +41d81b0411beb65f9923876e008e7e75 41d8be964a661e9dfce3a6b34750c9c6 41d8e2abe2badb22d742d67e0b3fe5a6 41da222f8715217b675e557b55fde19d @@ -10604,6 +10759,7 @@ 41fe95a1058492d81dbd5707dd7fa58d 41ff67adabce48a58c2ba8427603cada 41ff99b6f567f3e703816b9213076551 +42004c2d6ced5d90336e1e4344b0290d 420080d716be98de7a4ff56445982892 42012f4002978335e513d0f42a443de0 420178aea443edb81e7d1380532980db @@ -10615,6 +10771,7 @@ 420b27dfe8c3f5d345b45be0685f4559 420c1a5f6a55730e85d80783d9b6be28 42119b9aca322b9ae7a89284c70d7656 +421237f8ed9a74769b6e3caed2c5b463 421250a14b1c77f411973dec5258baeb 4217c9fff4274bb014e950645018897b 4218699443e8ded8add4119eacc6d7de @@ -10671,6 +10828,7 @@ 42690c4e841ad4a943d7883b36446510 426adb1208975d36a28751d977ea2b07 426d93ffdfec023d56b2c4c5bf39905c +426dd67d9462bc225a815dbfb5d76812 426e870612ab785d6aa431b254c9659f 427182ea44f9cb3cdd150547fe1854bb 42730097c5978ebf08750063f827c9e3 @@ -10679,11 +10837,13 @@ 4279caaa3a404dc54bb1fa7bfff86503 427b086b9800c944f07a00c8800cc707 427b148b2f2463bad13be388792b381f +427b393f419ccc362133ad8c12cf9a93 427b51f95515253e9155ec6180b65d6c 427b73a1ef81fe621ee72feecc513512 427d327e1e6e1ef7d06c7a156eb34cc2 427deccf9621b93f78ca0d4b0b733448 427f9edaba4e205f339d40e07d9a79b9 +4280b1757e59b4722ee36212e9b15684 4281bf477930a4cbc5d9cc9e36f3f767 4282862f29dac8e31ba242b08c6c8f1c 4282d956aaadce6fbd198572dd224d04 @@ -10731,6 +10891,7 @@ 42d7be49576b793bea89309c06200ec7 42d85fa72d66a109b8259be0f158a3f3 42da062c35834d51572da4bdf67ea02f +42de0d87900d4ca68a1dc338ebbb76c9 42dfc112916137f756823999d4ad357e 42dfc7ca3fd611e43e4e2979dfbfb78d 42dfd19bd7ccfa1106815f8cd832037c @@ -10740,16 +10901,19 @@ 42e8a8cb09310e44bb87a65db4c843cb 42e9b9485f92fb723d61933e96780e6c 42ea2800f5d7b8f036fe2bfcdf8aa668 +42ea3d4cd5a4d6cba65a9d9f6ce7c591 42ea6890b142498a1f178657a198d0a4 42f5a7403cd067aed02580da454f993c 42f7ed3f3e87e6698fa1d039fbaf2053 42f98c46e8005042d6492145f71f68aa 42ff22ac9bde0f6cb6a8ded7d7e433df 4302e569aad98ec64cee7427bbe00262 +4304208184ff0d37a2c9fc4eb2342112 430598d4df2e430ef8f2a135359035b0 4309e943eceb16a92891b4bf5a144628 430a3ee0bb3de3e3ec84b7151cf0830e 430ec7bd52c54894fa4cd236df95e708 +430ef99e270ee771171ecf1a5d920165 43100351787ac3e6e9f7225191f2fdaa 4310bcefade064bd60cff63b3658ea89 431100713a32cefad743271431da04b5 @@ -10850,6 +11014,7 @@ 4394e2c9bb6e195980dd173762d10f23 4397c71ce2b06a0aaf1c7f2cfa36755d 43986c3729c70fb4a5bd2ff2c5b15b0a +4398ccca44b4473d3ae68824880ebf48 4398d64f1712a3c3e6cbcf1205e88a5a 439a2dee5e455a0a36e1a0389c6f72d1 439aa12386f51cbcca9e6e8bece7f81d @@ -10870,6 +11035,7 @@ 43b1a07f3b558a8dc2e19b65f8667f48 43b2e200d9d58469e477e21d7f2ee8be 43b3f657584b3929ab2e5268e75ecfa4 +43b49419cc992476d9bb41a6b7fe68c2 43b77fd56a1d636752083988d20aa61b 43bb7f2d7d80f7d0a7c69d642805c143 43bcd47204c77586a115001dd7e7c234 @@ -11002,6 +11168,7 @@ 4486de2e26cc1ae4c78e55009c1bda97 4487749e332a2704271401ce1898102a 448a590df0224d7219a459f6d82f5a69 +448bd1d03c973ea54781a29928430208 448d856ee8967ee18db19593b0293709 448d99687baf4baa9c2830fec339c55b 448dd48acf0a596f2d21e28f55d30792 @@ -11274,6 +11441,7 @@ 463cceadf1aba159904861a76ab82e29 463f2cc41f9af64b2063284a58d456c1 463f71eb3bede78d33df229823a570a6 +463f8961842974a8a2f16d3665ba809b 46410b528e3216b48208ced41b6bc31d 4642247029e2c840bf7bd025f49cd02c 4643e6b5b4259b2138625217fba1559e @@ -11306,6 +11474,7 @@ 467be778d1aa9f07b04c37f987134ca3 467cd7403b9095873028e4e1f9cc3fcf 467e284a00c60953e482908d3054af9b +467ea5416414baf5be563c36e4eeb9db 467fb49413b6af1b64c0ff26d99bd981 467fed971fbd81f1ef3d06602c53cea8 4680be69fc88dae9c7a4f3a997150a98 @@ -11398,6 +11567,7 @@ 471168bd252bc356c305cdb5f8d12c04 471289c92ca0be61d7d1b31a016ea13e 47143952054fab2673c922ff77f38fae +4716cc4392c9db026b44add08d4f67b0 4719c2673f2af5eb49b31f5191bacd64 4719c6897161adaf112cdcc5d21b69ac 471a0562ae4fda1174921273aec5fcf3 @@ -11439,6 +11609,7 @@ 474b2315fd9f588fb30ea2d4fff8f7c8 474b5424c7b97f3c15f40358e810042c 474f2b685fbec617b47cb5640bc3f7c9 +474f8f110b0deaa986a26d0a5c8a2128 47519bab141f62cadc9b611445b4e2fb 47561618143d3d1713f25bd61446c39f 475934b3a69412f2123343297fba5bc8 @@ -11538,6 +11709,7 @@ 47e8361eb0769f774574b496a90fb537 47eb7b7c0636e8112f70323b9677779d 47ed41e602a78b977d4ce854591b01f3 +47ee3cf062b7a53bfb6699fd8ea9018b 47ee661c7839d7292e25bf5e20ea3781 47ef215d21d736a6ab437bf705f44fca 47efb66a8ea12c13459ca08cdc9c8d18 @@ -11658,6 +11830,7 @@ 487eb10308a207eff26d12ac554398a1 48804364bc2a78913446a3aa867986f4 48826f01d7c30744cdb1d456b00f5e59 +4883a49526ef5812f2bf4669337b4f18 4884d663621a4b7834d62f4dc1343d2c 488679a6fa0873e0b00602febb2a0697 48869495f60b35bc4a5732eb56c7e9ff @@ -11800,6 +11973,7 @@ 496d35700f8063cb56ac4d45325e7e06 496d6c56a92f73eb51ecc8e611f183c9 497120926c63c98e1c6ed630c0fc30e9 +4972657561e60c8ba5835c27d9c3e8c5 497347ba9edfa435757fbd2a3fd5289c 4973d6d74c066cf9cd86fa7f3209bc5f 4973f139701d079f9da36a21e3c48e75 @@ -11826,6 +12000,7 @@ 499d30da45a6157133265ffdfe677f88 49a111500b868f433bd51e8cec5f22ee 49a2ba05cd3157416328c759dd0afaf7 +49a3d8d764540a67f1497c9f4959d974 49a5878473a8bf1682e93079cec2bfdf 49a61ba3367c62024fbe3f1fb4a3751b 49a637026843656325733746a05158c1 @@ -12020,6 +12195,7 @@ 4ad32f6ece5afe41ca579e36535363d7 4ad6caa12b50f79f5ae78770e6a34013 4ad6fe58702277ae24cbf43ced2341f7 +4ad82c5ad749291d03055ac10ae6e6e2 4ad8f41c8001987de29e6c1deff123d0 4ada6bdd950bf63b4c95603dd795b1a4 4ada8d639f42ce1ca43c6eb17802baa0 @@ -12047,6 +12223,7 @@ 4b02b2ec21ca23988eef29e9bd965b43 4b03d0572abe6987f2dace67cc614296 4b0428a085669293c636a45851f0b7dc +4b054c4c7e56ad577b37a06d99f6898c 4b05cb3ba70a649dcdbdff1cf8ffec6e 4b07a61b54eb3152a247acebfe3a0c49 4b07f29525c6e97159736888a0321426 @@ -12390,6 +12567,7 @@ 4d335bbba2204b55a764f89b7eda8398 4d33654d8030a6a78a1c803e653c4041 4d33fee503f22e3e090dd0b7d241793a +4d358c5d861d5cea6d9cecf003207ac9 4d3a2783d6b90c7e7d077882713dfcd2 4d3d0e3565262dc31af8fb1d38635b5e 4d3d456c377b3ffc016546bf1139349e @@ -12643,6 +12821,7 @@ 4ee4abca73b930a16ac9a54d72df108d 4ee65bf4eacb858f5b27e983aa118baa 4eef43301068770c8e0834fd4f34bd35 +4ef0098609c04148923c092a9a21a9f9 4ef0361ff7201f78ef77b549f64763d9 4ef3a11f4a2e992b3953423455174e18 4ef3cfd0cff92dac2c650c81799788f5 @@ -12655,6 +12834,7 @@ 4eff41bad44f90128e72a679acb469d6 4f00fa1722bd7fe24a8f80c758963bec 4f01c63f9c70d6f54791d7b3573cccd6 +4f038f19c7618d0e5babd1e943fc85e4 4f08818737e38975ae2be11843ce73f1 4f0905a181072ce3373bacb702e901c9 4f09cca8272cd41a3a4b2cd0e08b4bc0 @@ -12840,6 +13020,7 @@ 502434c24fc793b7675375bd9e73df09 502566308dd75fd8a78a755ebe9fc396 5025db48c188245e9342d52d1ef819a7 +502a00d95192c10ed53fc14bd06656ac 502ce5899b773f78e1320b794356da72 502f4c4191ecd2682c7e3920ec669651 5030ff731e085d061692a451cec29941 @@ -13081,6 +13262,7 @@ 518ce241478130b92658f9f7e046e39f 51929e1d4ce0cab82d7bfc8c58960e3e 5198608e8ece1d3581df7da6681fb36e +5198d3b8aa3412dc737a38e2e0300ac5 5199b8331b9acc95bb61f2232e981772 519d27c12e535fc9415d675c1186f2d0 519d71246bc525814cff6452203aed2a @@ -13236,6 +13418,7 @@ 528cbb6bf790c2c78589118b1f0f978d 5292cff814e057450d893b41fa3acc80 5292fd83a2357ceb84f7e01e0e0d58e2 +529421c89086648a45e907bda2127c50 5294e4422b391ff4b9bb39147addfa60 52950a83229b0487d59965a0cfbe49e9 52958f5221c3a9ec272eef5e712f28e5 @@ -13404,6 +13587,7 @@ 539815fd9d3c5a9ac0e1cfd1a0f6d340 5399ae0da26e5d33b259a9af8ac2a8a7 539b94014beb121579f09dc027ecfa06 +539bbbb2343b15d75783708c74f0d729 539c768ef75b7c2ebc6f3c11a7f9b09f 539c8846e889956bafc076b2a8210dbb 539d0c4e75d433bec35e86774631b986 @@ -13496,6 +13680,7 @@ 541202cecc30135c0ea4c37e15e302e2 5412f27cb2026eb197046a81af7c9b8d 5415154794b8518c164758c7e74260c3 +5416752505b612762aa3e8296b7c0e21 5417299457c4193733f4ea34326354a2 541a57180662e79556d5c7fa4b53aa4f 541c9f54d3b5936d9d91e7abe1fbc16d @@ -13579,8 +13764,10 @@ 548dc95f6e01c5df94c3624b11986995 548dd81a8f65d6688b130a75755df368 548e115a841a6ca9ed36feed520fbf3d +548f628d607dde19e7168f4bfd507152 5491f391c6eb7aa6593804b1f4bf2204 5491f81cfe4f317ad7c0a2745d16f138 +5494abbe1d4bbd7ee60c0f03a5c2a79f 5496bf619b8c805221bb49979ad61a51 5497979ddafe7739529db9252a3237ff 5497b487cf65f6a0fa26606081a61709 @@ -13790,6 +13977,7 @@ 55c7474b7121ff8742d918ae4302fe16 55c7be0889b68056e11d91cdcf83198e 55c7ea9b6d4030ff048d69cf23cc1cfd +55c9947d3cbcd6492c287e8c7a6a27dc 55c9dabff3632e48b8bfd36381e19375 55cacda2ac4411af56b489f519cf4162 55cb5c23de5af97ba91eca945387ed16 @@ -13954,6 +14142,7 @@ 56fa87d0daa6df7245fbda8d5d52a897 56fc1814c689896cd889908adfb1bdbb 56fd711d6425e0eb42d1b539bddbe4b2 +56ff67ff290e19dca95a30beedad502d 57018cee7a1e7553a97598101dd6fb36 5702d6a366c01956e52da0001e1181e7 570350a9a3c263965ff0d70c0c6cd959 @@ -14028,6 +14217,7 @@ 57638f4094ea077e229116b8d30d7b05 576390aa2d247d355f784d50bccc58eb 5766e023246dada57eb16697a999045c +5768f8301549de48186ecf8c1ba6a188 576a41270071453541a8d60f97580b44 576b3f266c5eabaa475ce0ff87dc564e 576c0f8f7ab2f4601075fd7b43394ae0 @@ -14307,6 +14497,7 @@ 5915ca2ab2f2261eeab431998f91fa94 59160e3c5515f1079e6166f12c43b20c 591627dd514ecb17e63270c38b678fed +5919ac357a183714389226e3f87714c6 5919ec5b0c289390aef9e4c9a629ec05 591da7e1b1ea8ed90734b022c148ea73 59236db3de374ed335555f5a3f38c277 @@ -14516,6 +14707,7 @@ 5a585184d0ad2e2e2fbfb2a597d73506 5a5a7921fdda7ac60930cd3152033611 5a5aa35ecabe9834059851b6eea53356 +5a5dd66c80fe9d008212c3ae96a48408 5a5e6f9fc23ab5dc02dbcfe2cceac6eb 5a601fac20d6ea58448be385235097a3 5a60c3e8b492721f48cd174bd7252562 @@ -14622,6 +14814,7 @@ 5b199aca405fad5fd7300cb3077de08a 5b19a1f519b4de0a68e296ed6ad492da 5b1b1ecdfbf590354a66c79d11f5fb81 +5b1b8469fce83b38321442d908360a15 5b1c325c4e17122fb97df24081f582b6 5b1cd56f716f264ca3ebca2a5d5baa12 5b22a3825a87b6d77ec848958b65300b @@ -14651,6 +14844,7 @@ 5b456cc3aea29a7723155606786e0d34 5b4a3abf5c96b7c47c4cc7da5030960c 5b4c1fc316673653d5292b024320389d +5b4d86dda010229b1c90123a11d1e209 5b4d95e4bba3ca3c544b0474ef988866 5b4fa0594651c48700277c087c7686bb 5b5128d16d942bdd349682ae3bf7f891 @@ -14660,6 +14854,7 @@ 5b56e45dc2859125f1142ccf25822dbd 5b5a42d064bfed4b89a796d5a07902dd 5b5d8d94dc5eccc4004bbdad0a7fb0de +5b5ddc01e9d5075b45b1758e4b3506f5 5b608c1b48d833c62049e0ca1a3c872e 5b623bf16c50600cb798174fce232123 5b6449f7a8529096685bbb42e4db1308 @@ -14674,6 +14869,7 @@ 5b736a7e66f433d7406d113fa0ff3fca 5b74f0528eda6c3a09392636f500a9d1 5b7726251a663246f6292bf46a509ac5 +5b788397517cc8ae116028c56334b0e4 5b79179d4cabe6f7f26a430f0ce4eb39 5b7c20c0326b2f40f43db2f2329c698b 5b7e1ac7494a53c35729afb2e6a4c760 @@ -14824,6 +15020,7 @@ 5c665ce26c7312ff5e0f36b244bf0b5a 5c67cc36c83618541a09655fce6161b4 5c67d5daf2a3ab755286dd1e5abbe4b4 +5c6ae4bb96ab4a335d372e89757fb954 5c6af21fca240d81dc5ec58c76920a1c 5c6b314e5a4a143d0638342c335826c8 5c6c8ceadb54a28d93236712248ce4c3 @@ -14980,6 +15177,7 @@ 5d4ed47446d65b3fd7a43889f0ea2aa0 5d4f846d5105ac2a8b3438d6ec5a1064 5d5130aeef7c56307e39bc857b03cc54 +5d5351b57229dfce62a9c1de79c0c5a3 5d53b511e820e0d5f5fea50b317adcf4 5d561394e18a132951ea869406be1cfd 5d56afdb89a936d42ef91853afaaf216 @@ -15003,6 +15201,7 @@ 5d7033ece5cb1475c9edd02b1a9b5dd4 5d72bce85b3c1d69201fb61eb48f2d3c 5d7350e2b131248d3a9f96563232b470 +5d7432716745e4f74de6955face4cf1a 5d780e93aec01f7449e4d561f6fda738 5d792a6938c9a02b096ced43925a806e 5d792b761ac2a800ff82bf27d3c7c1ae @@ -15382,6 +15581,7 @@ 5fc7d8d7daf7528daa52aab162f98f83 5fcd1ef456214912969717a5c5405c4d 5fce9cc4894372adaa2bc9839ec14e5b +5fd09a0a7e93517ca44577cd797a53c8 5fd0d01bbbfc2657e23599de44dc75ee 5fd3404078bd7e56d6404d97dc7d198e 5fd42ded6a96315f28b744630d231a5a @@ -15436,11 +15636,13 @@ 6019a5a64c6f6c10d490a921654f1a87 601ab5963c3b46e31749ac2f936562c4 601aca9cf3a8c76f122230e78e96857d +601ae1235e6b957cdab48538ebdf3d8f 601e4122639262902167a4c1580d5ee7 60215ae57770f9c860ca2be61e161853 6021a646b0a8e85eafbba2592f3e5e23 6021e2b02f327adf9fc652cda647e0a8 60225ca019439238ae4d181644347252 +60259c9a505e8ead4021ffbb2b32ced6 6025b2bd31cd87121bce5030c882eb13 6026122ac408cdc119cad9b68dba524d 60267068cc4faa99c6c2b6c5e40e317d @@ -15471,6 +15673,7 @@ 604d750a17b65ce48df6994c4e7cac29 604e3a624a72ad1a907d059dd22061e2 60506cb35bbbf2fdc8237b76142c308c +6051c20980c9df394027edc8b867164b 6052ffe53781f08c0b00d9cb97b10e51 605315705980d4827e0559a7f98d7095 6053a8cfe60afc208609dc0eb36ce9ef @@ -15690,6 +15893,7 @@ 61bcf810cf16047cddcf952295404539 61c0aeb0fb0a89dc651a29c5ef3a36cb 61c0d43723f3e60afa67ac1402dd2fa5 +61c4e03462bbf6b510607d9b0b30d7ee 61c980e852b847cf4a6d833f3f225bec 61cb8be00e875e3c4d9546fe3c07b1bc 61cbf006ec5baa41eaf7a9e57e0065ea @@ -16042,6 +16246,7 @@ 64057d22dcfee70c80db5d1cd38da982 6408a5d8c8f0f03da95b9296939956e8 6409c3a90c86b5f7b226609e4f652832 +6409df008cfcd62e5ce890480763b367 640b51799ae543abd2084470887e7946 640b7ab2cf5203e2d471dc141772ab20 640b9e714377d1c520cfb7c6a647cc6a @@ -16117,11 +16322,13 @@ 648a10af4f438c02d78111cf8e9daf51 648b2ee46bb4708285377a9e80542323 64919a9f509d5aa60328f48e345c4924 +6491ed1f20a8b5580d253e219ddd53d9 64921ec96379eae167a679a31fd3b4b2 64923be5845e0e6c85ad88342ac0b0a8 6492d8782ad051303abf9ecf2e843ca5 6495242248bd9bdeb80d7dc2c71b18a6 64963a1cb628f25a03ac236be75451f5 +6499893028cd44330c485a2d623e99ba 64a175569138d5f9917b00c6038f5830 64a1f0fb647f33c7cf8766866d2d6e92 64a21505f542387a0109750960491e3f @@ -16172,6 +16379,7 @@ 64f32da51f90e4b76d07738d9f3e55a1 64f6f9d95f9b393e7b3515811b4af6bc 64f822ba16d96333a5fc0abf38512875 +64f89ed4f1e9a816d96922a6ceb91ed5 64fa6bab1d3adc6e6da2a8838b375307 64fa9705828957b00474ea302cffa1c6 64fc1d10a0c4329a447fe6891df01036 @@ -16223,6 +16431,7 @@ 653f59359044ade07b8f4eef68072bae 65418854a8405563efb86c319d6a882c 654333304fd21392c50cdd3db491eaad +65435cd1ff4cece79343a387102906ef 65443060c5673d29e69f93244190ab30 65448a50c4bd088e94e7b5e0b9f3fcd5 6545369115b6b43db81d64bf13e2fb31 @@ -16291,6 +16500,7 @@ 659a02708f93747775eb8081712827ee 65a22cfaa9671838ea834f4b7b87fa0e 65a3bc93ae7f76fbe9e467ccfb7b9967 +65a7bf40d8ab296f8d14d34483b59692 65a81c190f37f9dce7a4c202c048135d 65ab86a9c5e574674b600a24bb4371db 65b0c97d86bddc122310d67dbed8e8e8 @@ -16319,6 +16529,7 @@ 65d3fddc1bfb6fde2df5221e9770723e 65d77eb10a5368e84eb9e300bd0ba843 65da8b209d5fa2b20430caf2ceaa6c89 +65dac60345118f500e4a880b8dbce01e 65dcae27b029e3e86bccf29ff4259a4a 65dce4f82f2cf4a245c14bb43b81c766 65dd4a115c0d149821b7b196e1755467 @@ -16386,6 +16597,7 @@ 66410e18c1f61ea117032ac5d6430a3e 66419251c8c14e125a98d48d1d749c88 66445085bb882049c1c214ed795ea95b +66445744742d9befd7852b2d55eb0924 664870f8fe39698b95a600647f47bbdb 6648a9d6f021b71a916d7cfb25885fd0 6648c9a998089115e56ec9fb512b27b1 @@ -16538,6 +16750,7 @@ 672d69e357cf4bd441a34f83885a03e9 672f0dfa26aefbea0f45f5824c983582 672f58c4378e5275207a3c1d7b10f4c5 +67383555953decb14c44fe31f5781cb5 673879a71424e123b03cd3fde0cf882a 6739a037f422b960dc0f108eb9851a54 673aa975774fc3424e2ab54c5abbbe98 @@ -16551,6 +16764,7 @@ 67433a384ecf8e9a27b95bbfe3c8938c 67458b3a4be4015ef885308f7440bc36 6745eeb71a3f6fe8b6e72f609373b085 +67486bbe0351091240031f0bd4e95de7 674b10858b1de0dc3412bf8080c5501d 674c728795e9f9b85f69238754873548 674ebbce748857abbf63ac872dfdd7e9 @@ -16940,6 +17154,7 @@ 697bed2530426b13e85a123c6e12aea5 697d2715cc2c6f21d16efd4ca0c888a5 697dac063e6746251cc825f5b135aa5a +697e877eba4b436ceea19307e32eceea 697e92306d928605689f4c87dd70fd0d 6980729715ec405ff7acb6d2f8fd0fde 6980d12b76651a883941226db8b3ac83 @@ -16975,6 +17190,7 @@ 69b16900d625df740ddd1cc07206270c 69b2167ac817d4ad66df801461cd29d6 69b308e06f01ec00f96848201ee47a49 +69b34907afcdffa8c8f8846203fecc2d 69b5817c34c105350f11e5acb1988504 69b58bf0432f30bd75ef39a0dab6e42d 69b7574c7308eb5f9d52a88fa033f59a @@ -16986,6 +17202,7 @@ 69c51bc01f8c7f00a5e25fe8fbc3de9c 69c661d6bd5525ac12aa24c14e9fa4c9 69c6cbb1a695eb6edb825297253823f2 +69c9b1e7f9e46f8482a99bd64404d92c 69cced6176f4c0bdd0dff82cfa2a45cb 69cec365001a772a42398da78558fe97 69d02b66840e3041541621e8e8743220 @@ -17073,6 +17290,7 @@ 6a561ac2ad921e2ece5a23fc9c397a73 6a599cc758b1ce2d3364eb08f5179d18 6a5a584543538e106cc8a3bcc3e15c90 +6a5bca54024c69bddd2d8de7ec1a6b9e 6a5f506a840062356e91321590938bfa 6a6007bbd01abc7099dec485ec3198b0 6a616e4fbc57b64d8538611a0bf0a423 @@ -17091,6 +17309,7 @@ 6a720a5dbadb7ab5d54e7706e94dcdd3 6a728470bff8d247227c1acb9819899a 6a729754ca39ad13d024a74151a36c21 +6a730b67f880352eaba936c18709b264 6a772e3376c4fad7280a1e0b2b7768e5 6a776ef35c9d0d73e82e044305618f01 6a779b54e4a2b94e18f27b82fb56a47f @@ -17130,6 +17349,7 @@ 6aac5287414fb5dcae7bb641ce209812 6aad0e657be73eac2405c79541b4ae14 6aaeff05420e4e8e8a5504b154dbfd38 +6aaf256d7987d6973dc8af510d2a8849 6ab230713713f5b6f626e022176f67f0 6ab2b27d92d85913a93d6231e685bf9b 6ab5265d2d5764a635386b9a339bc6ca @@ -17172,6 +17392,7 @@ 6ae295a525b638f1bea4c1a066df9e1e 6ae2fdf0dbd58a2494ff2bc2ded669a4 6ae375f8d69408a4595d83b5c3a76328 +6ae3d31528fb35c0eab707c5e45984bd 6ae525df67765596679b3c04f294d797 6ae5b551b84db72ad7b05c1a6b1505a2 6ae7b53bdd65e6a808034c90d7c5da12 @@ -17251,6 +17472,7 @@ 6b451bf110a6660eaf1c73a805e2e7d8 6b47e1423664cb28818ea9cdceb7810c 6b4882a588c507a29caca82399703157 +6b4b96bb01e11ba294ddb4df24bbe49d 6b4ee50d71a7abe12d24e7cc1505e36b 6b4fb2123a8492e8da2fb9826bbcb321 6b4fde6524bad6d17870d1222e5c6d2e @@ -17265,6 +17487,7 @@ 6b5e4e71a262b32ff1f51a5f625c730d 6b5f20fd0a29983eb22a015c5a6bb40d 6b6099e67bd62c83ac0aef8231fd96ed +6b61c7c2095fb498108b708a97046a69 6b62964c912900ad636a9dd4367d5d6c 6b65422611ad9dbdcb9a861ca218c101 6b659872273eabc4c0c792ebb6e16aaa @@ -17272,6 +17495,7 @@ 6b691d3ac26d3266b6cc09c032bb1b5a 6b69a3ad07e9e36f1d6e716402d37619 6b6b0a68069694807404e0e4027107c4 +6b6b45d5ca766e1f2529938584341b68 6b6bdf866f03d3579cd0eb4832d38eb8 6b6ccf705cf8399e2344582b8c382d8c 6b6dfecd2efb14f89075f575525c90ee @@ -17372,6 +17596,7 @@ 6bfb018634af18d532e8b250fcfeb7fe 6bfc32d585bd3605a596948db76828ab 6bff3b393f74fa5510b4ffa6c86e538f +6bff89495f72f65e203ccadf13db60a9 6c02e097e43014743c7c061ca8eff66f 6c0707915f7720465e8a9185fe467335 6c09595a9eccfecae5b94267786a5417 @@ -17491,6 +17716,7 @@ 6cac569aa9087b323305941fc9948fb1 6cb2be7db178d319c789bf0c06c64d95 6cb2e753221beca7923e80286f7f30df +6cb384358f4188da18c0ca3181a940c5 6cb387369eaddd9cffc8e820d439b64d 6cb4282759fecfef7304151333fb047e 6cb534d3bfb30b818e4d3de49f7ab6a0 @@ -18113,6 +18339,8 @@ 706e7706297136f3a2ce7e59da46f12e 706f123483e0d4c955c7c4728fe91f4a 7074fefcab11a4f866ade0cb44ce654d +7075e9f2b074f0ed060442b21f46ac0b +70763d4c4776f0ac078b148478a75a5c 7076ee89ba91b4b6ad08e301bc429c94 70783d44ba7f85c37a0aa6c3f720dccb 707a564e441ad55a73b17c76ef96baf5 @@ -18160,6 +18388,8 @@ 70c3d929481e6b698e400db8fa88094f 70c45582be39557091c70f9758db4e5f 70c89d91442438c59ef3823abe329147 +70ca7b56b09d65fb6d81c41eea41e5d8 +70cc5f15ddca5b405fa4d3bdba4d5a3f 70cd29515981fe937289f7efd2b4a172 70d0005e5134d6b0c82dbca58c95cb4b 70d0e948d6063933ea9517ebfe9474d3 @@ -18191,6 +18421,7 @@ 7103daf5b2d40982b2a189061264199d 7106355da395eae03bced30e04743b05 71067f9b27c084fe0514fec1c56ec6e7 +7107825c66bd17f97588b7635c03c3f4 710789a733cc583d8f8f73634200ca32 7108c7fae767d5ad0f6269231c752fe9 71091a4bfe23b654e868c140eabcfd9a @@ -18226,6 +18457,7 @@ 71370104228e230bbb79ec0301e8864b 713a0fe29d6fdaf0bcf81c4280ed3105 713b910867da3dcf1a0b66d754a73ee7 +713cbef0a832508becba3ecfbcc49aff 713cce9995b7d190d4c7e125ddfe3caf 71405806883696185ad3836a22733401 7142aca64b0b9b4b10e4984738b2e033 @@ -18251,6 +18483,7 @@ 71587fb4377b11fae5bf26043b65c178 715bb946f173eeaa8c532bcbc5d7edbb 715c29bb042236779c4157f639238ad1 +715ccff2e39be9030037b43e1339941a 715e3ef03756da86e787a3e7308cdc2d 716281269e0da0f18f9edf0d5a2e3374 7163263a4029716802c92db73e0c818a @@ -18275,12 +18508,14 @@ 718a33d6e6e796f47bbe6660b1500a82 718ac8be1b433af8e23e4ca16d38acbe 718bff590fde981930171ac631731d3c +718de02e790832d03374b891b733a2c2 7193b4c990cd0a595faec7180a77d49f 7193f1da396ca5b7aee3316fc6c486d8 71947e5d7fa5260f65c492d0837cae85 719672190e36afa4bad4c97460739e91 71967258f7a7ee27a2a91ef64866978c 71967c1a71eccbd6a031246f8017c446 +71992fe0cd8f0087a9c1c184b8822bf3 719994dc97104cc0b0031df2413b1cf2 719a28aacdb723ab65e8db051c14d2eb 719ada081ac1ff534728bbb5a8e78667 @@ -18307,6 +18542,7 @@ 71c31dc0510712d724ac329468808a34 71c344c9e84c1656c45f0c9a8a4210ad 71c3cd468497cbcc5bbd7b2f4ece08c8 +71c460bdded249b707e34b46c874744a 71c4b4399c336d7b19771ae8c4d8281e 71c55c9e89b4ec0ebe3205077d3787d9 71cb3990043fa3dd0757055c93506a1c @@ -18324,6 +18560,7 @@ 71de8e555110e0587f17c9c719844537 71e2671ba294d2a65013b5ca722b4037 71e4961348c79a9366c54809179e247f +71e55785dc8eaaf97b09181a24c761cf 71e5636bd122d8835258e7c0857deab1 71e80d9419604921e2a54c135394ba93 71e834f3cd728e08d485facee8ce2b9f @@ -18441,6 +18678,7 @@ 72884502e9eff6d152a0788e16682f9e 72889985a026fb645e69349d97d5db64 728a3fd9db22343b7485ecd3c54d462c +728a53f1e50b2a106c4d87c6f604d3fe 728d121d46317813731fc8d9f46ff04b 728d61ae83c959b5a256786cfe60955f 728e919fcc4928423e254ebb9799f715 @@ -18523,6 +18761,7 @@ 72fbccd3e29566d8ccb6575cb07e1218 72fc2ed8d93a4c2c7a4d44a1013bcb42 72fd3f3583980b486fce629ea29b9414 +72fdd303cb9cb9070fe166148abbab58 72fde4bc6d2f763f39f5786010cee1e4 72fe6b2e7d57f64f5ffb58b6fe4d810a 730260d1111c4ff0636b52871f80adc9 @@ -18560,12 +18799,14 @@ 73297aee9a97d5451cd813198d82e60d 7329b8e65ea2b79d39d2c7d602e076f6 732a368b9725ea1bed24b67eb50a78b3 +732e53ff6f07ac41bf9506b138cc8d80 733303873d999fc63a7f88a18642e843 73339d3157923c9254a95f0f01ae93ff 733574a7e34e270a62ee71cdf5f8ec7f 7337358bc749e9af1c2b97bcd36a650c 7337986ee2f10152d0c50bfbab263812 7339a94ba90e96b6535aa16c1660148a +733a9aaebdf35e2674342ebad9405ffd 733b387bec27066d35c6a6326b476ae2 733c6c513e30efa027d2bad32ce020ae 733d793672b6cc061da0ef3f41e38c91 @@ -18661,6 +18902,7 @@ 73d848d7b159fef2d942ea65a281c458 73da10f665f3df7fe2ad128256ad4ce2 73daca773cf9296cb48da9056bc096fc +73daf385c393b7227333e033d6c6f9bb 73dc5f64d89b534ebdbb00b54212144d 73e06d3d4207106c3fc881b1c834122b 73e07b17a824af5a8044248fcfdb271a @@ -18672,6 +18914,7 @@ 73e699eef5feb47eedc89cccfaf123f9 73e78cfb10d083570ad09fa4ac26f9f9 73e938883332ac2325e469fd98f8247c +73ea9d9079078f01d371ba53b3422037 73ee76325e7e66dbc823d4320684d0e7 73f291fd51808850236d7c96392947e2 73f58a6462a419671da12dfa325166f0 @@ -18699,6 +18942,7 @@ 741a47772bf7611455dbdc98a0140353 741a6672f381dae9dd4f7c09f5a65e26 741e1421ba954713faa545e5fcfec20d +741f306e2e43abbcb88b15b7b40ccbc7 741f9b354d841deac93fa561d618c66b 7420fdb8a3b38a197cad1f09a8ef64f8 74219b088ec2890a32eefd5175b1ae0a @@ -18823,6 +19067,7 @@ 74bd11a300e926f034a878229f4b0f85 74c0b6ee99a05e8b058299bf57db5007 74c2b954b3f25c81d828570e230ae80b +74c362e55ba8cc0ecf1e3bd279449856 74c47a290838619b006f8523989de5c2 74c512ccdfe4e7712169fa55bcafbe4f 74c8c88193ad4ce575e15926599074a5 @@ -18893,6 +19138,7 @@ 7530d73a182730e5ab7ea73fccbf9f26 7531b84d1ad4201c9d7167c6bc2f6944 75328cd04be0b83f68c1609d134206a8 +75363fdb229b130cdcf2df8578d3e2ca 75381c4912eef1520c8cee95720abdc5 7539d713ec5da31126c642daaa56d336 7539dd3fd7f256fd9d902fd12d29913c @@ -18982,6 +19228,7 @@ 75ce3e7420b0a03838ae58527a92bcfc 75d03066c0d25b470ee4168d2dc2f049 75d09f07ecc8f8992b9948eefb2dc816 +75d12d0faa2077a6f8b83ca233bb43b6 75d2de5347813c3229faa49baee5177f 75d302a9c5f27c152793c7b32171124c 75d423fb8bd089fa2c71627bed54c6aa @@ -19054,6 +19301,7 @@ 763696ee1beaa32cd87d51434cbedb14 7636f4b27cd5a92d8970a4025b10dbaf 76375adda45189f80e6b5e1fde16df07 +763cb7a89a2870b04d58e455d49e81f9 763cc1efd676e4727c1cd6bb873c85e7 763f0b88373bc9988e5718d3095520e2 76403d1a0f70294889aa021e57796d6c @@ -19189,6 +19437,7 @@ 76f7a40a844bc6519cd8fdf2c973faa7 76fa2bec9fd78d662745f43d9d496c12 76fc9e0cf3b759840d228ec3bf9c2fa1 +770008e225edbc68ed5e6b90161b8206 7702e941dfb4f1871b588fe42df75d03 77048b64bba1d80dbfaaa9546e5dc024 7707580826abc9ad8434f375d3c64216 @@ -19312,6 +19561,7 @@ 77b128e5cd17b363a7991db22b26d673 77b282f4f463b429573f132fb623b1a9 77b4141bb2889a7a3950d5dbd344a4cb +77b70744739606fa3f56b94b2dd0358d 77b73ba2de05aefb1918535456e4d4b2 77b79feaa65922a75907458ec250596c 77b8ec2e8d9b12badabe44082c16cd63 @@ -19352,6 +19602,7 @@ 77f9117884bc643ac5f726ae7f65b66b 77fb36af8949a4cdf9d54b5ddcb52d3a 77fd48e51845b0ddebe54c3212431a0c +77ff7a0a4adbdb0dd75a487c6ac6c2f3 7800ad2d7f8650131f4da8ce00b55d59 7804029bbbaa57d94111034707ba5307 780686d826c1075fc5420e4e9174c41e @@ -19533,6 +19784,7 @@ 79229e1ea7cf5fac2044c16dd23d9f68 7926f3032e5259900f0c54c9f08ecb81 792af3274226bf6af644444b0e32e5a5 +792b8b52836fe41dcd5a6ece7ef429bb 792cdf2009d91529e363ca13b195ac22 792dd46c1bd8242a732466d08d001cf3 7932881255e53f2d97fadf8a679bc436 @@ -19685,6 +19937,7 @@ 7a374d4b641d7af071d2bbc4b87e8959 7a393a97efbd32cb13707a9b32cbcb3d 7a3c63b2590c3e48ebc51e4034482811 +7a3c814ba7a62a054a1f69c6e1fa1af4 7a4039905317c4b5eac43abf2a96b865 7a40f9a40ce14e855dd10a0646bb7c48 7a417f4b4479b74224536ef2ad449c57 @@ -19718,6 +19971,7 @@ 7a6f245ed7ee9dac5bdb129d363a7a55 7a702c4e220a31e64aa8065bb389723f 7a7159870247e5be5333e77cd666b975 +7a72f0130cb8ff156a044495b4daecfe 7a777856ec85c0a15186c3d31255898e 7a789e557f5ceaf8167613bfff37c4df 7a7a47d758d0b4da03add59870ef704b @@ -19746,6 +20000,7 @@ 7aa45d9d7c325b8dc1545762eadc1074 7aa491075903c739890aa9a3f35b4901 7aa5e8dc8b711bf86b28a35efc762682 +7aa609868f1b3f86f7f4106981e56aa3 7aa69a0c0e83c859e7e799acc26a545c 7aa6a820754ae75a15b6750cd57e778a 7aaa7ac4402f386470b6c6bf8f90c317 @@ -19983,6 +20238,7 @@ 7c162f118f7bebd9f37775b9e874c2d8 7c16975b5d6b28c8a70f8d854cc60eb9 7c17672247edb81d0e6f731f2ab3ce9d +7c18c2d62af14a83dc48b0b616f7b358 7c1941e81ad537a48daedb3db77e618b 7c1df5d17999e4b19f4ac6b32ed2099b 7c2004ecac7364540b93297722915718 @@ -20017,6 +20273,7 @@ 7c4372d584e3bfc246b43cad51cd29fa 7c43a6d5cca930aca1af6d1842125a84 7c45987d97f99d3633b24e9f59f35d80 +7c46614655d334442c059c6adc58f207 7c48f4f8978ec673bea842b1a3c56558 7c491a1645f2a8910b53d913aefea584 7c4a5731feba02330908533aae225150 @@ -20051,6 +20308,7 @@ 7c7269304c678f4f227967ea84444dc5 7c78890671dd4da0991df72559b12e7f 7c7993be0133f00e3a301f26d5420221 +7c7a2bdb8fba36b3141fac917c2cba1d 7c7a646d157a273024d6c3e857ab9737 7c7b38b7f361ef51683a941e3ac74d2d 7c7d001878667bd79f8f81ff4588db90 @@ -20089,6 +20347,7 @@ 7cb11dcf8c68d1d4f7a0c270363980a6 7cb1b157b3f921ee4e40aac57a9102da 7cb1ccbec864b1d7e96a9a6a32a9a3f0 +7cb2e926e5eacfae6c951581c1531449 7cb2eec90180c45b6fb351dfbc83647a 7cb3d3c76ac3e2d18a8ac98555888280 7cb50fd5a29bd72888ffa4711bdb5ad8 @@ -20345,6 +20604,7 @@ 7e30a4226f50fff94d46493f9badc7a5 7e31ac4b297c683aa34a9b301cd2a122 7e3424db033dc21ecbacc3f6c93492a9 +7e34dc9eac4a356e41126ac8c5862b3b 7e38c6b9f94ce07e046d86d6d791e7be 7e3931f469e1f00c95fe6695a68f5e36 7e3bf585aba59232f3a7d07e52b44db4 @@ -20359,6 +20619,7 @@ 7e4f6a83cfd1a19a16c938f4fb070f0f 7e511345dd2cdd7737089f4bf7bcbcb0 7e51167ef85489c34300af1b9dc774d8 +7e518b25cdea39f1a8d0df26e6d73647 7e51a3795c729acf22dc2434f8b264bf 7e52165d224ec23664c14fff17b52ce6 7e5234deb735a9009241e091f7f1571f @@ -20530,6 +20791,7 @@ 7f81eef17209946ae0df3b74cf332845 7f8218553f849cd85cf52d6ce154d04a 7f82f4e1ec775aa3b75fa8a962ad0e1d +7f83593460fadfbe756650a406f180b5 7f8362e97f76751c6f22447039f9261a 7f84f74ba24fe7461bc2e1d4fe5d1bd1 7f852535345209ec5a5d81a1253273e4 @@ -20581,6 +20843,7 @@ 7fcde5cf549ec77e0fb9f89217653407 7fce356d4a46d6fb61c7c55a9a377128 7fd2f0033ac73c141a52dd691b9b181b +7fd65a2bbb62f2dd702be446a0edde78 7fd779e9b060bc25a2da88bc57d464eb 7fd7bc693e5776f8969ba342b769e66f 7fde123967cf7e708bd2cb2a4e5cbbb7 @@ -20977,6 +21240,7 @@ 821e390dda0334cbf8cf72ba536169fa 821fd8d6191b1a5f0f691770a3591c59 822028fa0ff1c28025be8920f6dd1114 +8220b825fa8ea35434f100faa67f0fcd 8220c8e4fffe301a6f69979673d028e1 8223ae8719db9541c9fb8e77fe891d0a 82242198b54b6e05c31b6bc28853ee4f @@ -20992,6 +21256,7 @@ 8236828d7d3d21548c24fad840faa95e 82394e25698923e470f693d91a2b4e68 8239be7fca06f114db5933865a19cb2e +8239fd26826f767ea216986dc6f07274 823cd46dd8edfc8dc59f85f4203361ce 823d23084cbcf9917974c300e04b3e90 823dc60e4ff6a49ab34447419ff6154e @@ -21000,6 +21265,7 @@ 823f432748dbf55ec9e9ada5902399f7 82407c90e3e7c687febcda9b5ebba354 8240973dba3a3527a130e85a7b3e6c11 +82413954ceabce46051a9cdcb7cfd0c4 824309b5aabf2e700aa90a2f19c47b49 82433009ad6834d496d6f97079446581 824598e9030549b21d3b41ed562bddb9 @@ -21015,6 +21281,7 @@ 82525ea0fe904aba5187faa8b2ea8ef2 8254b33949af91e3dc6f145ed986557c 825697728f369896e1aa7ca1efbd89f6 +825717f9e525975d3fbb95da6e982552 8258d5fe75ba1ffac384ea5d7413a12e 825a8fc95a9d23df8fa5672c15a35736 825a9873c7e2d64127ab49b4364ff631 @@ -21186,6 +21453,7 @@ 835c15bf589717b71ba931708d8961df 835c969e9db26fec3bc7c3182c3dacfe 835e6e7e731654c9e25ed7615873f409 +83609b47f041e014707e693c0c5b8d8b 8361a8c46343fa1679ead68e3dabd47e 8363c700818c4c62444878bfba7398c3 8364282325357829132979022f36122d @@ -21316,6 +21584,7 @@ 84212a4fd15c8bb9ac0cf7f96b152f24 842212dda111e8ab434d167e60d7e9ad 8424d98a44dbea364f7fbf259e3f8e07 +8426452629e10ea857cea509bf10c500 84298c2ee702a08c10c18f5e523bbcfb 842a6e586447d28dd15edad7d8c2c08f 842bd654c1a9de1ae231bf18427728a7 @@ -21442,6 +21711,7 @@ 84c32bc66091a4edc2b43f24a4336e04 84c39ad8328696667b33c34f593b91de 84c41db25a63a4eafaef5580582f0f58 +84c478e8678e5235fd326e974a2a112a 84c8675675c7c8f01bbb6ca8ce79a6ae 84c9b2ed823fa43b4f3dd27adfe1a245 84c9c3db92022d1ac8483e18cd1e94c9 @@ -21456,6 +21726,7 @@ 84db31fa3cf7f9f9d20b8065b78b6ddd 84db454c16b6be04f510aba02b2e5979 84df9f2ee0974ea9b4aa40a505d7e30d +84e0eb58659e98bf797211c4f90490cd 84e13209fd1dba70bf850d71f39527ca 84e17fd1dae37e55a55cfe9da72f6aba 84e1d9916a3ccbf211bc7abab20b67d0 @@ -21661,6 +21932,7 @@ 86252b6681ea00a34667394a77f6085d 862648da0361d95842d76840f9ce165b 862c40b847c5008295d8390a3ba289f3 +862d3166bf7ff99484e70a1e0c5a4175 862dce45ae172ffd198b0eaa9fd5c29f 862e153366ffb4d0e647de0f7a707385 862f2b131e4e41ffd3a98e2f867cdfdd @@ -21717,6 +21989,7 @@ 867a18e9b1ebfac89d8a10f6c9e07c5f 867b3c330a68771e0b67e773a951a3d2 867f306951ff19a13bd67ffee26f692a +867f84d176697965174fec5f9856277f 8680098ebeb5cbd266540b8a40cf97ef 86819792d99bcfaaf03bd48e1ad880bf 8682824ae85e11498804fc2886916f2c @@ -21768,6 +22041,7 @@ 86ddcbd1f825dc93a1ea2f81acb49aa5 86dec86c4c9d67b2ffca5940d8f77c10 86e06a8a67756a2b359a196e14960ce6 +86e244c2ecff1e59c80126af66222f0f 86e2d3d4d65bd537204015daf60b6758 86e4b0875e245bf2f6cacecd5c567e9f 86e5f598a97a1db6198cbb3c8739a079 @@ -21795,6 +22069,7 @@ 870ea7bf6b629ca146a89e900e36602a 871001dceb90f54f36a2df7f5e02789e 871047acf4aa7e822ed180084b77f5ac +8710cd7bd5c8c49872bdbf71f8a78a13 871109cc0fd245c1e7de12227cb5373c 8712b5627d8aba44df8d3c03e73dfa82 87135d1762f2e5fc25c3579f01e40b52 @@ -21843,6 +22118,7 @@ 87502b4e89d37d3378d92a11de07bbea 87533d2d95289c693ad1e746a7889b62 8754016d9f648559f8d568d3ecfbce7d +87545768b32344750d05ee44b2937be0 8754fd5cf560688a97ac97f0a83d29c3 8755b9474d5be14f215935fa9f3e2d38 8756da7bcc2fe31b517438f704ecae24 @@ -22098,6 +22374,7 @@ 88d21717c90550dc59b8b54ced89d306 88d2d2c13b8e4d5119c1561ff29b9af6 88d3275b87d0fd69e2a5fe3140117bf2 +88d39a8f3bbbf31308c8451cf2e2027f 88d682cb9151669c35b401bcca7e0657 88d6ec4ec9ffb8994d7b28a46981e356 88d801e96ff835455706dc36c15691b0 @@ -22122,6 +22399,7 @@ 88f4316a8a5b2194b4bee7eddf55ac40 88f57746dd44e77839dabed0a9c062e8 88f6c61382788ed3d443fdfd7cd7ef06 +88f6cbf94f89bedd38202dcd73651796 88f719d04b1420062696dce08314ad9c 88f8ca41a9b1bd54b76c8d43aba74bc1 88fa1dfbd99a529fee01c4edb983a6f6 @@ -22181,6 +22459,7 @@ 8964d9f18fd72bde93424a8dc4eba4ec 8964ddf884684e98bc78cc8315511aa9 89667ce2925f44e9e116ca2705d40f91 +89694a04850cb50b2c2fc80b256b48da 896a3d0b02c480020da78a7aee6c6449 896b1f65beb853744594b1754c04b419 896c3bd7fd5f7c7bcf4023961ac1fcf6 @@ -22257,6 +22536,7 @@ 89d8c9d2a04e74ec62b6553a76ffd928 89dbc7f8034e88ad214974c3967aa94e 89dc4b97022da933be3206272c7f8282 +89de9d4d66ae965b2eb822f87e4d6dc7 89dedb7d856e17dd3a441c6aeea44f5d 89dede81489b93ca757759b6bcc1b20e 89dfdb168844eafe40b159a7650715d8 @@ -22402,10 +22682,13 @@ 8aafd877a69ffc7b7e40a1cf842ebc92 8ab348257499ad528ddedc29e85a26f1 8ab39ed8ca656aabcc6d2a9828a35687 +8ab40ec0f4061394e26162877790ed3b 8ab5cf434446562ce8b783735a2c8b1b 8abb1dac3f140fd42fabdd08d90eb316 +8abb4f250a3d430d0360e2ed6a731962 8abc27e646f861e92de4ce091bea14d1 8abc41f93e9e741f11feffd5f8c31392 +8abd81c6887d3240f8b5952b5ef39d64 8abdffc2469c1b5df727e361321c3145 8abe3034d2b8465751ce05a09c850329 8abeccd55f2f13d6125e7284fd5950aa @@ -22672,6 +22955,7 @@ 8c2c7869c93683547ad52900a79314e9 8c2cf5de6509ece10ff6ce6083aad3ce 8c2dfa7d855f61618ebc4e3e4d61333b +8c31e012f48a06fa41175611283425cd 8c330d65a41afbb1c036ed60979cd569 8c333a295d3bc3c478008c0614cd3cf8 8c3381b8072dd42d10266c5c03defb7e @@ -22748,6 +23032,7 @@ 8c82a84fe17e48dc021fae28b6c21cb9 8c83857d9d9bc8e261230d0df73f80e1 8c854c82114bab13acb661e170e81e0a +8c86ddccd9d1e3dbbe402a84aaefa6f8 8c8878f66fb7e9f14d428a24ab34e3ee 8c88ef79aadc02bbfff01878da93f707 8c8ac0302f307a33d7ab2fdcc3296e5a @@ -22772,6 +23057,7 @@ 8ca7cb5a07947ac6e3eafa6d72c1b5f7 8ca89bc7764741dcbcd25eaea9be770e 8ca952ff5b5a9fad2bfe5f23f6e2fca1 +8ca9e0319f34dc40169f19279914191f 8cac17409cf2057dc5b97f2969a9e24a 8caf6f3389e6b6e1267e45cedc1dece4 8cb19aee4fab4efb8ac5ae39a524af14 @@ -22917,6 +23203,7 @@ 8d997485cf0ebefc07fb189ce4ba45b3 8d9987b6f23239dfeb7309cb218ebd30 8d9a98eb822e8b6b4823f204c1bc307e +8d9cbe2f065d28aed067d912e371f30e 8d9ebd462843d3015564d0180e99cd6c 8d9fa943ee0231683fc6083e6174e3fa 8da2334ba18395c5cfa903017ab23da9 @@ -23200,6 +23487,8 @@ 8f692d6104c545e71a72c0d61b8974e4 8f6a964960ad210f667f62cd44799290 8f6ebe197eb37fa89541c68afeacd98d +8f6f6c017de9ac1e4221f50ee35b1090 +8f6ffde695866009562ee6b990e68118 8f7062ea46af432f1dcf9541b44eaf37 8f72e22519cc4efb0802312a07b5457e 8f73be370f5f8aeceecb789f0e311272 @@ -23363,6 +23652,7 @@ 9086e83343e2d48b9f6f25d30435588a 9087f86e4d69bb858d975ab64ba6738f 908b142c3a4acbf8fb2eb96fa757449f +908bca9019a8bf246a3a9f80329df337 908d1dc099b0ae506ca8465afc0afa36 908d52a24a4c95926eafea098d6fb559 908e540f166c26a4aa58565a1eb69be1 @@ -23456,8 +23746,10 @@ 9125d42654352d885610dd272042bb5a 91267b57c710717409f85acfbbb4de8e 9127f03e80d7cec9f679fc14fc48096d +9128b556983c14d88ea9db297b95624b 9129a676aa7287d6bd3ccde996b1f6c3 912c542316beb3930c0e7dd7f0a59707 +912ce2e8c5c3c4ffc7032e1f6567117a 9130edd845da5380177c0d25a57ab9d4 913204ccc2dc16bc190f34401d9a14c0 9133d4a1c60137a2a29f2aaa8bd47224 @@ -23471,6 +23763,7 @@ 9142bbecf78f1a2f3db3aed481421898 9143b729c61e60fc04cbf4c9ed53cb7b 9145358788431bd0f936ce4055f60c73 +91467d49d68f1a9d42af40078d78c20b 914db87790fff93c94ebb04bb3e47e2b 915075c92bc2a233005bfb9420cbcd37 9151a070f145426567fa177eb9ab73c4 @@ -23749,6 +24042,7 @@ 92f24cc40d3fa0fbf02ddab3a95c0616 92f2968ab3321be298fa70890e907e27 92f4821c240ca16402e68be3a53bee35 +92f5a7d56441e7ca33cf202ebc55ecb0 92fc4eb821b9ab5457b2afa12d8b84a5 930059530f1083df6a4f11fdd6f0bc72 930208fbf61436fbd13d9d34bad85c6a @@ -23918,6 +24212,7 @@ 941c93a948f9df38d243692798d463f3 941d731b6abb4ed89bcc4ffdea9cc80f 941d95af16a53f937f4ffe315859f7e8 +941fdd202cfeba445c1920bb8ff51203 9420a0d727ff9bc789973b819e683be8 942289a395f27b23f9aba7d37d6e5f0a 9422fe83700184d381c3c709c24ff2b8 @@ -24103,6 +24398,7 @@ 954d8cfd25cb582a64203011366dd400 954db79b53ae702d399aa45989cd592e 954e18b1f12e9dd367956b90aadb6664 +95526ca1f38bd70397d7b87d1d434374 9554252f89f2f1a9b3cca959cb2699f7 9554b89a01d708dcecc02c12df5d3541 9555ce59346b9a7db2218c530351791c @@ -24118,6 +24414,7 @@ 956c9edff44c64c05be091a60715641a 956ddd5ff6ed6a6737f786d668001cb6 956fccd7bd72b73f2e8e4b3af064e39a +957095d77f1a4c3e143e1e4e9de43697 95722aa8192e1fd0a756ea29e8e2dcc7 95726306daad5705522ff2da89a2d5d6 95742745a536962dc887b4efc6865ceb @@ -24140,6 +24437,7 @@ 958382da680f3cf477a8ea6f05517164 95846786df57b7367cf328c03c6e8d7f 9584d88b6a7351c209474463b22c67fd +9585e97ea840002561ff3d6ee87745a2 9589bd9eba941a456a3a59cafcd3b352 958b65a0d3513ed7e08bc01a142cc40c 958db69ac6e2b0d532f557bd6d7e57a5 @@ -24285,6 +24583,7 @@ 966aaa41b9c901eae0c4a836d8bbd1c2 966b547fcc5df538c581f060e53372b3 966f0bcd5248bec04b34a012b0a73af3 +966f8e3413403507be14ad7f27809042 9670ca07aa520d14975dd3ac006efd48 96710f7c56b3c083f6fd0a0d3c14ef04 9671f73989e8365baab4d2e2dabea24d @@ -24314,6 +24613,7 @@ 96947baffc7b44c437dc8ad1b204f239 9695156422b65190455e68e4b4e0feb8 9695b95cf5907c0bdfccfee325ad7c4a +9697fd2ac476145d0a46b88566d236ea 969960079e621c6de13b9c240e006eb1 9699840e5fbc1bcf9f1b6a733769c9fc 969ea12ceaf8ae0bc1540ac0dfe5d733 @@ -24321,6 +24621,7 @@ 96a08679279c51a0ff5697fd131389ef 96a370b4b0e3e6ff8375445945f8cf27 96a47ca681fe7f7748dfde0468496638 +96a5bd4d55f675a3646561475132b89d 96a9663f9fc611803e78cfb4c22c41ad 96ab2944b4d1da76a4d7817acf167f5f 96ac117597dff44228e56ae08ed7cd56 @@ -24553,6 +24854,7 @@ 98099470de92690f27220130bd1f422f 980a61d4466d9d127d3210968ac4c794 980bfddf1f6958ead6ac6229bf87366e +980d3196831a861ed15b305b493b6c4b 980e51bfc211dd02f49573b675dfcf80 98103dc0fccf5f6f3ea6aef122004f56 9810853c081a500787745a297ac98df3 @@ -24567,6 +24869,7 @@ 9820e3f71c19ddf149c59bd53c43f2b4 98211c6a27bb02fafde8e8f37a8c0803 982145b26a5e4e5d5a79ba887fb0eea4 +9822ff16701f815baa669b381fe22eed 982690c15f68744286c1613bf684733c 982987a36dd9d8ded5375b1db9dbf8bf 982a203b018574d758327b50a7c43fd8 @@ -24670,6 +24973,7 @@ 98c85cdaf6d66dab4128460e981287cf 98ce5fdb2d35785abac9535e851885c2 98d06d2f5c94ccfc9e0b513643e52000 +98d212c8f47e5d8cb7bf63229979bd1b 98d39423bf59b9a61bf5fc7c33b3af1d 98d3aae89846cee81dbcc4495f6d4ae7 98d51ec772dfeec18d4a8d1956f9a1e7 @@ -24732,6 +25036,7 @@ 993438417815b02b92347f118905038d 9935d15d6347b509020fc164337a5c5a 9936879d2dcdde72f517fd5f6a737e77 +9936d8e493b92daf2d977fb5858f4845 9937d8d97429d6877867f08a6e539862 99394abade37fdb65442d1710e7c36de 99397a093960f75cada201535d8afbc7 @@ -25254,6 +25559,7 @@ 9c3f0317c82395bd1d934f89cfc2aafa 9c3f0f30f4cf414055df3f452bb33c8d 9c3f8ba083740f9bf7badcd9967ff895 +9c4123d71e2549df675e7cc7a9f53f12 9c4294953cefa61a44ca1d5ddf6b0fb8 9c42a8414c2398e759931233858e733c 9c4333b5c9f0546090eb080a3a76cf72 @@ -25273,6 +25579,7 @@ 9c53594f06fc070ede8541104d9a0166 9c54c501f4cbd0671305d16673cd5f02 9c55ddec64a3a15a91f5c952ce1b37b7 +9c5712b94246f50c3f7c4c15b3669c73 9c578ecd19e7f72409fab6aafe006540 9c5e49821baf79d9f1c336c7a5836de6 9c6054836062a7964773ef6f0216f27c @@ -25291,6 +25598,7 @@ 9c811e5394ef94c273f6179d18b96aa2 9c82cb9e0e5afa110b0a53b9741d9edc 9c83fd6f20abeb40d23516c450c0321d +9c875ee40085b548d66288127dfeb92c 9c8a43c95786e5d4ab21f7994ea8278e 9c8cb1637ad63a74e0e5d4176227168b 9c8fe8d1203936611c45e5f06fc958ad @@ -25311,6 +25619,7 @@ 9cab5a04f338fdb5fc8f27b9a2f8b7d7 9cada370e5bf62d51a039a1c5bd0fe0f 9cae9dc6e01025cab89c28b1ce65bf1f +9caea45af4574ea51ad75d545d1a7a2e 9cb015696e797d4c4ea9470308b46cfd 9cb03083a669f675791a810c8efe2e5b 9cb1996a09cfdeca7206379800733c05 @@ -25318,6 +25627,7 @@ 9cb8f575a7111cb34e2dd5609759a8cf 9cb95f8065321e4e067b4886a823f9c6 9cba07c09bb7fd348160b1131e40250b +9cbd0d8f900a7a722c89a29997f93413 9cbdecd0bd04b484809ed7a7334bf4db 9cbdf78c81335e1925e936159be294bc 9cbe5b710c84a7e7e4c3e0053b47a5e0 @@ -25338,6 +25648,7 @@ 9ce433d0fe5fb716c27d6db45fe61c4c 9ce457131ebef2cd15a6ce5ab5eaed92 9ce67d88406c383be256b35c4fe38e71 +9ce6f39ed3fb6105f15cf2ac302b47fa 9ce87826775400947921bb97275d515d 9ce950203f0ac97389d2ccf88964a93a 9cecca4994f23165055e921c9bac040d @@ -25455,12 +25766,15 @@ 9da4ecae0d130472c782bfae637e1d6c 9da7750aab2d3f09939c3db1b68edea4 9da8794c05b27f885365dd7a53afeab2 +9daa7e391c69cd8664a4adc9fd7f83f8 9dab99380d78b94f60aa01fb554cd80a 9dabdfa20165d3b4c7e592c30f2ac05e 9dad050811f5c2ad68e1bc89024f5ff5 +9dadb100137525c43a631f55579f55f4 9db2785dd2ee1045dbed408cc7e4f5a6 9db39e9196eb29f4adcc8e64722afd69 9db41c216692d79dfc9289fc5db58aa8 +9db661dbae70fb4e186e262b5ff7a2c7 9db6ac886bf3b19a5d5b1664c114127b 9db83d87d80beafd40d62460ee171512 9dbb13e7b811af4790c9939b424fe86f @@ -25575,6 +25889,7 @@ 9e71b16c0d9caa9ea68e1b484220ee43 9e757f6910d09230abc24922d4fe1999 9e7735b06788f5efe56b78baf65cc37e +9e782c7b2aa7a89a05ef038cfeacd90d 9e78807ca6eae776e7b3db478642bc3e 9e78a0a3e4688b35241c2a8aed02657e 9e794ccce0f14ac0c2db42dac13acde6 @@ -25585,6 +25900,7 @@ 9e8105e0a0aa5db3060f49843cf5486c 9e82a216fb796cc41a77b627645053c1 9e8322e70811a109fee41604f9d02db4 +9e83f860e740028292a2b5b7350cb8d6 9e8407949b8f4f4ade4ac9a420cdd494 9e848f6c2022e51cbac582aba9131006 9e85820fbdefc963d563d5025afde750 @@ -25659,6 +25975,7 @@ 9eeb174636b3be39c7b1d391b596861d 9eed922e909c694bbdac06c8ae121791 9eee8e22bc45821618e044d40df74e81 +9eeeec90009c0f9a91127c927a98cdac 9ef4a9740938ea6973c84fef9680623d 9ef647d58fb5b28fed9a31d76cf21c20 9ef76fad22cb9365bed29fafc8b01f80 @@ -25872,6 +26189,7 @@ a046b310f4ce86cf2c26c12fa40341d7 a04a191c7a3db9d3a8b3ad7787c051c4 a04add201290aa5254a9219446bbb199 a04c6dc73b04fcc7cf5a05d411aa771d +a04dee0bfb95bf90e03a4b9d9c4a4572 a04f71ccd09db430d74f8b4dc6e7d9cc a0532ffbfd379a76b042e503c5bb4386 a0598b4dd1ad7dc18d5193d9988aa631 @@ -25959,6 +26277,7 @@ a0f4b097ab6b1982c9b0dfb5357a2056 a0f4f847fefa69dc325904e02ce04279 a0f683ab4bab6271d4d547b700f1d725 a0f805cffcafcab5deb0d7b5048501e4 +a0f812923f9a5411a002d5e04c43ac84 a0f8220539df42f78f25d57a8f59f4c3 a0febbe93aef09c431247d09a40024c3 a0fee361018f73400472c44635ff7990 @@ -26026,6 +26345,7 @@ a14d6d92386aefcd783c636cf887e8a5 a14fd3098ce5684dddccf08d0e54c6bc a151f84c4677765ca1b098cf0d5a8f3c a152557892a3c48d12122e8001e15c9b +a1559ac7f586d18599e58c50818e288f a156f86f8dfe3dbcce90e1fe9a399487 a1576a19022ab9d58fd4e8358413e2de a1576b21542826d0c30aad5a6e4dcf86 @@ -26130,6 +26450,7 @@ a207b29a98ccf8c33c592d7ab2157682 a209ad43c1313a5fa91e87ba97ad0d0f a20c8de60acf1cc52767edd6e05676b0 a20fa704f33bbb53468a5158b2577e57 +a20fd09633aad15eec4f44fc3398cc74 a211afc11b4fe71a8400fc2ebd00ff68 a213c71a93217d31288d5c347ece5b4d a2148d977f4db8b5b472cbc5f2b65283 @@ -26137,6 +26458,7 @@ a215021aac06ad7108d8c938edb2b7d4 a215c4863921edfa3ea574d3e12d0666 a217b4727146acc7e96330a0ba549e87 a2180d3b053a659b181c6943ff773982 +a21926efde6decf956747b61248bab21 a21a2c01c66894a0f612b9b94ffdd6e6 a21c19dc7a0ec899e9944872f72ab0b7 a21f8df7b1554351f74749d1e3d38018 @@ -26147,6 +26469,7 @@ a2223abe6aabe959ed654976b4e253ef a2268e8a62bd4725a5d8cb42d4c07181 a226f1fc7a3bec5364bc10c1ff1df702 a2290387d717d1080c9e745c2a49bd0b +a22a44d83a8656525c0b55ef02f6511e a22aff3587b561de5689c82a20118177 a2308ec6e409a506c68b70d3e37d3105 a235b2e2fc254c5e371c29a55f00fcab @@ -26172,6 +26495,7 @@ a25df70e4a31a06fa5a6f9b8a928a3c3 a261f0931d107c35bd61841fe23755ae a265199cc0496fa309578d950b74e2a3 a2656a6e6273bb78be4827c5b55ef214 +a266e5d011074651d77ccd5b751acdf7 a2672f1073efa4347dd522b3ddc73def a2681e2ba8ad9f714ae845d6226d293b a268de336d64c7b766ed7aef7c756b63 @@ -26243,6 +26567,7 @@ a2c75153d4582c86c2be2d37fa8f6e34 a2ca4d74dc8c59b859d5b3baaf90ad60 a2cb37454cbabe283b060c260a16ef45 a2cc59e97f2f9f63110e904e3770197f +a2cdc39f886c3e41f35ce1c704aa0685 a2ceae794cce3b67b4ff177c9d720cc0 a2cedda525df7d5103c2b92d23d2bb95 a2cf49b68ab7597c32c23c9434ed095b @@ -26359,6 +26684,7 @@ a35d25a514aa10cb2e7ade98b51cdcf3 a35f66845dfe11a24ddc8754235e3d93 a3622e88e7ff6644b23a18fb0376146b a363c37f94a7f863c86887c6c4656f77 +a36542f2193bd94278125428c749d49d a3680320e6392053ac24d19f8f86fb73 a368e1fa2e3ec0bd26c0be3b3d018c69 a36abfdc9f08477fa612ae592ba41ef3 @@ -26371,6 +26697,7 @@ a36f10bcd4d290b1defceb80107587ce a37093837be09a1267f5aa7ab3aad0b0 a372885a1a362127568435ab14073f4d a3758ef1b0187727506cd78add91286d +a376d5bacc6a76ef49503fe465dfb3e6 a3785072775184b318be65f21a4189a0 a378c3414cacad8344a152293db0c0b4 a379b0b92ee844a75480c841f4cf340e @@ -26562,6 +26889,7 @@ a4aa1f5add9f67dcf9b66c533c5151f1 a4aaae88225ff04733b04b490e2baae3 a4ad5df4b139dc6288cc5bcc43e09a00 a4adfad8acc274490f169ebae2ead50e +a4b15eacd819e4ed5225a7d0e2cc892c a4b20581845f06229d2f482f2736884a a4b3665f5b091daad00675ece725e612 a4b37991bbe98a92d12b998c6e4b3867 @@ -26623,6 +26951,7 @@ a5021d6946a33091c513f020f96793a1 a504cf6edd36864ab68bb19bf8880ec8 a50856934899d7b0ba22e0219d7c75ec a50a6475615f04fffdbb9012caae4516 +a50de03e8890f1f1e336a9332a68a7c1 a511ae9ace9495c309adc18f9b35603b a512462dee847504de2a6e96ba6d732c a514cab03e089200b416714361799447 @@ -26655,6 +26984,7 @@ a546b2f130a963f0545bb84025c062bf a546b6fafa5e7fdf4e4d4f4a2430815e a547fb8b360bd7b7dc9ec6d53d69e59b a54aed048c238c33ef0e197044318c72 +a54bb0067ff7e43fe8cc7220bcb782c2 a54e7febf2e32af151b6f104dcd71934 a54f4224eca3ef532b7eb258fc633075 a54f5b0be9ee57aafcb3656ccef6d6d6 @@ -26716,6 +27046,7 @@ a5b141cc9453c513c8fcf494e60f046e a5b42ef2282bb4932c9289888c182f0c a5b6312d4917ada267cbf270effe6e8f a5b7d16110814a29a64c4e0875a29c43 +a5bc21ac8e839e90f85807adee7b3dd2 a5bdf9acaded99f883006ce0c20b293d a5be0d7c0bfe10a98d9547a281b82069 a5bfcf1072bfe3c4b218f60a6ad76015 @@ -26777,6 +27108,7 @@ a61efa33aaf660873c26fb9438085fee a61f7a94ed42b66274dc7ddd90700056 a622d8806149cefb05a11094f80a3e15 a622eca604019ad1eb180a568603754a +a623147341937c8e5ececae1ebac80e1 a623475e01b5418782326c6f7d5a0d30 a6253ee7ae090faf40cb22eb25d7a6ab a627af77e62bb00a9eaf6f88dc064d27 @@ -26832,12 +27164,14 @@ a677d649f2aa9cc88b523b0393b1b29a a67af4a39f6f64aaa7ca5ffeeb23d62a a67c4437e9239d846e92840729f04376 a67cda6db6b558907362776e22afed9c +a68014e8399d00aadbd9b99d3b23da72 a680e5d7397e55f7a44e29100efebdbe a683095cdf7dcb0cf6b5d4c7d9b74865 a683c51231035e35d731755091a6fc36 a684821ee7d587af7d324a084a863a8a a6857c48e29bab49b375606bda8cf8ac a68ce4bea33f74fa911f9c9aabc9a5bc +a68e3e50c0e2a4d44641687114ef5b86 a69050eb28a4546e0f0193d61e167c5a a692b8b9d9cc92f0cf7d23801e0c526e a693ebb59fbbd6fa0166a3003f184ce2 @@ -26995,6 +27329,7 @@ a79725dd97b61900a07d2a6d0e735153 a79779cf2ef77243632a893bf1c4be52 a798ce76f53bc4982ca184097ddc5e5a a7996ccf8d3b7d6848ec2832c8165126 +a79b8292f28d3c9cfdc597f5c6f24b1a a79c7cc5e9a721d09faf898775179cd0 a79fdf5af776d99470c7632f2c13cd8a a7a01816d2486635d910114b1881ebf4 @@ -27222,6 +27557,7 @@ a8ee3a5ab0ee73baf03fdafc9c1b16d7 a8ef564005fb4ec097f230e3f4bb7e72 a8f5c71f90159a16d57c53feedfdb1c6 a8f670342511c1742f4443b02713b0dc +a8f81dbaa3dc87946e2a02a444ad2a72 a8f93bd1c40f9e8c00b86f6b2611af05 a8faab5cfd9e88dedbefa574f8b3769f a8fe8efc4665a5558ad75a0b47dcf108 @@ -27303,6 +27639,7 @@ a97d039318cca9f39873c91af1e9a330 a97d1d2d9dfbce752e8168c658794a56 a97f7b4b67fcf10e77703eee046e1559 a97fa0dc0d75e4ced6efd919c07ab20d +a981b04e9a1c4ac6f3238f5e841f3710 a98377a80a406a22823ca0c7cd8553ad a9838cc85ba55e8ca3bc45e906042e2a a983b60875c40928dabdea4d5cab4f82 @@ -27442,6 +27779,7 @@ aa4fcb69fcfdd13dbcccdeb9b345333b aa503b6b876b3edc17c48e2964676e3b aa52235654dcd7edd8e81c02038603b8 aa5615123da498390079a920a0aa8a8c +aa568fe4b95bda72cd123505d0f76332 aa57eb74db58ee648b2eb9a553ef7a0c aa57f8d3472c522476c8da3b00cb80ed aa58117af7989f0434f528f20b46e1c6 @@ -27473,6 +27811,7 @@ aa7309d837fa8c7188865c81ed4f4b18 aa7401fe885387405384bc4afdd1a9aa aa76225fb4232560b32b55646af8a359 aa7c4d4872aaff986876046fac4039fe +aa7f59bb819d51daaef1ca194cff73d7 aa7fead537d1de99d2a5238514fb906a aa8451468c0cd8d024663f58357d2ecb aa86edea159b851261b79c43de424fbf @@ -27494,6 +27833,7 @@ aaa8c0ef9adac7a3e2e6fcb18d8ab1ef aaabb44e64727caa0e398748146b3e02 aaacddac8f6f2dd5e0fb5283c124d031 aaadb1a660ec7ed66241b79af909969e +aaae173124d7ee4cf507e6c0e45edb2d aaae2059c134c4e0a25ce70e970bb984 aaaec8af41400b5425aa88909a99ad34 aab0747880cdc2f7c22b596d0b31ad2e @@ -27716,6 +28056,7 @@ abe42591c9083bc0f9574f33dfa6f01a abe4693da90c02553e4dccc6649a4505 abe78538c5936ab6feeec8050fe80dc2 abe80f81a27ae177836b07626ea68cd1 +abecc76a147ce106e451131c8b3214d1 abecf4775e52c1f2243590114d2c6775 abefef29c9caa738721154a4d0881a1a abf2154cb457627bb526a7c40ad537e9 @@ -27735,6 +28076,7 @@ ac04e6c204b06706cb4dae5aedaea430 ac0988006235bb024f7cfd4b38372a68 ac0b5b1245eca72116e7027b0ea942c9 ac0c0dcd44102e4b01f893dfa20e97a3 +ac0e5a38ebe1a322d851b81350fa0371 ac0f3fc3fc9dd3f9729f39483c3670ea ac104e96d787376b79321f2eee933f01 ac10f9ad65537a854dcb492554c0b94c @@ -27855,6 +28197,7 @@ acb3f02c5e9fa449ed51c70a3d0bb038 acb42fe0ecfacbae762d64c3535f2e8b acb43b48ac0343db3b939ba52f55251e acb54201a4645412de301f1d2657fab9 +acb6fe8cb750101ec47dba72955dde49 acb80d7e610c6a88937f3ad97cdc6d68 acb933af30c19d7cc4b06fab709bf803 acbdb13667f3ed2b1c1b91015657d6a9 @@ -27955,6 +28298,7 @@ ad6b802753ca0eaf74f397be2aa86cfd ad6c0e92319760fef6eb8cfed5368f54 ad6c8ee1006fc80b74200bd9879ab88c ad702b3e1dee77a3356c111e4f20f94b +ad7131cf7cb83a1badc8e59dfcc41a21 ad72414c6beff49aa919993959ab9480 ad74dbc5c1b23a1a4d79c184d0bdd0a3 ad783f54f99e7df5d2e2c8e6290e2595 @@ -28017,6 +28361,7 @@ adc76a0b6602439ffd652bff51bb84ff adc8bee2de8787e64730487c757fa84c adc953fd7ebd31d2eda039bbd209ea15 adcb0a0aa6ba45d672272d6f15e024c3 +adcb553d04e009d7753e828d645cbc05 adcc47bc0fd50b2ca64b476e2586e658 adce9711b71b817a8ab0dad0a228f867 add0f3c3c4a4abc6cad436266766c3a6 @@ -28121,6 +28466,7 @@ ae6ece92f8b85e4d731c0bf947d939bc ae6ffa06f720949ba0124f1289246abc ae701c0b1054221e8807c7afe2f3e039 ae71371b59ab1917b2afbd73d06818eb +ae71b279959c82c29d524dc7fdbbc048 ae7249c6be1a4100ca622629766b693a ae725e1d31f41324a912433bd041197e ae73f01c8fea6f282d9e73c55fd2b628 @@ -28224,6 +28570,7 @@ af03136853e29eaa653b8ceb4208c191 af053c0171955f2cfa91aba294b0e309 af067bcc545e067eee3f528d6e3c9851 af070590153217a2d8d31a2f3a68c542 +af09a8675dd1b2d7cfdb51d204b36d42 af0bff6eeacd222285e5ef241c4e610b af1104a6c84787397db205a9984f0da5 af11fce599c55d9e8d677a2b550614fe @@ -28232,6 +28579,7 @@ af1518e367ccfc5bd10158939aa5d526 af17698ef0fad61d2ba46eb8b9131208 af1794e1c925b3db0f30273e1dedf850 af1818cff3ae809c662ce18403c7139e +af1840d0ffe70c7c3d32146887a4e7a6 af18a720531c2f1a914dd963e47286ce af18df60b83225839a4ee33d89c94844 af19887a61ae1e3ca594a355a345bf9f @@ -28397,6 +28745,7 @@ b00dbb417df5215d68b7af11503d3e47 b013d0adfae044addd9f8dc998b4b0c4 b0148f419ea7f3ee8a71576438185efd b01567365bc6148a64a55191c96d69ac +b0168543417656228f3bb811f47e256f b016968885805a2f4ec1a0e8ad0a7904 b018444fed284473d85e90af265bf4a2 b01a3e5ee0b2a81d5fc578a73530b886 @@ -28669,6 +29018,7 @@ b1a0f1711497c6f16d3e1c816aeddb4e b1a146317112e5bf5fcdf71dc6822d29 b1a451e61197b92f5520d349a8609d05 b1a6ef7f5785177b2f49229831b2ba7e +b1a818d37e3d761a55b8b32c241dba66 b1a8cf3683ccb3603143cf4f58a40424 b1a99a9301af0d154d509051c8b49bac b1a9ccd6e614a4a26b30d95c18475d37 @@ -28706,6 +29056,7 @@ b1eaaaf5e2d693d64bfe142e97a7589f b1eae638f8658af2c2f1252095f6f6da b1ebd7a09526460a15d0ea78660ee50c b1ec6b81376ab48db730a3283ade2ec6 +b1ec72c59846e9a50802d697d4ab3227 b1ed2ae9181ad9b1211362ab50b10100 b1edcc609d242c8ce75b56e8ff0345e7 b1efb02a6a743916e473c155436e7407 @@ -28772,6 +29123,7 @@ b265e79c62bbfd8b28a593a91d3964ab b265f0dfa9ec6fe2a40a92e2298f7889 b26770af54b44743aa8cdcfa62a75bb0 b2685a634526a915c2bef03b0d3ad18e +b26966ecbd475cae250cf5e4bee3e2e2 b269d6f0619c68a9a8d8aa67b7db0dd2 b26c7a9bd8669a36f7cb234371122533 b26d0777c255b948273544b1fd42ff38 @@ -29013,6 +29365,7 @@ b3c9c84d4a4aedc9afe4d881626109f5 b3cb528ae14527d8066dcfe0fbf2dee8 b3ce7457b15bb6d6da3b21d1bf3f8e5b b3ce97fab65f44aa3e0c0eb22582f580 +b3cfb347d0566a0d65414ce0593990ca b3cfd686a2538b03dc8e2a2d6a970ff7 b3d03f019f8b9e019c23db9e6b982260 b3d1f92dc2fc34aa20cabf45397c6a09 @@ -29089,6 +29442,7 @@ b432216db666cf4c5e7d265d189b9c04 b4335405dd8e2172e413fd5bfc4e9812 b433cd7bf1314d3ab7e60b889f59ce4e b4350c822e414a85f403129d630e5274 +b43524f266a4550fe48d63da2b9f6433 b43677c85a42845d22d59f29ec46ca87 b437f77a67b0a5214b388e4415630fb7 b43936214721bfa14c25cfb3e59c2ea6 @@ -29120,6 +29474,7 @@ b45e96c34b42c1c47d437229fd57e6bc b45ebec3f04f59a80c1f35bf3a826c8d b46025adff7c7f7736e0e2db2d475c5d b460bb75d2d0d7bb8b6751a584c2e2b9 +b464785e18e6b85233b4ec5cb77fed83 b4659e5ab0cd00373ccab9b0efb26c84 b4689fad428b4711838dd01346cbe15e b468e7abde8e4af0059bded80c61f6ed @@ -29216,6 +29571,7 @@ b511f77eeeca38dee5e8405a7d6f824c b513e36c05ba6ced02070b6c3f6a2729 b514caf0b77646943939db180ab79106 b515924cd214adacf6e115ee11bf1bf8 +b517fa516f8ee1f1eae753b3ae3e2214 b51ad5cda634de5cfc4b9ead9e226a42 b51b2a29eb5d005e5667a9949084c033 b51c5a8b0d46e6992c634197be959060 @@ -29385,6 +29741,7 @@ b63cc88d989ede2bebd7997f1ca48b0b b63ea66f29cce94b909f73460700c531 b6404ec98736c6f90a202ea257701e85 b6407051f3286dcae9114bfb14e3d9a7 +b640a38cd97b7fe3ef9e39e7f30b06ce b640de0c79fd8029d34583137c6c65d0 b640dfb424fbd567e0851d89d98c61f7 b64375756f82d67d8e796e3849da33df @@ -29415,6 +29772,7 @@ b66d3c08838dd67a63bb83904362fc14 b673734b1cc8d4821e4618870a769c1a b673e2f12a382fe619bcee88365ce8b2 b675298682376e8ff69f83551e24c9f3 +b67577bf571e2722cc18552157bdbcb5 b676774d6bf2562704741220ebe902f1 b676c01653c4df6b09a9d0ca8666a37e b677472aa2df62604590576e566f54a8 @@ -29519,6 +29877,7 @@ b71126b8934b88b1fad74a646e870ae7 b7114603def70460defc164f3948b1e9 b71173af5db6dccc9ec3b58560591a13 b7131e8c34d8ca19e84649ae8096a17c +b7147d6c83999d0ad46de187f5ef87c1 b71598e20fbfd8118128aa77af0e0cf1 b716c0c45ed44a1e8d28178a5484e7fa b718bafe13c8fb7ebc1276e0a3931a31 @@ -29713,6 +30072,7 @@ b83bb708a4097762025c4a82d3880501 b83c718b09b6547968e3dc2d0b6be5ba b83c98d54e4489a98c8cc2d0dc2c0d4b b83cb322f39e66fc960d2ae0cb8321ed +b83cb63fa3055375fa6f24b5120d3105 b83d43c438ab12605abaded8dda7409f b83fbe624737fd8d364b53b833cb04f6 b8417bbbd162ccbbc9b278af2df1bc76 @@ -29871,6 +30231,7 @@ b9428ae9f8cd92913720aa83f7ccdf7a b942be61d12130944b02bf2db046c1b7 b943fef84579fa12f65b31fcf72fe242 b9447a0c91e49146e4976d76d8a97bc0 +b944c48f9806e896f2c7d89ee15fa1d1 b946924506c9210ae3d6d74c5422d28e b946edf3f48df07a0290227cebce488f b94bd16091fb38567f220ff34f6188b6 @@ -29932,6 +30293,7 @@ b9aba60f4d1ef981cd774e9fb3278166 b9ac40459e98dcfd5c3720505fcaddc4 b9ac7bbb791e55b20dd5133193e31d67 b9ac970cca94f1038bcad3629b3ec807 +b9ae5964db1a3c22b5b569ebf518e69e b9aeb6a8fafb197daf63019a29e50aab b9b0cdf2e6b6073db43c8670c874ba68 b9b52827e9b4b33d99335cc43ddb1609 @@ -29968,6 +30330,7 @@ b9f235a64032f0053d85042fb69c8230 b9f6cacde7415c943de87dda5064fe87 b9f6cb9012fcd42070350456d1a54b88 b9f6da5acb239ea663f44c4201bdc9ea +b9f77d2638f97e1ad36c5033b81090ad b9fa4089f88629b0aebdfa76cdd71ea5 b9fb3c14385df5bee3bc9366500b7986 b9fc2d95e4216424102aed15cdacad27 @@ -30333,14 +30696,17 @@ bc3108a84b3aac2eeeee4e6a25c24e56 bc35909a2cce5c3efadc9e9a0ff4e169 bc3709d7b270eefee2ae3935253ebd18 bc381f30b337d4977b0f177ddaf27553 +bc3871eb03c08be5c1f86d2a05a2f796 bc38ad7396bc25e7f7a99b6a019cda2a bc39d33fb044c4266faa1593f505c945 +bc3c796f08e80d8532850e039036d57f bc3dc4849c6bcdc5f97763a879773871 bc3e73395fcca5710f68ea0f422e5557 bc3f875de839c9ad9cc2e497eb2a3808 bc400d98e930abf30e05a79733e90c54 bc415caf03c8648836bb3543c599efe8 bc4257849a52abfce2a2b1cb94214533 +bc4957f23cd498609c23297c7108add9 bc4a13a047bb428db2dd2494973cc657 bc4cec1d00bbb214d526455610ca4963 bc4fc039d5c756d90ac2334d16713734 @@ -30383,6 +30749,7 @@ bc84b645b9c5f780952a143d8b3f2cab bc88288051decd2129d61e75a05718ab bc8b9ca2a97277b2a11327cb20fade1a bc8be96a95ea9a0507ed04271a1c1a00 +bc8c12a9a5c2350e186d5d4ffe4b5604 bc8d73ebf6a1d67e6ab750b2fdf453a9 bc8da576d737658d5283f3a0c385b5d1 bc8ebe4a94a730416c74ff991f1a236a @@ -30558,6 +30925,7 @@ bda1f5fbe149713045e835c13bb097d7 bda26300aa1f0ce570f40257c9a334ef bda3d1150a3415b382b1554f454d3041 bda49033c1c7dd5a33afa0cb79888ccd +bda6400b6438648fc2dafaae69bcd6a5 bdaa740cbb5c0fd55ab91f450ade252f bdae8445832ee0c26f4f15cd1e3ed6b1 bdb0102dc8b4e6f2c49b23ff85917443 @@ -30616,6 +30984,7 @@ be1b139af776fef3e70e1aceeb8ce136 be1f5d5558c78ae132646650e696bb8d be1f663e7407055cc735ea3240720f29 be20ba5e96d607c7b6f70eb35d797c39 +be242400ba6206a514d5a0ea2584d698 be24866200fbd3f37efe26f08354a816 be2a8a998cdde1a84d3f3a07cbdaada0 be2d1bb6abb850ff5ecd70ae7aa39c7c @@ -30908,6 +31277,7 @@ bff28cbdabb23c59ea76668e2348fbf6 bff4afe089ced9438f88c2a3ceb88b1b bff4b4a304e57eccafaeaf36706651fe bff4bddc694efa4dc17f7eb2de459cd4 +bff4fafaa5af48437305babbf43f5961 bff753d3e64a4d087b8151a6fb7a439c bff884727221afcebe8825a13f63eef8 bff884bb9b8e034964fc678921d7e47c @@ -31039,6 +31409,7 @@ c0d44288a1fddc2e545a62a10d903322 c0d6df2f6f1ed0e3e1664b56502b84d0 c0d73d694e3e75b34333ddc711887b97 c0d78ff7fdf14c34366b2e9d5ab0817c +c0da0dc5ded3de77322a2ed69ff38b3c c0daa7525974f4301d5dee2170e33967 c0db6c18ae6fc2b12944c217c9085b4d c0ddf673cd3cff25276a0f39dd4e1123 @@ -31184,6 +31555,7 @@ c18461afc88212169f7ddf9f8d9a33d3 c18586c0ff7ede87d2221d4875e459b9 c185c66a39ffcd7f2b12f22669c89452 c1870365534632dffb1b39b5bdf4ba16 +c1880ae5d225b9569b5fc73b880c91f8 c189ff4567f0447f579743ee49c43832 c18b19744aed67f671a284959b914370 c18cccb0443635c7de069e764ed10105 @@ -31239,6 +31611,7 @@ c1bdfcb9097352581c2ffbd4c752164c c1beba39295799e248c0007d197f225b c1c0d5b23d2666fe15d31490502305c5 c1c244f5b72699f653eb54102461ae28 +c1c4c1a10eda2cc5c6c81b2b774204f8 c1c7d6042de791829b4cfe0afba52e9c c1c964e6659225e8c6c12d490b5ec383 c1cc38bd6ec3b673cc9ea2833e95e43f @@ -31396,8 +31769,10 @@ c2ba4d611b1ee97cb52a6cf6c5494d02 c2bc888627123303a8aa4a05e8dc2d21 c2bfd750359f3dba3cc209abb81495ae c2c0fc5b4cebefbd96f4415f708f7d9d +c2c1318976b0de34237addbaaea34344 c2c30dd7581d90c18cd7819641feecda c2c520818bbd88ee0a6a7199b1733934 +c2c76de07e035bec3c8a53c0419549dd c2cd5bb8fc12ad0209648ab9cd9ec9b8 c2cdab12d0d3bfa6ca71982fa61f97ca c2cfdf645ce458737ef6d14e6bdbd0d3 @@ -31535,6 +31910,7 @@ c37ae490ab9eccb565fdfad642899810 c37af4943cdad4ec9c18e307e22c5158 c37d1d27cb0a043ace66d964a1f96032 c37db60e43bc9bcf1b627fa3763cba32 +c37e7490f84a23264afdc63df31efeb3 c37eb301ca8d2e094c1ab6846ae2555c c37efdaa87e8d17d50c8bfd956d6ebd5 c37f6b511ef757a31e858ab69a969912 @@ -31577,6 +31953,7 @@ c3adc8ce47adfeeb3728e8e06f612a50 c3af30a03081f79179750330e28ce35e c3b018bf85e7a771bb8f1abcb7f88571 c3b0b81d13a4b89ac9433f676562f722 +c3b2257ea2948d40344d9d3eeffb8db2 c3b4a836e25730e7881a062fa6728df0 c3b5770c24c2db71566c09e64bc025a5 c3b621d842758f7a4d30770215bf0354 @@ -31629,6 +32006,7 @@ c4055729380192a727cc6b018daf8baf c40aefdef4cb1c6fa7951be4c5652650 c40b11969a363700e957ce1138f7e800 c40de3fc91d93fd7bd5cd3460d64dce6 +c40f8953665ba213cf2e4e5463bc2e7e c413403f7abf831449298997e8aae544 c413a13dbbd75e87fb154544960b40b6 c416d791a255c0d285b21dcc7cde1e09 @@ -31645,6 +32023,7 @@ c4278ccf03e416090efbfc6a17b896db c428d910203edec33f7344f64e2380e4 c4295748cdcd03e2c17e8ff870152905 c4298281d2c134545ef1a4988465687e +c42c63604d7bf0ca1e0ed6a19fdafc0f c42ca7627bb2ade76fc4afe1ce327d1f c42ce182b7b967de3a8598ad2c1f1176 c42d10fdf64e015930caf96827ba93f9 @@ -31659,6 +32038,7 @@ c43da58814eb7b4735a30db1540422a2 c4407ed6d915d86a03ae127fe3caea27 c44488fb7f2c60d13f32472a9918d977 c44999712d2e30964d2a73e5c596c448 +c44b98e8b814347b2a61fadc0b1fabcd c44bcd1fa523949dcd692df9324d3f8d c4502066f8493e0dd8d81d5b2a7ae5cb c452a86a1063c5214fbda51202bb58ab @@ -31671,6 +32051,7 @@ c45db9f0b1f1989ab92d1740548d084a c45e5d83a7b9456e07ebb970500b170c c45ed388d72baf45766465b1024abcc1 c45f88151ba6ce64e794b6ca8498723f +c45f89b947fbe52876d5825f598413b9 c461ae73435dfda41460a6d8107b1094 c463880aa315c966edabb941e885d281 c465822f25a47772721d9367244d3a74 @@ -31720,6 +32101,7 @@ c4c680402f5c6b6db03bcdd8524746a3 c4c6d2a36037a5c574d0a77471d31ebd c4c6e4cc1fde57a5d224d309012fec0f c4c71febf1443991eee6996a2042b5c0 +c4cef484f3b20667a96a8819eeecc459 c4d03ae4321326d096d7deddf77e748b c4d4977fb23650b6f9456fdfa4cea0b6 c4d499f98d37985b97da5e6dd8404c90 @@ -31727,6 +32109,7 @@ c4d512534b2ecb7210883d1a65642436 c4d73cf316d0b452c502dbcbe2963cad c4d7b6cb420016e8c3e519dec688592a c4d7dc1ce447a11f91afbc5b88598db5 +c4d84d4e95ce14b14d8f0f125d76564f c4da6caa2c9317229646847757363d34 c4df29221fe64424775470756861a2e6 c4df7e046b50f7138dc2ad70d6a1ffad @@ -31801,9 +32184,11 @@ c55c141d6aa5e92c6aaf57e691d55bc7 c55c14bcd98a30543dc8d3d6dbba3cea c55c8fd65a15da4c26c535f88645e640 c55ca2a65328f82076d2bd0d9550122d +c55dd4e307708dcb5bc5721e088d52b3 c55de661dcc8e7b80d7b0f9b530a13f7 c561d5eda8eab06e3f3b513df66afb51 c5657e822c6c6c05c306f400cadf43bf +c5698f907d0efaf665f38a7c59feedba c56a00a22b6e3c832d266a1274cc41fb c56b84f782ea3d1374fa3859e06b785a c56d576c6a80893ed0f6381ee1ae48be @@ -31821,6 +32206,7 @@ c57d5955be45f2b5f7222d1d9821e663 c57ddf3ef80bb60fc63d838fe6161a40 c57e2e51562244580c6fd3fd16c21413 c57ecfe583482b138d34d8bea92e58ed +c57ee1508ee09f590179f59927339b0a c5800e99136a498c8207b5ff9ef61d0d c583883064e70c4d5145bb378fb23c94 c585742212b179ea39e80285a1fff8bd @@ -31856,6 +32242,7 @@ c5bd3a2a0f1ad419856064d51906419e c5c008e092336f442cd651a52a3f82aa c5c0c7a31049d18114c8df41f699963d c5c192782edd08706660a2772d7a091d +c5c49d9f593ff16aa3979151e5e1c4e4 c5c891cd82506b9c955f561705bb838f c5cf7efe3bef3b6b492d67ea5125bac1 c5d43536389ee44da7bce3b1f8522f13 @@ -32065,6 +32452,7 @@ c6e89e4f8f7ae0528b3aafde9309ecb3 c6eaa61291144aa56f5ebdca9c8e766b c6edc3996fa2dd9c06a35528be4ed05e c6efea91fc977f7b91f8d2a554b26b6b +c6f05938f2f610c4a8e6b4235dae8f9a c6f14aa8407611ed97b76ff2e5b06d21 c6f1b02d61dcea91f0369b86d49929a5 c6f25e61a6c4fff0ec46101a9c496fd2 @@ -32112,6 +32500,7 @@ c723b334597dc2a8c83c663d979954bf c7260ffc95f10813ca4518f4cc46f84a c727a9dac9506207fba08cb703797417 c72842ee9951765065097e2b8457ebc3 +c729b69e9ef1649e9b72306a57531c29 c72a2ee28795a24a5c0c19287a96a0ed c72ad6d7cf87e21ca2de0c60cbf78fda c72fd27d42462cc943d41dfe82e713e8 @@ -32120,6 +32509,7 @@ c73192b8f0ebd404487fa93e8330eb97 c731db2d3bf2a4cba0c498d0ec130488 c735c5e9a7a965f260c1427ed9d9196a c73d5d9e8f138ea01a164d63c4e4adef +c73fd2c4c688741f8afdf8935460f516 c742ad396456fb19237b3c30ec78bd87 c7432855628e502e4d8e453d2b2cee7e c7436143e7fed0edf980f645319e2010 @@ -32236,6 +32626,7 @@ c81213dcc5ab8600a2c62cb0a31f1f01 c8144be5b33aee9d49ca37093986da7d c8153406d644d453e1a7671b2b014027 c815808fbb580466b395ba0cc11c78e8 +c816f3048e41d16588eb4b81f5a8c91f c8177d9b7d0530bf3265cb6b74ab3ca9 c817ef6c7825967a483d057540039cf3 c818df33decf20423eb9373bf514b253 @@ -32267,6 +32658,7 @@ c84b1957794968c3cd82c7c2bce87032 c84bfc05331d62f1de366586a24fe490 c84c8adddaad155b3ddcbe311a6220c3 c84ddbfa446ea93dffdaabe33fb3c92a +c84e711004e29bff2a0527946ab77502 c84e9fe26448763d84c92bc99637a625 c84eed7aff461f23b55aa6e3bde39847 c84f87e0b3c4d882057c711afa923d61 @@ -32344,6 +32736,7 @@ c8b35d72c0b821627d28ddda166abc05 c8b3ac9979d6796bfd749d5d8207ce74 c8b49be3c01f97e55fca82d4fe8932e0 c8b4b8e5b7dffba06ea08095a51e4044 +c8b69169000561c0f0096cb09f5ab3fd c8b7a62ddc9f6b1e02e758d8ec267ef7 c8b94cf7079638b06537c94971bb2ab5 c8ba63693c2b21794ee1580b23b31233 @@ -32383,6 +32776,7 @@ c8ed03796d8703a0f7331bc31f32af61 c8f16d0c045b695b906bd7088c5459ff c8f17544b217b0b3936c1e683dcc3b0d c8f4a6eb319a45069c7da9d15ff60e3f +c8fa04d1b5364e24cd5c5e1c6f33ea3b c8fb37725378b35428e7d62c4573c982 c8fc0eeac65b9080001bdabaa4812d2d c8fd5c90a83ab6a2174ec3b8141b8fd8 @@ -32435,6 +32829,7 @@ c956974e59857670b5eacd77337a2be9 c956ae63b8b7acb8b828bde9d0957399 c95848bb3aab166104b1a5118ecfa74d c95853ef708777c3254068b1490a5d6b +c958b2edc44fb1090bbf1348c491ba31 c958b9f8eaf21b68d49d4dd31e0a6359 c95a6b02adc906ce1351b2f37804be45 c95b6d1dce3fef06c8322ca27f3e841b @@ -32454,6 +32849,7 @@ c96d51d310d076e00ee13b5472cba825 c96d99d17df6f20c68a8f03d282d8754 c97118cf064e3fe71c491f7936f098c3 c9737caca905c64804f4fc55cc52d195 +c9742968df9a0c10f1733cc742c9db1a c974fd0d97f40070e4c1445af6a50e28 c9769fffe7e1fcaed0d692cda5f11cdc c9797bdf2c7da6318c7fec7b223c4e76 @@ -32501,6 +32897,7 @@ c9ab939b8ae552e5596f9a7dac9c81fe c9ad0af1ac545da02d6f6b3bbf9e97b8 c9ae773056f7d370502fddfa70488977 c9b10c0dc306f1ce7063eb5d49c97527 +c9b17506d16defebe23ce186bf84df38 c9b3d454f31c4cc168857bee655bc5f4 c9b3fb92324905d364c5290207ffe9ea c9b67ef0af5264fc8c84b6dcffd44b59 @@ -32602,8 +32999,10 @@ ca38808832c8fdef7567b47c68b761ca ca3955eb36acb13002b480541c7b3e8a ca40c8ec7afef2afb0d5cdc7bb9b22b7 ca428b9ff500256386a1810490f82e94 +ca430c0c15fb7a39435d3626f52a58e7 ca4349fb6ade3f6ed4b5204cfd89e730 ca441a40578b2f2ce2b145c4cf4175af +ca47d256bfd721b80d0793e9bd0ae6f0 ca483a9ab7bfae81187b126e9618abd5 ca4a46fee86d99c0262c54abfeedda39 ca4d607ca3862e7d9f89a153f3445e7c @@ -32652,6 +33051,7 @@ ca82d77b2431ae11959b519796e4b26d ca8470304cf5f2edd11df42a7a8fdaf1 ca87058a959d763295a7e9164b754773 ca89204b4aa370e19a5a3d8d726be8d2 +ca8b435ba70e6048ea1fca19c121eff4 ca8edb080f9127eb7f802b6791dc1625 ca8eee532330c42fd6e2a07777de8f93 ca9048abed13758d1a71277d15d1f1a6 @@ -32668,6 +33068,7 @@ ca9d1ac6f8d440fdee3f95af25ddf39b ca9fe9b2c39779229774b9491957a716 caa2c391de4abeb481d8d30be32fe8ba caa5af285bc1e070108a4d0b83a0d659 +caa605ad31c7422825495968bc5714af caa76c1b9706c96db4f2115acdd4a4ea caa771e4d32ef04bd032653c5be9fdb4 caa7ec54abebbe6027d45a89c542f90c @@ -32731,6 +33132,7 @@ cae76ae641ab279336b7cade36316499 caea8777a5e8fdd316b1c6c57a27ecb2 caea908b7d25f8830f474b24c61214c2 caeb9e84ee355bf3254903b332df6413 +caee10d0f96cc43aeb4d8026e696d5b5 caee2addeac69191a2c8743459cceb67 caeeb8fb6729d6da52df0124671d72fd caf14ebdc5e93ed459dde456269be6b7 @@ -32784,6 +33186,7 @@ cb3eb00089b24249a48bcf28c660dbc3 cb3f91408bcf36b69fb91cffae517997 cb411545affcc1ce86141c44a60dbed7 cb41dce799ac73a1317cbe46b4da565f +cb476b166411092cea85c1afb32862c5 cb4abf68705a483abaf08a17e4a4ac7d cb4bbf0f88f224b405f768c937ecbf9d cb4ec2f5e9d3a813582eeda84c93d309 @@ -32791,6 +33194,7 @@ cb4ed2c099d5464a1d37227648b3439d cb500a21e97692ffcbddee73663ba77c cb508dc42785b434b8449b02d078d916 cb52843b808230d727a8f75e6736e799 +cb53cff43f1356d71579fdc24d410bf0 cb54de54392b2992c3bb54b5b6d83875 cb57c4aa68a34be5d80c32d1eafd9bec cb58fdf66ead44259a35f887b1878558 @@ -32800,6 +33204,7 @@ cb5d826e1110615a5fbcdd3f5454d4c9 cb630703ae90dabd3e19c908db20f8ca cb66c3f8614703fe37fa1da5878d1db4 cb66e11e97e5fcb50e29c911d40bc4ed +cb67362e5858e1e2c377500f403508d5 cb687e343b42d05780a90b2f3f97c60a cb68fde90e535ba64ee9a78415b2c599 cb6a99c74cffb1a6908cecdf16b20308 @@ -32814,6 +33219,7 @@ cb6e8494b1986da9aaea893f89451f48 cb70d98f5cbda7d1e1797d5234f0973b cb73bea023d0c992f7bb6a72ca339a6d cb7475a883d17e1d52e39769fc8897b3 +cb7604923cec803f4ef751810ffe4ae0 cb78a60b0368045c5c2bf05cbb678539 cb7be45d949d36263941f75f47e0d0c8 cb7da01e134e020393e48d8e240834d4 @@ -32855,6 +33261,7 @@ cbc10cf0cd55360abae9bf666d336730 cbc4071a1461a6075638ad0aa8a16b47 cbc5a08f033b79607921115d64a8b6e3 cbc64f243eb7324520230b559761297a +cbc775ceae1f59c204da2794a731893a cbc8d06939bd0dba702d2103fcd255aa cbc9da64d6cd5569271d98bba13203da cbca5f0cd06d98edb7821cc707d87952 @@ -32915,6 +33322,7 @@ cc20177369472bd0f242f48b28575c59 cc22dc2231fa0c5e84125071d9730f5c cc26555694b9e97af63774f8c4b0c4fa cc28c83bb4d0092cc18ebd14b6738ed6 +cc29c393f1d372d75d6c5c250212ef46 cc29e7cd40d85139467b4b74ca42c34e cc2ec4456a8e72c9655be6daa861d6e6 cc2ff76b280b3e939a994bd2884ae265 @@ -32991,8 +33399,10 @@ cca4416fe8e1e4ce16445ab3903abb28 cca468991ba10ff1027bf4cddf7adf83 cca562290b58403996c6dc69558e7492 cca711e25c07e0ef8d783ca4bed8edc7 +cca86b68030445aed550f29bd21ecb6f cca8c8658364bb0b406f70ca4f86a7ed ccaa43756fd9858323ddb6e462d0f8ab +ccaafb7d7e0df6e1151511399a037871 ccaf1dd5be941a3071ff79e6241564d8 ccb0ac1e0f3882b88cde9e4f1d6292d4 ccb2454e1b7f835cc6e80726ff8d6e4a @@ -33017,6 +33427,7 @@ ccc8bdeae955648928f0a092d70c2802 ccc94bf22246f2b59621b8867376509e ccce5aff881c3ff9f3c7b8831a836efa cccffd87efad1c006a992fd6b51ea846 +ccd1731ccf710229cb2152d68870e091 ccd19b1ddc49bb448d735effea0c77d2 ccd20e7eb53b92615139c3f94da5430f ccd4c6746e6ae9a75c3b6c57cb81a463 @@ -33085,6 +33496,7 @@ cd49258aef453fdd77a9ce01fe68167d cd49b3ec9400c59ea6439fc970066ff0 cd514a9976d2cca87def3243c69d153b cd53d755fc50a560e376c7e3a5011d1a +cd55504c8f0bfad8b4d108b69e92feb8 cd57b504a79f5cd4a7b7380fdc95a50f cd5c12eae25a7583046cf124f5df2e6b cd5d535f481e8d030e4f68404bd7baec @@ -33199,6 +33611,7 @@ cdff6f0d77cc0a0c87f825c097d6ff2e ce00fa44d0f9c54746d3dda221958341 ce0274201ed1a85ff1b9a6e75225bbec ce037570e2467e049199b0c4b265eda9 +ce057d13620e43a65969fe596839777b ce06348f2cd8ac77b0799658d5b30fb0 ce06ea6cfe067c1851b87f40a23549e1 ce0830eb28d609d24e520ed57f48c1fb @@ -33223,6 +33636,7 @@ ce2559e7a31f4eb3e87833e6974f3a22 ce25c734868eb18baf8e4aff1ae3ca71 ce2852ee9df78fb230632e88b800ca40 ce2a9dff1b56c4663e614a9c059fb30b +ce3114f6c20302af0629e0e832d29d8e ce32a2b85566405a187ba063e611cd11 ce3363e5bbbea81b7f7c0f50a2239566 ce338776f7ed24d9bde1915e30d93dfa @@ -33231,6 +33645,7 @@ ce350985f528261dd10a6dd4111e26f2 ce35c1617d54728bdbe0cab263a72391 ce3e481a831514684b1313068e3cfeaf ce3ee6b201b44ddde726895da6494442 +ce40589987c9f87ed05bc93e24f6c353 ce407a474f8ea9f59e82e53761a04090 ce418e2e2433c5d6c49689a2f8638db5 ce41d9997d1049084c920a18634ff405 @@ -33264,7 +33679,9 @@ ce65f1dcb15385a40ac009ae44213fc3 ce662947ac9c1872bcdca4877193dacf ce667431c4d8d69cfb8a6a9fe806af75 ce672496cf3f5897660aca887d7389d5 +ce699bb07a112b5f98017a22d87dce41 ce6bc6ae9010367abb286b6ed31efcc5 +ce6f9b8f046835bef10f4b255ef2ced8 ce75915a376063b79731bc69d6b387a4 ce78fe90ff54b6605c69f22d3a0e7f2c ce7c5b1224d0e9a7c555c77b093f6ab1 @@ -33369,6 +33786,7 @@ cf228235ad8e43a31023a254cb092251 cf22a1278e465301f6e2a3a75b904460 cf248bf8280fdd6a09d85a7cf7d3d8a3 cf25fe99189ae15e6500dc827fbe6cf1 +cf2803e692a4749a780124204dccfff2 cf28d9e4dbc1359a0d3ed54881680280 cf2aba86061689f53e8604b986db2cd8 cf2da54f0cbbc31f29805d641a7fb834 @@ -33410,6 +33828,7 @@ cf66a9d6815c68e2d18a5efa85aef5a6 cf6c54f9de76590849d4ea3fca63a753 cf7027c2e48f80283913bb0b159b75fe cf70ecee03ba994860acb5086a19d6e3 +cf7127617ccc8b952792629ecea97108 cf725ddbf1eb386f2539b5df3fb3a6b5 cf727387be870cc973589cadc6091d3b cf7352653b38b8893b3d3eed48543d49 @@ -33502,6 +33921,7 @@ cfed44646e6f028d21d031a9383b5496 cff057c75f099649404aa65232d52784 cff33ecbda959b598daf37faba0aa696 cff41b5522bd90635df251f1f536b52f +cff49ad3557dfe2b1cc5505e959bdd62 cff4ee6ad731ffddf036285e4e3e7871 cff9954e2e6580753ac9901b518eb782 cff9d7adbc5bf125d48ae1de100f188a @@ -33564,6 +33984,7 @@ d04e6ca02c9886f3d689e380ffeec1d2 d04e91827d52431f1d6f5a51eddf52a9 d04eb7d8348fd7ae0e374e51536b3acc d0506c5a8f319bb8e6fea943a0ca8f29 +d05196149215b5907d695d3bcbe5192f d053029e496a4d27781c916d79f57705 d05372c67a2180983a0e94e81813a8e6 d053767ff37983e349e8a1e2a6cf2c4e @@ -33608,6 +34029,7 @@ d09a0d44f6e344ca23668ce6801cea0f d0a2435c44be04820ed020e36571e423 d0a3272b55aaff26f9985ef073510006 d0a9a3ef75e7ace1d6de53afbbe718cf +d0ad539217222a45750aec0dbf5d47ef d0ad72bbc0d38b58aad91f342240b553 d0b03ed013bfa6c7427d0dbc4d486f78 d0b15160e58b564d45bea3e09c77c44e @@ -33728,10 +34150,12 @@ d17600bf4a905b2324b85f6d8f50f885 d1766489aea34bc2772921fda9ee8ba2 d176cada3717f314be85ffddc6b6d78f d177417439a6e9e36b8b67ba9cc67562 +d17879a73dded596fb115dcb7659be96 d178afe0ac9de9bba63bf1ffed61f69a d17bc3734bc4deb6096f72696bd152d5 d17c756605b4eb35719728cdfbea21eb d17f42af5c942783c6b5a5d908d44e0b +d17fcbad6a1f6772cb1462e7b0d80cf3 d1807bc38a218b7dbf555f82cad5e13b d181545ea04bbe68c6607f4b3392027c d183d8253eb68465e6daa0f5bff1a2c8 @@ -33821,6 +34245,7 @@ d20de780cef28adca34dc7b73e016f20 d20e580e0eb5944c2e52c3c2983e55ea d2104ac347d434b13e8c5aa8c1d5567e d2108f1577f2199e3730eb62d882f483 +d21159873f978f400bf7b98a1f5993a2 d211e609832ad97c3f51f70d9c107618 d217752f095e417277a7999f11033a00 d2183dd952b20324669dfe249882ddd9 @@ -33838,6 +34263,7 @@ d23403347ebe9a9ab22649b6411869f3 d236d650137f3b5f1733bafcc9304299 d237864eff8f1bea7ab6c9cb096500a9 d2391fffb18efcc19322fef6f36e50e6 +d239264c49b80b2930979ed00c2806c4 d23a67d7af0cdfa988f3c8cdc9c38df9 d2413d430696facae8f6f01ed8f42aed d241a673b33bb89ac77a0ba586c459a4 @@ -34046,6 +34472,7 @@ d344442cd9e59cb1d326d9f401edd5ff d34553b1e28556ba57cd9bee7589fa55 d34623a3dc4c196aec1ca45a7e6fe00d d347f6af25c93232c365be37c4f5ad87 +d34a2aeb0a01cd17c9176fc7dbbc198d d34b2f9c6c5836bae26ea90a403a9aab d34dcdb04b6f5297bd4978a0cbb23f65 d3509e272e5d0969c7030f1b20d57187 @@ -34065,10 +34492,12 @@ d3636d9fb804d02f865278e19616f1a9 d36533b892867a5bb42fd9dd5479163b d365a6fee2282f57e28bf89b82297543 d365e4fedad73e8747fae0dde8cafdcc +d367baee92c1472833be9fb741a8bdd8 d36809ac20d102a6872d57b4128179bc d368b0b2ab6b75af3c3a467d5865ec58 d36b08d99464df020718916e6b537143 d36b38304a00870aa9cf81ed5d5b2d36 +d36e5a1d066c5495e58eeed74373590f d36e8b738cc23ed159afbbad91c59efd d36f99aa60d4df92825db9e5ce1a3697 d36fcc5781c2055dc7a489e5ac00f07b @@ -34118,6 +34547,7 @@ d3ac93698120c594359352177293d6cf d3ad40d2481400eb2efc95542fb52285 d3ad6950c0f141c7e338ba953ed70fe9 d3af0084646465f2b9cc13c26d937663 +d3b1f5706823208593644282ebbe2300 d3b478304e2214e929b0011e5bd7e35c d3ba26f8d02eb59b6b06199cb73eadc4 d3bdf58795a28d832a461044932c3ad1 @@ -34179,6 +34609,7 @@ d42126103f45b30b9ab696a84d8fb6e7 d4226202279906ecdfcd6fa05383f0dd d42526890ba4487ddc939a1906c477dc d4257fcdb87522d4722d5b9db0a792d9 +d42660203f4c9552f21a10b5b32c29b8 d4281f894bf64e87398a24a186a809ed d429208466e0656ffc0664d8008a54bc d4296e0d40d562b74e8a202317d3c135 @@ -34306,6 +34737,7 @@ d4e4bffa125da2cb048fcaa8df596ac0 d4e53816c9bf2a03972757e8ef102691 d4e7d7feb9f3a7c1e8923106885886e7 d4e8d8dba287f165efe7d664002b7b04 +d4e97c1de7562694edd7b414bd179067 d4e9b6f66b22a8ec2d8bd11fd0191616 d4ee36acde4d4ab7aa1fc19fe4643032 d4f0faf9fd7d1f4dc2a369b8cc1f3873 @@ -34341,6 +34773,7 @@ d522c0cf017ad74778ed9a92f82f1bd6 d523f4f19423eba3397a0ea425334ee0 d528ac870ba7dbbe08a73d4f32e6ac56 d52940214ce09f99d623cb6f0c0921bb +d52a4e7709a5f64712737db1955f3acd d52c68c28fc4c70228ff144e73875ec6 d52d88585e242ce3cbfa868b0502829b d52f43025c94cd5769dc641400ce1a34 @@ -34372,6 +34805,7 @@ d5671a673f10f946529e6476185900a7 d568e039beb5f030aa3aaf2e01b39db2 d569dc3391216328931ea3218cc60d81 d5700bf4e4df3c3155ab94b0a612f3c6 +d57096449146c3367347c9b848a155f3 d5768b5ae20d6b552856f34c64e939c8 d578669a7d1cab7541e3eea14943f302 d57b8742a9fb6edc736203173dd0a4bc @@ -34406,6 +34840,7 @@ d59aac8a4414a181da3f596e273030ff d59c39b5a18ae1534fc1fa65da205e5f d5a00abe2d3dd99c88d48ee014e8d8c4 d5a22664272d47422df28b76a1fa018c +d5a40ed1871d496cb9b11036775d0d3c d5a76790d9af1883c15688abdcd7cf95 d5a94c33d230c6c2b808d761ac4fb3f0 d5aeca00f5c88ae93b698314ced00331 @@ -34583,6 +35018,7 @@ d6b640109e8110842dd2eb21e48c7fc1 d6b75c8598282c8091f762a05b19faab d6b95e7612a9b7867e7059b1d63ca1a6 d6ba5bd48c47fa62ac923bd43e7f6d90 +d6bcb0f5296ab7cdb197fe4673334e15 d6bcc81bcec8e892bee0c95f40f7bcfb d6bd61e42715684bbbda0c113b43cfb2 d6bd974caf57479c98ca738fc58827cf @@ -34646,6 +35082,7 @@ d7014789f0cf291e15e3a7de00170a7e d7053c73881e70efab6a6c5835d48ae8 d7061ed1f976b0c4fbe26e331ac935e5 d70a751973c50595ff5ddbf90ab31d48 +d70ad1fa894a55d91bdf4a411fbda849 d70d38e00a87a03ede4b40fc90a6efc5 d70e6fad23511595a994d91e1ffc4ae0 d710c806e8472401f850bddf92984c93 @@ -34744,6 +35181,7 @@ d7872ebdc8231943a176ab2ddcedcf66 d787bafbde1883adf960043d15e66994 d788d24dedecc2d002968c46b4f79046 d789f1efb58f1132aaaac434bee5378b +d78b36960fbfa7608c63d243015a819c d78c542bfec5f8862e63e5bbe9ca0816 d78ce2e182fe180092dea14bbd3c8456 d78f6a0dd08fbd5508b5ef23b7739849 @@ -35035,6 +35473,7 @@ d9362cb73c207842b73a21442da1f786 d936a3d6bbb83faa09693cb777307ec3 d937ee2274f6360727c133f67f09e2a2 d939a7dc9045244cd09ccd0de1449416 +d939b1273774ebc07d99d5977f6ccf56 d93c38efadf2865dd76591aee2ca5035 d93e28c46a088c843c14d4ac4667aed5 d93e729310b8e6a77d4c5c0ed2ef22d2 @@ -35171,11 +35610,13 @@ d9fce3ccd61acecf2f114c6ccd6f676f d9ffa96f958a63e0ff2c949e9f946152 d9ffc2214cb1b572cf5f9fd95493a177 d9fff24879c2ae56aa551a2792d4f191 +da00545ad47221907bb275d2720fe211 da015c0da2a905bb7a165289f1fd04c9 da068d5cf5bcf93f5a39682179352be0 da076db256468f219d5ed8b078017735 da097f8361182d235afa8c5d3f23f71c da09dfb52d5c334fb9b377bab3e5584c +da0c184c2f27f31fd76f13c9822edb26 da0fb9302a683cab75e7ec3a9108a4a7 da113e0c327b20a58c60cbd3d3af6d69 da116a76dd54e8eb0bd559f0aa79085c @@ -35205,9 +35646,11 @@ da338e57e56d8c32e21fb441dc6764f8 da35684a693dce61d4ad838b12bc567b da363bcc78753dd6a6c4a413a733b006 da391a308851cfcd568b1113dedc978d +da3a4bdc9c281d0d5edf7cafadd78496 da3b0ef9b667c0b8b3c1a7b9294a93f7 da3c0d8e138eb0d03ba0813c30a83ccd da3da44953241da797a2cd5bb96a077b +da407db6c6a8afacfca63685b0564ce1 da4110cbcbf8f1601a5dd67223536846 da41fa18ed9b90e425871e01387e57a6 da43f4036676663c7c7bae22ef6fc6a9 @@ -35266,6 +35709,7 @@ daa93d28521254eea7fccc020bb2ae72 daab4e3f8a19845cf621a57f681bdf47 daabf8cf699c9c54920d5ea4895a7cfa daaed6028973f1cdf2cb9c3afb393c59 +daafe14411b1d538fef3e5ef7a3782dd dab32670615455347d203105931215b6 dab4529d15ebe49039f70451b09156b4 dab5794acfa95a929396b911438c3571 @@ -35314,6 +35758,7 @@ daf031d00b3af9b59458ac20f565de9b daf10f27c612dc30680cfdbb24734824 daf20ddfbba3adacd390d9b037fb2790 daf307ade20170111c6e6c9885a66ef6 +daf6080b28034e4fd73a79d83de4ec02 dafbd4cffb21e91dd0eee15e28572f4a daff722986c2feaad9ce79bf17f4d6c6 db01f2a14f99060b03a0195f901fe2af @@ -35690,6 +36135,7 @@ dd34075a15ef251e625bbb575a4c6032 dd348a50548b0b7f89a317855f34fc42 dd35ca6491d6702f0fb2a6dbe2e18fec dd3727a062a52783cdd4ed8263a04e98 +dd390a118c8a8e516cecb10adcd4ee3c dd39363a20989f7b5c24ccfdbcff4375 dd3a04cbe5de2815ff642afaa1fa7306 dd3ab8b9e7ffbc43d6a6935025af81a0 @@ -35729,6 +36175,7 @@ dd68d830cb1b6bfa1347a2b9fb5a6eaf dd6f816fb5e0a9ab8ce4123cc285aa3c dd6ff33e6e89e243d26b267b6f366db0 dd71bed6e6a4e34b3baccaf6e8796757 +dd743166ee40ecefe1e5d9e59ed530f0 dd76a6fc8b60356bf5fac43e87a6439e dd76ffa285ec58b041bf59bf3e51d940 dd789d1a7e49ccf623d31ed9d9d93e4e @@ -35914,6 +36361,7 @@ dead337b49e2117c840accfc39223b23 deaeb4018e0b5e3b69e01c8bd70f422a deaf77d0ee5b1bb03bb7cbc791ca2af9 deafaca2a87b2104d6720c52f5fd66c0 +deb16d308218896c62c269b5d5c23271 deb1942142b5a394a5d05fde33f06b31 deb2df3e1ab490a71e65bedfec1b417a deb3b3fe81967ca9b34e5f7de9a72746 @@ -36105,6 +36553,7 @@ dff021af78ed0f8bfb34cf469c5d25e4 dff14404b5e578f8666c3e85aff21828 dff21f4c6efaf39abbbd47b6c5b15165 dff308a79fedb75b05225460832feb79 +dff432721d1b58536939bf7007e21855 dff6aa7087ed35d327a6c4fbf7823b05 dff7fd3bcb8e7d4a00ff7cbc27f8a81e dffb1eaa7806e34562a58f8796d6e6c1 @@ -36125,6 +36574,7 @@ e013dd3b7129abfc7a8a83ff5c8b8a8b e017dd70f172ab37157b40f77ca9efde e0180d16f6dac7d8fcfeb8924769d1fd e019819dc32aed02235714b502efbaf3 +e01e2a8c5b65644b35d272afaa6f4d9d e01f4d75140f0fec8f8ee039b956ce81 e023f9ce8ffd0e0f13ebd4e95febfdca e024c22940b2144a024a33b1263e1299 @@ -36151,7 +36601,9 @@ e03f7be6dadabe84ff0bf3eca14eb0d2 e0418c5dbdec611d48ab611b1c2589ed e0429ab9d6cad51746359f97b6ec94e5 e0436255af9e88ef7671108b09e417fb +e045a43cc8dc9dbff85922e81f8a4a07 e04868421c44c2cb7ee0942a84850bce +e04a8c1e7cda8ef7f8dd3f8519fb64c1 e04c7f6fb3b6dd143f343174335dfe74 e04fa089501a18ac2b4e0bc5e829e781 e04fb6362dc2a0c64a069c78fa497fdf @@ -36179,6 +36631,7 @@ e06a07701f305637e9f1f001ee34c6c7 e06b20bed9907f6a7379708b561739dc e06d68d908b8bc31279383c39829a18e e06dea321c5cbbf3e07fe2b40543fbb2 +e06ebe382891e86ed6885ca78e00a07c e06feae7c7c87cde1591568b51696e49 e0715c7691707289ff9d1811b45512bb e071f915d11f0c530638fb35f215f3fd @@ -36197,6 +36650,7 @@ e08fe87934d3481f1c0a0e7ef16932e1 e09094ff6ce7c88e70c91811fc4107cc e0913abdbb32ae0c29d135ebb03e7bb3 e0918b0a25ccdbc6bed7f4a741c6e298 +e09227268450a76a703d8954590ad8e3 e0924829355e45efea09944426467943 e0943453cadeadf44136499c28af7929 e09493c1a30b0460f8d33c11481457a2 @@ -36417,6 +36871,8 @@ e1f8d1c240fe81084fc12d7d68fb0b98 e1fa415b334b660120800bc848df8a79 e1fc0eb260b9f39220d81950ddd82c25 e1ffe41a08bd660f0b22eafba113b259 +e202b99793ecfa4442bdd8dc69cfbdda +e203d340aa96d5d9e399dfc7edfbdc82 e204d50ae85954a29bd48338c340100f e206087c59d21c715b6272d86c31a329 e20736d2775f12b8f27c379474a925f0 @@ -36427,6 +36883,7 @@ e20b4023023c6a6cc1b53c7ad0b02c6e e20b5a2642acc6f580f1f8a07d4fad53 e20bae6839bd42bf0d421cafdab9ca29 e2180b4a195add9c677af858bf9c8c57 +e219cdce32a330a21e46f5415a18d76a e21cba8aaa06f5862421eb971d0eb15a e21d3718e351fae90cb138d67f0c7bf9 e21ea133507a35da7dc27c7dbfa0cce9 @@ -36654,6 +37111,8 @@ e38eb44c22d792bcd589d7ecabc37772 e38fc7b4b55cd674166361fce1a6c964 e390066db8fa2ee43db864c77b126788 e39397f5d81ac29342fab3e243d9c38f +e39496cd74b3b3b25e767667a88d6f5d +e3980b97b7d52f15cf8bcad28505dcc6 e39b777335f0991883d1f017940d1023 e39c70587f55f936eca7868449250bcc e39d6756fbdabd84af1551612b98aeff @@ -36926,6 +37385,7 @@ e5353045ee06c67c18ef717eae108ee6 e536578e521326314de9372de84840c4 e538991bcf42897ecdec38751c509fc8 e5391005e9875639d444eb082f2627e8 +e53ee2779ef40afadda42fce2274ff81 e540e2d0d3d75257616f34d997f05a9e e5438a533cde6cbc06ff053a62f60559 e544193338668827e1043f340f5e20b5 @@ -36990,6 +37450,7 @@ e59a2491534dd342506bbde5a0c8216b e59b678ebb7eb7e293e86a3fe75bc1c3 e59baf214f5d7d289fa5e0548f9e9f70 e59c93ff08124799ee5542e253189e62 +e59e74c4eb117d0b503452f4809e393d e5a15a8bc0e2575b5dbd93b2fca6de05 e5a3547b16017b78b7fa2d865713c0e8 e5a361d7a330727718c0dd105332849c @@ -37041,6 +37502,7 @@ e5f61ab0ae1c5ea2a5a7a86e1a23f6db e5f701eb9539be76c29b7f528838dff7 e5f9bbedbff655268a2489031baa3f9f e5fac06f2956c25bcc18251e29aa8704 +e5fc6b77422992b56cc11a82a7eac842 e5fd8c0bf94388572ae40c5dcf1a9940 e60194f66b520228027d063f4637cbaa e601a1c62e40d433bea7a2ea32968f67 @@ -37110,6 +37572,7 @@ e667414429cefff03a0663f44641355e e6689d99b3d7e7a4829e108c6d1539df e66ac309210407e4a0c5730bdfe9e644 e66c1b6096e58a4a77a14ac5a9868028 +e66c99181815d257dc6ef68ca9783b06 e66dd200f4e16c44f3ec2b62f1a1b8f9 e66e300b455bcfdb8892b5a3f42f79d0 e66f2482d924441bf7d112705431b24b @@ -37319,6 +37782,7 @@ e7a4c06dcd65741d51d55a952538afb2 e7a529f4ae99d02a90ef2355798ad176 e7a7441a3bcb6e14e2c4bc2f484395a9 e7a96b5dd4df436abb38c447a5d0221f +e7abcad2ff616b3f71794cba2cdd61f1 e7ac8f836cbd33bc3b9122f6aba8d8ee e7adef5d8afe0a4de46a2baacc7f521f e7b1133421680e8ab281ec16aa2e01e2 @@ -37548,6 +38012,7 @@ e93a0ceda580f9758197064b46893f7d e93b3c9211cb92c339830e2b0862721e e93cccf4e647b245702f588cd98ad95e e93e3908918c2429d9086b9f613ce5d0 +e94468c8169b0be9e4a7e6c4ae0aa775 e945a420180321fe2b20e7abfec43096 e94770d16edaae92b154e996811e09b7 e9478d1af33b59dd12d9c05a8cb818c9 @@ -37735,6 +38200,7 @@ ea4e443a70f64c7f05c1895a64d2f70a ea4e727eaf6c922a7ae779581cb568d5 ea4eecfc638d6208b80173c78fef0804 ea51e3526d4a389e598e8e352aafc0df +ea554ed6eed1bfdd255449f8944f6bea ea57d2b4c206b5e083cb8c778300fa5c ea58c4190c16172ed8ecec4289ceb393 ea5a8ba016d217c77450c5c63ecf8385 @@ -37745,6 +38211,7 @@ ea60896e555fee046e7793970c37106f ea6214a4f5025ee3f5e502049c8b0804 ea64e480dd6b8fd9ee0fa24841de6711 ea65053f8e8e2ba168ed027e66e69d72 +ea65f44a040c95da9b02e317cd95ce16 ea6608b1ce569bc80a1679e7cd0986cf ea664c30dc08a43023875a2b8cd57e45 ea66955a702e772e1d1d2aa64c0b3d56 @@ -37772,6 +38239,7 @@ ea84fee8e2e483fe699278372a212b7b ea876c5a9bf1583e8ce8f6422c847c7d ea87a82cb32069294ba7e03a87fad620 ea8925f0b1ea8ffcc5745ad05d7f6d50 +ea8a7bfe3f6901d324e970a039f146e8 ea8d82d3cec2b148ed2c59334e93d0a4 ea8db1b1d3045c2481d769e3c9e1548d ea908f509bf23a3081e5c5689720fece @@ -37808,6 +38276,7 @@ eac38926d6292ec4d0f623599840a35c eac65d560bdc9f58ff2c98fbb9685a96 eac86679d3f21d5864d225a799325503 eac90772edadd50218cb2c8fec4aa582 +eacbe4deca652ad1b63ca6f5172fccb3 eaccfc2eee95f4ac9881ab9c86efe681 eacdb895a395b73d6d0611923c47c1a3 eacfe03f516936d4046965837dc2391f @@ -37838,6 +38307,7 @@ eae9887a6c53d18112ab340aa4dd1a5f eaeafa1266493997361da7d4b4fa0fd1 eaeb0833cb093ca7fb3164198f186952 eaedcad56aadab3e8a665386b2603f5d +eaef1a94ed85f5436e7693f4b8d7a428 eaf15657ca37bc25d79a515515ad6097 eaf47c3644a7a021046f3e17e9d27240 eaf8fcd4dc26d917d6d9ec3d293a2456 @@ -38028,6 +38498,7 @@ ec0da9616a6820deeed06281b94f6be3 ec0e04c932ea61b5033718dff711cc3b ec0f6e877526361447d14af2f773577f ec13b014932b52b9d89754a8d9c5e385 +ec144873ccbe1fadb1e09d0ad89e5719 ec15351d9804d2f1eaf53a7a25f52475 ec15c7d498e8c06202a8785324c27a8e ec1763a3a586da3d88eed9c8da5f4ba2 @@ -38044,6 +38515,7 @@ ec2458f55238552a84f9275735c8afd3 ec246d33acb443e1708027276e43403e ec261fb64c3748b53078c0940223568f ec27878e2f71353214491d914ea6fd05 +ec279ccddf12f0a3d18fc035c4ce537c ec29d87198be3d6dbd95e4e69fe94e5d ec2dc762200eb17a2191fbf72ab84a9c ec3273babfe174a70640325c63e72c1c @@ -38078,6 +38550,7 @@ ec5679c3c9c0838da87f4ca02de47ea4 ec56d949e458ac9618a6bd06df768a41 ec5862d8abff6e61f71b9fdce8f3bf32 ec5964ac6424ca55ce45805135c6f3b5 +ec5b3f769ef44ec3364d12c90ca48674 ec5cc3bac654ed7f4f28b054329f864a ec6144bc96b25616ae5deeebf56b604b ec61689d19810233b795194f3ae4362e @@ -38186,6 +38659,7 @@ ed0eb1096e38d9ba90938a47c63bb3e5 ed0f82374b072573b86f8606bb93d9b2 ed10b9f9f5e2de93afaa86f941750d3f ed12817124744b92d80b788c1b11d7a8 +ed13604dab416cf48ceca86a75e1b32c ed149bcb7b14560d748354851625b61c ed1604193cd33b6ebc197ef4e59d6b38 ed1608ed641f7e4f00fc4bebaa7f38d2 @@ -38200,6 +38674,7 @@ ed1f044a907e86398868b600317779b4 ed1f066e2a5578de60dd9126d21a43fd ed208ab7d410bf7dc9bbbd25bae63b0d ed21b752ada654c8334df9538a6318cd +ed21f0f9c3cfc843ce74d1762bf940fc ed23fc67243f9950e0b21d5910595208 ed24431c0c405ff288ac1375110e7a73 ed24784023861085d59efd85b6e400c8 @@ -38215,6 +38690,7 @@ ed2d9303861eba319ea967f928f9f235 ed2f2c40271ca7ee7792c2824e09ce05 ed2ffa37a90c7b06260543f6df60bc94 ed3060474813f969332aca0c3ca034b4 +ed320e005d8cf7f61778d52c5dc84d77 ed36650126797e2e9dde8614073ced95 ed36ce0453cf2a3fb7489490ddb36db0 ed396668b2bac344f554a40b190006e3 @@ -38305,6 +38781,7 @@ eda85ec28a76326bf6eee98942abf15e eda9059df8431d3b0db453a990529682 edab8aaca9273f211c27e3e6c8fe4cdf edad549efe7071a306b442568b371dfc +edad67e8691c846f960bf418c36b1b48 edb4761371ef373a45468a188a4cc430 edb4852e69eccb79c32bbde510254ee4 edb74fe6ac0c0efdcf1bcb1ca0a338bb @@ -38373,6 +38850,7 @@ ee30cecd771f728625ed744af723f30b ee339e9c23b487ca22fd45ad4bcef29e ee347fff4fd5753768f43c95f374a34b ee35f0756d050ae421d0e4265f17142e +ee3914e8e78ab455ebdf0cfc58179b1f ee391b92328fd7f9c79f12857b99a46d ee39377eb9e5f65fe17eb341515b4ee8 ee3bf00aa66efc527db2eeaa0ffb790f @@ -38607,6 +39085,7 @@ efbb58d6df9959243cb54644c7a4dfeb efbc910c62caf882994fdf2a523fe976 efbdf5439fb8b018e1d4775f56978d5a efc1290c1f060a2789db9c90c0531e40 +efc20fe43577d6cf1758e56ef07e8b41 efc33075f17b4e4fcca81d01ed6f0c50 efc381791e9e7ae0a2635824b99f5e22 efc480edd8478cad3770ddd1aa622f0a @@ -38902,6 +39381,7 @@ f17740f52670a8537a3797df95216ad4 f178ab7e30ed901c5f8ae7a3edf7896b f17c9775d45f22a4c6cc93a2aa9054f5 f17ec849c6c039ca15f9a980803b88e2 +f1807a42cb029e1bb6aa0eaf6e55d0ac f1817c455a7c138df0c32d7a87f83746 f18184b0494ee099c2fa3d86d1a35b38 f184b1f4f4ec337ea5cd569517bdb5ed @@ -39031,6 +39511,7 @@ f23f9dd0e505534522585ba3f0894a59 f24029697f5ee4d3680cf75e9d2099b9 f2417916019dfbcf6cb2da6ac8cf3972 f244fab8014b2f4098c4474a47038435 +f2465683f09d5e0f00cde59678f6e0e7 f246e5fe85e20ae4b781ec313cfe0a46 f2479b28edc368756e2bfa4e9df2c493 f24c07b1c6b6a806d1f626ad99283bd0 @@ -39059,7 +39540,9 @@ f2702d449db609d98a693a9cf05773f5 f273ab13883038202bfe974bc602c223 f2752ff538e10f54ccae718781544f5f f276a741c6de45f23acc23fd476e08a6 +f279648fa5a46d207729fca789b81599 f27bcb7c6af69ecd0ec945830a01eb81 +f27befecb5de8d315134c2dca208c009 f27bffab42a5fdaae4a7f4a606499a58 f27d30782a8f5b4d2895a272eedac816 f27e6822bf58ec71782aecccabec762f @@ -39152,6 +39635,7 @@ f2fdb23b7dd21bfafaabef6d596a0140 f2fde01d66a9dff3152bc28054e39e43 f2fe6e79ae2006e192f90ae858a9bde1 f2fef48dc983e06bbaaa58f0b606e337 +f3008091d4569c490dcab88dc83018b6 f3018ad4dc7baf562b42ded6e09851d7 f302cb7431981e76c015717446cdb9e4 f303e22b26ca675a7a0d72971583ba70 @@ -39338,6 +39822,7 @@ f438d533e3007484e35ba06bf55d0147 f43e256f7b74ea7308262af7fab08221 f441310d3a72413df2b4f0c5fc200a51 f441cec6c039537a1eba7a260db6af85 +f4430807a5ac845ae8d66c71160b546b f4450603ca40bf5956a39ca82fdb4c19 f446f2f8daca049730bcc143a483cdcd f449d81c61acf2fe6f5fe15d6da72805 @@ -39356,6 +39841,7 @@ f4574a20ede9156b670d634c8721feae f4594c8aecb8486cd578468c220bb50b f45a6bafeda70be7a8dac1b8ea64308e f45aa386e3f0c03055237910596b9c03 +f45ad2c68c4bf6a2e21a19b7f0ead0b9 f45ad72ee02bf09beec4324fb7cf734f f45b28fcd1d3ba3df549ba33f11f0a15 f45bc9830648fd638ad0697d1f26ddd3 @@ -39506,6 +39992,7 @@ f534a49c6b232023481613d3e1a4317f f535042d7eb5757c49154cca7f561887 f535e5d43e97bf8437ddb0b340946b82 f536882135e737babe9dc5c480b7cd46 +f537eb0b469ef7b80de28c48a7bf54e2 f539f020ed7f7876264116da58d58bdf f53f048801962c2a66f79ce981b13370 f53fb3cc822e4d0bd8304b3a4f78d85f @@ -39671,6 +40158,7 @@ f635cbbf38fd634e354429db40770cf4 f6368310d91a23df204b8cee03be0e41 f637918192ee7593a42bc3bd686ed798 f63a16d36870a6b9f50e13544f6294f2 +f63a9b706bd494e03c347e6c3f97b2f9 f63c3f5451b697fabb07ec8bd3a9bb1c f63fac214545a4419fc81c4a71781712 f640267dc33772f2c51af84065e51a5a @@ -39686,8 +40174,10 @@ f64d9afcdeca5ff717c082d986ec7d30 f64e67cad9b28b3d753873a4d6907299 f64ee9a4742b63aabb95d14eb44a4557 f6554511acca7b197cc42d64ab280034 +f655ab665b592fb4430c6fa46c45ef42 f6571217304452f6d566cac529e29702 f65a57449fc5a17d94487f59d2dc691f +f65f1ea0464d8b940c3bb41a9c4bc28b f65fb74330b751da5bf0d5a160969432 f660a9ba78b69be922100abaf36010d4 f662285de5a7a7529be43ba8b4b83c0d @@ -39697,6 +40187,7 @@ f668fec68e9e6f10ffa9f87a7ebbf324 f669af1e8e7768d794ef6f07cda39375 f66a6f1e02e6ecd60dd8d57c261fc01b f66a8b3a8929dc1b3dee356f05bed8b1 +f66c50c893006d19fc1a06ea38e25cc5 f670e129c91da56195d0a120e77f52fe f672b8ced3fda233e56e619dd460afa1 f677444fce526b76a5f683612b461883 @@ -39751,6 +40242,7 @@ f6c9136c91cd2d89cc24c63077065054 f6c9a519e0f4fa8e4dffb9fdaa613faa f6c9b3bdf90528169bbdef74da40cbd1 f6caf313e2b60629a428c793166b7156 +f6d337eab20ed983047fc11deebc5942 f6d57b832b37de1bfcaa32ba3b6d10ac f6d694a982d2dc3b66a703a045c8ee55 f6d6ac26e46265fedca73e14b79ebde2 @@ -39825,6 +40317,7 @@ f73dd8106e1f146546e9963c7820584a f73ef8554fe0e4db329d921603310b68 f73f1e98f052c6a1136b8edc33aec62f f73f42fb0d4a78ad77f7768453684994 +f73f80512c1772a6044248ea421f9417 f7464feb167aa9b98a4c15a9299191b8 f7469470996dc14e31b44cc8cef43dd3 f7489c9ecb4f672889d45d4924428707 @@ -40106,6 +40599,7 @@ f8ed8e25e083338f1bd8807901618f32 f8eda5f0df25295f00550f9d360172d3 f8ee8ed23072cea675a82f286f2f0ee6 f8f37f09fb860d0c95c10a5cbf374eb5 +f8f4b67c3b4288baac8c36e32703e716 f8f4d8737381655a2ab1ed42e1fa6912 f8f7796ebefe8fdff5b30b2e9fd4943c f8f8019b3a5eab0de145f3f846bc5946 @@ -40131,6 +40625,7 @@ f91d4097c44ba6c933855464c3f2fffc f91f818638d8896ca0e20594afecc279 f91fded7c4246f29c920efc992c856da f9235eae7d0886d5d53124d8d847e868 +f923d29277fa6da8ce08cee88e7433c1 f9240681d891810ef10b99ea23100d2b f9258e1d266e0b48fdb6a130a268bd66 f92623168e44007e330b7ba6d9687b5f @@ -40138,6 +40633,7 @@ f9262a2338ca62c8ef56602edb739a42 f9268a4597dba9fd329824b90982a96d f9284b70b0ac047280fd44a508d42543 f928eb5de7baabdb19edd59d4aede584 +f92be25572bc55f302b1e1138caf6900 f92da5ad578498443d768cfe292417b7 f92dd45db3a7da005f834fe3e9f0916d f92ed45a55f6a290a356c7766a312740 @@ -40274,6 +40770,7 @@ fa128b4996d34ca92a81687228aba78c fa12b120d54e7c16e835910b702df78a fa145c64d59d9424d9db9ecd5cf45dce fa1718b0f5b0451c318cbb8d7ce7934e +fa17d93432eb3f620fd49a01e574a36d fa1bc21bb8cd334984bf1d6780d2d6b8 fa1be7b6933435c88da9a8880a6f4189 fa1ccd7fc64ee76bb0421a25895ea57a @@ -40291,6 +40788,7 @@ fa2ea4581574d0fd48d2afae403114c7 fa2ea91381ae9857764f267ab2da0647 fa3112599279adf12f8c924ed29838f5 fa31498d0151a938782bd27ad27ea5f6 +fa32b0c8192544fc50e4aa1ffe4202b8 fa343baf7cdcb62c90ab7e6c0aa622cb fa35082e03830233169893c16382aadb fa35c0358cad7844ad1f7d7caca2ab76 @@ -40328,6 +40826,7 @@ fa651ae52ba45e0fd824f52984d7c9e8 fa67b6cfc6102efc7c7db75d33b390e6 fa68b0a52a2f479365dbc8bd97009de9 fa690b50a3550088c101ed55c8c8cb2b +fa6a5ddd7b65742676f18884ef87a5ab fa6ad2d4540d731cd8ce1f3d5321f419 fa70f32ef24f3815fa853cb2bc536338 fa7296ab1e87045ceceb9093e5f321bb @@ -40481,6 +40980,7 @@ fb80e43f54da07d37422b3be0e49a820 fb8a0a3c8e755a007864f850dc0b3b8a fb8a37e41f63a5a9af907c1d2b0a364a fb8b5ef471455e141b3ab83dae93ed9d +fb8ccb159fd92666963a2b231b75f9bb fb8d0c0a44ac988b985fa155ce8acb1e fb8dde9949e69220a9a333e9403f0d83 fb903cdc5e0139c39f153b2c0cfd70d8 @@ -40688,6 +41188,7 @@ fca0e7ac7298000f82a820c017425f4c fca1776e9cf97ab5d32aef9dc189b818 fca8db86d376d4e845a379fd2f3ead06 fcb015b3ac947dfef29859a216667e56 +fcb0fb311eca71de97bda76e21d45fb5 fcb303d15bc83e94107edc4999effccf fcb3a11d39c7be8edebb0815a327bea9 fcb3ba22d05e49aeb6be322538f1b332 @@ -40898,6 +41399,7 @@ fe0465a1ff85a5c213daafca20cc0c81 fe04fbefff1bc86c22d381b7ad0c99eb fe077e07764e6ae716b22f033c49bbf1 fe09b565879c3aafd2d6a6f1395a5b6e +fe0a89e4da2488eabad46a4f8699bfe3 fe0b7e45ca197c471c5fdbd80c37979f fe0da82b3d7d9db97e96f4aaa0d6a33e fe1202866775d423b25f9eb022f65ef0 @@ -40931,6 +41433,7 @@ fe40e3714b959b7923abbd9248173117 fe4351000924ec2229cfb13cc10bce91 fe44cb2507090078909e2830107cf04f fe45040c4455a45d41abe5a716c1c4f9 +fe462a469891d8bb51ea523d2c78349d fe49d3e9a5d92f2655264049d57f2f12 fe4ac3b32d17938adc2edd99ebfa38f9 fe4afebbc7eff059485846198c812a91 @@ -41036,6 +41539,7 @@ feed39fe8bba44fd872ffa4446d7927e feed8e016f8bd83b01c75cd6fb744467 feef48612ed29e4112dfbf244002b6ab feef9fd3bfcd6d8171b2b38c234c7a6d +fef11d4693ced6c03db6a7e144b0cdf3 fef2256968a9b00650e0dc292b350abe fef28651803d32ff94c5c16ce69f708c fef2e6e09e80034f0116ad6b63e7d1f9 @@ -41069,6 +41573,7 @@ ff249a1890c8b95349840f2ad1ad505f ff25a2e0e7579da1deb68ebb2cc47fc9 ff2607011d5a5d67351c9b17c5ab745b ff28180d46379384f4c773b7d789a0fd +ff29a5c7380a0f1af5977edc051a3603 ff2a2edd1fa71fc8f150ad3098b7ffa0 ff2b3eb773a53660896b753067686cb3 ff2c672b3efcd05a680e799363f406ee @@ -41193,6 +41698,7 @@ ffd3d80bf0be1a7d0603e9be1e6405ac ffdbc1596051d61683bc2b6a86399830 ffdd53cb64f94c418df9d8489197c3ef ffdd64267fcebe859e7031ef6b3d6bce +ffdf8abf96a32b4b6d7efe3bfea56f82 ffe00046a95ddb1b7ac23ede3b3ba5ba ffe47064a9535832c1cce0ad42157308 ffe567b7773e542f81654a93768f7223 From 428eaea2b793dd809da25d892445c41e588448b9 Mon Sep 17 00:00:00 2001 From: return42 Date: Sun, 29 Dec 2024 00:16:24 +0000 Subject: [PATCH 003/417] [data] update searx.data - update_wikidata_units.py --- searx/data/wikidata_units.json | 278 +++++++++++++++++++-------------- 1 file changed, 159 insertions(+), 119 deletions(-) diff --git a/searx/data/wikidata_units.json b/searx/data/wikidata_units.json index 5c2fd0bc5..ff424e62f 100644 --- a/searx/data/wikidata_units.json +++ b/searx/data/wikidata_units.json @@ -14,11 +14,21 @@ "symbol": "thm (EC)", "to_si_factor": 105506000.0 }, + "Q100293463": { + "si_name": "Q100293463", + "symbol": "Pa⁻¹ s⁻¹", + "to_si_factor": 1.0 + }, "Q100293891": { "si_name": "Q100293891", "symbol": "V s", "to_si_factor": 1.0 }, + "Q100294053": { + "si_name": "Q100294053", + "symbol": "W/(sr m)", + "to_si_factor": 1.0 + }, "Q100296845": { "si_name": "Q2844478", "symbol": "lenz", @@ -29,6 +39,11 @@ "symbol": "ch (UK)", "to_si_factor": 20.117 }, + "Q100989321": { + "si_name": "Q910311", + "symbol": "T", + "to_si_factor": 1.0 + }, "Q100995": { "si_name": "Q11570", "symbol": "lb", @@ -149,6 +164,16 @@ "symbol": "Ym²", "to_si_factor": 1e+48 }, + "Q101515060": { + "si_name": "Q101515303", + "symbol": "g/J", + "to_si_factor": 0.001 + }, + "Q101515303": { + "si_name": "Q101515303", + "symbol": "kg/J", + "to_si_factor": 1.0 + }, "Q101875087": { "si_name": "Q281096", "symbol": "cd/cm²", @@ -1294,16 +1319,6 @@ "symbol": "m³/m³", "to_si_factor": 1.0 }, - "Q106629979": { - "si_name": "Q106629974", - "symbol": "L/L", - "to_si_factor": 1.0 - }, - "Q106629987": { - "si_name": "Q106629974", - "symbol": "mm³/m³", - "to_si_factor": 1e-09 - }, "Q106630005": { "si_name": "Q182429", "symbol": "yd/s", @@ -1344,11 +1359,6 @@ "symbol": "m/rad", "to_si_factor": 1.0 }, - "Q106639711": { - "si_name": "Q106629974", - "symbol": "ml/m³", - "to_si_factor": 1e-06 - }, "Q106639777": { "si_name": "Q3332095", "symbol": "mL/kg", @@ -1374,16 +1384,6 @@ "symbol": "dz", "to_si_factor": 100.0 }, - "Q106645210": { - "si_name": "Q106645216", - "symbol": "mg/g", - "to_si_factor": 0.001 - }, - "Q106645216": { - "si_name": "Q106645216", - "symbol": "kg/kg", - "to_si_factor": 1.0 - }, "Q106645232": { "si_name": "Q25999243", "symbol": "g/mm", @@ -1654,6 +1654,11 @@ "symbol": "mC/kg", "to_si_factor": 0.001 }, + "Q106867426": { + "si_name": "Q106867426", + "symbol": "J/m⁴", + "to_si_factor": 1.0 + }, "Q106885926": { "si_name": "Q26156113", "symbol": "N/mm", @@ -1684,6 +1689,11 @@ "symbol": "cd sr s³/(kg m²)", "to_si_factor": 1.0 }, + "Q106947267": { + "si_name": "Q106947267", + "symbol": "cd sr s", + "to_si_factor": 1.0 + }, "Q106947284": { "si_name": "Q106947284", "symbol": "cd sr", @@ -1709,16 +1719,6 @@ "symbol": "bhp", "to_si_factor": 745.7 }, - "Q106998070": { - "si_name": "Q106629974", - "symbol": "cm³/m³", - "to_si_factor": 1e-06 - }, - "Q106998079": { - "si_name": "Q106629974", - "symbol": "dm³/m³", - "to_si_factor": 0.001 - }, "Q107028266": { "si_name": "Q44395", "symbol": "cm H₂O (4 °C)", @@ -1754,10 +1754,10 @@ "symbol": "mL/h", "to_si_factor": 2.77778e-10 }, - "Q107028522": { - "si_name": "Q106645216", - "symbol": "μg/hg", - "to_si_factor": 1e-08 + "Q107028673": { + "si_name": "Q107028673", + "symbol": "K⁻¹", + "to_si_factor": 1.0 }, "Q107028836": { "si_name": "Q107028673", @@ -1799,6 +1799,11 @@ "symbol": "s³ A²/(kg mol)", "to_si_factor": 1.0 }, + "Q10711818": { + "si_name": "Q104628312", + "symbol": "var h", + "to_si_factor": 3600.0 + }, "Q107133620": { "si_name": "Q25377184", "symbol": "mg/m²", @@ -1979,21 +1984,6 @@ "symbol": "kg/(s² A)", "to_si_factor": 1.0 }, - "Q107313731": { - "si_name": "Q106645216", - "symbol": "μg/kg", - "to_si_factor": 1e-09 - }, - "Q107313738": { - "si_name": "Q106645216", - "symbol": "ng/kg", - "to_si_factor": 1e-12 - }, - "Q107313750": { - "si_name": "Q106645216", - "symbol": "lb/lb", - "to_si_factor": 1.0 - }, "Q107313770": { "si_name": "Q794261", "symbol": "m³/h", @@ -2049,6 +2039,11 @@ "symbol": "J/cm²", "to_si_factor": 10000.0 }, + "Q107361110": { + "si_name": "Q910311", + "symbol": "lm h", + "to_si_factor": 3600.0 + }, "Q107361126": { "si_name": "Q281096", "symbol": "cd/ft²", @@ -2209,26 +2204,6 @@ "symbol": "kmol/kg", "to_si_factor": 1000.0 }, - "Q107440839": { - "si_name": "Q106645216", - "symbol": "g/g", - "to_si_factor": 1.0 - }, - "Q107440910": { - "si_name": "Q106645216", - "symbol": "g/hg", - "to_si_factor": 0.01 - }, - "Q107441004": { - "si_name": "Q106645216", - "symbol": "mg/hg", - "to_si_factor": 1e-05 - }, - "Q107460729": { - "si_name": "Q106629974", - "symbol": "mm³/mm³", - "to_si_factor": 1.0 - }, "Q107460790": { "si_name": "Q101515303", "symbol": "kg/GJ", @@ -2269,6 +2244,11 @@ "symbol": "μg/(m² s)", "to_si_factor": 1e-09 }, + "Q107461139": { + "si_name": "Q101515303", + "symbol": "μg/J", + "to_si_factor": 1e-09 + }, "Q107461146": { "si_name": "Q101515303", "symbol": "g/MJ", @@ -2309,6 +2289,11 @@ "symbol": "b/sr", "to_si_factor": 1e-28 }, + "Q107611199": { + "si_name": "Q98267267", + "symbol": "cm²/erg", + "to_si_factor": 1000.0 + }, "Q107611254": { "si_name": "Q98269780", "symbol": "b/(sr eV)", @@ -2389,6 +2374,11 @@ "symbol": "e.u.", "to_si_factor": 4.184 }, + "Q1098949": { + "si_name": "Q21393312", + "symbol": "Cl", + "to_si_factor": 4.184 + }, "Q110143852": { "si_name": "Q1441459", "symbol": "Ω cm", @@ -2434,6 +2424,11 @@ "symbol": "st", "to_si_factor": 6.35029318 }, + "Q113446857": { + "si_name": "Q61992237", + "symbol": "GCPD", + "to_si_factor": 4.0 + }, "Q113681609": { "si_name": "Q794261", "symbol": "mL/d", @@ -2519,6 +2514,11 @@ "symbol": "m⁻¹", "to_si_factor": 1.0 }, + "Q11547252": { + "si_name": "Q11547252", + "symbol": "m⁻²", + "to_si_factor": 1.0 + }, "Q115533751": { "si_name": "Q11573", "symbol": "rm", @@ -2574,6 +2574,16 @@ "symbol": "ʰ", "to_si_factor": 0.2617993878 }, + "Q11644875": { + "si_name": "Q12438", + "symbol": "Tf", + "to_si_factor": 9806.65 + }, + "Q1165639": { + "si_name": "Q89992008", + "symbol": "daraf", + "to_si_factor": 1.0 + }, "Q1165799": { "si_name": "Q11573", "symbol": "mil", @@ -2774,6 +2784,11 @@ "symbol": "m²/m²", "to_si_factor": 1.0 }, + "Q1220483": { + "si_name": "Q35852", + "symbol": "ftm²", + "to_si_factor": 0.0003596651 + }, "Q12257695": { "si_name": null, "symbol": "Eb/s", @@ -3124,6 +3139,36 @@ "symbol": "F", "to_si_factor": 1.0 }, + "Q131376626": { + "si_name": "Q39369", + "symbol": "RHz", + "to_si_factor": 1e+27 + }, + "Q131376639": { + "si_name": "Q39369", + "symbol": "QHz", + "to_si_factor": 1e+30 + }, + "Q131376652": { + "si_name": "Q39369", + "symbol": "rHz", + "to_si_factor": 1e-27 + }, + "Q131376658": { + "si_name": "Q39369", + "symbol": "qHz", + "to_si_factor": 1e-30 + }, + "Q131395783": { + "si_name": null, + "symbol": "Rib", + "to_si_factor": null + }, + "Q131395793": { + "si_name": null, + "symbol": "Qib", + "to_si_factor": null + }, "Q13147228": { "si_name": "Q844211", "symbol": "g/cm³", @@ -3429,21 +3474,11 @@ "symbol": "J s", "to_si_factor": 1.0 }, - "Q17143051": { - "si_name": "Q12438", - "symbol": "Tf", - "to_si_factor": 9806.65 - }, "Q17255465": { "si_name": "Q25517", "symbol": "v_P", "to_si_factor": 4.222e-105 }, - "Q173117": { - "si_name": null, - "symbol": "R$", - "to_si_factor": null - }, "Q1741429": { "si_name": "Q215571", "symbol": "kpm", @@ -3735,9 +3770,9 @@ "to_si_factor": 3600000000000.0 }, "Q2055118": { - "si_name": null, + "si_name": "Q199", "symbol": "ppb", - "to_si_factor": null + "to_si_factor": 1e-09 }, "Q2064166": { "si_name": "Q179836", @@ -3769,11 +3804,6 @@ "symbol": "Ma", "to_si_factor": null }, - "Q2080811": { - "si_name": "Q199", - "symbol": "vol%", - "to_si_factor": 0.01 - }, "Q208526": { "si_name": null, "symbol": "NT$", @@ -3820,9 +3850,9 @@ "to_si_factor": 1.0 }, "Q21006887": { - "si_name": null, + "si_name": "Q199", "symbol": "ppm", - "to_si_factor": null + "to_si_factor": 1e-06 }, "Q2100949": { "si_name": "Q21016931", @@ -3849,11 +3879,6 @@ "symbol": "B/.", "to_si_factor": null }, - "Q21061369": { - "si_name": "Q199", - "symbol": "g/kg", - "to_si_factor": 0.001 - }, "Q21062777": { "si_name": "Q44395", "symbol": "MPa", @@ -3884,11 +3909,6 @@ "symbol": "J/T", "to_si_factor": 1.0 }, - "Q21091747": { - "si_name": "Q199", - "symbol": "mg/kg", - "to_si_factor": 1e-06 - }, "Q21095810": { "si_name": "Q21095810", "symbol": "Hz/T", @@ -3949,6 +3969,11 @@ "symbol": "J/K", "to_si_factor": 1.0 }, + "Q21401573": { + "si_name": "Q21401573", + "symbol": "m⁻³", + "to_si_factor": 1.0 + }, "Q2140397": { "si_name": "Q25517", "symbol": "in³", @@ -3969,6 +3994,11 @@ "symbol": "rep", "to_si_factor": 0.0093 }, + "Q2147412": { + "si_name": "Q100293463", + "symbol": "rhe", + "to_si_factor": 10.0 + }, "Q21489891": { "si_name": "Q25517", "symbol": "nm³", @@ -5314,11 +5344,6 @@ "symbol": "T", "to_si_factor": 907.18474 }, - "Q47083": { - "si_name": "Q47083", - "symbol": "Ω", - "to_si_factor": 1.0 - }, "Q474533": { "si_name": null, "symbol": "At", @@ -6305,7 +6330,7 @@ "to_si_factor": null }, "Q605704": { - "si_name": "Q199", + "si_name": "Q1618549", "symbol": "doz", "to_si_factor": 12.0 }, @@ -6559,16 +6584,6 @@ "symbol": "J/K", "to_si_factor": 1.0 }, - "Q69362731": { - "si_name": "Q69363953", - "symbol": "°C", - "to_si_factor": 1.0 - }, - "Q69363953": { - "si_name": "Q69363953", - "symbol": "K", - "to_si_factor": 1.0 - }, "Q693944": { "si_name": "Q11570", "symbol": "gr", @@ -7109,6 +7124,11 @@ "symbol": "J/nm", "to_si_factor": 1000000000.0 }, + "Q80373219": { + "si_name": "Q106867426", + "symbol": "J/(m³ nm)", + "to_si_factor": 1000000000.0 + }, "Q80374519": { "si_name": "Q80374519", "symbol": "J/m²", @@ -7424,6 +7444,11 @@ "symbol": "at", "to_si_factor": 98066.5 }, + "Q910311": { + "si_name": "Q910311", + "symbol": "lm s", + "to_si_factor": 1.0 + }, "Q911730": { "si_name": "Q179836", "symbol": "nx", @@ -8919,6 +8944,11 @@ "symbol": "M°C", "to_si_factor": null }, + "Q96192470": { + "si_name": "Q96192470", + "symbol": "W/m", + "to_si_factor": 1.0 + }, "Q96236286": { "si_name": null, "symbol": "G°C", @@ -9009,6 +9039,11 @@ "symbol": "m²/sr", "to_si_factor": 1.0 }, + "Q98267267": { + "si_name": "Q98267267", + "symbol": "m²/J", + "to_si_factor": 1.0 + }, "Q98269780": { "si_name": "Q98269780", "symbol": "m²/(sr J)", @@ -9019,6 +9054,11 @@ "symbol": "den", "to_si_factor": 1.111e-07 }, + "Q98538634": { + "si_name": "Q80374519", + "symbol": "eV/m²", + "to_si_factor": 1.60218e-19 + }, "Q98642859": { "si_name": "Q98643033", "symbol": "eV m²/kg", From f0e9c3be8c775eb48ab57864da2fee31b1c67f03 Mon Sep 17 00:00:00 2001 From: return42 Date: Sun, 29 Dec 2024 07:39:55 +0000 Subject: [PATCH 004/417] [data] update searx.data - update_currencies.py --- searx/data/currencies.json | 359 ++++++++++++++++++++++++++++++++++--- 1 file changed, 335 insertions(+), 24 deletions(-) diff --git a/searx/data/currencies.json b/searx/data/currencies.json index 9809d2c03..5d1ad1072 100644 --- a/searx/data/currencies.json +++ b/searx/data/currencies.json @@ -38,6 +38,7 @@ "sv": "Emiratisk dirham", "ta": "ஐக்கிய அரபு அமீரக திர்கம்", "tr": "Birleşik Arap Emirlikleri dirhemi", + "tt": "БГӘ дирһәме", "uk": "дирхам ОАЕ" }, "AFN": { @@ -79,6 +80,7 @@ "sv": "Afghani", "ta": "ஆப்கான் ஆப்கானி", "tr": "Afgani", + "tt": "әфгани", "uk": "Афгані" }, "ALL": { @@ -122,6 +124,7 @@ "sv": "Lek", "ta": "அல்பேனிய லெக்", "tr": "Arnavut leki", + "tt": "Албания лекы", "uk": "Албанський лек" }, "AMD": { @@ -164,6 +167,7 @@ "sv": "Dram", "ta": "ஆர்மேனிய டிராம்", "tr": "Ermeni dramı", + "tt": "Әрмәнстан драмы", "uk": "вірменський драм" }, "ANG": { @@ -197,6 +201,7 @@ "sl": "nizozemskoantilski gulden", "sv": "Antillergulden", "tr": "Hollanda Antilleri guldeni", + "tt": "Нидерланд Антиль утраулары гульдены", "uk": "Нідерландський антильський гульден" }, "AOA": { @@ -236,6 +241,7 @@ "sv": "Kwanza", "ta": "அங்கோலா குவான்சா", "tr": "Kwanza", + "tt": "Ангола кванзасы", "uk": "Ангольська кванза", "vi": "Kwanza Angola" }, @@ -277,6 +283,7 @@ "ta": "ஆர்ஜென்டின பீசோ", "th": "เปโซอาร์เจนตินา", "tr": "Arjantin pesosu", + "tt": "Аргентина песосы", "uk": "аргентинський песо", "vi": "Peso Argentina" }, @@ -322,6 +329,7 @@ "ta": "அவுத்திரேலிய வெள்ளி", "th": "ดอลลาร์ออสเตรเลีย", "tr": "Avustralya doları", + "tt": "Австралия доллары", "uk": "австралійський долар", "vi": "Đô la Úc" }, @@ -359,6 +367,7 @@ "sv": "Arubansk florin", "ta": "அரூபா ஃபுளோரின்", "tr": "Aruba florini", + "tt": "Аруба фларине", "uk": "Арубський флорін" }, "AZN": { @@ -378,7 +387,7 @@ "eu": "Manat azerbaijandar", "fi": "Azerbaidžanin manat", "fr": "manat azerbaïdjanais", - "gl": "Manat acerbaixano", + "gl": "Manat azerí", "he": "מאנאט אזרבייג'ני", "hr": "Azerbajdžanski manat", "hu": "azeri manat", @@ -405,6 +414,7 @@ "ta": "அசர்பைச்சானிய மனாத்து", "th": "มานัตอาเซอร์ไบจาน", "tr": "Azerbaycan manatı", + "tt": "Азәрбайҗан манаты", "uk": "Азербайджанський манат", "vi": "Manat Azerbaijan" }, @@ -445,6 +455,7 @@ "sv": "Konvertibilna marka", "ta": "கன்வர்ட்டிபிள் மார்க்கு", "tr": "Bosna-Hersek değiştirilebilir markı", + "tt": "конвертламалы марка", "uk": "Конвертована марка" }, "BBD": { @@ -478,6 +489,7 @@ "sv": "Barbadisk dollar", "ta": "பார்படோஸ் டாலர்", "tr": "Barbados doları", + "tt": "Барбадос дуллыры", "uk": "Барбадоський долар", "vi": "Đô la Barbados" }, @@ -512,6 +524,7 @@ "sv": "Taka", "ta": "வங்காளதேச இட்டாக்கா", "tr": "Taka", + "tt": "Баңладеш такасы", "uk": "Бангладеська така", "vi": "Taka" }, @@ -555,6 +568,7 @@ "sv": "Lev", "ta": "பல்கேரிய லெவ்", "tr": "Lev", + "tt": "Балгария левы", "uk": "болгарський лев", "vi": "Lev Bulgaria" }, @@ -590,6 +604,7 @@ "sv": "Bahrainsk dinar", "ta": "பஹ்ரேன் தினார்", "tr": "Bahreyn dinarı", + "tt": "Бәхрәйн динары", "uk": "Бахрейнський динар" }, "BIF": { @@ -624,6 +639,7 @@ "sv": "Burundisk franc", "ta": "புரூண்டி பிராங்க்", "tr": "Burundi frangı", + "tt": "Бурунди франкы", "uk": "бурундійський франк" }, "BMD": { @@ -656,6 +672,7 @@ "sv": "Bermudisk dollar", "ta": "பெர்முடா டாலர்", "tr": "Bermuda doları", + "tt": "бирмут дуллыры", "uk": "Бермудський долар", "vi": "Đô la Bermuda" }, @@ -694,6 +711,7 @@ "ta": "புரூணை டாலர்", "th": "ดอลลาร์บรูไน", "tr": "Brunei doları", + "tt": "Бруней доллары", "uk": "Брунейський долар", "vi": "Đô la Brunei" }, @@ -766,7 +784,7 @@ "oc": "Real", "pa": "ਬ੍ਰਾਜ਼ੀਲੀ ਰਿਆਲ", "pl": "Real brazylijski", - "pt": "real", + "pt": "real brasileiro", "ro": "Real", "ru": "бразильский реал", "sk": "Brazílsky real", @@ -776,6 +794,7 @@ "ta": "பிரசிலியன் ரியால்", "th": "เรอัลบราซิล", "tr": "Brezilya reali", + "tt": "Брәзил риялы", "uk": "бразильський реал", "vi": "Real Brasil" }, @@ -811,6 +830,7 @@ "sv": "Bahamansk dollar", "ta": "பஹ்மானிய டாலர்", "tr": "Bahama doları", + "tt": "Баһама дуллыры", "uk": "Багамський долар", "vi": "Đô la Bahamas" }, @@ -854,7 +874,8 @@ "ta": "பூட்டானின் இங்குல்ட்ரம்", "th": "งุลตรัมภูฏาน", "tr": "Ngultrum", - "uk": "Нгултрум", + "tt": "ңгултрум", + "uk": "нгултрум", "vi": "Ngultrum Bhutan" }, "BWP": { @@ -895,6 +916,7 @@ "sv": "Pula", "ta": "போட்ஸ்வானா பூலா", "tr": "Botsvana pulası", + "tt": "Ботсвана пуласы", "uk": "ботсванська пула" }, "BYN": { @@ -934,6 +956,7 @@ "sv": "Belarusisk rubel", "ta": "பெலருசிய ரூபிள்", "tr": "Belarus rublesi", + "tt": "Беларусь сумы", "uk": "білоруський рубль", "vi": "Rúp Belarus" }, @@ -969,6 +992,7 @@ "sv": "Belizisk dollar", "ta": "பெலலீசு டாலர்", "tr": "Belize doları", + "tt": "Белиз дуллыры", "uk": "Белізський долар", "vi": "Đô la Belize" }, @@ -1016,6 +1040,7 @@ "ta": "கனடா டொலர்", "th": "ดอลลาร์แคนาดา", "tr": "Kanada doları", + "tt": "Канада дуллыры", "uk": "канадський долар", "vi": "Đô la Canada" }, @@ -1051,6 +1076,7 @@ "sr": "конгоански франак", "sv": "Kongolesisk franc", "tr": "Kongo frangı", + "tt": "Конго франкы", "uk": "Конголезький франк", "vi": "Franc Congo" }, @@ -1101,6 +1127,7 @@ "te": "స్విస్ ఫ్రాంక్", "th": "ฟรังก์สวิส", "tr": "İsviçre frangı", + "tt": "Швейцария франкы", "uk": "швейцарський франк", "vi": "Franc Thụy Sĩ" }, @@ -1153,11 +1180,12 @@ "ro": "Peso chilian", "ru": "чилийское песо", "sk": "Chilské peso", - "sl": "Čilenski peso", + "sl": "čilski peso", "sr": "чилеански пезос", "sv": "Chilensk peso", "th": "เปโซชิลี", "tr": "Şili pesosu", + "tt": "Чили песосы", "uk": "Чилійський песо", "vi": "Peso Chile" }, @@ -1205,6 +1233,7 @@ "ta": "ரென்மின்பி", "th": "เหรินหมินปี้", "tr": "Renminbi", + "tt": "юән", "uk": "юань женьміньбі", "vi": "nhân dân tệ" }, @@ -1244,6 +1273,7 @@ "sr": "колумбијски пезос", "sv": "Colombiansk peso", "tr": "Kolombiya pesosu", + "tt": "Колумбия песосы", "uk": "Колумбійський песо", "vi": "Peso Colombia" }, @@ -1283,6 +1313,7 @@ "sr": "костарикански колон", "sv": "Costaricansk colón", "tr": "Kosta Rika colónu", + "tt": "Коста-Рика колоны", "uk": "Костариканський колон" }, "CUP": { @@ -1321,6 +1352,7 @@ "sv": "Kubansk peso", "th": "เปโซคิวบา", "tr": "Küba pesosu", + "tt": "Куба писысы", "uk": "Кубинський песо", "vi": "Peso Cuba" }, @@ -1354,6 +1386,7 @@ "sr": "зеленортски ескудо", "sv": "Kapverdisk escudo", "tr": "Yeşil Burun Adaları eskudosu", + "tt": "Кабо-Верде эскудосы", "uk": "Ескудо Кабо-Верде", "vi": "Escudo Cabo Verde" }, @@ -1398,6 +1431,7 @@ "ta": "செக் கொருனா", "th": "โกรูนาเช็ก", "tr": "Çek korunası", + "tt": "Чех кронасы", "uk": "чеська крона", "vi": "Koruna Séc" }, @@ -1432,6 +1466,7 @@ "sr": "џибутски франак", "sv": "Djiboutisk franc", "tr": "Cibuti frangı", + "tt": "Җибути франкы", "uk": "Франк Джибуті" }, "DKK": { @@ -1476,6 +1511,7 @@ "ta": "டானிய குரோன்", "th": "โครเนอเดนมาร์ก", "tr": "Danimarka kronu", + "tt": "Дания кронасы", "uk": "данська крона", "vi": "Krone Đan Mạch" }, @@ -1512,6 +1548,7 @@ "sr": "доминикански пезос", "sv": "Dominikansk peso", "tr": "Dominik pesosu", + "tt": "Доминикана песосы", "uk": "Домініканський песо" }, "DZD": { @@ -1550,11 +1587,12 @@ "sv": "Algerisk dinar", "ta": "அல்ஜீரிய தினார்", "tr": "Cezayir dinarı", + "tt": "Әлҗәзаир франкы", "uk": "Алжирський динар", "vi": "Dinar Algérie" }, "EGP": { - "ar": "جنيه مصري", + "ar": "جنيه ليبي", "bg": "Египетска лира", "bn": "মিশরীয় পাউন্ড", "ca": "lliura egípcia", @@ -1592,6 +1630,7 @@ "sv": "Egyptiskt pund", "th": "ปอนด์อียิปต์", "tr": "Mısır lirası", + "tt": "Мисыр фунты", "uk": "єгипетський фунт", "vi": "Bảng Ai Cập" }, @@ -1624,6 +1663,7 @@ "sr": "еритрејска накфа", "sv": "Nakfa", "tr": "Eritre nakfası", + "tt": "Эритрея накфасы", "uk": "Еритрейська накфа" }, "ETB": { @@ -1658,6 +1698,7 @@ "sr": "етиопски бир", "sv": "Etiopisk Birr", "tr": "Birr", + "tt": "Хәбәшстан быры", "uk": "Ефіопський бир" }, "EUR": { @@ -1707,6 +1748,7 @@ "te": "యూరో", "th": "ยูโร", "tr": "Euro", + "tt": "евро", "uk": "євро", "vi": "Euro" }, @@ -1745,6 +1787,7 @@ "sv": "Fijidollar", "ta": "பிஜி டாலர்", "tr": "Fiji doları", + "tt": "Фиҗи дуллыры", "uk": "долар Фіджі" }, "FKP": { @@ -1777,6 +1820,7 @@ "sl": "falklandski funt", "sv": "Falklandspund", "tr": "Falkland Adaları poundu", + "tt": "Фолкленд утраулары фунты", "uk": "Фолклендський фунт" }, "GBP": { @@ -1822,6 +1866,7 @@ "ta": "பிரித்தானிய பவுண்டு", "th": "ปอนด์สเตอร์ลิง", "tr": "İngiliz sterlini", + "tt": "стерлинг фунты", "uk": "фунт стерлінгів", "vi": "Bảng Anh" }, @@ -1898,6 +1943,7 @@ "sr": "гански седи", "sv": "Ghana Cedi", "tr": "Cedi", + "tt": "Гана седие", "uk": "Ганський седі" }, "GIP": { @@ -1935,6 +1981,7 @@ "sv": "Gibraltarpund", "ta": "கிப்ரால்ட்டர் பவுண்டு", "tr": "Cebelitarık sterlini", + "tt": "Гибралтар фунты", "uk": "гібралтарський фунт", "vi": "Bảng Gibraltar" }, @@ -1972,6 +2019,7 @@ "sr": "гамбијски даласи", "sv": "Dalasi", "tr": "Dalasi", + "tt": "даласи", "uk": "Даласі" }, "GNF": { @@ -2005,6 +2053,7 @@ "sr": "гвинејски франак", "sv": "Guinesisk franc", "tr": "Gine frangı", + "tt": "Гвинея франкы", "uk": "Гвінейський франк" }, "GTQ": { @@ -2041,6 +2090,7 @@ "sr": "гватемалски квецал", "sv": "Quetzal", "tr": "Guatemala quetzalı", + "tt": "Гватемала кетсале", "uk": "Гватемальський кетсаль" }, "GYD": { @@ -2077,6 +2127,7 @@ "sr": "гвајански долар", "sv": "Guyansk dollar", "tr": "Guyana doları", + "tt": "Гаяна доллары", "uk": "гаянський долар" }, "HKD": { @@ -2120,6 +2171,7 @@ "ta": "ஹொங்கொங் டொலர்", "th": "ดอลลาร์ฮ่องกง", "tr": "Hong Kong doları", + "tt": "Һоңкоң дуллыры", "uk": "гонконзький долар", "vi": "đô la Hồng Kông" }, @@ -2157,6 +2209,7 @@ "sr": "хондурашка лемпира", "sv": "Lempira", "tr": "Honduras lempirası", + "tt": "Һондурас лемпирасы", "uk": "Гондураська лемпіра" }, "HTG": { @@ -2231,6 +2284,7 @@ "ta": "அங்கேரிய போரிண்ட்", "th": "โฟรินต์ฮังการี", "tr": "Macar forinti", + "tt": "Маҗарстан форинты", "uk": "угорський форинт", "vi": "Forint" }, @@ -2271,6 +2325,7 @@ "ta": "இந்தோனேசிய ரூபாய்", "th": "รูปียะฮ์", "tr": "Endonezya rupiahı", + "tt": "Инданизия рупиясе", "uk": "індонезійська рупія", "vi": "Rupiah" }, @@ -2317,6 +2372,7 @@ "sv": "Shekel", "ta": "புது இசுரேலிய சேக்கல்", "tr": "Yeni İsrail Şekeli", + "tt": "Исраил шекеле", "uk": "ізраїльський новий шекель" }, "INR": { @@ -2363,6 +2419,7 @@ "te": "రూపాయి", "th": "รูปีอินเดีย", "tr": "Hindistan rupisi", + "tt": "Һиндстан рупиясе", "uk": "індійська рупія", "vi": "Rupee Ấn Độ" }, @@ -2399,6 +2456,7 @@ "ta": "இராக்கிய தீனார்", "th": "ดินาร์อิรัก", "tr": "Irak dinarı", + "tt": "Гыйрак фунты", "uk": "іракський динар" }, "IRR": { @@ -2438,6 +2496,7 @@ "sr": "ирански ријал", "sv": "Iransk rial", "tr": "İran riyali", + "tt": "Иран риалы", "uk": "Іранський ріал", "vi": "Rial Iran" }, @@ -2478,6 +2537,7 @@ "sv": "Isländsk krona", "ta": "ஐஸ்லாந்திய குரோனா", "tr": "İzlanda kronası", + "tt": "Исландия кронасы", "uk": "Ісландська крона" }, "JMD": { @@ -2511,6 +2571,7 @@ "sr": "јамајкански долар", "sv": "Jamaicansk dollar", "tr": "Jamaika doları", + "tt": "Ямайка дуллыры", "uk": "Ямайський долар" }, "JOD": { @@ -2550,6 +2611,7 @@ "sr": "јордански динар", "sv": "Jordansk dinar", "tr": "Ürdün dinarı", + "tt": "Үрдүн динары", "uk": "Йорданський динар" }, "JPY": { @@ -2595,6 +2657,7 @@ "ta": "யென்", "th": "เยน", "tr": "Japon yeni", + "tt": "япон иенасы", "uk": "єна", "vi": "Yên Nhật" }, @@ -2631,6 +2694,7 @@ "sr": "кенијски шилинг", "sv": "Kenyansk shilling", "tr": "Kenya şilini", + "tt": "Кения шиллингы", "uk": "кенійський шилінг" }, "KGS": { @@ -2664,6 +2728,7 @@ "sr": "киргиски сом", "sv": "Kirgizistansk som", "tr": "Kırgızistan somu", + "tt": "кыргыз сумы", "uk": "сом" }, "KHR": { @@ -2702,6 +2767,7 @@ "ta": "ரைல்", "th": "เรียลกัมพูชา", "tr": "Riel", + "tt": "Камбоҗа риеле", "uk": "Камбоджійський рієль", "vi": "Riel Campuchia" }, @@ -2734,6 +2800,7 @@ "sr": "коморски франак", "sv": "Komoransk franc", "tr": "Komor frangı", + "tt": "Комор франкы", "uk": "Коморський франк" }, "KPW": { @@ -2772,6 +2839,7 @@ "sv": "Nordkoreansk won", "th": "วอน", "tr": "Kuzey Kore wonu", + "tt": "КХДҖ воны", "uk": "Північнокорейська вона", "vi": "Won Cộng hòa Dân chủ Nhân dân Triều Tiên" }, @@ -2814,6 +2882,7 @@ "sv": "Sydkoreansk won", "th": "วอน", "tr": "Güney Kore wonu", + "tt": "Көньяк Корея воны", "uk": "південнокорейська вона", "vi": "Won Hàn Quốc" }, @@ -2854,6 +2923,7 @@ "sv": "Kuwaitisk dinar", "ta": "குவைத் தினார்", "tr": "Kuveyt dinarı", + "tt": "Кувәйт динары", "uk": "Кувейтський динар", "vi": "Dinar Kuwait" }, @@ -2903,6 +2973,7 @@ "eu": "Kazakhstani Tenge", "fi": "Kazakstanin tenge", "fr": "tenge kazakh", + "gl": "tenge kazakh", "he": "טנגה", "hr": "Kazahstanski tenge", "hu": "kazah tenge", @@ -2929,6 +3000,7 @@ "ta": "கசக்ஸ்தானிய டெங்கே", "th": "เท็งเก", "tr": "Tenge", + "tt": "Казакъстан тәңкәсе", "uk": "Казахстанський тенге", "vi": "Tenge Kazakhstan" }, @@ -2966,6 +3038,7 @@ "sv": "Laotisk Kip", "th": "กีบ", "tr": "Laos kipi", + "tt": "лаослы кип", "uk": "Лаоський кіп", "vi": "Kíp Lào" }, @@ -3001,6 +3074,7 @@ "sr": "либанска фунта", "sv": "Libanesiskt pund", "tr": "Lübnan lirası", + "tt": "Ливан фунты", "uk": "Ліванський фунт" }, "LKR": { @@ -3040,6 +3114,7 @@ "sv": "Lankesisk rupie", "ta": "இலங்கை ரூபாய்", "tr": "Sri Lanka rupisi", + "tt": "Шри-Ланка рупиясе", "uk": "ланкійська рупія", "vi": "Rupee Sri Lanka" }, @@ -3075,6 +3150,7 @@ "sv": "Liberiansk dollar", "th": "ดอลลาร์ไลบีเรีย", "tr": "Liberya doları", + "tt": "Либерия доллары", "uk": "Ліберійський долар" }, "LSL": { @@ -3107,6 +3183,7 @@ "sr": "лесотски лоти", "sv": "Lesothisk Loti", "tr": "Loti", + "tt": "Лесото лотие", "uk": "Лоті" }, "LYD": { @@ -3141,6 +3218,7 @@ "sr": "либијски динар", "sv": "Libysk dinar", "tr": "Libya dinarı", + "tt": "Ливия динары", "uk": "Лівійський динар" }, "MAD": { @@ -3178,6 +3256,7 @@ "sr": "марокански дирхам", "sv": "Marockansk dirham", "tr": "Fas dirhemi", + "tt": "Марокко дирһәме", "uk": "Марокканський дирхам" }, "MDL": { @@ -3217,6 +3296,7 @@ "sv": "Moldavisk leu", "ta": "மல்டோவிய லியு", "tr": "Moldova leyi", + "tt": "Молдова лее", "uk": "молдовський лей" }, "MGA": { @@ -3249,6 +3329,7 @@ "sr": "ариари", "sv": "Madagaskisk ariary", "tr": "Ariary", + "tt": "малагаси ариарие", "uk": "Малагасійський аріарі" }, "MKD": { @@ -3259,7 +3340,7 @@ "cy": "denar (Macedonia)", "da": "Makedonske denarer", "de": "mazedonischer Denar", - "en": "Macedonian denar", + "en": "North Macedonian denar", "eo": "makedona denaro", "es": "denar macedonio", "et": "Makedoonia denaar", @@ -3290,6 +3371,7 @@ "ta": "மாசிடோனிய தெனார்", "th": "แดนาร์มาซิโดเนีย", "tr": "Makedon denarı", + "tt": "Македония динары", "uk": "Македонський денар", "vi": "Denar Bắc Macedonia" }, @@ -3363,6 +3445,7 @@ "sv": "Mongolisk Tögrög", "th": "ทูกรีก", "tr": "Tögrög", + "tt": "төгрөг", "uk": "Монгольський тугрик", "vi": "Tögrög" }, @@ -3432,6 +3515,7 @@ "sr": "мауританска огија", "sv": "Mauretansk ouguiya", "tr": "Ugiya", + "tt": "Мавритания үкыясе", "uk": "Мавританська угія" }, "MUR": { @@ -3465,6 +3549,7 @@ "sr": "маурицијска рупија", "sv": "Mauritisk rupie", "tr": "Mauritius rupisi", + "tt": "Маврикий рупиясе", "uk": "Маврикійська рупія" }, "MVR": { @@ -3502,6 +3587,7 @@ "sv": "Rufiyah", "ta": "மாலத்தீவின் ருஃபியா", "tr": "Rufiyaa", + "tt": "Мальдив руфиясе", "uk": "Мальдівська руфія" }, "MWK": { @@ -3533,6 +3619,7 @@ "sr": "малавијска квача", "sv": "Malawisk kwacha", "tr": "Malavi kwachası", + "tt": "Малави квачасы", "uk": "Малавійська квача" }, "MXN": { @@ -3573,6 +3660,7 @@ "sv": "Mexikansk peso", "ta": "மெக்சிகோ பெசோ", "tr": "Meksika pesosu", + "tt": "Миксикә писысы", "uk": "мексиканський песо", "vi": "Peso Mexico" }, @@ -3619,6 +3707,7 @@ "ta": "மலேசிய ரிங்கிட்", "th": "ริงกิต", "tr": "Ringgit", + "tt": "Малайзия риңгиты", "uk": "малайзійський ринґіт", "vi": "Ringgit" }, @@ -3653,6 +3742,7 @@ "sr": "мозамбички метикал", "sv": "Moçambikisk Metical", "tr": "Metical", + "tt": "Мозамбик метикалы", "uk": "Мозамбіцький метікал" }, "NAD": { @@ -3688,6 +3778,7 @@ "sr": "намибијски долар", "sv": "Namibisk dollar", "tr": "Namibya doları", + "tt": "Намибия доллары", "uk": "намібійський долар" }, "NGN": { @@ -3723,6 +3814,7 @@ "sv": "Nigeriansk naira", "th": "ไนรา", "tr": "Nijerya nairası", + "tt": "Нигерия найрасы", "uk": "нігерійська найра" }, "NIO": { @@ -3800,12 +3892,13 @@ "sv": "norsk krona", "ta": "நார்வே குரோனா", "tr": "Norveç kronu", + "tt": "Норвегия кронасы", "uk": "норвезька крона", "vi": "Krone Na Uy" }, "NPR": { "af": "Nepalese Rupee", - "ar": "روبي نيبالي", + "ar": "روبية نيبالية", "bg": "Непалска рупия", "bn": "নেপালি রুপি", "ca": "rupia nepalesa", @@ -3843,6 +3936,7 @@ "ta": "நேபாள ரூபாய்", "th": "รูปีเนปาล", "tr": "Nepal rupisi", + "tt": "Непал рупиясе", "uk": "Непальська рупія", "vi": "Rupee Nepal" }, @@ -3885,6 +3979,7 @@ "sv": "Nyzeeländsk dollar", "th": "ดอลลาร์นิวซีแลนด์", "tr": "Yeni Zelanda doları", + "tt": "Яңа Зеландия доллары", "uk": "новозеландський долар", "vi": "Đô la New Zealand" }, @@ -3920,6 +4015,7 @@ "sv": "Omansk rial", "ta": "ஓமானி ரியால்", "tr": "Umman riyali", + "tt": "Оман риалы", "uk": "Оманський ріал" }, "PAB": { @@ -3956,6 +4052,7 @@ "sr": "панамска балбоа", "sv": "Panamansk balboa", "tr": "Panama balboası", + "tt": "Панама бальбоасы", "uk": "Панамське бальбоа" }, "PEN": { @@ -3990,6 +4087,7 @@ "sr": "перуански нови сол", "sv": "Nuevo sol", "tr": "Nuevo Sol", + "tt": "Перу яңа соле", "uk": "Новий соль", "vi": "Sol Peru" }, @@ -4026,6 +4124,7 @@ "sv": "Papuansk Kina", "th": "กีนา", "tr": "Papua Yeni Gine kinası", + "tt": "кина", "uk": "Кіна", "vi": "Kina Papua New Guinea" }, @@ -4062,6 +4161,7 @@ "ta": "பிலிப்பைன் பெசோ", "th": "เปโซฟิลิปปินส์", "tr": "Filipinler pesosu", + "tt": "Филипин писысы", "uk": "філіппінський песо", "vi": "peso Philippines" }, @@ -4103,6 +4203,7 @@ "sv": "Pakistansk rupee", "ta": "பாக்கித்தானிய ரூபாய்", "tr": "Pakistan rupisi", + "tt": "Пакстан рупиясе", "uk": "пакистанська рупія", "vi": "Rupee Pakistan" }, @@ -4147,6 +4248,7 @@ "ta": "ஸ்வாட்டெ", "th": "ซวอตือ", "tr": "Złoty", + "tt": "Польша злотые", "uk": "злотий", "vi": "Złoty Ba Lan" }, @@ -4191,6 +4293,7 @@ "ta": "ஸ்வாட்டெ", "th": "ซวอตือ", "tr": "Złoty", + "tt": "Польша злотые", "uk": "злотий", "vi": "Złoty Ba Lan" }, @@ -4225,6 +4328,7 @@ "sr": "парагвајски гварани", "sv": "Guarani", "tr": "Paraguay guaranísi", + "tt": "Парагвай гуарание", "uk": "Парагвайський гуарані" }, "QAR": { @@ -4259,6 +4363,7 @@ "ta": "கத்தாரி ரியால்", "th": "ริยาลกาตาร์", "tr": "Katar riyali", + "tt": "Катар риалы", "uk": "Катарський ріал", "vi": "Riyal Qatar" }, @@ -4300,6 +4405,7 @@ "ta": "ரொமேனிய லியு", "th": "เลวูโรมาเนีย", "tr": "Rumen leyi", + "tt": "Румыния лее", "uk": "румунський лей", "vi": "Leu România" }, @@ -4342,6 +4448,7 @@ "sv": "Serbisk dinar", "ta": "செர்பிய தினார்", "tr": "Sırp dinarı", + "tt": "Сербия динары", "uk": "сербський динар", "vi": "Dinar Serbia" }, @@ -4389,6 +4496,7 @@ "ta": "உருசிய ரூபிள்", "th": "รูเบิลรัสเซีย", "tr": "Rus rublesi", + "tt": "Россия сумы", "uk": "російський рубль", "vi": "Rúp Nga" }, @@ -4423,6 +4531,7 @@ "sr": "руандски франак", "sv": "Rwandisk franc", "tr": "Ruanda frangı", + "tt": "Руанда франкы", "uk": "Руандійський франк" }, "SAR": { @@ -4463,6 +4572,7 @@ "sv": "Saudiarabisk rial", "ta": "சவூதி ரியால்", "tr": "Suudi Arabistan riyali", + "tt": "Согуд риялы", "uk": "саудівський ріал", "vi": "Riyal Ả Rập Xê Út" }, @@ -4497,6 +4607,7 @@ "sr": "соломонски долар", "sv": "Salomondollar", "tr": "Solomon Adaları doları", + "tt": "Сөләйман утраулары дуллыры", "uk": "Долар Соломонових островів" }, "SCR": { @@ -4530,6 +4641,7 @@ "sr": "сејшелска рупија", "sv": "Seychellisk rupee", "tr": "Seyşeller rupisi", + "tt": "сейшел рупиясе", "uk": "Сейшельська рупія" }, "SDG": { @@ -4564,6 +4676,7 @@ "sr": "суданска фунта", "sv": "Sudanesiskt pund", "tr": "Sudan sterlini", + "tt": "Судан фунты", "uk": "Суданський фунт" }, "SEK": { @@ -4607,6 +4720,7 @@ "ta": "சுவீடிய குரோனா", "th": "ครูนาสวีเดน", "tr": "İsveç kronu", + "tt": "Шевитсә кронасы", "uk": "шведська крона", "vi": "Krona Thụy Điển" }, @@ -4650,6 +4764,7 @@ "ta": "சிங்கப்பூர் வெள்ளி", "th": "ดอลลาร์สิงคโปร์", "tr": "Singapur doları", + "tt": "Сингапур доллары", "uk": "сінгапурський долар", "vi": "Đô la Singapore" }, @@ -4677,6 +4792,7 @@ "sk": "Libra svätej Heleny", "sv": "Sankthelenskt pund", "tr": "Saint Helena sterlini", + "tt": "Изге Елена фунты", "uk": "Фунт Святої Єлени" }, "SLE": { @@ -4711,6 +4827,7 @@ "sr": "сијералеонски леоне", "sv": "Sierraleonsk Leone", "tr": "Sierra Leone leonesi", + "tt": "леоне", "uk": "леоне" }, "SOS": { @@ -4744,6 +4861,7 @@ "sr": "сомалијски шилинг", "sv": "Somalisk shilling", "tr": "Somali şilini", + "tt": "Сомали шиллингы", "uk": "сомалійський шилінг" }, "SRD": { @@ -4776,6 +4894,7 @@ "sr": "суринамски долар", "sv": "Surinamesisk dollar", "tr": "Surinam doları", + "tt": "Суринам доллары", "uk": "Суринамський долар" }, "SSP": { @@ -4813,6 +4932,7 @@ "sv": "Sydsudanesiskt pund", "th": "ปอนด์ซูดานใต้", "tr": "Güney Sudan sterlini", + "tt": "Көньяк Судан фунты", "uk": "Південносуданський фунт", "vi": "Bảng Nam Sudan" }, @@ -4848,6 +4968,7 @@ "sr": "саотомска добра", "sv": "Saotomeansk Dobra", "tr": "São Tomé ve Príncipe dobrası", + "tt": "Сан-Томе һәм Принсипи добрасы", "uk": "Добра Сан-Томе і Принсіпі" }, "SYP": { @@ -4863,6 +4984,7 @@ "es": "Dolar sirio", "fi": "Syyrian punta", "fr": "livre syrienne", + "gl": "libra siria", "he": "לירה סורית", "hr": "Sirijska funta", "hu": "szír font", @@ -4882,7 +5004,8 @@ "sr": "сиријска фунта", "sv": "Syriskt pund", "tr": "Suriye lirası", - "uk": "Сирійський фунт" + "tt": "Сүрия фунты", + "uk": "cирійський фунт" }, "SZL": { "af": "Lilangeni", @@ -4915,6 +5038,7 @@ "sr": "свазилендски лилангени", "sv": "Swazisk lilangeni", "tr": "Lilangeni", + "tt": "Эсватини лилангение", "uk": "Ліланджені", "vi": "Lilangeni Swaziland" }, @@ -4958,6 +5082,7 @@ "ta": "தாய்லாந்தின் பாட்", "th": "บาท", "tr": "Baht", + "tt": "тай баты", "uk": "бат", "vi": "Baht" }, @@ -4997,6 +5122,7 @@ "sr": "таџикистански сомони", "sv": "Tadzjikistansk somoni", "tr": "Somoni", + "tt": "Таҗикстан самание", "uk": "Таджицький сомоні" }, "TMT": { @@ -5033,6 +5159,7 @@ "sv": "Turkmenistansk manat", "th": "มานัตเติร์กเมนิสถาน", "tr": "Türkmenistan manatı", + "tt": "Төрекмәнстан манаты", "uk": "туркменський манат", "vi": "Manat Turkmenistan" }, @@ -5068,6 +5195,7 @@ "sr": "туниски динар", "sv": "Tunisisk dinar", "tr": "Tunus dinarı", + "tt": "Тунис динары", "uk": "Туніський динар" }, "TOP": { @@ -5100,6 +5228,7 @@ "sv": "Tongansk pa'anga", "th": "ปาอางา", "tr": "Pa'anga", + "tt": "Тонга пааңгасы", "uk": "Тонганська паанга", "vi": "Paʻanga Tonga" }, @@ -5146,7 +5275,8 @@ "ta": "துருக்கிய லிரா", "th": "ลีราใหม่ตุรกี", "tr": "Türk lirası", - "uk": "Турецька ліра", + "tt": "Төркия лирасы", + "uk": "турецька ліра", "vi": "Lira Thổ Nhĩ Kỳ" }, "TTD": { @@ -5220,6 +5350,7 @@ "sv": "Taiwanesisk dollar", "th": "ดอลลาร์ไต้หวันใหม่", "tr": "Yeni Tayvan doları", + "tt": "яңа Тәйвән дуллыры", "uk": "новий тайванський долар", "vi": "Tân Đài tệ" }, @@ -5252,6 +5383,7 @@ "sr": "танзанијски шилинг", "sv": "Tanzanisk shilling", "tr": "Tanzanya şilini", + "tt": "Танзания шиллингы", "uk": "танзанійський шилінг" }, "UAH": { @@ -5294,6 +5426,7 @@ "ta": "ஹிருன்யா", "th": "ฮรึวญา", "tr": "grivna", + "tt": "гривна", "uk": "гривня", "vi": "hryvnia Ukraina" }, @@ -5327,6 +5460,7 @@ "sr": "угандски шилинг", "sv": "Ugandisk shilling", "tr": "Uganda şilini", + "tt": "Уганда шиллинге", "uk": "угандійський шилінг" }, "USD": { @@ -5377,6 +5511,7 @@ "te": "యునైటెడ్ స్టేట్స్ డాలర్", "th": "ดอลลาร์สหรัฐ", "tr": "Amerikan doları", + "tt": "АКШ доллары", "uk": "долар США", "vi": "đô la Mỹ" }, @@ -5420,6 +5555,7 @@ "sr": "уругвајски пезос", "sv": "Uruguayansk peso", "tr": "Uruguay pesosu", + "tt": "Уругвай песосы", "uk": "Уругвайський песо" }, "UYW": { @@ -5456,7 +5592,8 @@ "sr": "узбекистански сом", "sv": "Uzbekistansk som", "tr": "Özbekistan somu", - "uk": "Узбецький сом" + "tt": "Үзбәкстан сумы", + "uk": "узбецький сом" }, "VED": { "en": "Digital bolívar", @@ -5476,6 +5613,7 @@ "ru": "Суверенный боливар", "sk": "suverénny bolivar", "sl": "suvereni bolivar", + "tt": "суверен боливар", "uk": "Суверенний Болівар" }, "VND": { @@ -5513,6 +5651,7 @@ "sv": "Vietnamesisk dong", "th": "ด่ง", "tr": "Đồng", + "tt": "Вьетнам донгы", "uk": "в'єтнамський донг", "vi": "Việt Nam Đồng" }, @@ -5578,6 +5717,7 @@ "sk": "Tala", "sr": "самоанска тала", "sv": "Samoansk Tala", + "tt": "самоа таласы", "uk": "Самоанська тала" }, "XAF": { @@ -5613,6 +5753,7 @@ "sv": "Centralafrikansk CFA Franc", "ta": "மத்திய ஆப்பிரிக்க சி.எஃப்.ஏ பிராங்க்", "tr": "Orta Afrika CFA frangı", + "tt": "КФА BEAC франкы", "uk": "центральноафриканський франк", "vi": "CFA franc Trung Phi" }, @@ -5696,6 +5837,7 @@ "sv": "Östkaribisk dollar", "ta": "கிழக்குக் கரிபியன் டாலர்", "tr": "Doğu Karayip doları", + "tt": "Көнчыгыш Кариб дуллыры", "uk": "Східно-карибський долар", "vi": "Đô la Đông Caribe" }, @@ -5732,6 +5874,7 @@ "ta": "Special drawings right", "th": "สิทธิพิเศษถอนเงิน", "tr": "Özel çekme hakları", + "tt": "бурыч алуларның махсус хокукы", "uk": "Спеціальні права запозичення", "vi": "Quyền rút vốn đặc biệt" }, @@ -5766,6 +5909,7 @@ "sv": "CFA Franc", "ta": "மேற்கு ஆபிரிக்க சி.எஃப்.ஏ பிராங்க்", "tr": "Batı Afrika CFA frangı", + "tt": "КФА франкы", "uk": "західноафриканський франк", "vi": "CFA franc Tây Phi" }, @@ -5808,6 +5952,7 @@ "sr": "француски тихоокеански франак", "sv": "CFP-franc", "tr": "CFP frangı", + "tt": "Тын океан франсуз франкы", "uk": "Французький тихоокеанський франк", "vi": "Franc CFP" }, @@ -5875,6 +6020,7 @@ "sr": "јеменски ријал", "sv": "Jemenitisk rial", "tr": "Yemen riyali", + "tt": "Йәмән риалы", "uk": "Єменський ріал" }, "ZAR": { @@ -5915,6 +6061,7 @@ "sr": "јужноафрички ранд", "sv": "Rand", "tr": "Güney Afrika randı", + "tt": "Көньяк Африка ранды", "uk": "Ранд" }, "ZMW": { @@ -5949,6 +6096,7 @@ "sr": "замбијска квача", "sv": "Zambisk kwacha", "tr": "Zambiya kwachası", + "tt": "Замбия квачасы", "uk": "Замбійська квача" }, "ZWG": { @@ -6033,6 +6181,7 @@ "$nz": "NZD", "$u": "UYU", "$usd": "USD", + "1000 lira": "LBP", "100ドル紙幣": "NIO", "2019 zimbabwean dollar": "ZWL", "5th zimbabwean dollar": "ZWL", @@ -6234,6 +6383,7 @@ "amd": "AMD", "american dollar": "USD", "american dollars": "USD", + "american money": "USD", "americký dolar": "USD", "americký dolár": "USD", "američki dolar": "USD", @@ -6649,7 +6799,6 @@ "britská libra": "GBP", "brittiska pund": "GBP", "brittiskt pund": "GBP", - "brl": "BRL", "brunei doları": "BND", "brunei dollar": "BND", "brunei dollár": "BND", @@ -6805,6 +6954,7 @@ "chilei peso": "CLP", "chilen peso": "CLP", "chilenischer peso": "CLP", + "chileno": "CLP", "chilensk peso": "CLP", "chilské peso": "CLP", "chinese renminbi": "CNY", @@ -6973,6 +7123,7 @@ "čínský jüan": "CNY", "čīles peso": "CLP", "çek korunası": "CZK", + "cирійський фунт": "SYP", "d.r.": "EGP", "da": "DZD", "dalase": "GMD", @@ -7223,8 +7374,8 @@ "dircham": "AED", "direitos especiais de saque": "XDR", "dirham": [ - "AED", - "MAD" + "MAD", + "AED" ], "dirham arab emirat": "AED", "dirham de emiratos arabes unidos": "AED", @@ -7697,6 +7848,7 @@ "dólar bermudeño": "BMD", "dólar bruneano": "BND", "dólar bruneíno": "BND", + "dólar caimanés": "KYD", "dólar caimano": "KYD", "dólar canadense": "CAD", "dólar canadiano": "CAD", @@ -7771,6 +7923,7 @@ "dólar estadounidense": "USD", "dólar fidxiano": "FJD", "dólar fijiano": "FJD", + "dólar fixiano": "FJD", "dólar fiyiano": "FJD", "dólar guianense": "GYD", "dólar guyanes": "GYD", @@ -8740,7 +8893,6 @@ "južnoafrički rand": "ZAR", "južnoafriški rand": "ZAR", "južnokorejski von": "KRW", - "južnokorejski won": "KRW", "južnosudanska funta": "SSP", "jüan": "CNY", "k": [ @@ -9117,7 +9269,6 @@ "SLE", "EGP" ], - "lebanese lira": "LBP", "lebanese pound": "LBP", "leev": "BGN", "lei": [ @@ -9596,6 +9747,7 @@ "mauritanijos ugija": "MRU", "mauritanijska ouguja": "MRU", "mauritanijska uguija": "MRU", + "mauritanska ouguja": "MRU", "mauritániai ouguiya": "MRU", "mauritánska ukíjá": "MRU", "mauritánská ukíjá": "MRU", @@ -9888,6 +10040,7 @@ "norská koruna": "NOK", "norske kroner": "NOK", "north korean won": "KPW", + "north macedonian denar": "MKD", "norveç kronu": "NOK", "norvega krono": "NOK", "norvegia krono": "NOK", @@ -10471,7 +10624,6 @@ "quipe": "LAK", "quyền rút vốn đặc biệt": "XDR", "qəpik": "AZN", - "r$": "BRL", "rand": "ZAR", "rand afrika selatan": "ZAR", "rand de affrica": "ZAR", @@ -10495,7 +10647,6 @@ "real": "BRL", "real brasil": "BRL", "real brasileiro": "BRL", - "real brasileno": "BRL", "real brasileño": "BRL", "real brasiler": "BRL", "real brasiliano": "BRL", @@ -10656,8 +10807,7 @@ "rp": "IDR", "rs": [ "PKR", - "MUR", - "BRL" + "MUR" ], "rsd": "RSD", "rtgs 달러": "ZWL", @@ -12170,12 +12320,16 @@ "авганистански афган": "AFN", "австралийски долар": "AUD", "австралийский доллар": "AUD", + "австралия доллары": "AUD", "австралійський долар": "AUD", "австралійський фунт стерлінгів": "GBP", "азербайджански манат": "AZN", "азербайджанский манат": "AZN", "азербайджанський манат": "AZN", "азербејџански манат": "AZN", + "азәрбайҗан манаты": "AZN", + "акш доллары": "USD", + "албания лекы": "ALL", "албански лек": "ALL", "албанский лек": "ALL", "албанський лек": "ALL", @@ -12189,11 +12343,13 @@ "английский фунт": "GBP", "английский фунт стерлингов": "GBP", "англійський фунт стерлінгів": "GBP", + "ангола кванзасы": "AOA", "анголска кванза": "AOA", "анголска нова кванза": "AOA", "ангольская кванза": "AOA", "ангольська кванза": "AOA", "аоминська патака": "MOP", + "аргентина песосы": "ARS", "аргентински пезос": "ARS", "аргентински песо": "ARS", "аргентинское песо": "ARS", @@ -12204,6 +12360,7 @@ "аријари": "MGA", "арменски драм": "AMD", "армянский драм": "AMD", + "аруба фларине": "AWG", "арубанский гульден": "AWG", "арубанский флорин": "AWG", "арубський флорин": "AWG", @@ -12218,11 +12375,13 @@ "багамский доллар": "BSD", "багамський долар": "BSD", "балбоа": "PAB", + "балгария левы": "BGN", "бальбао": "PAB", "бальбоа": "PAB", "бангладеська така": "BDT", "бангладешка така": "BDT", "бангладешская така": "BDT", + "барбадос дуллыры": "BBD", "барбадоски долар": "BBD", "барбадосский доллар": "BBD", "барбадоський долар": "BBD", @@ -12232,7 +12391,12 @@ "бахрейнский динар": "BHD", "бахрейнський динар": "BHD", "бахреински динар": "BHD", + "баңладеш такасы": "BDT", + "баһама дуллыры": "BSD", + "бгә дирһәме": "AED", "беларуска рубла": "BYN", + "беларусь сумы": "BYN", + "белиз дуллыры": "BZD", "белизе долар": "BZD", "белизејски долар": "BZD", "белизийски долар": "BZD", @@ -12246,6 +12410,7 @@ "бермудский доллар": "BMD", "бермудський долар": "BMD", "бирманский кьят": "MMK", + "бирмут дуллыры": "BMD", "болгарский лев": "BGN", "болгарський лев": "BGN", "боливар": "VES", @@ -12260,6 +12425,7 @@ "босненска конвертируема марка": "BAM", "боснийская конвертируемая марка": "BAM", "боснийская марка": "BAM", + "ботсвана пуласы": "BWP", "ботсванска пула": "BWP", "ботсванская пула": "BWP", "ботсванська пула": "BWP", @@ -12277,15 +12443,19 @@ "британски паунд": "GBP", "британский фунт": "GBP", "британський фунт": "GBP", + "бруней доллары": "BND", "брунейски долар": "BND", "брунейский доллар": "BND", "брунейський долар": "BND", "брунејски долар": "BND", + "брәзил риялы": "BRL", "бугарски лев": "BGN", + "бурунди франкы": "BIF", "бурундийски франк": "BIF", "бурундийский франк": "BIF", "бурундски франак": "BIF", "бурундійський франк": "BIF", + "бурыч алуларның махсус хокукы": "XDR", "бутански нгултрум": "BTN", "бутанский нгултрум": "BTN", "български лев": "BGN", @@ -12293,6 +12463,7 @@ "быр": "ETB", "білоруський рубель": "BYN", "білоруський рубль": "BYN", + "бәхрәйн динары": "BHD", "в'єтнамський донг": "VND", "валюта абхазии": "RUB", "валюта австралии": "AUD", @@ -12481,6 +12652,7 @@ "восстановленная кванза": "AOA", "восточно карибский доллар": "XCD", "восточнокарибский доллар": "XCD", + "вьетнам донгы": "VND", "вьетнамский донг": "VND", "вірменський драм": "AMD", "гайанский доллар": "GYD", @@ -12489,15 +12661,18 @@ "гамбийско даласи": "GMD", "гамбијски даласи": "GMD", "гамбійський даласі": "GMD", + "гана седие": "GHS", "ганайско кеди": "GHS", "ганайско седи": "GHS", "гански седи": "GHS", "ганский седи": "GHS", "ганський седі": "GHS", + "гаяна доллары": "GYD", "гаянски долар": "GYD", "гаянський долар": "GYD", "гаїтянський гурд": "HTG", "гварани": "PYG", + "гватемала кетсале": "GTQ", "гватемалски квецал": "GTQ", "гватемалски кецал": "GTQ", "гватемальский кетсаль": "GTQ", @@ -12509,8 +12684,10 @@ "гвиански долар": "GYD", "гвинейски франк": "GNF", "гвинейский франк": "GNF", + "гвинея франкы": "GNF", "гвинејски франак": "GNF", "гвінейський франк": "GNF", + "гибралтар фунты": "GIP", "гибралтарска лира": "GIP", "гибралтарска фунта": "GIP", "гибралтарский фунт": "GIP", @@ -12534,9 +12711,11 @@ "гуарани": "PYG", "гуварани": "PYG", "гурд": "HTG", + "гыйрак фунты": "IQD", "гібралтарський фунт": "GIP", "даласи": "GMD", "даласі": "GMD", + "дания кронасы": "DKK", "данска круна": "DKK", "данська крона": "DKK", "датска крона": "DKK", @@ -12613,6 +12792,7 @@ "доллар тонги": "TOP", "доллар тринидада и тобаго": "TTD", "доллар фиджи": "FJD", + "доминикана песосы": "DOP", "доминикански пезос": "DOP", "доминикански песо": "DOP", "доминиканско песо": "DOP", @@ -12621,6 +12801,7 @@ "домініканський песо": "DOP", "донг": "VND", "драм": "AMD", + "евра́": "EUR", "евро": "EUR", "египатска фунта": "EGP", "египетска лира": "EGP", @@ -12641,6 +12822,7 @@ "жэньминьби": "CNY", "зайчик": "BYN", "замбийская квача": "ZMW", + "замбия квачасы": "ZMW", "замбијска квача": "ZMW", "замбійська квача": "ZMW", "западно африканский франк кфа": "XOF", @@ -12672,11 +12854,16 @@ "йена": "JPY", "йордански динар": "JOD", "йорданський динар": "JOD", + "йывра́": "EUR", + "йывры": "EUR", + "йәмән риалы": "YER", "иена": "JPY", + "изге елена фунты": "SHP", "израелски нов шекел": "ILS", "израелски шекел": "ILS", "израильский новый шекель": "ILS", "източнокарибски долар": "XCD", + "инданизия рупиясе": "IDR", "индийска рупия": "INR", "индийская рупия": "INR", "индијска рупија": "INR", @@ -12687,16 +12874,21 @@ "иорданский динар": "JOD", "иракски динар": "IQD", "иракский динар": "IQD", + "иран риалы": "IRR", "ирански риал": "IRR", "ирански ријал": "IRR", "иранский риал": "IRR", "иранский риял": "IRR", "ирачки динар": "IQD", + "исландия кронасы": "ISK", "исландска крона": "ISK", "исландска круна": "ISK", "исландская крона": "ISK", + "исраил шекеле": "ILS", "источнокарипски долар": "XCD", "кабо верде ескудо": "CVE", + "кабо верде эскудосы": "CVE", + "казакъстан тәңкәсе": "KZT", "казахский тенге": "KZT", "казахстански тенге": "KZT", "казахстанский тенге": "KZT", @@ -12707,9 +12899,12 @@ "камбоджийский риель": "KHR", "камбоджійський рієль": "KHR", "камбоџански ријел": "KHR", + "камбоҗа риеле": "KHR", + "канада дуллыры": "CAD", "канадски долар": "CAD", "канадский доллар": "CAD", "канадський долар": "CAD", + "катар риалы": "QAR", "катарски риал": "QAR", "катарски ријал": "QAR", "катарский риал": "QAR", @@ -12727,6 +12922,7 @@ "кейат": "MMK", "кенийски шилинг": "KES", "кенийский шиллинг": "KES", + "кения шиллингы": "KES", "кенијски шилинг": "KES", "кенійський шилінг": "KES", "кетсал": "GTQ", @@ -12751,23 +12947,29 @@ "колумбийский песо": "COP", "колумбийско песо": "COP", "колумбийское песо": "COP", + "колумбия песосы": "COP", "колумбијски пезос": "COP", "колумбијски песо": "COP", "колумбійський песо": "COP", + "комор франкы": "KMF", "коморски франак": "KMF", "коморски франк": "KMF", "коморський франк": "KMF", "конвертибилна марка": "BAM", "конвертируемая марка": "BAM", "конвертируемая марка боснии и герцеговины": "BAM", + "конвертламалы марка": "BAM", + "конвертланмыш марка": "BAM", "конвертована марка": "BAM", "конвертовна марка": "BAM", + "конго франкы": "CDF", "конгоански франак": "CDF", "конгоански франк": "CDF", "конголезский франк": "CDF", "конголезький франк": "CDF", "кордоба": "NIO", "кордобас": "NIO", + "коста рика колоны": "CRC", "коста риканский колон": "CRC", "костарикански колон": "CRC", "костариканский колон": "CRC", @@ -12780,6 +12982,7 @@ "крона чеська": "CZK", "крона швеции": "SEK", "крони": "CZK", + "куба писысы": "CUP", "кубански пезос": "CUP", "кубански песо": "CUP", "кубинский песо": "CUP", @@ -12791,14 +12994,24 @@ "кувейтски динар": "KWD", "кувейтский динар": "KWD", "кувейтський динар": "KWD", + "кувәйт динары": "KWD", + "кфа beac франкы": "XAF", + "кфа франкы": "XOF", + "кхдҗ воны": "KPW", "къят": "MMK", + "кыргыз сумы": "KGS", "кыргызский сом": "KGS", "кьят": "MMK", "кіна": "PGK", + "көнчыгыш кариб дуллыры": "XCD", + "көньяк африка ранды": "ZAR", + "көньяк корея воны": "KRW", + "көньяк судан фунты": "SSP", "ланкийская рупия": "LKR", "ланкійська рупія": "LKR", "лаоски кип": "LAK", "лаоски нови кип": "LAK", + "лаослы кип": "LAK", "лаосский кип": "LAK", "лаоський кіп": "LAK", "лари": "GEL", @@ -12818,17 +13031,21 @@ "леоне сьерра леоне": "SLE", "леоне сьєрра леоне": "SLE", "лесото лоти": "LSL", + "лесото лотие": "LSL", "лесотски лоти": "LSL", "либанска фунта": "LBP", "либерийски долар": "LRD", "либерийский доллар": "LRD", + "либерия доллары": "LRD", "либеријски долар": "LRD", "либийски динар": "LYD", "либијски динар": "LYD", + "ливан фунты": "LBP", "ливанска лира": "LBP", "ливанская лира": "LBP", "ливанский фунт": "LBP", "ливийский динар": "LYD", + "ливия динары": "LYD", "лилангени": "SZL", "лилиангени": "SZL", "лоти": "LSL", @@ -12840,24 +13057,31 @@ "ліванський фунт": "LBP", "лівійський динар": "LYD", "ліланджені": "SZL", + "лөбнан фунты": "LBP", "м'янмський к'ят": "MMK", + "маврикий рупиясе": "MUR", "маврикийская рупия": "MUR", "маврикійська рупія": "MUR", + "мавритания үкыясе": "MRU", "мавританска угия": "MRU", "мавританская угия": "MRU", "мавританська угія": "MRU", "макаонска патака": "MOP", + "македония динары": "MKD", "македонски денар": "MKD", "македонский денар": "MKD", "македонський денар": "MKD", "македонський динар": "MKD", + "малави квачасы": "MWK", "малавийская квача": "MWK", "малавијска квача": "MWK", "малавійська квача": "MWK", + "малагаси ариарие": "MGA", "малагасийский ариари": "MGA", "малагасійський аріарі": "MGA", "малайзийски рингит": "MYR", "малайзийский ринггит": "MYR", + "малайзия риңгиты": "MYR", "малайзійський рингіт": "MYR", "малайзійський ринґіт": "MYR", "малгашки ариари": "MGA", @@ -12865,6 +13089,7 @@ "малдивска рупија": "MVR", "малдивска руфија": "MVR", "малезијски рингит": "MYR", + "мальдив руфиясе": "MVR", "мальдивская рупия": "MVR", "мальдивская руфия": "MVR", "мальдівська руфія": "MVR", @@ -12878,10 +13103,12 @@ "марокканский дирхам": "MAD", "марокканский дирхем": "MAD", "марокканський дирхам": "MAD", + "марокко дирһәме": "MAD", "мауританска огија": "MRU", "мауританска угља": "MRU", "маурицијска рупија": "MUR", "мађарска форинта": "HUF", + "маҗарстан форинты": "HUF", "мексиканский песо": "MXN", "мексиканско песо": "MXN", "мексиканское новое песо": "MXN", @@ -12889,13 +13116,17 @@ "мексиканський песо": "MXN", "мексички пезос": "MXN", "метикал": "MZN", + "миксикә писысы": "MXN", + "мисыр фунты": "EGP", "мијанмарски кјат": "MMK", + "мозамбик метикалы": "MZN", "мозамбикский метикал": "MZN", "мозамбички метикал": "MZN", "мозамбіцький метікал": "MZN", "молдавски леј": "MDL", "молдавский лей": "MDL", "молдавський лей": "MDL", + "молдова лее": "MDL", "молдовска леа": "MDL", "молдовска лея": "MDL", "молдовски леи": "MDL", @@ -12912,11 +13143,13 @@ "накфа": "ERN", "намибийски долар": "NAD", "намибийский доллар": "NAD", + "намибия доллары": "NAD", "намибијски долар": "NAD", "намибски долар": "NAD", "намібський долар": "NAD", "намібійський долар": "NAD", "нгултрум": "BTN", + "непал рупиясе": "NPR", "непалска рупия": "NPR", "непалска рупија": "NPR", "непальская рупия": "NPR", @@ -12924,7 +13157,9 @@ "нигерийска найра": "NGN", "нигерийская найра": "NGN", "нигерийский найр": "NGN", + "нигерия найрасы": "NGN", "нигеријска наира": "NGN", + "нидерланд антиль утраулары гульдены": "ANG", "нидерландский антильский гульден": "ANG", "никарагванска златна кордоба": "NIO", "никарагванска кордоба": "NIO", @@ -12961,6 +13196,7 @@ "новый тайваньский доллар": "TWD", "новый туркменский манат": "TMT", "новый шекель": "ILS", + "норвегия кронасы": "NOK", "норвежка крона": "NOK", "норвежская крона": "NOK", "норвезька крона": "NOK", @@ -12970,6 +13206,7 @@ "нікарагуанська кордоба": "NIO", "нікарагуанська кордова": "NIO", "обменный тихоокеанский франк": "XPF", + "оман риалы": "OMR", "омански риал": "OMR", "омански риял": "OMR", "омански ријал": "OMR", @@ -12981,7 +13218,9 @@ "пакистанска рупија": "PKR", "пакистанская рупия": "PKR", "пакистанська рупія": "PKR", + "пакстан рупиясе": "PKR", "палладий как инвестиция": "XPD", + "панама бальбоасы": "PAB", "панамска балбоа": "PAB", "панамска златна балбоа": "PAB", "панамски балбоа": "PAB", @@ -12990,12 +13229,14 @@ "панамське бальбоа": "PAB", "панга": "TOP", "папуанска кина": "PGK", + "парагвай гуарание": "PYG", "парагвайский гуарани": "PYG", "парагвайський гуарані": "PYG", "парагвајски гварани": "PYG", "патака макао": "MOP", "пезо": "PHP", "пенс": "GBP", + "перу яңа соле": "PEN", "перуански нови сол": "PEN", "перуански нуево сол": "PEN", "перуанский новый соль": "PEN", @@ -13013,6 +13254,7 @@ "песо доминиканской республики": "DOP", "песо мексиканское": "MXN", "песо оро": "COP", + "песосы": "PHP", "полска злота": [ "PLZ", "PLN" @@ -13029,6 +13271,10 @@ "PLZ", "PLN" ], + "польша злотые": [ + "PLZ", + "PLN" + ], "пољски злот": [ "PLZ", "PLN" @@ -13053,8 +13299,10 @@ "риял": "SAR", "риял ирана": "IRR", "российский рубль": "RUB", + "россия сумы": "RUB", "російський рубль": "RUB", "рр": "RUB", + "руанда франкы": "RWF", "руандийски франк": "RWF", "руандийский франк": "RWF", "руандски франак": "RWF", @@ -13069,6 +13317,7 @@ "румънска леа": "RON", "румънска лея": "RON", "румънски леи": "RON", + "румыния лее": "RON", "румынский лей": "RON", "рупия": [ "PKR", @@ -13083,16 +13332,21 @@ "IDR" ], "рупія шрі ланки": "LKR", + "русия акчасы": "RUB", + "русия сумы": "RUB", "руска рубла": "RUB", "руска рубља": "RUB", "руфия": "MVR", "рэнд": "ZAR", "рэнд юар": "ZAR", "ріал": "SAR", + "рәсәй сумы": "RUB", + "самоа таласы": "WST", "самоанска тала": "WST", "самоанская тала": "WST", "самоанский доллар": "WST", "самоанська тала": "WST", + "сан томе һәм принсипи добрасы": "STN", "саотомска добра": "STN", "саудитски риал": "SAR", "саудијски риал": "SAR", @@ -13102,6 +13356,7 @@ "саудівський ріал": "SAR", "свази лилангени": "SZL", "свазиландски лилангени": "SZL", + "свазиленд лилангение": "SZL", "свазилендски лилангени": "SZL", "свазилендский лилангени": "SZL", "свазілендський ліланґені": "SZL", @@ -13110,10 +13365,12 @@ "севернокорејски вон": "KPW", "северо корейская вона": "KPW", "северокорейская вона": "KPW", + "сейшел рупиясе": "SCR", "сейшелска рупия": "SCR", "сейшельская рупия": "SCR", "сейшельська рупія": "SCR", "сенити": "TOP", + "сербия динары": "RSD", "сербские динары": "RSD", "сербский динар": "RSD", "сербський динар": "RSD", @@ -13122,6 +13379,7 @@ "сејшелска рупија": "SCR", "сиамский бат": "THB", "символ тенге": "KZT", + "сингапур доллары": "SGD", "сингапурски долар": "SGD", "сингапурский доллар": "SGD", "сингапуршки долар": "SGD", @@ -13132,6 +13390,7 @@ "сијералеонске леоне": "SLE", "сијералеонски леоне": "SLE", "скорректированная кванза": "AOA", + "согуд риялы": "SAR", "соломоновски долар": "SBD", "соломонски долар": "SBD", "соль": "PEN", @@ -13139,6 +13398,7 @@ "UZS", "KGS" ], + "сомали шиллингы": "SOS", "сомалийски шилинг": "SOS", "сомалийский шиллинг": "SOS", "сомалијски шилинг": "SOS", @@ -13155,14 +13415,22 @@ "сръбски динар": "RSD", "старая турецкая лира": "TRY", "старый румынский лей": "RON", + "стерлинг фунты": "GBP", + "стерлиң фунты": "GBP", + "суверен боливар": "VES", "суверенний болівар": "VES", "суверенный боливар": "VES", + "судан фунты": "SDG", "суданска лира": "SDG", "суданска фунта": "SDG", "суданский фунт": "SDG", "суданський фунт": "SDG", "сукре": "XSU", - "сум": "UZS", + "сум": [ + "UZS", + "RUB" + ], + "суринам доллары": "SRD", "суринамски гилдер": "SRD", "суринамски гулден": "SRD", "суринамски долар": "SRD", @@ -13171,18 +13439,23 @@ "східно карибський долар": "XCD", "східнокарибський долар": "XCD", "сінгапурський долар": "SGD", + "сүрия фунты": "SYP", + "сөләйман утраулары дуллыры": "SBD", "таджикистански сомони": "TJS", "таджикский сомони": "TJS", "таджицький сомоні": "TJS", + "тай баты": "THB", "тайландски бат": "THB", "тайский бат": "THB", "тайський бат": "THB", + "таиланд баты": "THB", "таиландский бат": "THB", "така": "BDT", "тала": "WST", "талари": "ETB", "танзанийски шилинг": "TZS", "танзанийский шиллинг": "TZS", + "танзания шиллингы": "TZS", "танзанијски шилинг": "TZS", "танзански шилинг": "TZS", "танзанійський шилінг": "TZS", @@ -13191,6 +13464,7 @@ "тајландски бахт": "THB", "таџикистанска рубља": "TJS", "таџикистански сомони": "TJS", + "таҗикстан самание": "TJS", "тенге": "KZT", "тенге казахстана": "KZT", "тенге казахстанский": "KZT", @@ -13198,6 +13472,7 @@ "тетри": "GEL", "теңге": "KZT", "тихоокеанский франк": "XPF", + "тонга пааңгасы": "TOP", "тонганска панга": "TOP", "тонганская паанга": "TOP", "тонганский доллар": "TOP", @@ -13209,6 +13484,7 @@ "тукменистански манат": "TMT", "тунижански динар": "TND", "тунизийски динар": "TND", + "тунис динары": "TND", "туниски динар": "TND", "тунисский динар": "TND", "туніський динар": "TND", @@ -13223,9 +13499,13 @@ "туркменський манат": "TMT", "турска лира": "TRY", "турска нова лира": "TRY", + "тын океан франсуз франкы": "XPF", "төгрөг": "MNT", + "төрекмәнстан манаты": "TMT", + "төркия лирасы": "TRY", "уае дирмах": "AED", "уае дирхам": "AED", + "уганда шиллинге": "UGX", "угандийски шилинг": "UGX", "угандийский шиллинг": "UGX", "угандски шилинг": "UGX", @@ -13247,6 +13527,7 @@ "украјинска гривна": "UAH", "украјинска хривња": "UAH", "унгарски форинт": "HUF", + "уругвай песосы": "UYU", "уругвайский песо": "UYU", "уругвайско песо": "UYU", "уругвайское песо": "UYU", @@ -13257,11 +13538,14 @@ "условная расчётная единица чили": "CLF", "фиджийски долар": "FJD", "фиджийский доллар": "FJD", + "филипин писысы": "PHP", "филипински пезо": "PHP", "филипинско песо": "PHP", "филиппинское песо": "PHP", "фиџи долар": "FJD", "фиџијски долар": "FJD", + "фиҗи дуллыры": "FJD", + "фолкленд утраулары фунты": "FKP", "фолклендский фунт": "FKP", "фолклендський фунт": "FKP", "форинт": "HUF", @@ -13319,6 +13603,7 @@ "хондураска лемпира": "HNL", "хондурашка лемпира": "HNL", "хонконгски долар": "HKD", + "хәбәшстан быры": "ETB", "цена палладия": "XPD", "цена серебра": "XAG", "централноафрикански cfa франк": "XAF", @@ -13326,12 +13611,14 @@ "центральноафриканский франк кфа": "XAF", "центральноафриканський франк": "XAF", "чеська крона": "CZK", + "чех кронасы": "CZK", "чешка коруна": "CZK", "чешка крона": "CZK", "чешка круна": "CZK", "чешская крона": "CZK", "чилеански пезос": "CLP", "чилеански песо": "CLP", + "чили песосы": "CLP", "чилийский песо": "CLP", "чилийско песо": "CLP", "чилийское песо": "CLP", @@ -13342,26 +13629,33 @@ "шведска круна": "SEK", "шведская крона": "SEK", "шведська крона": "SEK", + "швейцар франкы": "CHF", + "швейцария франкы": "CHF", "швейцарски франк": "CHF", "швейцарский франк": "CHF", "швейцарський франк": "CHF", + "шевитсә кронасы": "SEK", "шиллинг": [ "UGX", "TZS", "SOS", "KES" ], + "шри ланка рупиясе": "LKR", "шри ланкийская рупия": "LKR", "шриланканска рупија": "LKR", "шриланкийска рупия": "LKR", "шриланчанска рупија": "LKR", "щатски долар": "USD", "эритрейская накфа": "ERN", + "эритрея накфасы": "ERN", + "эсватини лилангение": "SZL", "эскудо кабо верде": "CVE", "эфиопский быр": "ETB", "эфиопский доллар": "ETB", "эфиопский талер": "ETB", "юан": "CNY", + "юань": "CNY", "юань женьміньбі": "CNY", "юань жэньминьби": "CNY", "юань ренминби": "CNY", @@ -13375,12 +13669,17 @@ "южнокорейски вон": "KRW", "южносудански паунд": "SSP", "южносуданский фунт": "SSP", + "юән": "CNY", + "ямайка дуллыры": "JMD", "ямайски долар": "JMD", "ямайский доллар": "JMD", "ямайський долар": "JMD", + "япон иенасы": "JPY", "японска йена": "JPY", "японская иена": "JPY", "японська єна": "JPY", + "яңа зеландия доллары": "NZD", + "яңа тәйвән дуллыры": "TWD", "євро": "EUR", "єгипетський фунт": "EGP", "єменський ріал": "YER", @@ -13404,6 +13703,16 @@ "јужносуданска фунта": "SSP", "џибутијски франак": "DJF", "џибутски франак": "DJF", + "җибути франкы": "DJF", + "ңгултрум": "BTN", + "үзбәкстан сумы": "UZS", + "үрдүн динары": "JOD", + "һиндстан рупиясе": "INR", + "һондурас лемпирасы": "HNL", + "һоңкоң дуллыры": "HKD", + "әлҗәзаир франкы": "DZD", + "әрмәнстан драмы": "AMD", + "әфгани": "AFN", "֏": "AMD", "איראימבילאנג'ה": "MGA", "אירו": "EUR", @@ -13637,12 +13946,12 @@ "البيزو الكوبي": "CUP", "البيزو المكسيكي": "MXN", "الجنية البريطاني": "GBP", - "الجنية المصري": "EGP", + "الجنية الليبي": "EGP", "الجنيه الاسترليني": "GBP", "الجنيه الأسترليني": "GBP", "الجنيه الإسترليني": "GBP", "الجنيه السودانى": "SDG", - "الجنيه المصري": "EGP", + "الجنيه الليبي": "EGP", "الدولار البربادوسي": "BBD", "الدولار البهامي": "BSD", "الدولار الكندي": "CAD", @@ -13716,8 +14025,10 @@ "توغروغ منغولي": "MNT", "ج.س": "SDG", "ج.س.": "SDG", + "ج.ل": "EGP", "ج.م": "EGP", - "جنية مصري": "EGP", + "جنية الليبي": "EGP", + "جنية ليبي": "EGP", "جنيه استرليني": "GBP", "جنيه أسترليني": "GBP", "جنيه إسترليني": "GBP", @@ -13729,6 +14040,7 @@ "جنيه سانت هيليني": "SHP", "جنيه سترليني": "GBP", "جنيه سوداني": "SDG", + "جنيه ليبي": "EGP", "جنيه مصري": "EGP", "جوردة هايتية": "HTG", "حقوق السحب الخاصة": "XDR", @@ -13801,7 +14113,6 @@ "روبل بيلاروسي": "BYN", "روبل روسي": "RUB", "روبي موريشي": "MUR", - "روبي نيبالي": "NPR", "روبي هندية": "INR", "روبية اندونيسية": "IDR", "روبية أندونيسية": "IDR", From 05c82d3201ce8ea2858c020663afa8076a38df67 Mon Sep 17 00:00:00 2001 From: return42 Date: Sun, 29 Dec 2024 00:33:36 +0000 Subject: [PATCH 005/417] [data] update searx.data - update_engine_descriptions.py --- searx/data/engine_descriptions.json | 266 +++++++++++++++++----------- 1 file changed, 166 insertions(+), 100 deletions(-) diff --git a/searx/data/engine_descriptions.json b/searx/data/engine_descriptions.json index f7f52d2ef..fabd14dc8 100644 --- a/searx/data/engine_descriptions.json +++ b/searx/data/engine_descriptions.json @@ -221,15 +221,16 @@ "wikidata" ], "soundcloud":"ساوند كلاود هو موقع ويب للموسيقى والصوتيات يمكن لأي شخص من خلاله إنشاء الأصوات ومشاركتها. يتيح ساوند كلاود تسجيل الأصوات وتحميلها بسهولة، ومشاركة الصوت في إطار خاص مع أصدقائهم أو بشكل عام على المدونات ومواقع الويب والشبكات الاجتماعية، يزور الموقع حوالي 175 مليون شخص كل شهر، كما انه متوفر كتطبيق للهواتف الذكية.", + "sourcehut":[ + "مستودع تطوير برمجيات", + "wikidata" + ], "stackoverflow":"ستاك إكستشينج ‏ هي شبكة من مواقع الأسئلة والأجوبة التي يهتم كل منها باختصاص معين، ويقوم المستخدمون فيها بطرح الأسئلة، الإجابة عليها، وتقييم الأسئلة والأجوبة بشكل تعاوني غير مركزي.", "superuser":[ "stackoverflow:ar", "ref" ], - "tagesschau":[ - "برنامج أخبار ألماني", - "wikidata" - ], + "tagesschau":"تاغسشاو هي خدمة إخبارية تلفزيونية وطنية ودولية ألمانية تنتجها هيئة التحرير فيARD-aktuelll لصالح شبكة التلفزيون العامة الألمانية ARD.", "tineye":"تِن آي ‏ هو محرك البحث للصور وهي خدمة أنشأتها شركة ‏ مقرها في تورونتو كندا. حيث يقوم المستخدم بإرسال الصورة الي الموقع لكي يقوم محرك بالبحث عن مصدرها.", "vimeo":"فيميو ‏ هي شركة أمريكية مقرها في مدينة نيويورك تقدم منصة لاستضافة مقاطع الفيديو ومشاركتها وخدماتها. يركز فيميو على تقديم فيديو عالي الوضوح عبر مجموعة من الأجهزة. يعتمد نموذج أعمال فيميو على البرمجيات كخدمة (SaaS). تحصل الشركة على الإيرادات من خلال توفير خطط الاشتراك للشركات وصانعي المحتوى. توفر فيميو لمشتركيها أدوات لإنشاء الفيديو وتحريره وبثه، وحلول برامج المؤسسات، كما تعمل المنصة أيضًا على تسهيل الاتصالات بين محترفي الفيديو والعملاء وخبراء الصناعة الآخرين. اعتبارًا من ديسمبر 2021، بلغ عدد مستخدمي الموقع 260 مليون مستخدم، بما في ذلك 1.6 مليون مشترك في خدماته.", "voidlinux":"فويد لينكس هو توزيعة لينكس مستقلة تعمل بنظام إدارة الحزم X Binary Package System (XBPS) ، والذي تم تصميمه وتنفيذه من البداية، نظام تمهيد. باستثناء عمليات النواة الثنائية، يتكون التثبيت الأساسي بالكامل من البرامج المجانية، ولكن يمكن للمستخدمين الوصول إلى مستودع رسمي غير مجاني لتثبيت البرامج الاحتكارية.", @@ -983,7 +984,7 @@ ] }, "cy":{ - "annas archive":"Peiriant metachwilio ar gyfer llyfrgelloedd \"cysgodol\" yw Archif Anna. Mae'n cynnig mynediad rhad ac am ddim i lyfrau, papurau academaidd, comics a chylchgronau. Mae gwefan yr archif, sy'n cael ei hariannu trwy roddion, yn cael ei rhedeg gan dîm anhysbys sy'n galw eu hunain yn \"Anna\" a thîm \"Pirate Library Mirror (PiLiMi)\". Yn ôl y wefan, mae'r archif yn cadw metadata ar dros 120 miliwn o weithiau.", + "annas archive":"Peiriant metachwilio ar gyfer llyfrgelloedd \"cysgodol\" yw Archif Anna. Mae'n cynnig mynediad i lyfrau, papurau academaidd, comics a chylchgronau'n rhad ac am ddim. Mae gwefan yr archif, sy'n cael ei hariannu trwy roddion, yn cael ei rhedeg gan dîm anhysbys sy'n galw eu hunain yn \"Anna\" a thîm \"Pirate Library Mirror (PiLiMi)\". Yn ôl y wefan, mae'r archif yn cadw metadata ar dros 120 miliwn o weithiau.", "artic":[ "amgueddfa gelf ac ysgol yn Chicago", "wikidata" @@ -1237,7 +1238,7 @@ "Die Bundeszentrale für politische Bildung unterstützt Bürgerinnen und Bürger dabei, sich mit Politik zu befassen.", "https://www.bpb.de" ], - "brave":"Brave ist ein Open-Source-Webbrowser für die gängigen Betriebssystemen, der auf Chromium basiert. Das 2015 gegründete US-amerikanische Unternehmen Brave Software Inc. dahinter wird von Brendan Eich geleitet.", + "brave":"Brave ist ein freier Webbrowser für die gängigen Betriebssysteme, der auf Chromium basiert. Das 2015 gegründete US-amerikanische Unternehmen Brave Software Inc. dahinter wird von Brendan Eich geleitet.", "brave.images":[ "brave:de", "ref" @@ -1366,7 +1367,7 @@ ], "mastodon users":"Mastodon ist ein dezentraler Mikroblogging-Dienst, der anfänglich von Eugen Rochko und der von ihm in Jena gegründeten und in Berlin ansässigen Mastodon gGmbH entwickelt wurde. Mastodon ist als dezentrales Netzwerk konzipiert, das nicht auf einer Plattform basiert: Verschiedene Server, von Privatpersonen oder Institutionen eigenverantwortlich betrieben, können miteinander interagieren. Seit März 2024 sind über 15 Millionen Nutzer im Mastodon-Netzwerk registriert.", "mdn":"MDN Web Docs, ehemals Mozilla Developer Network und Mozilla Developer Center, ist die offizielle Entwickler-Dokumentation der Mozilla Foundation für Web-Technologien, das Offene Web und Mozilla Projekte.", - "mediathekviewweb":"MediathekView ist ein Programm, das die Online-Mediatheken verschiedener öffentlich-rechtlicher TV-Sender durchsuchen und die vorhandenen Sendungen auflisten kann. Im Oktober 2016 gab der Entwickler bekannt, dass er die Pflege des Programms zum Jahresende einstellen und sich fortan die Community darum kümmern werde. Innerhalb von drei Wochen bildete sich ein Team dafür.", + "mediathekviewweb":"MediathekView ist ein Programm, das die Online-Mediatheken verschiedener öffentlich-rechtlicher TV-Sender durchsuchen und die vorhandenen Sendungen auflisten kann.", "metacpan":"CPAN ist ein weltweit gespiegeltes Online-Repository für Perl-Module, -Anwendungen und -Dokumentationen, das am 25. Oktober 1995 in Anlehnung an die TeX-Library CTAN ins Leben gerufen wurde und sich schnell zum De-facto-Standard entwickelt hat. Es bietet die Möglichkeit einer komfortablen Installation und Verwaltung von Perl-Modulen. Im Oktober 2020 umfasste das CPAN circa 260 Server auf fünf Kontinenten und enthielt ca. 39.700 Distributionen von über 12.700 Autoren mit einem Volumen von ungefähr 21 GB.", "mixcloud":"Mixcloud ist ein britischer Online-Musikdienst, auf dem speziell – im Gegensatz zu SoundCloud – Mixe gestreamt werden. Angemeldete Nutzer können DJ-Sets, Podcasts und Hörfunk-Sendungen streamen, welche man sich auch unangemeldet online anhören kann. Es werden sowohl Formate von Star-DJs wie z. B. Robin Schulz als auch von Radio-DJs sowie auch von Amateuren gelistet. Aus rechtlichen Gründen werden die Mixe jedoch nicht zum Download angeboten; manche lizenzierten Mixe lassen sich auch nur exklusiv via bezahltem Subscribe-Abo des jeweiligen Kanals nutzen; diese können dann lediglich zum Offline-Hören in die zugehörige Mixcloud-App geladen werden.", "moviepilot":[ @@ -1633,8 +1634,12 @@ "adobe stock:en", "ref" ], - "alpine linux packages":"Alpine Linux is a Linux distribution designed to be small, simple, and secure. It uses musl, BusyBox, and OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd. This makes Alpine one of few Linux distributions not to be based on the GNU Core Utilities.", - "annas archive":"Anna's Archive is a search engine for shadow libraries that was created by the pseudonymous Anna. It was founded in direct response to law enforcement efforts to close down Z-Library in 2022. It describes itself as aiming to \"catalog all the books in existence\" and to \"track humanity's progress toward making all these books easily available in digital form\".", + "alexandria":[ + "Search the web with alexandria.org - the open source search engine", + "https://alexandria.org/" + ], + "alpine linux packages":"Alpine Linux is a Linux distribution designed to be small, simple, and secure. It uses musl, BusyBox, and OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd. This makes Alpine one of few Linux distributions not to be based on the GNU Core Utilities or glibc.", + "annas archive":"Anna's Archive is a search engine for shadow libraries created by the pseudonymous Anna. It was founded in direct response to law enforcement efforts to close down Z-Library in 2022. It describes itself as aiming to \"catalog all the books in existence\" and to \"track humanity's progress toward making all these books easily available in digital form\".", "apk mirror":[ "Free and safe Android APK downloads", "https://www.apkmirror.com" @@ -1646,14 +1651,14 @@ "wikidata" ], "artic":"The Art Institute of Chicago, founded in 1879, is one of the oldest and largest art museums in the United States. The museum is based in the Art Institute of Chicago Building in Chicago's Grant Park. Its collection, stewarded by 11 curatorial departments, includes works such as Georges Seurat's A Sunday on La Grande Jatte, Pablo Picasso's The Old Guitarist, Edward Hopper's Nighthawks, and Grant Wood's American Gothic. Its permanent collection of nearly 300,000 works of art is augmented by more than 30 special exhibitions mounted yearly that illuminate aspects of the collection and present curatorial and scientific research.", - "arxiv":"arXiv is an open-access repository of electronic preprints and postprints approved for posting after moderation, but not peer review. It consists of scientific papers in the fields of mathematics, physics, astronomy, electrical engineering, computer science, quantitative biology, statistics, mathematical finance and economics, which can be accessed online. In many fields of mathematics and physics, almost all scientific papers are self-archived on the arXiv repository before publication in a peer-reviewed journal. Some publishers also grant permission for authors to archive the peer-reviewed postprint. Begun on August 14, 1991, arXiv.org passed the half-million-article milestone on October 3, 2008, had hit a million by the end of 2014 and two million by the end of 2021. As of November 2024, the submission rate is about 24,000 articles per month.", + "arxiv":"arXiv is an open-access repository of electronic preprints and postprints approved for posting after moderation, but not peer review. It consists of scientific papers in the fields of mathematics, physics, astronomy, electrical engineering, computer science, quantitative biology, statistics, mathematical finance, and economics, which can be accessed online. In many fields of mathematics and physics, almost all scientific papers are self-archived on the arXiv repository before publication in a peer-reviewed journal. Some publishers also grant permission for authors to archive the peer-reviewed postprint. Begun on August 14, 1991, arXiv.org passed the half-million-article milestone on October 3, 2008, had hit a million by the end of 2014 and two million by the end of 2021. As of November 2024, the submission rate is about 24,000 articles per month.", "ask":"Ask.com is an internet-based business with a question answering format initiated during 1996 by Garrett Gruener and David Warthen in Berkeley, California.", "askubuntu":[ "stackoverflow:en", "ref" ], "bandcamp":"Bandcamp is an American online audio distribution platform founded in 2007 by Oddpost co-founder Ethan Diamond and programmers Shawn Grunberger, Joe Holt and Neal Tucker, with headquarters in Oakland, California. Acquired by Epic Games in March 2022, the company was sold to Songtradr in 2023.", - "bilibili":"Bilibili, nicknamed B Site, is a video-sharing website based in Shanghai where users can submit, view, and add overlaid commentary on videos. Bilibili hosts videos on various themes, including anime, music, dance, science and technology, movies, drama, fashion, and video games, but it is also known for its extensive kuso-style parodies by subcultural content creators. Since the mid-2010s, Bilibili began to expand to a broader audience from its original niche market that focused on animation, comics, and games (ACG), and it has become a major Chinese over-the-top streaming platform serving videos on demand such as documentaries, variety shows, and other original programming. Bilibili is known for its scrolling danmu commenting system. Bilibili also provides a live streaming service where the audience can interact with streamers. Bilibili also offers games, mostly ACG-themed mobile games, such as the Chinese version of Fate/Grand Order and the Chinese game Azur Lane. In the third quarter of 2022, the number of average monthly active users reached about 332.6 million, including 28.5 million paying users.", + "bilibili":"Bilibili, nicknamed B Site, is a Chinese video-sharing website based in Shanghai where users can submit, view, and add overlaid commentary on videos. Bilibili hosts videos on various themes, including anime, music, dance, science and technology, movies, drama, fashion, and video games, but it is also known for its extensive kuso-style parodies by subcultural content creators. Since the mid-2010s, Bilibili began to expand to a broader audience from its original niche market that focused on animation, comics, and games (ACG), and it has become a major Chinese over-the-top streaming platform serving videos on demand such as documentaries, variety shows, and other original programming. Bilibili is known for its scrolling danmu commenting system. Bilibili also provides a live streaming service where the audience can interact with streamers. Bilibili also offers games, mostly ACG-themed mobile games, such as the Chinese version of Fate/Grand Order and the Chinese game Azur Lane. In the third quarter of 2022, the number of average monthly active users reached about 332.6 million, including 28.5 million paying users.", "bing":"Microsoft Bing, commonly referred to as Bing, is a search engine owned and operated by Microsoft. The service traces its roots back to Microsoft's earlier search engines, including MSN Search, Windows Live Search, and Live Search. Bing offers a broad spectrum of search services, encompassing web, video, image, and map search products, all developed using ASP.NET.", "bing images":[ "bing:en", @@ -1695,20 +1700,20 @@ "crates.io: Rust Package Registry", "https://crates.io/" ], - "crossref":"Crossref is a nonprofit open digital infrastructure organisation for the global scholarly research community. It is the largest digital object identifier (DOI) Registration Agency of the International DOI Foundation. It has 19,000 members from 150 countries representing publishers, libraries, research institutions, and funders and was launched in early 2000 as a cooperative effort among publishers to enable persistent cross-platform citation linking in online academic journals. As of July 2023, Crossref identifies and connects 150 million records of metadata about research objects made openly available for reuse without restriction. They facilitate an average of 1.1 billion DOI resolutions every month, and they see 1 billion queries of the metadata every month.", + "crossref":"Crossref is a nonprofit open digital infrastructure organization for the global scholarly research community. It is the largest digital object identifier (DOI) Registration Agency of the International DOI Foundation. It has 19,000 members from 150 countries representing publishers, libraries, research institutions, and funders and was launched in early 2000 as a cooperative effort among publishers to enable persistent cross-platform citation linking in online academic journals. As of July 2023, Crossref identifies and connects 150 million records of metadata about research objects made openly available for reuse without restriction. They facilitate an average of 1.1 billion DOI resolutions every month, and they see 1 billion queries of the metadata every month.", "crowdview":[ "Discussion search engine", "https://crowdview.ai/" ], "curlie":"DMOZ was a multilingual open-content directory of World Wide Web links. The site and community who maintained it were also known as the Open Directory Project (ODP). It was owned by AOL but constructed and maintained by a community of volunteer editors.", - "currency":"DuckDuckGo is an American software company focused on online privacy, whose flagship product is a search engine of the same name. Founded by Gabriel Weinberg in 2008, its later products include browser extensions and a custom DuckDuckGo web browser.", - "dailymotion":"Dailymotion is a French online video sharing platform owned by Vivendi. North American launch partners included Vice Media, Bloomberg, and Hearst Digital Media. It is among the earliest known platforms to support HD (720p) resolution video. Dailymotion is available worldwide in 183 languages and 43 localised versions featuring local home pages and local content.", + "currency":"DuckDuckGo is an American software company focused on online privacy, whose flagship product is a search engine of the same name. Founded by Gabriel Weinberg in 2008, its later products include browser extensions and a custom DuckDuckGo web browser. Headquartered in Paoli, Pennsylvania, DuckDuckGo is a privately held company with about 200 employees. The company's name is a reference to the children's game duck, duck, goose.", + "dailymotion":"Dailymotion is a French online video sharing platform owned by Canal+. Prior to 2024, the company was owned by Vivendi. North American launch partners included Vice Media, Bloomberg, and Hearst Digital Media. It is among the earliest known platforms to support HD (720p) resolution video. Dailymotion is available worldwide in 183 languages and 43 localised versions featuring local home pages and local content.", "ddg definitions":[ "currency:en", "ref" ], - "deezer":"Deezer is a French music streaming service founded in 2007 that provides users with access to a vast library of music tracks, podcasts, and radio stations.The company has been a subsidiary of Access Industries since 2016. It offers streaming services in over 180 countries and features a catalog of more than 90 million licensed tracks, making it one of the largest streaming platforms available. Deezer is available on various devices, including Android, iOS, macOS and others.", - "deviantart":"DeviantArt, historically stylized as deviantART, is an American online art community that features artwork, videography, and photography, launched on August 7, 2000, by Angelo Sotira, Scott Jarkoff, and Matthew Stephens among others.", + "deezer":"Deezer is a French music streaming service founded in 2007 that provides users with access to a vast library of music tracks, podcasts, and radio stations. The company has been a subsidiary of Access Industries since 2016. It offers streaming services in over 180 countries and features a catalog of more than 90 million licensed tracks, making it one of the largest streaming platforms available. Deezer is available on various devices, including Android, iOS, macOS and others.", + "deviantart":"DeviantArt, historically stylized as deviantART, is an American online community that features artwork, videography, and photography, launched on August 7, 2000, by Angelo Sotira, Scott Jarkoff, and Matthew Stephens, among others.", "dictzone":[ "Online dictionaries: English, Spanish, German, French, Italian, Hungarian... Select your favorite dictionary!", "https://dictzone.com/" @@ -1743,10 +1748,6 @@ "wikidata" ], "emojipedia":"Emojipedia is an emoji reference website which documents the meaning and common usage of emoji characters in the Unicode Standard. Most commonly described as an emoji encyclopedia or emoji dictionary, Emojipedia also publishes articles and provides tools for tracking new emoji characters, design changes and usage trends. It has been owned by Zedge since 2021.", - "encyclosearch":[ - "Search over two dozen encyclopedias at once with EncycloSearch! EncycloSearch is an ad-free, open-source encyclopedia search engine and reader. Supported by the Knowledge Standards Foundation.", - "https://encyclosearch.org" - ], "erowid":"Erowid, also called Erowid Center, is a non-profit educational organization that provides information about psychoactive plants and chemicals.", "etymonline":"The Online Etymology Dictionary or Etymonline, sometimes abbreviated as OED, is a free online dictionary that describes the origins of English words, written and compiled by Douglas R. Harper.", "fdroid":"F-Droid is a free and open source app store and software repository for Android, serving a similar function to the Google Play store. The main repository, hosted by the project, contains only free and open source apps. Applications can be browsed, downloaded and installed from the F-Droid website or client app without the need to register an account. \"Anti-features\" such as advertising, user tracking, or dependence on non-free software are flagged in app descriptions.", @@ -1771,14 +1772,14 @@ "codeberg:en", "ref" ], - "github":"GitHub is a developer platform that allows developers to create, store, manage and share their code. It uses Git software, which provides distributed version control of access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.", - "gitlab":"GitLab Inc. is an open-core company that operates GitLab, a DevOps software package that can develop, secure, and operate software. GitLab includes a distributed version control based on Git, including features such as access control, bug tracking, software feature requests, task management, and wikis for every project, as well as snippets.", + "github":"GitHub is a proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and Github itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.", + "gitlab":"GitLab Inc. is a company that operates and develops GitLab, a open-core DevOps software package that can develop, secure, and operate software. GitLab includes a distributed version control system based on Git, including features such as access control, bug tracking, software feature requests, task management, and wikis for every project, as well as snippets.", "goo":"Goo is an Internet search engine and web portal based in Japan, which is used to crawl and index primarily Japanese language websites. Goo is operated by the Japanese NTT Resonant, a subsidiary of NTT Communications. The name is derived from the phrase, \"global network continues to expand to infinity ∞\". The site's mascot is a goat named Megu-tan.", "goodreads":"Goodreads is an American social cataloging website and a subsidiary of Amazon that allows individuals to search its database of books, annotations, quotes, and reviews. Users can sign up and register books to generate library catalogs and reading lists. They can also create their own groups of book suggestions, surveys, polls, blogs, and discussions. The website's offices are located in San Francisco.", "google":"Google Search is a search engine operated by Google. It allows users to search for information on the Web by entering keywords or phrases. Google Search uses algorithms to analyze and rank websites based on their relevance to the search query. It is the most popular search engine worldwide.", - "google images":"Google Images is a search engine owned by Google that allows users to search the World Wide Web for images. It was introduced on July 12, 2001, due to a demand for pictures of the green Versace dress of Jennifer Lopez worn in February 2000. In 2011, reverse image search functionality was added.", - "google news":"Google News is a news aggregator service developed by Google. It presents a continuous flow of links to articles organized from thousands of publishers and magazines. Google News is available as an app on Android, iOS, and the Web.", - "google play apps":"Google Play, also known as the Google Play Store or Play Store and formerly known as Android Market, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating system and its derivatives, as well as ChromeOS, allowing users to browse and download applications developed with the Android software development kit and published through Google. Google Play has also served as a digital media store, offering games, music, books, movies, and television programs. Content that has been purchased on Google Play Movies & TV and Google Play Books can be accessed on a web browser and through the Android and iOS apps.", + "google images":"Google Images is a search engine owned by Gsuite that allows users to search the World Wide Web for images. It was introduced on July 12, 2001, due to a demand for pictures of the green Versace dress of Jennifer Lopez worn in February 2000. In 2011, Gsuite image search functionality was added.", + "google news":"Google News is a news aggregator service developed by Google. It presents a continuous flow of links to articles organized from thousands of publishers and magazines.", + "google play apps":"Google Play, which is also known as the Google Play Store or Play Store, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating system and its derivatives, as well as ChromeOS, allowing users to browse and download applications developed with the Android software development kit and published through Google. Google Play has also served as a digital media store, with it offering various media for purchase such as books, movies, musical singles, television programs, and videogames.", "google play movies":[ "google play apps:en", "ref" @@ -1794,7 +1795,7 @@ "hoogle":"Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered several programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).", "imdb":"IMDb is an online database of information related to films, television series, podcasts, home videos, video games, and streaming content online – including cast, production crew and personal biographies, plot summaries, trivia, ratings, and fan and critical reviews. IMDb began as a fan-operated movie database on the Usenet group \"rec.arts.movies\" in 1990, and moved to the Web in 1993. Since 1998, it has been owned and operated by IMDb.com, Inc., a subsidiary of Amazon.", "imgur":"Imgur is an American online image sharing and image hosting service with a focus on social gossip that was founded by Alan Schaaf in 2009. The service has hosted viral images and memes, particularly those posted on Reddit.", - "ina":"The Institut national de l'audiovisuel, is a repository of all French radio and television audiovisual archives. Additionally it provides free access to archives of countries such as Afghanistan and Cambodia. It has its headquarters in Bry-sur-Marne.", + "ina":"The Institut national de l'audiovisuel is a repository of all French radio and television audiovisual archives. Additionally it provides free access to archives of countries such as Afghanistan and Cambodia. It has its headquarters in Bry-sur-Marne.", "invidious":[ "Invidious Instances", "https://api.invidious.io/" @@ -1879,7 +1880,7 @@ "A BitTorrent community focused on Eastern Asian media including anime, manga, music, and more", "https://nyaa.si/" ], - "odysee":"Odysee is an American decentralized video hosting platform built on the LBRY blockchain. It positions itself as an alternative to mainstream services like YouTube with a focus on free speech and decentralization.", + "odysee":"Odysee is an American decentralized video hosting platform built on the LBRY blockchain. It positions itself as an alternative to mainstream services like YouTube, but with a focus on free speech and decentralization.", "openairedatasets":"The Framework Programmes for Research and Technological Development, also called Framework Programmes or abbreviated FP1 to FP9, are funding programmes created by the European Union/European Commission to support and foster research in the European Research Area (ERA). Starting in 2014, the funding programmes were named Horizon.", "openairepublications":[ "openairedatasets:en", @@ -1894,7 +1895,7 @@ "OpenRepos.net — Community Repository System", "https://openrepos.net/" ], - "openstreetmap":"OpenStreetMap is a website that uses an open geographic database which is updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial photo imagery or satellite imagery, and also import from other freely licensed geodata sources. OpenStreetMap is freely licensed under the Open Database License and as a result commonly used to make electronic maps, inform turn-by-turn navigation, assist in humanitarian aid and data visualisation. OpenStreetMap uses its own topology to store geographical features which can then be exported into other GIS file formats. The OpenStreetMap website itself is an online map, geodata search engine and editor.", + "openstreetmap":"OpenStreetMap is an online map that uses an open geographic database, updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial photo imagery or satellite imagery, and import from other freely licensed geodata sources. OpenStreetMap is freely licensed under the Open Database License and is commonly used to make electronic maps, inform turn-by-turn navigation, and assist in humanitarian aid and data visualisation. OpenStreetMap uses its own topology to store geographical features which can then be exported into other GIS file formats. The OpenStreetMap website itself is an online map, geodata search engine, and editor.", "packagist":[ "The main Composer repository, aggregating public PHP packages installable with Composer", "wikidata" @@ -1903,7 +1904,7 @@ "European data center for the global PDB archive", "wikidata" ], - "peertube":"PeerTube is a free and open-source, decentralized, ActivityPub federated video platform powered by WebTorrent, that uses peer-to-peer technology to reduce load on individual servers when viewing videos.", + "peertube":"PeerTube is a free and open-source, decentralized, ActivityPub federated video platform. It can use peer-to-peer technology to reduce load on individual servers when videos get popular.", "photon":[ "Photon, search-as-you-type with OpenStreetMap", "https://photon.komoot.io" @@ -1955,7 +1956,7 @@ ], "reddit":"Reddit is an American social news aggregation, content rating, and forum social network. Registered users submit content to the site such as links, text posts, images, and videos, which are then voted up or down by other members. Posts are organized by subject into user-created boards called \"subreddits\". Submissions with more upvotes appear towards the top of their subreddit and, if they receive enough upvotes, ultimately on the site's front page. Reddit administrators moderate the communities. Moderation is also conducted by community-specific moderators, who are unpaid volunteers. It is operated by Reddit, Inc., based in San Francisco.", "rottentomatoes":"Rotten Tomatoes is an American review-aggregation website for film and television. The company was launched in August 1998 by three undergraduate students at the University of California, Berkeley: Senh Duong, Patrick Y. Lee, and Stephen Wang. Although the name \"Rotten Tomatoes\" connects to the practice of audiences throwing rotten tomatoes in disapproval of a poor stage performance, the direct inspiration for the name from Duong, Lee, and Wang came from an equivalent scene in the 1992 Canadian film Léolo.", - "rubygems":"RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them. It was created by Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer during RubyConf 2004.", + "rubygems":"RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them. It was created by Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer in 2004.", "rumble":"Rumble is an online video platform, web hosting, and cloud services business headquartered in Toronto, Ontario, with its U.S. headquarters in Longboat Key, Florida. It was founded in 2013 by Chris Pavlovski, a Macedonian Canadian technology entrepreneur. Rumble's cloud services business hosts Truth Social, and the video platform is popular among American conservative and far-right users. Rumble has been described as \"alt-tech\".", "searchcode code":[ "searchcode is a free source code search engine. Code snippets and open source (free software) repositories are indexed and searchable.", @@ -2035,8 +2036,8 @@ "wikidata" ], "wikinews":"Wikinews is a free-content news wiki and a project of the Wikimedia Foundation that works through collaborative journalism through user-created content. Wikipedia co-founder Jimmy Wales has distinguished Wikinews from Wikipedia by saying, \"On Wikinews, each story is to be written as a news story as opposed to an encyclopedia article.\" Wikinews's neutral point of view policy aims to distinguish it from other citizen journalism efforts such as Indymedia and OhmyNews. In contrast to most Wikimedia Foundation projects, Wikinews allows original work in the form of original reporting and interviews. In contrast to newspapers, Wikinews does not permit op-ed.", - "wikipedia":"Wikipedia is a free content online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and the wiki software MediaWiki. Wikipedia is the largest and most-read reference work in history, and is consistently ranked among the ten most visited websites; as of August 2024, it was ranked fourth by Semrush, and seventh by Similarweb. Founded by Jimmy Wales and Larry Sanger on January 15, 2001, Wikipedia has been hosted since 2003 by the Wikimedia Foundation, an American nonprofit organization funded mainly by donations from readers.", - "wikiquote":"Wikiquote is part of a family of wiki-based projects run by the Wikimedia Foundation using MediaWiki software. The project's objective is to produce collaboratively a vast reference of quotations from prominent people, books, films, proverbs, etc. and writings about them. The website aims to be as accurate as possible regarding the provenance and sourcing of the quotations.", + "wikipedia":"Wikipedia is a free-content online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and the wiki software MediaWiki. Wikipedia is the largest and most-read reference work in history, and is consistently ranked among the ten most visited websites; as of August 2024, it was ranked fourth by Semrush, and seventh by Similarweb. Founded by Jimmy Wales and Larry Sanger on January 15, 2001, Wikipedia has been hosted since 2003 by the Wikimedia Foundation, an American nonprofit organization funded mainly by donations from readers.", + "wikiquote":"Wikiquote is part of a family of wiki-based projects run by the Wikimedia Foundation using MediaWiki software. The project's objective is to collaboratively produce a vast reference of quotations from prominent people, books, films, proverbs, etc. and writings about them. The website aims to be as accurate as possible regarding the provenance and sourcing of the quotations.", "wikisource":"Wikisource is an online wiki-based digital library of free-content textual sources operated by the Wikimedia Foundation. Wikisource is the name of the project as a whole; it is also the name for each instance of that project, one for each language. The project's aim is to host all forms of free text, in many languages, and translations. Originally conceived as an archive to store useful or important historical texts, it has expanded to become a general-content library. The project officially began on November 24, 2003, under the name Project Sourceberg, a play on Project Gutenberg. The name Wikisource was adopted later that year and it received its own domain name.", "wikispecies":"Wikispecies is a wiki-based online project supported by the Wikimedia Foundation. Its aim is to create a comprehensive open content catalogue of all species; the project is directed at scientists, rather than at the general public. Jimmy Wales stated that editors are not required to fax in their degrees, but that submissions will have to pass muster with a technical audience. Wikispecies is available under the GNU Free Documentation License and CC BY-SA 4.0.", "wikiversity":"Wikiversity is a Wikimedia Foundation project that supports learning communities, their learning materials, and resulting activities. It differs from Wikipedia in that it offers tutorials and other materials for the fostering of learning, rather than an encyclopedia. It is available in many languages.", @@ -2058,8 +2059,8 @@ "https://search.yahoo.com/" ], "yahoo news":"Yahoo! News is a news website that originated as an internet-based news aggregator by Yahoo!. The site was created by Yahoo! software engineer Brad Clawsie in August 1996. Articles originally came from news services such as the Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN and BBC News.", - "youtube":"YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim, three former employees of PayPal. Headquartered in San Bruno, California, United States, it is the second-most visited website in the world, after Google Search. In January 2024, YouTube had more than 2.7 billion monthly active users, who collectively watched more than one billion hours of videos every day. As of May 2019, videos were being uploaded to the platform at a rate of more than 500 hours of content per minute, and as of 2023, there were approximately 14 billion videos in total.", - "yummly":"Yummly is an American website and mobile app that provides users recipes via recommendations and a search engine. Yummly uses a knowledge graph to offer a semantic web search engine for food, cooking and recipes.", + "youtube":"YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim, three former employees of PayPal. Headquartered in San Bruno, California, United States, it is the second-most-visited website in the world, after Google Search. In January 2024, YouTube had more than 2.7 billion monthly active users, who collectively watched more than one billion hours of videos every day. As of May 2019, videos were being uploaded to the platform at a rate of more than 500 hours of content per minute, and as of 2023, there were approximately 14 billion videos in total.", + "yummly":"Yummly was an American website and mobile app that provided users recipes via recommendations and a search engine. Yummly used a knowledge graph to offer a semantic web search engine for food, cooking and recipes.", "z-library":"Z-Library is a shadow library project for file-sharing access to scholarly journal articles, academic texts and general-interest books. It began as a mirror of Library Genesis, but has expanded dramatically." }, "eo":{ @@ -2364,7 +2365,7 @@ "mastodon users:es", "ref" ], - "mastodon users":"Mastodon es una red social libre, y descentralizada de microblogueo, que utiliza el protocolo de red ActivityPub para que sus usuarios puedan comunicarse entre si desde distintos servidores que conforman el fediverso. Mastodon es desarrollado por voluntarios, y por la organización sin ánimo de lucro Mastodon gGbmH.", + "mastodon users":"Mastodon es una red social libre, y descentralizada de microblogueo, que utiliza el protocolo de red ActivityPub para que sus usuarios puedan comunicarse entre sí desde distintos servidores que conforman el fediverso. Mastodon es desarrollado por voluntarios, y por la organización sin ánimo de lucro Mastodon gGbmH.", "mdn":"MDN Web Docs, anteriormente Mozilla Developer Network, y antes Mozilla Developer Center, es el sitio web oficial de Mozilla para la documentación de estándares web y de los proyectos de Mozilla.", "metacpan":"CPAN es el acrónimo de Comprehensive Perl Archive Network. Es un enorme archivo de software escrito en Perl, así como de documentación sobre el mismo. Tiene presencia en la Web a través de su sitio www.cpan.org y sus 267 espejos distribuidos por todo el mundo.", "mixcloud":"Mixcloud es un servicio británico de transmisión de música en línea que permite escuchar y distribuir programas de radio, mezclas de DJ y podcasts, que son financiados por sus usuarios registrados.", @@ -2411,7 +2412,7 @@ "semantic scholar":"Semantic Scholar es un motor de búsqueda respaldado por un sistema de inteligencia artificial dedicado a trabajar con publicaciones académicas. Desarrollado en el Allen Institute for Artificial Intelligence, se lanzó al público en noviembre de 2015. Utiliza avances recientes en el procesamiento del lenguaje natural para proporcionar resúmenes de artículos académicos.", "soundcloud":"SoundCloud es un servicio de retransmisión de música vía streaming que, a diferencia de Spotify y otras plataformas, tiene la opción de poder subir canciones y álbumes directamente, sin la necesidad de distribuidoras externas.", "stackoverflow":"Stack Exchange es una red de webs de preguntas y respuestas sobre distintos temas, donde las preguntas, respuestas y los usuarios están sujetos a un sistema de reputación y recompensas, parecido al de Reddit. Dicho sistema permite que los sitios se automoderen.", - "startpage":"Startpage es un motor de búsqueda holandés, que destaca la privacidad como su característica distintiva. El sitio web anuncia que permite a los usuarios obtener resultados del buscador de Google protegiendo la privacidad de los usuarios al no almacenar información personal ni datos de búsqueda y eliminar todos los rastreadores. Startpage también incluye una función de navegación anónima que permite a los usuarios la opción de abrir los resultados de búsqueda a través de un proxy para aumentar el anonimato. Dado que la empresa tiene su sede en los Países Bajos, está protegida por las leyes de privacidad neerlandesa y de la Unión Europea, por lo que no está sujeta a los programas de vigilancia de Estados Unidos, como PRISM.", + "startpage":"Startpage es un motor de búsqueda neerlandés, que destaca la privacidad como su característica distintiva. El sitio web anuncia que permite a los usuarios obtener resultados del buscador de Google protegiendo la privacidad de los usuarios al no almacenar información personal ni datos de búsqueda y eliminar todos los rastreadores. Startpage también incluye una función de navegación anónima que permite a los usuarios la opción de abrir los resultados de búsqueda a través de un proxy para aumentar el anonimato. Dado que la empresa tiene su sede en los Países Bajos, está protegida por las leyes de privacidad neerlandesa y de la Unión Europea, por lo que no está sujeta a los programas de vigilancia de Estados Unidos, como PRISM.", "superuser":[ "stackoverflow:es", "ref" @@ -2458,8 +2459,8 @@ "sitio web de noticias de Yahoo!", "wikidata" ], - "youtube":"YouTube (YT) es un sitio web de origen estadounidense dedicado a compartir videos. Presenta una variedad de clips de películas, programas de televisión y vídeos musicales, así como contenidos amateur como videoblogs. Las personas que crean contenido para esta plataforma generalmente son conocidas como youtubers.", - "z-library":"Z-Library es un proyecto de biblioteca fantasma de intercambio de archivos con acceso a artículos de revistas académicas, textos académicos y libros de interés general. Se originó como un espejo de Library Genesis, y la mayoría de sus libros proceden de esta. Sin embargo, algunos de ellos son subidos directamente a este sitio por usuarios individuales y no están incluidos en la colección de Library Genesis. Las personas también pueden contribuir al repositorio del sitio web para hacer que la literatura sea accesible para tantas personas como sea posible." + "youtube":"YouTube es un sitio web dedicado al servicio de alojamiento de videos. Presenta una variedad de clips de películas, programas de televisión y videoclips musicales, así como contenidos amateur como videoblogs. Las personas que crean contenido para esta plataforma generalmente son conocidas como youtubers.", + "z-library":"Z-Library es un proyecto de biblioteca fantasma de intercambio de archivos con acceso a libros de interés general, artículos de revistas académicas y textos académicos." }, "et":{ "9gag":"9GAG on suhtlusportaal, kus kasutajad saavad üles laadida ja teistega jagada enda valmistatud või teistelt veebilehtedelt leitud sisu. Portaali haldav ettevõte, 9GAG Inc., asub Ameerika Ühendriikides California osariigis Mountain View's. Alates portaali avamisest 23. aprillil 2008 on see kogunud palju populaarsust. 2015. aasta septembriks oli portaalil juba üle 26 miljoni Facebooki meeldimise ja üle viie miljoni Twitteri jälgija. 9GAG kuulub internetis 200 populaarseima veebilehe hulka, selle väärtuseks hinnatakse üle 56 miljoni USA dollari.", @@ -2733,7 +2734,7 @@ "ref" ], "wikidata":"Wikidata elkarlanean sortutako datu-base eleanitz bat da, Wikimedia Fundazioak kudeatua. Wikidataren xedea da iturri bateratu bat eskaintzea zenbait datutarako (adibidez, pertsonen jaiotegunak eta jarduerak, edo Wikipediako artikulu bat nola den beste hizkuntzen Wikipedietan. Informazio hori Wikimediaren proiektuetan erabiltzen da gero, adibidez Wikipedian. Wikipediako artikulu askotan goian eskuinaldean hainbat daturekin agertzen den infotaula, kasu askotan automatikoki sortu izan da artikulu horri buruz Wikidatan dagoen informazioarekin.", - "wikipedia":"Wikipedia eduki askeko entziklopedia bat da, lankidetzaz editatua, eleanitza, Interneten argitaratua, Wikimedia Fundazioa irabazi asmorik gabeko erakundeak sustengatua. Wikipedia mundu osoko boluntarioek idazten dute. Internetera konektatutako edonork parte har dezake Wikipediako artikuluetan, aldatu lotura sakatuz. 2015ko azaroaren bostean, 291 hizkuntzatako edizioak zituen, eta horietatik 275 zeuden aktibo. Proiektuaren xedea da ahalik eta hizkuntza gehienetan idatzitako entziklopedia sortu eta hedatzea. Guztira 37 milioi artikulu ditu, horietatik 446.705 euskaraz eta bost milioitik gora ingelesez.", + "wikipedia":"Wikipedia eduki askeko entziklopedia bat da, lankidetzaz editatua, eleanitza, Interneten argitaratua, Wikimedia Fundazioa irabazi asmorik gabeko erakundeak sustengatua. Wikipedia mundu osoko boluntarioek idazten dute. Internetera konektatutako edonork parte har dezake Wikipediako artikuluetan, aldatu lotura sakatuz. 2015ko azaroaren bostean, 291 hizkuntzatako edizioak zituen, eta horietatik 275 zeuden aktibo. Proiektuaren xedea da ahalik eta hizkuntza gehienetan idatzitako entziklopedia sortu eta hedatzea. Guztira 37 milioi artikulu ditu, horietatik 449.127 euskaraz eta bost milioitik gora ingelesez.", "wikiquote":"Wikiesanak Wikimedia Fundazioaren aipu ezagunen bilduma da. Bertan pertsona entzutetsuen esanak, liburu ospetsuetako aipamenak eta herrialde ezberdinetako esaera zaharrak edo atsotitzak aurki daitezke. Wikipedia bezala, internet bidezko elkarlanean eta wiki softwarean oinarritzen den webgunea da. GFDL lizentziapean argitaratzen da. Hastapenetan ingelesez soilik bazen ere, 2004 urteaz geroztik 79 hizkuntza ezberdinetan dago. Ingelesezko bertsioa artikulu gehien duena izan da ordutik, 2010 urteko hasieran ia ehun mila orri eta hamazazpi mila bat aipuak biltzeko artikulu duela. 2010. urtearen hasieran euskarazko bertsioak mila orrialde baino gehiago zituen, eta horietako ehun baino gehiago, aipu-orrialdeak.", "wikisource":"Wikiteka wikian dagoen testu eduki askeko Interneteko liburutegi digitala da, Wikimedia Fundazioak kudeatutakoa. Wikitekak da proiektu osoaren izena, baita proiektu horretako ale bakoitzaren izena ere, non ale bakoitza hizkuntza desberdin bati dagokion. Beraz, hizkuntza askotako iturriek osatzen dute Wikiteka.", "wikispecies":"Wikiespezieak Wikimedia Fundazioaren proiektu bat da. Bertan, naturako izaki espezie ezberdinen informazioa aurki dezakegu; animaliak, landareak, onddoak, bakteriak, eta gainontzeko bizi-formak.", @@ -3196,7 +3197,7 @@ "crossref":"Crossref est une organisation à but non lucratif de droit américain jouant le rôle d'agence d'enregistrement et de registre des Digital Object Identifier.", "curlie":"L’Open Directory Project (ODP), aussi appelé Dmoz, est un ancien annuaire de sites web actif de 1998 à 2017, sous licence libre Open Directory.", "currency":"DuckDuckGo est un moteur de recherche américain qui vise à préserver la vie privée de ses utilisateurs et à leur éviter la bulle de filtres.", - "dailymotion":"Dailymotion est une entreprise française, filiale du groupe Vivendi, proposant, sur le site web du même nom, un service d'hébergement, de partage et de visionnage de vidéo en ligne.", + "dailymotion":"Dailymotion est une entreprise française, filiale du groupe Canal+, proposant, sur le site web du même nom, un service d'hébergement, de partage et de visionnage de vidéo en ligne.", "ddg definitions":[ "currency:fr", "ref" @@ -3369,7 +3370,7 @@ "wikipedia":"Wikipédia est une encyclopédie en ligne collaborative et multilingue créée par Jimmy Wales et Larry Sanger le 15 janvier 2001. Il s'agit d'une œuvre libre, c'est-à-dire que chacun est libre de l'amender et de la rediffuser. Gérée en wiki dans le site web wikipedia.org grâce au logiciel MediaWiki, elle permet à tous les internautes d'écrire et de modifier des articles, ce qui lui vaut d'être qualifiée d'« encyclopédie participative ». En quelques années, elle est devenue la plus importante encyclopédie disponible dans le monde et la plus consultée.", "wikiquote":"Wikiquote est un site web multilingue dont l'objectif est de créer et d'améliorer des recueils de citations. Il est géré en wiki grâce au moteur MediaWiki.", "wikisource":"Wikisource est une bibliothèque numérique de textes du domaine public, gérée en wiki grâce au moteur MediaWiki. Comme Wikipédia, elle est hébergée par la fondation Wikimédia et son contenu est librement améliorable.", - "wikispecies":"Wikispecies est un répertoire nomenclatural en ligne destiné à recenser les espèces du vivant : animales, végétales, bactériennes, fongiques, voire virales. Il est géré en wiki grâce au moteur MediaWiki.", + "wikispecies":"Wikispecies est un répertoire nomenclatural en ligne destiné à recenser les espèces du vivant : eucaryotes, archéennes, bactériennes, voire virales. Il est géré en wiki grâce au moteur MediaWiki.", "wikiversity":"Wikiversité est un site web participatif de ressources éducatives libres de tous niveaux. Multilingue et ouvert à tous, il est géré en wiki grâce au moteur MediaWiki.", "wikivoyage":"Wikivoyage est un site web multilingue dont l'objectif est de créer et d'améliorer des guides touristiques. Il est géré en wiki grâce au moteur MediaWiki.", "wiktionary":"Le Wiktionnaire est un projet lexicographique de la Wikimedia Foundation dont l’objectif est de définir tous les mots de toutes les langues, dans toutes les langues. En 2024, il existe plus de 170 langues de rédaction. Au sens strict, le terme « Wiktionnaire » désigne souvent la version en français de ce projet, Wiktionary étant le nom officiel en anglais. Il est géré en wiki dans le site web wiktionary.org et son contenu est librement réutilisable.", @@ -3647,7 +3648,7 @@ ], "wikidata":"ויקינתונים הוא מסד נתונים סמנטי, חופשי, שיתופי ורב-לשוני, השייך לקרן ויקימדיה. ויקינתונים משמש כמאגר נתונים מרכזי לכל המיזמים של קרן ויקימדיה, וניתן לעשות בנתונים שבו שימוש חופשי ברישיון נחלת הכלל.", "wikinews":"ויקיחדשות הוא מיזם רב-לשוני של קרן ויקימדיה ליצירת אתר חדשות חופשי, שכל אחד יכול לתרום לו.", - "wikipedia":"ויקיפדיה היא אנציקלופדיה מקוונת רב-לשונית, המבוססת על תוכן חופשי ומשתמשת בטכנולוגיית ויקי. ויקיפדיה היא האנציקלופדיה הכללית הגדולה והפופולרית ביותר באינטרנט. מאחורי האתר עומדת קרן ויקימדיה, מוסד ללא כוונת רווח שמרכזו בארצות הברית. הקרן נותנת את שירותי המעטפת לקיום האתר, כגון תחזוקת שרתים, אך היא אינה מתערבת בניהול האתר, ומאפשרת לקהילת הוויקיפדים לקבל החלטות עצמאיות בנושאי התוכן. מוטו האתר הוא \"ויקיפדיה – האנציקלופדיה החופשית\", כאשר \"חופשי\" פירושו חופשי לעיון ללא כל מגבלה, חופשי לעריכה וחופשי להעתקה ולהפצה. תוכן האתר מוגש תחת הרישיון החופשי CC-BY-SA.", + "wikipedia":"וִיקִיפֶּדְיָה היא אנציקלופדיה מקוונת רב-לשונית, המבוססת על תוכן חופשי ומשתמשת בטכנולוגיית ויקי. ויקיפדיה היא האנציקלופדיה הכללית הגדולה והפופולרית ביותר באינטרנט. מאחורי האתר עומדת קרן ויקימדיה, מוסד ללא כוונת רווח שמרכזו בארצות הברית. הקרן נותנת את שירותי המעטפת לקיום האתר, כגון תחזוקת שרתים, אך היא אינה מתערבת בניהול האתר, ומאפשרת לקהילת הוויקיפדים לקבל החלטות עצמאיות בנושאי התוכן. מוטו האתר הוא \"ויקיפדיה – האנציקלופדיה החופשית\", כאשר \"חופשי\" פירושו חופשי לעיון ללא כל מגבלה, חופשי לעריכה וחופשי להעתקה ולהפצה. תוכן האתר מוגש תחת הרישיון החופשי CC-BY-SA.", "wikiquote":"ויקיציטוט הוא מיזם-אחות של ויקיפדיה, שמשתמש בתוכנת מדיה-ויקי ומנוהל על ידי קרן ויקימדיה. האתר הוא ויקי, ומבוסס על רעיונו של דניאל אלטסון, שמומש במקור על ידי בריאון ויבר. מטרת המיזם היא לבסס מאגר רחב של ציטוטים חופשיים ממקורות שונים.", "wikisource":"ויקיטקסט הוא מיזם של קרן ויקימדיה ומיזם־אחות לוויקיפדיה. המיזם מיועד להיות ספרייה הכוללת מאגר חופשי של טקסטים.", "wikispecies":"ויקימינים הוא מיזם-אחות של ויקיפדיה, המנוהל על ידי קרן ויקימדיה. ויקימינים הוא מדריך חופשי המתמחה בתחום מיון עולם הטבע. המיזם משתמש בשמות המדעיים לטיניים של טקסונים ותרגום של שם ניתן בשפות רבות אחרות. נכון לינואר 2022 יש במיזם כ-785,000 ערכים. המיזם מוגש תחת רישיון CC-BY-SA. ויקימינים בעברית, ובשאר השפות השונות - אינו קיים לעצמו, אלא מפנה לערך המקביל בוויקיפדיה.", @@ -3994,7 +3995,7 @@ "ref" ], "bandcamp":"Bandcamp adalah perusahaan musik internet yang didirikan pada 2008 oleh Ethan Diamond dan pemrogram Shawn Grunberger, Joe Holt and Neal Tucker,", - "bilibili":"Bilibili adalah sebuah situs web berbagi video bertema animasi, komik dan permainan yang berbasis Tiongkok, di mana para pengguna dapat mengajukan, melihat dan menambahkan subjudul komentar pada video-video. Bilibili memakai Adobe Flash atau HTML5, yang dapat diubah secara manual", + "bilibili":"Bilibili atau Bstation untuk pasar Asia Tenggara, adalah sebuah situs web berbagi video bertema animasi, komik dan permainan yang berbasis Tiongkok, di mana para pengguna dapat mengajukan, melihat dan menambahkan subjudul komentar pada video-video. Bilibili memakai Adobe Flash atau HTML5, yang dapat diubah secara manual", "bing":"Microsoft Bing merupakan situs mesin pencari web yang bernaung di bawah bendera Microsoft. Bing merupakan bentuk reinkarnasi yang dilakukan Microsoft terhadap ketiga mesin pencari produksinya terdahulu, yakni Live Search, Windows Live Search, dan MSN Search.", "bing images":[ "bing:id", @@ -4072,7 +4073,7 @@ "google":"Google Penelusuran adalah mesin pencari web yang dimiliki Google LLC. Google Penelusuran adalah mesin pencari yang paling banyak digunakan di dunia maya. Sekian ratus juta kueri dimasukkan setiap harinya oleh para peselancar web melalui berbagai macam layanan yang disediakan.", "google images":"Google Images adalah layanan pencarian yang dibuat oleh Google dan diperkenalkan pada bulan Juli 2001. Layanan ini memungkinkan pengguna mencari konten gambar di web. Kata kunci pencarian gambar didasarkan pada nama berkas gambar, teks tautan yang mengacu ke gambar, dan teks di dekat gambar. Saat mencari gambar, miniatur gambar yang cocok dengan kueri pencarian tersebut akan ditampilkan. Ketika pengguna mengklik miniatur tersebut, gambar tersebut ditampilkan di dalam kotak yang menimpa situs web sumbernya. Pengguna kemudian bisa menutup kotak dan menelusuri situs tersebut atau melihat gambar dalam ukuran penuh.", "google news":"Google Berita merupakan layanan kompilasi berita yang secara otomatis menampilkan berita dari berbagai media. Google News juga menyediakan layanan pencarian berita dengan hasil pencarian berupa-berita yang sesuai dengan kata kunci. Berita yang muncul di baris pertama hasil pencarian adalah berita yang paling banyak dibaca dan yang terbaru. Meski berita-berita sudah diseleksi secaraa otomatis, tetapi situs-situs berita yang muncul dalam layanan ini dipilih secara menual oleh pengguna. Google News menyediakan fitur News Archives Search untuk mencari berita-berita lama.", - "google play apps":"Play Store, sebelumnya Android Market, adalah layanan distribusi digital yang dioperasikan dan dikembangkan oleh Google. Ini berfungsi sebagai toko aplikasi resmi untuk sistem operasi Android, yang memungkinkan pengguna untuk menelusuri dan mengunduh aplikasi yang dikembangkan dengan Android software development kit (SDK) dan diterbitkan melalui Google. Google Play juga berfungsi sebagai toko media digital, yang menawarkan program musik, buku, film, dan televisi. Ini sebelumnya menawarkan perangkat keras Google untuk pembelian sampai diperkenalkannya pengecer perangkat keras online yang terpisah, Google Store, pada 11 Maret 2015, dan juga menawarkan publikasi berita dan majalah sebelum perbaikan Google News pada 15 Mei 2018.", + "google play apps":"Google Play Store, sebelumnya Android Market, adalah layanan distribusi digital yang dioperasikan dan dikembangkan oleh Google. Ini berfungsi sebagai toko aplikasi resmi untuk sistem operasi Android, yang memungkinkan pengguna untuk menelusuri dan mengunduh aplikasi yang dikembangkan dengan Android software development kit (SDK) dan diterbitkan melalui Google. Google Play juga berfungsi sebagai toko media digital, yang menawarkan program musik, buku, film, dan televisi. Ini sebelumnya menawarkan perangkat keras Google untuk pembelian sampai diperkenalkannya pengecer perangkat keras online yang terpisah, Google Store, pada 11 Maret 2015, dan juga menawarkan publikasi berita dan majalah sebelum perbaikan Google News pada 15 Mei 2018.", "google play movies":[ "google play apps:id", "ref" @@ -4429,33 +4430,8 @@ "brave:ja", "ref" ], - "currency":"DuckDuckGo(ダックダックゴー)は、インターネット検索エンジンである。利用者のプライバシーの保護と利用履歴等を記録保存しないことを運営方針としている。VivaldiやTor Browserの標準検索エンジンにも採用されている。また、DuckDuckGoは検索結果のパーソナライズを行わないため「フィルターバブル」に陥らない(DuckDuckGoはGoogleのフィルターバブル問題についてブログで指摘している)。", - "dailymotion":"Dailymotion(デイリーモーション)は、Vivendi SE傘下のDAILYMOTION SAが運営する、フランスの動画共有サービス。", - "ddg definitions":[ - "currency:ja", - "ref" - ], + "dailymotion":"Dailymotion(デイリーモーション)は、Canal+傘下のDAILYMOTION SAが運営する、フランスの動画共有サービス。", "deezer":"Deezer (ディーザー) は、フランスの音楽配信サービスである。", - "duckduckgo":[ - "currency:ja", - "ref" - ], - "duckduckgo images":[ - "currency:ja", - "ref" - ], - "duckduckgo news":[ - "currency:ja", - "ref" - ], - "duckduckgo videos":[ - "currency:ja", - "ref" - ], - "duckduckgo weather":[ - "currency:ja", - "ref" - ], "erowid":"エロウィド (Erowid) または、エロウィド・センター は、アメリカ歳入法の501(c)(3)に基づく非営利の教育団体であり、向精神性の植物や化学物質や、同様に、瞑想、明晰夢、経頭蓋磁気刺激法、電気刺激のような、変性意識状態をもたらす技法についての情報を提供している。", "etymonline":"オンライン・エティモロジー・ディクショナリー またはエティモンライン とは、英単語の語源についてのオンライン語源辞典。", "fdroid":"F-DroidはAndroidに対応したソフトウェアリポジトリおよびアプリケーションストアである。Google Playと機能は類似するが、扱っているのはフリーかつオープンソースのソフトウェアのみである。配信アプリケーションはF-Droidのウェブサイトで見ながらインストールできるが、クライアントアプリケーション から直接インストールする方法もある。クライアントアプリケーションはインストールしたF-Droid配信アプリケーションを自動的に更新することも出来る。また、ウェブサイトでは全配信アプリケーションのソースコードがダウンロードできるようになっている。ユーザーは登録や、広告、ユーザー追跡といった嫌われる機能があるアプリケーションに悩まされることもフリーでないソフトウェアに依存する必要もない。F-Droidサーバーを動かしているソフトウェアはフリーソフトウェアなので、誰でも自身のAndroidアプリケーションリポジトリをセットアップすることができる。", @@ -4644,6 +4620,7 @@ "hoogle":"하스켈 또는 해스켈(영어: Haskell IPA: [ˈhæskəl])은 순수 함수형 프로그래밍 언어이다. 교육계와 산업계 모두를 위해 설계된 하스켈은 타입클래스, 모나딕 IO와 같은 여러 프로그래밍 언어의 기능을 개척하였다. 하스켈의 주된 구현체는 GHC(Glasgow Haskell Compiler)이다.", "imdb":"인터넷 영화 데이터베이스(Internet Movie Database, 약칭 IMDb)는 영화, 배우, 텔레비전 드라마, 비디오 게임 등에 관한 정보를 제공하는 온라인 데이터베이스이다. 2014년 8월 1일을 기준으로 영화, 에피소드 정보 2,950,317건, 인물 정보 6,029,621건을 소유하고 있으며, 컴퓨터 프로그래머 콜 니덤이 1990년에 제작했다. 1996년에는 영국에 인터넷 '무비 데이터베이스 Ltd' 회사를 설립해 광고 대행, 라이선싱, 파트너십 등을 통해 수익을 창출했다. 1998년에 아마존닷컴의 자회사로 들어가, DVD, 비디오 테이프를 판매하는 데 정보를 제공하고 있다.", "imgur":"Imgur(, 이머저)는 2009년 앨런 샤프가 설립한 미국의 온라인 이미지 공유 커뮤니티, 이미지 호스팅 사이트이다.", + "ina":"국립 시청각 연구소(Institut national de l'audiovisuel, 프랑스어 발음: [ɛ̃stity nasjɔnal də lodjɔvizɥɛl], 약어 INA)는 모든 프랑스 라디오 및 TV 시청각 아카이브의 저장소이다. 또한 아프가니스탄, 캄보디아와 같은 국가의 기록 보관소에 무료로 액세스할 수 있다. 브리쉬르마른(Bry-sur-Marne)에 본사가 있다.", "kickass":"킥애스 토렌트(KickassTorrents, KAT)는 2008년에 개설된 비트토렌트 웹사이트로, 2014년 11월까지 킥애스 토렌트는 파이러트 베이를 제치고 세계에서 가장 많이 방문했던 비트토렌트 디렉토리가 되었다. KAT는 2016년 7월 20일 미국 정부에 의해 도메인이 붙잡히면서 오프라인 상태가 되었다. 이와 동시에 사이트의 프록시 서버는 직원들에 의해 작동이 중단되었다.", "library genesis":"라이브러리 제네시스(영어: Library Genesis), 약칭 립겐(LibGen)은 학술논문 및 단행본 검색엔진이다. 대개 학술줄판사에 과금을 해야 열람할 수 있는 온갖 학술자료의 pdf 파일에 접근, 다운로드할 수 있다.", "library of congress":"미국 의회도서관(美國議會圖書館, The Library of Congress)는 미국의 사실상의 국립 도서관이다. 워싱턴 D.C.에 있으며, 서재 공간으로는 세계에서 가장 크며 중요도에서도 으뜸이다. 3천만권의 대장에 정리된 도서가 있으며 470개 언어로 되어 있는 인쇄물들이 있다. 5천 8백만개의 문서들이 있으며, 구텐베르크 성서(현재 완전한 벨룸 형태의 책은 세계에 3권이 있는 것으로 알려져 있다)를 포함해서 고서를 가지고 있기로도 북아메리카에서 최고이다. 백만권의 미 정부 출판물과 백만편의 세계 신문은 3세기에 걸쳐 있고, 철된 신문도 3만 3천권, 50만개의 마이크로필름, 6천권의 만화책과 세계 최대의 법학책, 4백 80만점의 지도, 악보, 2백 7십만의 음반, 베츠 스트라디바리우스, 카사베티 스트라디바리우스도 소장하고 있다.", @@ -4714,7 +4691,7 @@ ], "wikidata":"위키데이터(영어: Wikidata)는 위키미디어 재단에서 운영하는, 협력적으로 편집 가능한 지식 베이스이다. 위키백과 등 위키미디어 프로젝트에서 공통으로 사용할 정보(예를 들어 생일 등)을 제공하는 것을 목적으로 한다. 위키미디어 프로젝트에서 사용하는 미디어 파일의 저장소를 제공하는 위키미디어 공용과 비슷하다.", "wikinews":"위키뉴스(영어: Wikinews)는 위키미디어 재단의 뉴스 소스이다. 위키뉴스는 GNU 자유 문서 사용 허가서 1.2 이상에 따라 배포되는 위키미디어 재단의 다른 프로젝트와는 달리 크리에이티브 커먼즈의 저작자표시 사용 허가서 2.5 이상의 라이선스를 가진다. 위키뉴스에서 지지하는 중립적 시각 정책은 오마이뉴스와 같은 시민 언론의 노력과는 구별된다. 위키미디어 재단의 대부분의 프로젝트와 달리 위키뉴스는 독자적인 리포트와 인터뷰 형태의 독자적인 기사를 허용한다.", - "wikipedia":"위키백과(위키百科, IPA: [ɥikçibɛ̝k̚k͈wa̠], [ykçibɛ̝k̚k͈wa̠] ) 또는 위키피디아(영어: Wikipedia, IPA: [ˌwɪkɪˈpiːdɪə] )는 누구나 자유롭게 쓸 수 있는 다언어판 온라인 백과사전이다. 개방된 협업을 통해 위키 기반 편집 시스템을 사용하여 자발적인 위키백과 사용자 공동체가 작성하고 관리하고 있다. 위키백과는 대표적인 집단 지성의 사례로 평가받고 있으며 사상 최대의, 가장 많이 읽힌 참고서이기도 하다. 시밀러웹과 (과거) 알렉사 인터넷에서 가장 인기있는 웹사이트 10곳 중 하나로 꾸준히 순위를 올리고 있다. 2024년 1월 기준으로 위키백과는 세계에서 7번째로 인기있는 사이트로 순위를 올렸다. 위키백과는 자유 저작물을 보유하고 상업적인 광고가 없으며 주로 기부금을 통해 지원을 받는 비영리 단체인 위키미디어 재단이 소유하고 지원하고 있다.", + "wikipedia":"위키백과(위키百科, IPA: [ɥikçibɛ̝k̚k͈wa̠], [ykçibɛ̝k̚k͈wa̠] ) 또는 위키피디아(영어: Wikipedia, IPA: [ˌwɪkɪˈpiːdɪə] )는 누구나 자유롭게 쓰는 다언어판 온라인 백과사전이다. 협업을 개방한 위키 기반 편집 시스템을 사용하여 자발적인 위키백과 사용자 공동체가 작성하고 관리한다. 위키백과는 대표적인 집단 지성의 사례로 평가받으며 역사상 최대로 가장 많이 읽는 참고서이기도 하다. 시밀러웹과 (과거) 알렉사 인터넷에서 가장 인기있는 웹사이트 10곳 중 하나로 꾸준히 순위를 올린다. 2024년 1월 기준으로 위키백과는 세계에서 7번째로 인기있는 사이트로 순위를 올렸다. 위키백과는 자유 저작물을 보유하고 상업적인 광고가 없다. 주로 기부금으로 지원을 받는 비영리 단체인 위키미디어 재단이 소유하고 지원한다.", "wikiquote":"위키인용집(Wikiquote)은 위키백과의 자매 프로젝트로, 2004년 7월부터 영어판 위키인용집을 시작으로 여러 언어로 프로젝트가 번역되었다. 이 프로젝트의 목표는 유명한 인물이 한 말이나 책의 문장 등을 인용하고 해석하는 것이니 일종의 어록이라고 할 수 있다.", "wikisource":"위키문헌(-文獻, 영어: Wikisource)은 위키미디어 재단에서 추진하고 있는 프로젝트이다. 위키문헌 프로젝트의 목표는 모든 사람들이 자유로이 쓸 수 있는 정보자료를 한 곳에 모으는 것이다. 자비 출판 문서나 서적을 올리는 것은 허용되지 않는다.", "wikispecies":"위키생물종(Wikispecies 위키스피시즈[*])은 위키미디어 재단의 지원을 받는 생물 분류 도감용 프로젝트이다.", @@ -4846,7 +4823,7 @@ "wikidata":"„Vikiduomenys“ – nemokama ir atvira žinių bazė, kurią struktūrizuoja Vikimedijos projektų dalyviai bei robotai. Vikiduomenys yra centrinė „Vikimedijos“ seserinių projektų „struktūrizuotų duomenų“ saugykla.", "wikinews":"Vikinaujienos – Vikimedijos projektas, kurio tikslas – kurti laisvai prieinamas ir neutraliai pateikiamas žinias bei naujienas. Projekte naudojama viki programinė įranga ir MediaWiki. Šiuo projektu siekiam įgyvendinti pilietinio žurnalizmo idėją, suteikiant galimybę teikti informaciją nebūtinai profesionaliems žurnalistams.", "wikipedia":"Vikipedija – laisvoji interneto enciklopedija. Joje paskelbta daugiau nei 55 mln. straipsnių 306 kalbomis. 2020 m. Vikipediją kas mėnesį skirtingais įnagiais aplankė 1,5 mlrd. lankytojų bei peržiūrėjo 15 mlrd. puslapių.", - "wikiquote":"Vikicitatos – laisvasis interneto projektas, kaip ir Vikipedija besiremiantis mediawiki programine įranga. Tikslai - Viki principu sudaryti citatų kompendiumą įvairiomis kalbomis. Vikicitatose skelbiamos įvairios citatos, aforizmai, sentencijos, lozungai, žymių žmonių mintys, šmaikštūs posakiai, patarlės ir priežodžiai pačiomis įvairiausiomis temomis.", + "wikiquote":"Vikicitatos – laisvasis interneto projektas, kaip ir Vikipedija besiremiantis mediawiki programine įranga. Tikslai – Viki principu sudaryti citatų kompendiumą įvairiomis kalbomis. Vikicitatose skelbiamos įvairios citatos, aforizmai, sentencijos, lozungai, žymių žmonių mintys, šmaikštūs posakiai, patarlės ir priežodžiai pačiomis įvairiausiomis temomis.", "wikisource":"Vikišaltiniai – kaip ir Vikipedija yra Vikimedijos projektas, paremtas MediaWiki programine įranga; internetinis projektas, kuriame kaupiama tekstinė informacija, dokumentai, skirti tekstinėms kitų Vikimedijos projektų „iliustracijoms“ ir papildymams. Tekstams netaikomos autorinės teisės apsaugos režimas dėl riboto naudojimo arba jie yra viešo naudojimo arba taikoma GNU-FDL licencija. Kitoms medijų rūšims kaip vaizdinei, garso informacijai yra skirtas Vikitekos projektas.", "wikispecies":"Vikirūšys – internetinis Vikimedijos fondo projektas, veikiantis vikitechnologijos principu. Projekto idėją pasiūlė Benedikt Mandl 2004 rugpjūčio 3 d.", "wikiversity":"Vikiversitetas – Vikimedijos fondo projektas, pagrįstas MediaWiki technologija; vikisvetainė.", @@ -4926,6 +4903,10 @@ "github":"GitHub ir tīmeklī balstīts Git repozitoriju mitināšanas pakalpojums. Tajā tiek piedāvāta visa izplatītu versiju pārvaldības sistēmu un pirmkoda vadības funkcionalitāte, pieejamas ir arī vairākas citas iespējas, tostarp piekļuves vadība, kļūdu izsekošana, uzdevumu pārvaldība, wiki.", "goodreads":"Goodreads ir \"sociālās kataloģizēšanas\" vietne, kuru 2006. gada decembrī izveidoja Otiss Čandlers, programminženieris un uzņēmējs, un Elizabete Čandlere. Vietne tika palaista 2007. gada janvārī. Tā ļauj interneta lietotājiem brīvi pārskatīt Goodreads plašo, lietotāju veidoto grāmatu un atsauksmju datubāzi. Lai varētu pievienot datubāzei jaunu grāmatu, iesniegt atsauksmi, kataloģizēt savu bibliotēku vai veidot lasāmo grāmatu sarakstus, nepieciešams reģistrēties. Reģistrēti lietotāji var arī veidot savas grupas grāmatu ieteikumiem un diskusijām. 2007. gada decembrī vietnei bija vairāk nekā 650 000 lietotāju un datubāzē bija reģistrētas vairāk nekā 10 000 000 grāmatas. 2012. gada jūlijā vietne sasniedza 10 miljonu lietotāju skaitu, mēnesī to apmeklēja 20 miljonus reižu, un to pārvaldīja 30 darbinieki. 2013. gada 23. jūlijā tika paziņots, ka tā sasniegusi 20 miljonu lietotāju robežu, ieguvusi divreiz lielāku lietotāju skaitu tikai 11 mēnešu laikā. Organizācijas ofiss atrodas Sanfrancisko.", "google":"Google meklētājs ir interneta meklētājprogramma, kas pieder Google uzņēmumam. Google meklētājs ir populārākais internetā, katru dienu tiek veikti vairāk nekā trīs miljardi meklējumu.", + "google images":[ + "Google attēli. Visaptverošākā attēlu meklēšana tīmeklī.", + "https://images.google.com" + ], "google news":"Google News ir bezmaksas ziņu agregators, ko pārvalda uzņēmums Google Inc. Serviss tika izveidots 2002. gadā un tiek dēvēts par pasaulē lielāko ziņu apkopotāju.", "google play apps":"Google Play ir elektronisks lietotņu veikals, kas paredzēts Android operētājsistēmas ierīcēm. Šī lietotņu veikala darbību pārrauga Google. Veikalā pieejamas gan bezmaksas, gan maksas lietotnes, kuras var lejupielādēt gan no mobilās ierīces, gan no Google TV, gan caur datoru, nosūtot pieteikumu lejupielādēt lietotni mobilajā ierīcē. Google Play ir arī pieejamas elektroniskās grāmatas, mūzika, filmas un citas multimediju iespējas.", "google play movies":[ @@ -4947,7 +4928,7 @@ "openstreetmap":"OpenStreetMap ir projekts, kura mērķis ir radīt brīvi labojamas kartes. Kartes tiek veidotas, par pamatu ņemot datus no pārnēsājamiem GPS uztvērējiem, aerofotogrāfijām, pašu lietotāju zināšanām, kā arī no citiem atvērtiem datu avotiem, kas pieļauj to izmantošanu karšu veidošanai.", "pinterest":"Pinterest ir tīmekļa vietne, kas tika izveidota 2010. gadā, Sanfrancisko, ASV. Sociālo platformu Pinterest izveidoja Bens Silbermens, Pols Skiara un Evans Šarps, vietni pārvalda kompānija Cold Brew Labs, ko dibinājusi neliela uzņēmēju un investoru grupa. Pats vietnes dibinātājs un vadītājs Silbermans raksturojis Pinterest vairāk kā \"ideju katalogu, kas mudina iet un darīt, nevis sociālo tīklu\". Aktīvo lietotāju skaits 2023. gada beigās sasniedza vairāk nekā 450 miljonus.", "piratebay":"The Pirate Bay ir Zviedrijas tīmekļa vietne, kas indeksē BitTorrent (.torrent) failus un magnet saites (.magnet) pārsvarā uz izklaidējoša rakstura multimediju failiem. Tā pozicionē sevi kā \"Pasaulē noturīgāko bittorrent vietni\" un pēc Alexa Internet vērtējuma ir 324. populārākā lapa pasaulē un 135. populārākā ASV. Vietnes uzturēšanas izmaksas tiek segtas no reklāmām, kas izvietotas blakus torrentu sarakstiem. To 2003. gada novembrī izveidoja Zviedrijas autortiesību pretinieku organizācija Piratbyrån. Kopš 2004. gada oktobra vietni uztur atsevišķa organizācija. Vietni uzturēja Gotfrīds Svartholms un Fredriks Neijs. 2009. gadā abi kopā ar Peteru Sundi un Karlu Lundsremu tika notiesāti par līdzdalību autortiesību pārkāpšanā saistībā ar savu līdzdalību The Pirate Bay.", - "reddit":"Reddit, stilizēts kā reddit, ir sociālais tīkls un ziņu vietne, kurā reģistrēti lietotāji var iesniegt saturu, piemēram, rakstu vai saiti, tad citi reģistrētie lietotāji var atzīmēt iesniegumus kā labus vai sliktus. Jo vairāk lietotāju ir atzīmējuši iesniegumu uz augšu, jo lielākam skaitam lietotāju šis iesniegums tiek parādīs.", + "reddit":"Reddit, stilizēts kā reddit, ir sociālais tīkls un ziņu vietne, kurā reģistrēti lietotāji var iesniegt saturu, piemēram, rakstu vai saiti, tad citi reģistrētie lietotāji var atzīmēt iesniegumus kā labus vai sliktus. Jo vairāk lietotāju ir atzīmējuši iesniegumu uz augšu, jo lielākam skaitam lietotāju šis iesniegums tiek parādīts.", "rottentomatoes":"Rotten Tomatoes ir ASV kinofilmu un televīzijas raidījumu recenziju apkopošanas tīmekļa vietne. Uzņēmumu 1998. gada augustā uzsāka trīs Kalifornijas Universitātes bakalaura studenti. Kopš 2010. gada janvāra Rotten Tomatoes pieder uzņēmumam Flixster, kuru savukārt 2011. gadā iegādājās Warner Bros.", "soundcloud":"SoundCloud ir 2007. gada augustā Stokholmā, Zviedrijā dibināta mūzikas straumēšanas platforma. Tās galvenā mītne atrodas Berlīnē, Vācijā. Soundcloud vietnē ir vairāk nekā 76 miljoni reģistrētu lietotāju un 175 miljoni unikālo mēneša klausītāju. Platformā pieejami abonēšanas pakalpojumi mūziķiem un klausītājiem. Platforma ir populāra arī raidierakstu veidotāju vidū.", "vimeo":"Vimeo ir video platforma un režisoru grupas veidota tīmekļa vietne, kurā tie vēlējās dalīties ar savu radošo darbu rezultātiem un privātiem video. Tas darbojas kopš 2004. gada un reģistrēts lietotāju skaits 2018. gada bija sasniedzis jau vairāk nekā 70 miljonus.", @@ -5047,6 +5028,10 @@ "github":"ഗിറ്റ് ഉപയോഗിച്ചുള്ള വെബ് അധിഷ്ഠിതമായ പതിപ്പ് നിയന്ത്രണത്തിനുള്ള വെബ്സൈറ്റും ഇന്റർനെറ്റ് ഹോസ്റ്റിംഗ് സേവനവുമാണ് ഗിറ്റ്ഹബ്. ജിറ്റിന്റെ ഡിസ്ട്രിബ്യൂട്ടഡ് പതിപ്പ് നിയന്ത്രണവും സോഴ്‌സ് കോഡ് മാനേജുമെന്റും (എസ്‌സി‌എം) പ്രവർത്തനവും അതിന്റേതായ സവിശേഷതകളും ഇത് വാഗ്ദാനം ചെയ്യുന്നു. ഇത് ആക്സസ് നിയന്ത്രണവും ബഗ് ട്രാക്കിംഗ്, സവിശേഷത അഭ്യർത്ഥനകൾ, ടാസ്‌ക് മാനേജുമെന്റ്, കൺടിന്യൂവസ് ഇന്റഗ്രേഷൻ, ഓരോ പ്രോജക്റ്റിനുമുള്ള വിക്കികൾ എന്നിവ പോലുള്ള നിരവധി സഹകരണ സവിശേഷതകളും നൽകുന്നു. കാലിഫോർണിയ ആസ്ഥാനമായി പ്രവർത്തിക്കുന്ന ഇത് 2018 മുതൽ മൈക്രോസോഫ്റ്റിന്റെ അനുബന്ധ സ്ഥാപനമാണ്.", "gitlab":"ഗിറ്റ് ഉപയോഗിച്ചുള്ള പതിപ്പു നിയന്ത്രണത്തിനുള്ള ഒരു വികേന്ദ്രീകൃത ഫ്രണ്ട് എൻഡ് ഫ്രയിംഫർക്കാണു ഗിറ്റ്‌ലാബ്. ഗിറ്റ്‌ഹബിനു ഒരു ബദലായി ഉപയോഗിക്കാവുന്ന ഗിറ്റ്‌ലാബ് ഒരു സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറാണു്. മിഷിഗൺ സർവ്വകലാശാലയും ഗ്നോം ഫൌണ്ടേഷനും ബ്ലാൿബറിയുമടക്കം പതിനായിരത്തിലധികം സംഘടനകൾ ഗിറ്റ്‌ലാബ് ഉപയോഗിക്കുന്നുണ്ടു്. ഏറ്റവും പ്രശസ്തമായ 50 റെപ്പോസിറ്ററികളിൽ ഒന്നാണിതു്. ഗിറ്റ്‌ലാബ് സ്വന്തമായി ഇൻസ്റ്റാൾ ചെയ്യാൻ സാധിക്കാത്തവർക്ക് ഗിറ്റ്‌ലാബ്.കോം എന്ന സൈറ്റിന്റെ സേവനമുപയോഗിക്കാം.", "google":"ഗൂഗിൾ സെർച്ച് അഥവാ ഗൂഗിൾ വെബ് സെർച്ച് ,ഗൂഗിൾ വികസിപ്പിച്ച ഒരു വെബ് സെർച്ച് എഞ്ചിൻ ആണ്.വേൾഡ് വൈഡ് വെബ്ൽ ഏറ്റവും കൂടുതൽ ഉപയോഗിക്കപ്പെടുന്ന സെർച്ച് എഞ്ചിൻനാണ് ഇത്‌. ഗൂഗിളിന്റെ തിരയൽ ഫലങ്ങളുടെ താളുകളിലെ തിരയലിന്റെ ക്രമം, \"പേജ്റാങ്ക്\" എന്ന മുൻഗണനാടിസ്ഥാനത്തിലുള്ളതാണ്. ഇച്ഛാനുസൃതമാക്കിയ തിരയലിനായി ഗൂഗിൾ തിരയൽ നിരവധി ഓപ്ഷനുകൾ നൽകുന്നു, ചില തിരയൽ പെരുമാറ്റം ഉൾപ്പെടുത്തുന്നതിനും ഒഴിവാക്കുന്നതിനും വ്യക്തമാക്കുന്നതിനും ആവശ്യപ്പെടുന്നതിനും ചിഹ്നങ്ങൾ ഉപയോഗിക്കുന്നു, കൂടാതെ ഫ്ലൈറ്റ് സ്റ്റാറ്റസ്, പാക്കേജ് ട്രാക്കിംഗ്, കാലാവസ്ഥാ പ്രവചനങ്ങൾ, കറൻസി, യൂണിറ്റ്, സമയ പരിവർത്തനങ്ങൾ, വാക്കുകൾ നിർവചിക്കുക എന്നിവ പോലുള്ള പ്രത്യേക സംവേദനാത്മക അനുഭവങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു.", + "google images":[ + "Google ചിത്രങ്ങൾ. വെബ്ബിലെ ഏറ്റവും വിശാലമായ ചിത്ര തിരയൽ.", + "https://images.google.com" + ], "google news":"വാർത്തകൾക്കു വേണ്ടി മാത്രമായി നീക്കി വച്ചിരിക്കുന്ന ഒരു ഗൂഗിൾ വെബ്സൈറ്റ് ആണ് ഗൂഗിൾ ന്യൂസ്‌. ഈ പദ്ധതിക്ക് തുടക്കമിട്ടത് ഗൂഗിളിലെ പ്രധാന ഗവേഷണ ശാസ്ത്രജ്ഞൻ ആയ കൃഷ്ണ ഭരത്‌ ആണ്. കഴിഞ്ഞ മുപ്പതു ദിവസങ്ങളിലായി പ്രധാന വെബ്സൈറ്റുകളിൽ പ്രസിദ്ധീകരിച്ച വാർത്തകൾ ഇതിൽ പ്രദർശിപ്പിക്കുന്നു. വിവിധ ഭാഷകളിൽ വിവിധ വിഭാഗങ്ങളിലായി നൂറു കണക്കിന് വാർത്തകൾ ഓരോ നിമിഷവും ഉൾക്കൊള്ളിച്ചുകൊണ്ടിരിക്കുന്നു.", "google play apps":"ഗൂഗിൾ ആൻഡ്രോയ്ഡ് മാർക്കറ്റ് ആയിരുന്ന ഗൂഗിൾ പ്ലേ ഒരു ഡിജിറ്റൽ വിതരണ സേവനമാണ്. ആൻഡ്രോയിഡ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ ഔദ്യോഗിക ആപ്ലിക്കേഷൻ സ്റ്റോറായി ഇത് പ്രവർത്തിക്കുന്നു, ആൻഡ്രോയിഡ് സോഫ്റ്റ്‌വേർ ഡെവലപ്മെന്റ് കിറ്റ് (SDK) ഉപയോഗിച്ച് വികസിപ്പിച്ചതും ഗൂഗിൾ വഴി പ്രസിദ്ധീകരിച്ചതുമായ ആപ്ലിക്കേഷനുകൾ ബ്രൗസ് ചെയ്യാനും ഡൗൺലോഡ് ചെയ്യാനും ഉപയോക്താക്കളെ അനുവദിക്കുന്നു. സംഗീതം, പുസ്‌തകങ്ങൾ, സിനിമകൾ, ടെലിവിഷൻ പ്രോഗ്രാമുകൾ എന്നിവ വാഗ്ദാനം ചെയ്യുന്ന ഡിജിറ്റൽ മീഡിയ സ്റ്റോറായും ഗൂഗിൾ പ്ലേ പ്രവർത്തിക്കുന്നു. 2015 മാർച്ച് 11 ന് ഒരു പ്രത്യേക ഓൺലൈൻ ഹാർഡ്‌വെയർ റീട്ടെയിലർ ഗൂഗിൾ സ്റ്റോർ അവതരിപ്പിക്കുന്നതുവരെ ഇത് മുമ്പ് ഗൂഗിൾ ഹാർഡ്‌വെയർ ഉപകരണങ്ങൾ വാങ്ങാൻ വാഗ്ദാനം ചെയ്തിരുന്നു, കൂടാതെ 2018 മെയ് 15 ന് ഗൂഗിൾ ന്യൂസിന്റെ നവീകരണത്തിന് മുമ്പ് വാർത്താ പ്രസിദ്ധീകരണങ്ങളും മാസികകളും വാഗ്ദാനം ചെയ്തു.", "google play movies":[ @@ -5228,7 +5213,7 @@ "wikinews":"Wikinews merupakan sebuah wiki sumber berita kandungan bebas serta sebuah projek Wikimedia. telah membezakan Wikinews daripada Wikipedia dengan mengatakan bahawa \"dalam Wikinews, setiap cerita ditulis seperti sebuah cerita berita bertentangan dengan sebuah rencana ensiklopedia.\" Polisi pandangan yang berkecuali di Wikinews membezakannya daripada usaha-usaha kewartawanan rakyat yang lain seperti Indymedia dan OhmyNews.", "wikipedia":"Wikipedia ialah sebuah ensiklopedia yang boleh diubah suai dan dibina secara kerjasama dengan menggunakan perisian wiki. Wikipedia dikendalikan oleh Yayasan Wikimedia yang tidak mengambil apa-apa keuntungan daripada khidmat yang diberikan. Sebagai tambahan kepada matlamat ensiklopedia iaitu untuk memberikan pengetahuan, Wikipedia juga memasukkan maklumat yang lebih kerap dikaitkan dengan almanak dan jurnal, dan juga perkara semasa. Kandungan Wikipedia dibina sepenuhnya oleh para penggunanya. Tiada seorang pun yang dapat memiliki maklumat yang terdapat dalamnya dan tiada rencana yang akan ditamatkan. Satu lesen yang dikenali GFDL telah dicipta untuk memastikan setiap orang mengakui bahawa setiap orang mempunyai hak untuk memperbaiki setiap rencana.", "wikiquote":"Wikiquote merupakan salah satu kumpulan projek berdasarkan wiki yang diusahakan oleh Yayasan Wikimedia, menggunakan perisian MediaWiki. Berdasarkan idea Daniel Alston dan dilaksanakan oleh Brion Vibber, tujuan projek ini adalah untuk menjadi rujukan petikan daripada orang-orang, buku-buku, dan peribahasa, serta memberikan maklumat lanjut tentang petikan-petikan ini. Walaupun terdapat pelbagai koleksi petikan atas talian, Wikiquote merupakan salah satu daripada segelintir kecil koleksi yang memberi peluang untuk pelawat menyumbang. Laman-laman di Wikiquote dipautkan dengan rencana-rencana Wikipedia mengenai orang-orang ternama yang berkenaan.", - "wikisource":"Wikisumber merupakan sebuah perpustakaan digital atas talian dengan sumber teks kandungan percuma berplatformkan wiki, yang dikendalikan oleh Yayasan Wikimedia. Wikisumber merupakan nama projek secara keseluruhan, dan juga merupakan nama untuk setiap satu projek individu ; pengumpulan laman Wikisumber dalam pelbagai bahasa inilah yang membentuk projek Wikisumber secara keseluruhannya. Matlamat projek ini adalah untuk mengehoskan semua bentuk teks percuma, dalam banyak bahasa, serta padanan terjemahan yang berkaitan teks percuma itu. Pada asalnya, projek ini dianggap berfungsi sebagai arkib untuk menyimpan teks sejarah yang berguna atau penting, tetapi kini ia telah berkembang menjadi perpustakaan dengan kandungan umum. Projek ini secara rasminya bermula pada 24 November 2003, di bawah nama Project Sourceberg, yang merupakan nama terbitan daripada Project Gutenberg. Nama \"Wikisource\" ini telah diterima pakai pada tahun itu dan ia menerima nama domainnya sendiri.", + "wikisource":"Wikisumber merupakan sebuah perpustakaan digital dalam talian dengann kandungan sumber teks percuma berplatformkan wiki, yang dikendalikan oleh Yayasan Wikimedia. Wikisumber merupakan nama projek secara keseluruhan, dan juga merupakan nama untuk setiap projek individu ; pengumpulan laman Wikisumber dalam pelbagai bahasa inilah yang membentuk projek Wikisumber secara keseluruhannya. Matlamat projek ini adalah untuk mengehoskan semua bentuk teks percuma dalam banyak bahasa, serta padanan terjemahan yang berkaitan teks percuma itu. Pada asalnya, projek ini dianggap berfungsi sebagai arkib untuk menyimpan teks sejarah yang berguna atau penting, tetapi kini ia telah berkembang menjadi perpustakaan dengan kandungan umum. Projek ini secara rasminya bermula pada 24 November 2003, di bawah nama Project Sourceberg, yang merupakan nama terbitan daripada Project Gutenberg. Nama \"Wikisource\" ini telah diterima pakai pada tahun itu dan ia menerima nama domainnya sendiri.", "wikispecies":"Wikispecies merupakan sebuah projek Yayasan Wikimedia yang bertujuan membuat portal isi bebas mengenai semua spesies hidupan. Wikispecies merangkumi haiwan, tumbuhan, bakteria dan semua makhluk hidup yang lain dan akan dikembangkan secara khusus dengan Wikipedia.", "wikiversity":"Wikiversity merupakan sebuah projek beta Yayasan Wikimedia, menumpukan pada bahan dan aktiviti pembelajaran, terletak di www.wikiversity.org. Fasa beta Wikiversity dimulakan secara rasmi pada 15 Ogos 2006 dengan Wikiversity Bahasa Inggeris. Kini terdapat lima edisi bahasa untuk Wikiversity - Bahasa Inggeris, Bahasa Perancis, Bahasa Jerman, Bahasa Itali, dan Bahasa Sepanyol - serta projek Wikiversity baru dalam bahasa-bahasa lain dalam perkembangan di hab multilingual \"beta\".", "wikivoyage":"Wikivoyage atau Wikipelancongan ialah laman panduan pelancongan untuk tujuan pelancongan dan topik pelancongan yang ditulis oleh penulis sukarelawan. Nama Wikivoyage ialah campuran dari perkataan \"Wiki\" dan \"Voyage \", perkataan bahasa Perancis untuk perjalanan, pelayaran, atau pelancongan.", @@ -5307,6 +5292,10 @@ "gentoo:en", "ref" ], + "google images":[ + "Google Foto. Det mest omfattende bildesøket på Internett.", + "https://images.google.com" + ], "google news":[ "google news:da", "ref" @@ -5522,7 +5511,7 @@ "Weerbericht voor: not found", "https://wttr.in" ], - "youtube":"YouTube is een website van YouTube LLC, een dochteronderneming van Google LLC. Het is een website waar gebruikers kosteloos of soms tegen betaling video's kunnen publiceren en kunnen bekijken. De video's om gratis te bekijken worden door advertenties onderbroken." + "youtube":"YouTube is een website van YouTube LLC, een dochteronderneming van Google LLC. Het is een website waar gebruikers kosteloos en soms tegen betaling video's kunnen publiceren en kunnen bekijken. De video's om gratis te bekijken worden door advertenties onderbroken." }, "nl-BE":{ "9gag":[ @@ -5949,6 +5938,10 @@ "ref" ], "google":"ਗੂਗਲ ਸਰਚ, ਜਿਸ ਨੂੰ ਆਮ ਤੌਰ ਤੇ ਗੂਗਲ ਵੈਬ ਸਰਚ ਜਾਂ ਬਸ ਗੂਗਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਗੂਗਲ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇੱਕ ਵੈਬ ਖੋਜ ਇੰਜਨ ਹੈ। ਇਹ ਵਰਲਡ ਵਾਈਡ ਵੈੱਬ ਤੇ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤਿਆ ਖੋਜ ਇੰਜਨ ਹੈ, ਹਰ ਰੋਜ਼ ਤਿੰਨ ਅਰਬ ਤੋਂ ਵੱਧ ਖੋਜਾਂ ਦਾ ਪ੍ਰਬੰਧ ਕਰਦਾ ਹੈ। ਫਰਵਰੀ 2016 ਤੱਕ, ਇਹ 64.0% ਮਾਰਕੀਟ ਸ਼ੇਅਰ ਨਾਲ ਅਮਰੀਕਾ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤਿਆ ਗਿਆ ਖੋਜ ਇੰਜਣ ਹੈ।", + "google images":[ + "Google Images. ਵੈੱਬ 'ਤੇ ਸਭ ਤੋਂ ਵਿਆਪਕ ਚਿੱਤਰ ਖੋਜ।", + "https://images.google.com" + ], "google play apps":"ਗੂਗਲ ਪਲੇ ਇੱਕ ਡਿਜੀਟਲ ਵਿਤਰਣ ਸੇਵਾ ਹੈ ਜੋ ਗੂਗਲ ਦੁਆਰਾ ਚਲਾਇਆ ਅਤੇ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਐਂਡਰੋਇਡ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ ਅਧਿਕਾਰਕ ਐਪ ਸਟੋਰ ਦੇ ਤੌਰ ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਯੂਜ਼ਰਸ ਐਂਡਰਾਇਡ ਸਾਫਟਵੇਅਰ ਡਿਵੈਲਪਮੈਂਟ ਕਿੱਟ (ਐਸ.ਡੀ.ਕੇ.) ਨਾਲ ਵਿਕਸਿਤ ਕੀਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਅਤੇ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਗੂਗਲ ਰਾਹੀਂ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋ ਸਕਦੇ ਹਨ। ਗੂਗਲ ਪਲੇ ਡਿਜ਼ੀਟਲ ਮੀਡੀਆ ਸਟੋਰ ਦੇ ਤੌਰ ਤੇ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਸੰਗੀਤ, ਰਸਾਲੇ, ਕਿਤਾਬਾਂ, ਫਿਲਮਾਂ ਅਤੇ ਟੀਵੀ ਪ੍ਰੋਗਰਾਮਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ। ਇਸ ਨੇ ਪਹਿਲਾਂ 11 ਮਾਰਚ, 2015 ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਔਨਲਾਈਨ ਹਾਰਡਵੇਅਰ ਰਿਟੇਲਰ, ਗੂਗਲ ਸਟੋਰ ਦੀ ਸ਼ੁਰੂਆਤ ਤਕ ਖਰੀਦਣ ਲਈ ਗੂਗਲ ਹਾਰਡਵੇਅਰ ਡਵਇਸ ਨੂੰ ਖਰੀਦਿਆ ਸੀ।", "google play movies":[ "google play apps:pa", @@ -6145,6 +6138,19 @@ "hoogle":"Haskell – czysto funkcyjny język programowania nazwany na cześć amerykańskiego matematyka, Haskella Curry’ego.", "imdb":"IMDb – największa na świecie internetowa baza danych na temat filmów i ludzi z nimi związanych. Zawiera informacje o aktorach, reżyserach, scenarzystach, producentach, montażystach, operatorach, muzykach itd. Informacje nie ograniczają się do kinematografii amerykańskiej.", "imgur":"Imgur – strona internetowa oferująca darmowy hosting grafiki. Serwis uruchomiono 23 lutego 2009 roku. Dostępnymi formatami obrazu do załadowania są: JPEG, PNG, GIF, APNG, TIFF, BMP, PDF oraz XCF.Strona oferuje również udostępnienie obrazka z dowolnego łącza internetowego, bądź też schowka. Prócz samego przechowywania obrazków można również stworzyć memy internetowe, polegające na dodaniu tematycznych napisów do obrazka. Serwis był notowany w rankingu Alexa na miejscu 67.", + "lemmy comments":[ + "lemmy communities:pl", + "ref" + ], + "lemmy communities":"Lemmy - wolne i otwarte oprogramowanie służące do samodzielnego hostowania serwisów społecznościowych. Posiada funkcjonalność zbliżoną do forów internetowych, oraz do agregacji linków. Pojedyncze serwisy zwane „instancjami”, komunikują się między sobą za pomocą protokołu ActivityPub i tworzą federowaną sieć społecznościową będącą częścią Fediwersum.", + "lemmy posts":[ + "lemmy communities:pl", + "ref" + ], + "lemmy users":[ + "lemmy communities:pl", + "ref" + ], "library genesis":"Library Genesis (LibGen) – biblioteka cyfrowa typu shadow library zawierająca artykuły z czasopism naukowych, książki. Witryna znane jest z tego, że umożliwia bezpłatny dostęp do treści, które w inny sposób są płatne lub nie zostały zdigitalizowane gdzie indziej. LibGen określa się jako „agregator linków”, dostarczając przeszukiwalną bazę danych elementów „zebranych z publicznie dostępnych publicznych zasobów internetowych” oraz plików przesłanych „od użytkowników”. W 28 lipca 2019 r. LibGen twierdziło, że ma ponad 2,4 miliona książek naukowych lub popularnonaukowych, 2,2 miliona książek beletrystycznych, 80 milionów artykułów z czasopism naukowych, 2 miliony komiksów, i 0,4 miliona pełnych wydań czasopism.", "library of congress":"Biblioteka Kongresu – biblioteka, która powstała w 1800 roku w Waszyngtonie. W 2019 roku posiadała w swoich zbiorach ponad 170 mln woluminów w ponad 470 językach. Zbiór książek i dokumentów związanych z Polską należy do jednych z największych nie tylko w USA, ale również na świecie. Pełni funkcję biblioteki narodowej. Zapewnia publiczny dostęp do zbiorów, chociaż jej głównym zadaniem jest służba Kongresowi. We wrześniu 2019 Biblioteka Kongresu zatrudniała 3210 stałych pracowników.", "mastodon hashtags":[ @@ -6155,11 +6161,21 @@ "mdn":"MDN Web Docs – oficjalna strona dokumentacji Mozilli dla programistów stron i aplikacji internetowych oraz źródło najnowszych informacji na temat Firefoksa, Thunderbirda i innych aplikacji Fundacji Mozilla. Strona została oparta na oprogramowaniu MediaWiki, aby każdy użytkownik/czytelnik miał możliwość wsparcia MDC dodatkową wiedzą.", "metacpan":"CPAN – źródło dokumentacji oraz modułów do języka Perl. Zgromadzone moduły mają bardzo wiele zastosowań. Na początku 2007 roku liczba modułów przekraczała 11 000, a ich łączny rozmiar 3 400 MB, na początku drugiej połowy roku 2010 było ich już ponad 18 000, co dało prawie 7 400 MB.", "mixcloud":"MixCloud – społeczność internetowa dla artystów tworzących i dystrybuujących audycje radiowe, mikstejpy i podkasty. Serwis był notowany w rankingu Alexa na miejscu 2711.", + "mojeek":"Mojeek - brytyjska wyszukiwarka internetowa, reklamująca się swoim naciskiem na prywatność i niezależnością od innych indeksów wyszukiwania. Firma Mojeek samodzielnie buduje swój indeks za pomocą robotów indeksujących, co odróżnia ją od wyszukiwarek, które opierają się na wynikach wyszukiwania stron trzecich, takich jak Google czy Bing. W przeciwieństwie do wielu popularnych wyszukiwarek, Mojeek nie śledzi, nie profiluje ani nie personalizuje wyników wyszukiwania, zapewniając swoim użytkownikom obiektywne i przejrzyste wyszukiwanie.", + "mojeek images":[ + "mojeek:pl", + "ref" + ], + "mojeek news":[ + "mojeek:pl", + "ref" + ], "naver":"Naver – popularny południowokoreański serwis internetowy będący własnością Naver Corporation. Został uruchomiony w czerwcu 1999 roku przez byłych pracowników Samsunga. Zadebiutował jako pierwszy południowokoreański serwis wykorzystujący autorskie algorytmy przeszukiwania. Posiadał co najmniej 70% udziałów na koreańskim rynku w 2011 roku.", "npm":"npm – domyślny manager pakietów dla środowiska Node.js, może być także używany do zarządzania warstwą front-end aplikacji WWW. NPM to także repozytorium pakietów oraz nazwa firmy która nim zarządza. Istnieją także inne managery pakietów, które korzystają z repozytorium npm., np. Yarn.", + "openlibrary":"Open Library – projekt online mający na celu stworzenie „one web page for every book ever published” [jedną stronę internetową dla każdej opublikowanej książki], z danymi o książkach na licencji CC0, oraz o kodzie źródłowym na licencji AGPLv3. Stworzony przez Aarona Swartza, Brewstera Kahle’a, Alexisa Rossiego, Ananda Chitipothu, oraz Rebeccę Hargrave Malamud, jest projektem Internet Archive, organizacji non-profit. Został częściowo sfinansowany z dotacji Biblioteki Stanowej Kalifornii i Fundacji Kahle/Austin. Open Library udostępnia cyfrowe kopie online w wielu formatach, utworzone z obrazów wielu książek należących do domeny publicznej, o wyczerpanym nakładzie, oraz te w druku.", "openstreetmap":"OpenStreetMap (OSM) – projekt społeczności internetowej mający na celu stworzenie darmowej, swobodnie dostępnej mapy całej kuli ziemskiej. Jest ona edytowalna przez zarejestrowanych użytkowników. Stworzenie i rozwój OSM było motywowane ograniczeniami w dostępności i wykorzystywaniu map oraz pojawieniem się niedrogich przenośnych urządzeń do nawigacji satelitarnej. Serwis był notowany w rankingu Alexa na miejscu 6 772.", "peertube":"PeerTube – wolna, otwartoźródłowa i zdecentralizowana platforma wideo oparta na ActivityPub i WebTorrent. Aplikacja bazuje na technice peer-to-peer. W 2024 roku istniało ponad tysiąc instancji, które łącznie opublikowały prawie milion filmów.", - "pinterest":"Pinterest – amerykański serwis społecznościowy umożliwiający dzielenie się materiałami wizualnymi. Szacuje się, że wartość rynkowa serwisu wynosi 11 miliardów dolarów. Posiada 444 milionów aktywnych użytkowników. Większość to kobiety, statystyki mówią, że jest ich aż 81%, a najliczniejsza grupa wiekowa to 25-34 lata. W Polsce, Pinterest posiada 4,3 miliona użytkowników. Ponad 10% internautów poszukuje treści na temat marek i produktów właśnie używając serwisu Pinterest. Aż 73% użytkowników sprawdza Pinterest'a kilka razy dziennie, a 57% z nich przynajmniej raz kupiło coś przez platformę.", + "pinterest":"Pinterest – amerykański serwis społecznościowy umożliwiający dzielenie się materiałami wizualnymi. Szacuje się, że wartość rynkowa serwisu wynosi 11 miliardów dolarów. Posiada 444 milionów aktywnych użytkowników. Większość to kobiety, statystyki mówią, że jest ich aż 81%, a najliczniejsza grupa wiekowa to 25-34 lata. W Polsce Pinterest posiada 4,3 miliona użytkowników. Ponad 10% internautów poszukuje treści na temat marek i produktów, właśnie używając serwisu Pinterest. Aż 73% użytkowników sprawdza Pinterest'a kilka razy dziennie, a 57% z nich przynajmniej raz kupiło coś przez platformę.", "piratebay":"The Pirate Bay (TPB) – strona internetowa do wyszukiwania plików w sieci peer-to-peer, wykorzystująca protokół BitTorrenta oraz magnet link. Strona została założona w 2003 roku przez Gottfrida Svartholma, Fredrika Neij i Petera Sunde’a. TPB nie hostuje żadnych plików – również tych, których rozpowszechnianie może naruszać prawo autorskie, a udostępnia jedynie odnośniki do danych zasobów, w postaci Magnet linków.", "qwant":"Qwant – francuska wyszukiwarka internetowa z siedzibą w Paryżu, utworzona w lipcu 2013 roku. Wyszukiwarka skupia się na prywatności swoich użytkowników, a tym samym nie stosuje śledzenia oraz personalizacji wyników osób z niej korzystających, aby uniknąć tak zwanej bańki filtrującej.", "qwant images":[ @@ -6853,7 +6869,7 @@ ], "apple app store":"App Store este un serviciu Apple care constă într-un magazin online de aplicații pentru sistemul de operare iOS. Acesta este disponibil pe internet, prin aplicația cu același nume sau prin iTunes pe PC și MAC.", "artic":"Art Institute of Chicago este un muzeu de artă, care a luat ființă în anul 1866, iar din anul 1868 a devenit o școală superioară de arte din Chicago, Illinois, SUA. Institutul de arte a luat naștere ca urmare a inițiativei cetățenilor înstăriți ai orașului, care au donat bani și colecțiile lor de picturi, printre aceștia se numără Arthur Jerome Eddy, Bertha Honoré Palmer și Martin Antoine Ryerson. Prima clădire a institutului se afla pe South Michigan Avenue și a fost proiectată de arhitecții Shepley, Rutan și Coolide, aici având loc în anul 1893 o expoziția internațională World Columbian Exposition. Actual institutul se află în parcul Grant Park, districtul Historic Michigan Boulevard District. Este muzeu de artă universală, aici sunt păstrate peste 300.000 de opere de artă care provin dintr-o perioadă de cinci secole.", - "arxiv":"ArXiv este o bază de date de preprinturi de actualitate stringentă din toate domeniile fizicii, matematicii, științelor nelineare, biologiei, științelor de calcul numeric. Este gestionată de Laboratorul Național al Statelor Unite ale Americii de la Los Alamos. Adresa web a bazei de date estehttp://www.arxiv.org.", + "arxiv":"ArXiv este o bază de date de preprinturi de actualitate stringentă din toate domeniile fizicii, matematicii, științelor nelineare, biologiei, științelor de calcul numeric. Este gestionată de Laboratorul Național al Statelor Unite ale Americii de la Los Alamos. Adresa web a bazei de date estehttp://www.arxiv.org Arhivat în 23 ianuarie 2020, la Wayback Machine..", "ask":"Ask, cunoscut anterior sub denumirea de Ask Jeeves, este un motor de căutare. A fost fondat în 1996 de Garrett Gruener și David Warthen în Berkeley, California. Nu este disponibil în limba română.", "bilibili":[ "site chinez de partajare video", @@ -6888,7 +6904,7 @@ ], "curlie":"DMOZ a fost un catalog de Internet în mai multe limbi, înființat în 1998. Site-ul și comunitatea care îl întreținea au fost cunoscute de asemenea ca Open Directory Project (ODP). Este deținut de compania AOL, dar este construit și gestionat de o comunitate largă de editori voluntari din întreaga lume, fiecare responsabil de a verifica exactitatea și clasificarea site-uri din una sau mai multe categorii. Inițial a fost numit GnuHoo apoi redenumit NewHoo, iar la sfârșitul anului 1998 i-a fost atribuit numele de Open Directory Project.", "currency":"DuckDuckGo este un motor de căutare pe internet care pune accentul pe protejarea confidențialității utilizatorilor. DuckDuckGo se distinge de alte motoare de căutare prin faptul că nu își profilează utilizatorii și arată tuturor utilizatorilor aceleași rezultate ale căutării pentru un anumit termen de căutare.", - "dailymotion":"Dailymotion este o platformă online de partajare video deținut de Vivendi. Parteneri nord-Americani de lansare au inclus Vice Media, Bloomberg, și Hearst Digital Media. Este printre primele platforme cunoscute să suporte rezoluția video HD (720p). Dailymotion este disponibilă în toată lumea în 183 de limbi și 43 de versiuni localizate, cu pagini de pornire locale și conținut local.", + "dailymotion":"Dailymotion este o platformă online de partajare video deținut de Canal+. Înainte de 2024, a fost deținută de Vivendi. Parteneri nord-Americani de lansare au inclus Vice Media, Bloomberg, și Hearst Digital Media. Este printre primele platforme cunoscute să suporte rezoluția video HD (720p). Dailymotion este disponibilă în toată lumea în 183 de limbi și 43 de versiuni localizate, cu pagini de pornire locale și conținut local.", "ddg definitions":[ "currency:ro", "ref" @@ -7123,7 +7139,7 @@ "mastodon users:ru", "ref" ], - "mastodon users":"Mastodon — свободное программное обеспечение для развёртывания распределённых социальных сетей. В отличие от централизованных социальных сетей, создаваемая узлами Mastodon сеть неподконтрольна единственному хозяину. Администраторы узлов имеют власть только в пределах своего узла, а в случае несогласия пользователя с политикой администрации узла любой пользователь может присоединиться к другому уже существующему узлу социальной сети или даже развернуть собственный. Узлы, соединенные в общую сеть, позволяют их пользователям общаться друг с другом. Mastodon входит в состав Fediverse и позволяет своим пользователям взаимодействовать с пользователями других открытых платформ, поддерживающих протокол ActivityPub, таких как PeerTube и Friendica.", + "mastodon users":"Mastodon — свободное программное обеспечение для развёртывания распределённых социальных сетей. В отличие от централизованных социальных сетей, создаваемая узлами Mastodon сеть неподконтрольна единственному хозяину. Администраторы узлов имеют власть только в пределах своего узла, а в случае несогласия пользователя с политикой администрации узла любой пользователь может присоединиться к другому уже существующему узлу социальной сети или даже развернуть собственный. Узлы, соединённые в общую сеть, позволяют их пользователям общаться друг с другом. Mastodon входит в состав Fediverse и позволяет своим пользователям взаимодействовать с пользователями других открытых платформ, поддерживающих протокол ActivityPub, таких как PeerTube и Friendica.", "metacpan":"CPAN — архив документации и программного обеспечения, написанного на языке программирования Perl.", "mixcloud":"Mixcloud — британская онлайн-платформа для распространения звуковой информации. Платформа позволяет размещать радиошоу, диджейские миксы и подкасты.", "naver":"Naver — крупнейший интернет-портал и самая популярная поисковая система в Южной Корее. На него приходится 70 % поисковых запросов в стране. Принадлежит компании Naver Corporation. Был открыт в 1999 году. Тогда Naver первым из корейских интернет-порталов разработал свою собственную поисковую систему.", @@ -7523,6 +7539,10 @@ "github":"GitHub je spletni gostiteljski servis za repozitorije v Git. Ponuja distribuirano upravljanje z izvorno kodo (SCM) z Git ter nekatere dodatne storitve. V nasprotju z Git-om, ki je ukazno orodje, ponuja GitHub spletni grafični vmesnik. Zagotavlja tudi kontrolo dostopa in številne storitve za kolaborativni razvoj, npr. sledenje napakam, zahteve za lastnosti, upravljanje z nalogami in wiki za vsak projekt.", "goodreads":"Goodreads je spletna stran, ki omogoča uporabnikom iskanje knjig za branje in izdelavo lastnih seznamov, baz, kritik ter citatov. Prijavljenim uporabnikom je omogočeno ustvarjanje interesnih skupin, blogov, anket, diskusijskih baz in podobno, v bazo pa lahko vpisujejo tudi nove knjige. Sedež podjetja je v San Franciscu, njegov trenutni lastnik pa je Amazon.", "google":"Iskanje Google ali pa preprosto Google je spletni iskalnik, ki ga je razvilo podjetje Google. Je najbolj uporabljen iskalnik na svetovnem spletu, ki poskrbi za več kot tri milijarde iskanj vsak dan. Od Februarja 2016 je najbolj uporabljen iskalnik v ZDA s 64.0% tržnim deležem.", + "google images":[ + "Google Slike. Najobsežnejše iskanje slik v spletu.", + "https://images.google.com" + ], "google news":[ "agregator novic in aplikacija, ki jo je razvilo podjetje Google", "wikidata" @@ -7676,6 +7696,10 @@ "gitlab":"GitLab је веб-алатка животног циклуса DevOps с отвореним изворним кодом. Алатка пружа менаџер спремишта за Git који нуди функције викија, функцију праћења проблема и канал за непрекидну интеграцију. Софтвер је развила компанија GitLab Inc., а првобитно су га направили Украјинци Дмитриј Запорожец и Валериј Сизов.", "goodreads":"Гудридс је компанија у власништву Амазона, чији веб-сајт омогућава корисницима да обележавају, оцењују и пишу рецензије за књиге које су прочитали, да би на основу тога од стране веб-сајта могли да добију предлоге за књиге које би такође могле да их интересују. Сајт је покренут 2007. године и данас има преко 900.000.000 наслова, и око 30.000.000 чланова. Такође веб-сајт функционише и као друштвена мрежа, и могуће је додавати пријатеље, као и видети књиге које они читају. Повремено се и организују такмичања, као и награде за најбољу књигу године. Један интернет портал из Хрватске је веб-сајт Goodreads описао као „друштвену мрежу за љубитеље књига”.", "google":"Гугл претрага, позната и као Гугл веб-претрага или једноставно Гугл, веб-претраживач је ког је развио Гугл ЛЛЦ. Он је најкоришћенији претраживач веба на светској комуникационој мрежи на свим платформама, са тржишним уделом од 92,74 % у октобру 2018, вршећи више од 3,5 милијарди претрага сваки дан.", + "google images":[ + "Google слике. Најопсежнија претрага слика на вебу.", + "https://images.google.com" + ], "google news":[ "Свеобухватно, ажурно извештавање о вестима које Google вести прикупља из извора широм света.", "https://news.google.com" @@ -7905,6 +7929,7 @@ ], "google":"Sznuparka Google - necowo sznuparka zbajstlowano bez hamerikůńsko firma Google Inc.. Ji cwekym je skatalogowańy wszyjskich mogebnych danych a pokozywańy jich bez hilfa interneca.", "wikipedia":"Wikipedyjŏ to je miyndzynŏrodowŏ a wielogŏdkowŏ internetowŏ yncyklopedyjŏ, co fōnguje podle prawidła ôdewrzōnyj treści. Fōnguje na softwarze MediaWiki ôd Wikimedia Foundation, wywodzōnce sie ôd kōncepcyje WikiWikiWeb, dozwolajōnce edycyjõ kożdymu używŏczowi wchodzōncymu na zajtã a aktywnõ aktualizacyjõ ônyj treści. Ausdruk Wikipedyjŏ to je neologizm, zrobiōny skuplowaniym ausdrukōw wiki i yncyklopedyjŏ. Szlagwortym ôd Wikipedyje je „Swobodnŏ yncyklopedyjŏ, co jōm kożdy może edytować”.", + "wiktionary":"Wikcjōnorz to je miyndzynŏrodowy a wielogŏdkowy internetowy dykcjōnorz, co fōnguje na softwarze MediaWiki ôd Wikimedia Foundation, dozwolajōnce edycyjõ kożdymu używŏczowi wchodzōncymu na zajtã a aktywnõ aktualizacyjõ ônyj treści.", "youtube":"YouTube - hamerikański internecowy wideoportal założůny we lutym 2005 roku. Uod 2006 mo zic we San Bruno we Kaliforńiji i je zależny uod Google LLC. Youtube pozwalo na darmowe wćepywańe, uobźyrańe a komyntowańe filmůw. We roku 2019 portal tyn doł zarobek 15 miljardůw dolarůw, srogo tajla z tego generujům wrażůne sam reklamy." }, "ta":{ @@ -7997,7 +8022,7 @@ ], "wikidata":"விக்கித்தரவு (Wikidata) என்பது விக்கிமீடியா நிறுவனத்தால் இயக்கப்படும் பன்மொழி விக்கி அறிவுத் தளம் ஆகும். விக்கிப்பீடியா போன்ற விக்கிமீடியத் திட்டங்களில் பயன்படுத்துவதற்கான தரவுகளை வழங்கும் பொதுமூலமாக இது தொழிற்படுகின்றது. விக்கிபேசு என்ற மென்பொருளில் இது கட்டமைக்கப்பட்டுள்ளது.", "wikinews":"விக்கிசெய்தி, விக்கிமீடியா நிறுவனத்திரால் நடத்தப்படும் கட்டற்ற செய்திக் களமாகும். இது உலகளாவிய தன்னார்வலர்கள் தாமாகவே செய்திகளை உடனுக்குடன் மேலேற்றம் செய்யும் முறையாகும்.", - "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,69,232 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. நவம்பர் 2024 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", + "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,70,243 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. திசம்பர் 2024 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", "wikiquote":"விக்கி மேற்கோள் (Wikiquote), விக்கிப்பீடியாவை நடத்தும் விக்கிமீடியா நிறுவனத்தின் இன்னொரு திட்டமாகும். இத்திட்டமும் விக்கி மென்பொருளை பயன்படுத்துகிறது. அனைத்து மொழிகளில் உள்ள மேற்கோள்களின் கட்டற்ற இணையத் தொகுப்பை உருவாக்குவது இத்திட்டத்தின் நோக்கமாகும். மேலும் இது புகழ்பெற்ற மக்கள், திரைப்படங்கள், புத்தகங்கள் மற்றும் பழமொழி ஆகியவற்றின் மேற்கோள்களை உள்ளடக்கிய ஒரு மேற்கோள் களஞ்சியமாகும்.", "wikisource":"விக்கிமூலம் (Wikisource) ஓர் இலவச இணைய நூலகம் ஆகும். விக்கிமீடியா அறக்கட்டளை நடத்தும் விக்கித் திட்டங்களுள் இதுவும் ஒன்று. இது கட்டற்ற உள்ளடக்கம் (பகிர்வுரிமம்) கொண்ட மூல நூல்களின் இணையத் தொகுப்பாகும்.", "wikispecies":"விக்கியினங்கள் விக்கி‎யை அடிப்படையாகக் கொண்ட விக்கிமீடியா நிறுவனத்தின் ஒரு இணையத் திட்டமாகும். இத்திட்டம் உலகிலுள்ள உயிரினங்களின் பெயர் அட்டவணையை தயாரிப்பதற்காக ஆகத்து 2004ம் வருடம் உருவாக்கப்பட்ட திட்டம் ஆகும்.", @@ -8056,10 +8081,6 @@ "ref" ], "google":"గూగుల్ శోధన, ఇది గూగుల్ అందించిన సెర్చ్ ఇంజిన్.2021లో రోజుకు 2 ట్రిలియన్ల కంటే ఎక్కువ అంతర్జాల శోధనలు దీని ద్వారా జరుగుతాయి, ఇది ప్రపంచ శోధన ఇంజిన్ మార్కెట్లో 92% వాటాను కలిగి ఉంది. ఇది ప్రపంచంలో అత్యధికంగా సందర్శించే వెబ్ సైట్ కూడా. ఇందులో వెతికిన విషయానికి గూగుల్ ద్వారా తిరిగి ఇవ్వబడ్డ శోధన ఫలితాల క్రమం, పాక్షికంగా, \"పేజ్ ర్యాంక్\"అని పిలువబడే ప్రాధాన్యతా ర్యాంక్ వ్యవస్థపై ఆధారపడి ఉంటుంది, అంతర్జాలంలో బహిరంగంగా అందుబాటులో ఉన్న పత్రాలలో వచనం (టెక్స్ట్) మాత్రమే కాక అనేక ప్రత్యేక సేవలు అందిస్తుంది. వీటిలో పర్యాయపదాలు, వాతావరణ అంచనాలు, సమయ మండలాలు, స్టాక్ కోట్స్, మ్యాప్ లు, భూకంప డేటా, మూవీ షోటైమ్స్, విమానాశ్రయాలు, గృహ జాబితాలు,, క్రీడా ఫలితాలు ఉన్నాయి. దీనిని మొదట 1997లో లారీ పేజ్, సెర్జీ బ్రిన్,, స్కాట్ హసన్ అభివృద్ధి చేశారు. దీనిపేరు అసలు ప్రణాళికాబద్ధమైన పేరు గూగోల్ googol తప్పుగా వ్రాయడం నుండి తీసుకోబడింది. 1999 మధ్యనాటికి, గూగుల్ $25 మిలియన్ రౌండ్ వెంచర్ క్యాపిటల్ ఫండింగ్ అందుకున్నప్పుడు, ఇది రోజుకు 500,000 శోధనలను ప్రాసెస్ చేస్తోంది", - "google images":[ - "Google Images. వెబ్లో విస్తృతమైన చిత్ర శోధన.", - "https://images.google.com" - ], "google news":[ "Google News ద్వారా సమగ్ర తాజా వార్తల కవరేజ్, ప్రపంచవ్యాప్తంగా అన్ని వార్తల వనరుల నుండి సేకరించబడుతుంది.", "https://news.google.com" @@ -8169,10 +8190,6 @@ ], "github":"กิตฮับ เป็นเว็บบริการพื้นที่ทางอินเทอร์เน็ต สำหรับเก็บการควบคุมการปรับปรุงแก้ไข โดยใช้กิต (Git) โดยมากจะใช้จัดเก็บรหัสต้นฉบับ แต่ยังคงคุณสมบัติเดิมของกิตไว้ อย่างการให้สิทธิ์ควบคุมและปรับปรุงแก้ไข และระบบการจัดการรหัสต้นฉบับรวมถึงทางกิตฮับได้เพิ่มเติมคุณสมบัติอื่นๆผนวกไว้ด้วย เช่น การควบคุมการเข้าถึงรหัสต้นฉบับ และ คุณสมบัติด้านความร่วมมือเช่น ติดตามข้อบกพร่อง, การร้องขอให้เพิ่มคุณสมบัติอื่นๆ, ระบบจัดการงาน และวิกิสำหรับทุกโครงการ", "google":"กูเกิล เสิร์ช เป็นเสิร์ชเอนจินจากกูเกิล และเป็นเสิร์ชเอนจินที่มีคนใช้งานมากที่สุดในโลก โดยมีการค้นหามากกว่าหนึ่งร้อยล้านครั้งต่อวัน โดยมีผู้ใช้งานกว่า 1.643 พันล้านคนต่อปี จากผลการสำรวจในปี 2551", - "google images":[ - "Google Photos การค้นหารูปภาพที่ครอบคลุมที่สุดบนเว็บ", - "https://images.google.com" - ], "google news":[ "รายงานข่าวครอบคลุมทันเหตุการณ์ รวบรวมจากแหล่งข่าวทั่วโลกโดย Google News", "https://news.google.com" @@ -8200,7 +8217,7 @@ "piratebay":"เดอะไพเรตเบย์ เป็นเว็บไซต์สัญชาติสวีเดนที่ให้บริการบิตทอร์เรนต์ ซึ่งเปิดให้บริการมาตั้งแต่เดือนพฤศจิกายน พ.ศ. 2546 และกล่าวอ้างว่าเป็น \"เว็บไซต์บิตทอร์เรนต์แทร็กเกอร์ที่ใหญ่ที่สุดในโลก\" ได้รับการจัดอันดับจากอเล็กซา ให้เป็นเว็บไซต์ที่มีผู้เข้าชมมากเป็นอันดับที่ 106 เมื่อวันที่ 15 พฤศจิกายน พ.ศ. 2551 ทางเว็บไซต์ได้ประกาศว่ามีจำนวนผู้ใช้พร้อมกันถึง 25 ล้านเพียร์ และมีจำนวนผู้ใช้ที่ลงทะเบียนเข้าใช้งานทั้งสิ้น 3,500,000 ล้านชื่อ โดยในปัจจุบันเดอะไพเรตเบย์ได้ปิดระบบสมัครสมาชิกและอัปโหลดแบบไร้บัญชีไปแล้วเนึ่องจากมีไฟล์ทอร์เรนต์ที่ฝังไวรัสคอมพิวเตอร์มากเกินไป และในปี พ.ศ. 2565 เดอะไพเรตเบย์มีไฟล์ทอร์เรนต์รวมกันทั้งหมดถึง 6.7 เพตะไบต์ และไฟล์ทอร์เรนต์ที่มีการ Seed อยู่ถึง 2.5 เพตะไบต์", "reddit":"เรดดิต เป็นเว็บรวบรวมข่าวสาร จัดลำดับข้อมูลออนไลน์ และเว็บสนทนาสัญชาติอเมริกัน ผู้ใช้ที่ลงทะเบียนแล้วสามารถโพสต์เนื้อหา เช่น ลิงก์ ข้อความ และรูปภาพ ให้ผู้ใช้อื่น ๆ สามารถโหวตขึ้นหรือลงได้ โพสต์ถูกแบ่งตามหมวดหมู่จัดโดยผู้ใช้ เรียกว่า \"ซับเรดดิต” ซึ่งมีหมวดหมู่หลากหลาย เช่น ข่าวสาร กีฬา หนัง เกม ดนตรี หนังสือ การออกกำลังกาย อาหาร ภาพถ่าย เป็นต้น โพสต์ที่ได้รับโหวตขึ้นมาก ๆ จะมีโอกาสอยู่บนหน้าแรก ๆ ของซับเรดดิตนั้น ๆ และหากได้รับความนิยมมาก ๆ จะสามารถขึ้นไปยังหน้าแรกของเรดดิตในที่สุด แม้จะมีกฎป้องกันการดูหมิ่นออนไลน์อยู่มาก ผู้ดูแลของเรดดิตใช้เวลามากในการดูแลเรดดิต", "rottentomatoes":"รอตเทนโทเมโทส์ เป็นเว็บไซต์ที่เปิดตัวในปี 2541 อุทิศให้กับการรบทปริทัศน์ภาพยนตร์และข่าว รู้จักกันอย่างกว้างขวางว่าเป็นผู้รวบรวมบทปริทัศน์ภาพยนตร์ ปัจจุบันครอบคลุมเนื้อหาโทรทัศน์ด้วย ชื่อของรอตเทนโทเมโทส์ นั้น เกิดจากการปฏิบัติที่ผู้ชมจะโยนมะเขือเทศเน่าเมื่อไม่เห็นชอบกับการแสดงเวทีที่เลว บริษัทก่อตั้งขึ้นโดย Senh Duong และตั้งแต่เดือนมกราคม 2553 ได้รับการเป็นเจ้าของโดยฟิลค์สเตอร์ แต่ต่อมาฟิลค์สเตอร์ถูกซื้อต่อกิจการในปี 2554 โดยวอร์เนอร์บราเธอร์ส", - "semantic scholar":"เซอมานทิกสกอลาร์ เป็นเสิร์ชเอนจินที่ประยุกต์ใช้ปัญญาประดิษฐ์สำหรับสิ่งตีพิมพ์ทางวิชาการ สถาบันอัลเลนเพื่อปัญญาประดิษฐ์ เป็นผู้พัฒนาขึ้นแล้วให้เริ่มใช้ในเดือนพฤศจิกายน พ.ศ. 2558 จุดเด่นก็คือการใช้การประมวลภาษาธรรมชาติ (NLP) เพื่อสร้างความย่อสำหรับงานวิชาการต่าง ๆ", + "semantic scholar":"เซมานทิกสกอลาร์ เป็นเสิร์ชเอนจินที่ประยุกต์ใช้ปัญญาประดิษฐ์สำหรับสิ่งตีพิมพ์ทางวิชาการ สถาบันอัลเลนเพื่อปัญญาประดิษฐ์ เป็นผู้พัฒนาขึ้นแล้วให้เริ่มใช้ในเดือนพฤศจิกายน พ.ศ. 2558 จุดเด่นก็คือการใช้การประมวลภาษาธรรมชาติ (NLP) เพื่อสร้างความย่อสำหรับงานวิชาการต่าง ๆ", "soundcloud":"ซาวด์คลาวด์ เป็นบริการฐานเพลงออนไลน์ ตั้งอยู่ในกรุงเบอร์ลิน ประเทศเยอรมนี ที่ให้ผู้ใช้สามารถอัปโหลด โฆษณาประชาสัมพันธ์ และแบ่งปันผลงานเพลงต้นฉบับของพวกเขา", "tagesschau":"ทาเกิสเชา เป็นรายการข่าวของสถานีโทรทัศน์ช่องที่หนึ่งแห่งเยอรมนี ออกอากาศครั้งแรกวันที่ 26 ธันวาคม ค.ศ. 1952 เวลา 20.00 น. ตามเวลาในประเทศเยอรมนี ตรงกับเวลา 01.00 น. ตามเวลาในประเทศไทย", "vimeo":"วิมีโอ เป็นแพลตฟอร์มเผยแพร่วิดีโอซึ่งมีสำนักงานอยู่ที่นครนิวยอร์ก ก่อตั้งโดย เจค ลอดวิก และ แซค ไคลน์ เมื่อปี ค.ศ. 2004 โดยเน้นนำเสนอวิดีโอความละเอียดสูงแก่ผู้ใช้บนอุปกรณ์หลากหลายประเภท มีตัวแบบธุรกิจเป็นซอฟต์แวร์บริการ โดยมีรายได้มาจากการเรียกเก็บค่าธรรมเนียมจากการสมัครสมาชิกของผู้ใช้ และมีเครื่องมือให้ผู้ใช้สามารถสร้าง ตัดต่อ และเผยแพร่วิดีโอได้", @@ -8333,7 +8350,7 @@ "imdb":"IMDb ; filmler, diziler, televizyon programları, video oyunları ve internet içerikleri hakkında bilgiler barındıran çevrimiçi bir bilgi bankasıdır. Sinema ve televizyon yapımları hakkında oyuncu kadrosu, yapım ekibi, biyografiler, özetler, ilginç bilgiler, puanlar ve eleştiriler gibi bilgileri içerir. İlk kurulduğunda amatör sinemaseverler tarafından yönetilen IMDb, günümüzde Amazon'un alt kuruluşu IMDb.com Inc. tarafından yönetilmektedir.", "imgur":"Imgur Alan Schaaf tarafından 2009 yılında kurulan Amerikan çevrimiçi görüntü paylaşım topluluğu ve görüntü barındırma sitesi.", "kickass":"KickassTorrents bir dizin için torrent dosyaları ve magnet bağlantıları kullanarak kullanıcıdan kullanıcıya dosya paylaşımı yöntemini sunan ve BitTorrent protokolünü kullanan bir web sitesi idi. Site 2008'de kuruldu ve 20 Temmuz 2016'da Amerika Birleşik Devletleri Hükümeti tarafından alan adına el konularak kullanıma kapatıldı. Sitenin vekil sunucuları da çalışanlar tarafından yayından kaldırıldı.", - "library genesis":"Library Genesis (Libgen), bilimsel dergi makaleleri, akademik ve genel ilgi kitapları, resimler, çizgi romanlar ve dergiler için bir dosya paylaşım web sitesidir. Kısmen, site başka türlü ödeme duvarı olan veya başka bir yerde dijitalleştirilmeyen içeriğe ücretsiz erişim sağlar. Libgen kendisini \"kamuya açık internet kaynaklarından toplanan\" ve kullanıcılar tarafından yüklenen araştırılabilir makale, kitap ve resim veri tabanı sağlayan bir \"link toplayıcı\" olarak tanımlamaktadır.", + "library genesis":"Library Genesis (Libgen), bilimsel dergi makaleleri, akademik ve genel ilgi kitapları, resimler, çizgi romanlar ve dergiler için bir dosya paylaşım web sitesidir. Kısmen, site başka türlü ödeme duvarı olan veya başka bir yerde dijitalleştirilmeyen içeriğe ücretsiz erişim sağlar. Libgen kendisini \"kamuya açık internet kaynaklarından toplanan\" ve kullanıcılar tarafından yüklenen araştırılabilir makale, kitap ve resim veritabanı sağlayan bir \"link toplayıcı\" olarak tanımlamaktadır.", "library of congress":"Amerika Birleşik Devletleri Kongre Kütüphanesi, ABD'nin ulusal kütüphanesidir. Dünyanın en büyük ve en önemli kütüphanelerinden olan kongre kütüphanesi Washington'da bulunmaktadır. Ayrıca ABD'de yer alan en eski federal kültür yapısıdır.", "mastodon hashtags":[ "mastodon users:tr", @@ -8361,7 +8378,7 @@ ], "pinterest":"Pinterest, görüntü paylaşımı özellikli, her türlü görselin paylaşıldığı ve pano sistemiyle çalışan bir sosyal ağ platformudur. İlk kez Aralık 2009'da Ben Silbermann, Evan Sharp ve Paul Sciarra tarafından kavramsallaştırılmıştır. Görüntüleri ve daha küçük ölçekte GIF'leri ve videoları bülten tahtası biçiminde kullanır. 2010 yılında sosyal medya platformları arasına dahil olan Pinterest, 2011 yılında büyük bir patlama ile popülerlik kazanmıştır. 70 milyon üzeri kullanıcıya sahiptir. Kullanıcıların çoğunluğunu kadınlar oluşturmaktadır, ancak yayın yaptığı birçok kategori ile erkeklerin de ilgisini rahatlıkla çekebilecek bir sitedir. Ağustos 2020 itibarıyla 400 milyonun üzerinde aylık aktif kullanıcıya sahipti. Pinterest 2016 yılında Instapaper, 2017 yılında Jelly uygulamasını satın almıştır.", "piratebay":"The Pirate Bay, dünyanın en büyük Bittorrent izleyicisidir ve 2008'in en çok ziyaret edilen torrent sitesi seçilmiştir. Pirate bay, korsan koyu anlamına gelir. İsveç'teki merkezine yapılan polis baskınıyla kapatılmıştır.", - "pubmed":"MEDLINE, 1950 yılına kadar uzanan gazete ve dergi makalelerine yapılmış atıflara ait bir bibliyografik veri tabanıdır. Veritabanı, klinik tıp ve biyomedikal araştırmalarına ait 4,600’den fazla uluslararası yayını içermekte olup, aynı zamanda diş hekimliği, hemşirelik, kimya, farmakoloji, biyoloji, fizik, beslenme, sağlık teslimat, psikiyatri, psikoloji, çevre sağlığı, sosyal bilimler ve eğitim konularını da kapsar. Medline veritabanı, kayıtlardan oluşan koleksiyonu tarama özelliğine sahip olmanın yanı sıra, 13 milyon’dan daha fazla atıfı içerdiği için de etkili bir biçimde tarama yapmak önemlidir.", + "pubmed":"MEDLINE, 1950 yılına kadar uzanan gazete ve dergi makalelerine yapılmış atıflara ait bir bibliyografik veritabanıdır. Veritabanı, klinik tıp ve biyomedikal araştırmalarına ait 4,600’den fazla uluslararası yayını içermekte olup, aynı zamanda diş hekimliği, hemşirelik, kimya, farmakoloji, biyoloji, fizik, beslenme, sağlık teslimat, psikiyatri, psikoloji, çevre sağlığı, sosyal bilimler ve eğitim konularını da kapsar. Medline veritabanı, kayıtlardan oluşan koleksiyonu tarama özelliğine sahip olmanın yanı sıra, 13 milyon’dan daha fazla atıfı içerdiği için de etkili bir biçimde tarama yapmak önemlidir.", "pypi":"Python Paket Dizini, PyPI olarak kısaltılır ve Peynir Dükkanı olarak da bilinir, Python için resmi bir üçüncü taraf yazılım deposudur. Perl için CPAN deposuna ve R için CRAN deposuna benzer. PyPI, bir hayır kurumu olan Python Software Foundation tarafından işletilmektedir. Bazı paket yöneticileri, pip dahil, PyPI'yi paketler ve bağımlılıkları için varsayılan kaynak olarak kullanır.", "qwant":"Qwant, 2013 Temmuz ayında hizmet vermeye başlayan Fransa merkezli internet arama motorudur. Kendisine ait indeksleme motoru olan birkaç AB Merkezli arama motoru firmasındandır. Firma kullanıcılarının gizliliğine önem vermektedir. Arama sonuçları ve kullanıcılara ait veriler kişiselleştirilmemekte ve takip edilmemektedir.", "qwant images":[ @@ -8424,6 +8441,63 @@ "yahoo news":"Yahoo! News, Yahoo!'ya bağlı olarak İnternet tabanlı bir RSS okuyucu olarak faaliyet gösteren bir web sitesidir. Ağustos 1996'da kurulan sitedeki haberler Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN ve BBC News gibi haber kaynaklarından gelir. 19 Aralık 2006'ya kadar haberlerde yorum yapılmasına izin veren site, 2 Mart 2010'da bu özelliği geri getirmiştir.", "youtube":"YouTube, Google'a ait bir Amerikan çevrimiçi video paylaşım ve sosyal medya platformudur. Merkezi San Bruno, Kaliforniya'da olan platform; 15 Şubat 2005'te üç eski PayPal çalışanı tarafından kuruldu. Platform; kullanıcılarına video yükleme, izleme ve paylaşma imkânı sunmakta olup medya şirketleri ve kullanıcı üretimi videoların gösterimi için WebM, H.264 ve Adobe Flash Video teknolojilerini kullanır. Genel olarak video klipler, televizyon klipleri, müzik videoları, video bloglar, kısa özgün videolar ve eğitim videoları gibi içerikler yayınlanmaktadır." }, + "tt":{ + "apple app store":[ + "iOS өчен кушымталар кибете", + "wikidata" + ], + "bing":[ + "Microsoft Bing ярдәмендә эзләгез һәм мәгълүмат табу, веб-битләрне, рәсемнәрне, видеоларны, карталарны һәм башкаларны күзәтү өчен ЯИ мөмкинлекләрен кулланыгыз. Мәңге кызыксынучылар өчен акыллы эзләгеч.", + "https://www.bing.com" + ], + "bing images":[ + "Bing сурәтләре - кулланучыларга ихтыяҗларына туры килүче иң актуаль, югары сыйфатлы сурәтләрне эзләү һәм карау мөмкинлеге бирә торган иң яхшы сурәтләрне эзләү системасы", + "https://www.bing.com/images" + ], + "bing news":[ + "Спорт, күңел ачу чаралары, эш, сәясәт, һава торышы һәм башкалар турында тулы белешмә бирү өчен оештырылган дөньякүләм, милли һәм урынлы чыганаклардан яңалыклар алыгыз.", + "https://www.bing.com/news" + ], + "bing videos":[ + "Bing’тан акыллы эзләү сез эзләгән әйберләрнең тиз табуны җиңеләйтә һәм сезне бүләкли.", + "https://www.bing.com/videos" + ], + "gentoo":[ + "gentoo:en", + "ref" + ], + "github":"GitHub — IT-проектлар урнаштыру һәм бергә эшләү өчен иң зур веб-сервис. Git версияләр контрле системасына нигезләнгән һәм Ruby on Rails белән Erlangта, GitHub, Inc компаниясе тарафыннан. язылган.", + "habrahabr":"Хабраха́бр — информацион технологияләр, бизнес һәм интернет белән бәйле яңалыкларны, фикерләрне, аналитик мәкаләләрне нәшерләү өчен барлыкка китерелгән күп функцияле сайт. Яңалыклар сайты һәм күмәк блог функцияләрен берләштерә.", + "imdb":"Internet Movie Database — дөньяда кинематограф турында иң эре веб-сайт һәм бирелмәләр базасы.", + "library of congress":"Конгресс китапханәсе - АКШның милли китапханәсе, дөньядагы иң зур китапханә. Вашингтон шәһәрендә урнашкан.", + "wikibooks":"Викикитап – авторларның һәркем үзгәртә алучы ирекле китаплар, текстлар яки белешмәлекләр язып үстерүгә багышланган Викимедиа фондының проекты.", + "wikicommons.audio":[ + "wikicommons.images:tt", + "ref" + ], + "wikicommons.files":[ + "wikicommons.images:tt", + "ref" + ], + "wikicommons.images":"Викиҗыентык — Викимедиа фондына кертелгән рәсемнәр, тавыш язмалары, видеолар җыентыгы булып торган проект.", + "wikicommons.videos":[ + "wikicommons.images:tt", + "ref" + ], + "wikidata":"Wikidata, şulay uk Wikimäğlümat yäki Wikibirelmälär — Wikimedia fondı qaramağında irekle üzgärtülär kertü mömkinlekle birelmälär nigeze, Wikipediä kebek Wikimedia proyektları öçen urtaq mäğlümatlar häm birelmälär çığanağı bulıp tora.", + "wikinews":"Викихәбәр яки Викияңалыклар — волонтёр-журналистлар күмәкләшеп язган хәбәрләрне бастыру платформасы. Күптелле Викимедиа проекты. 2004 елның 8 ноябрьдән гамәлдә.", + "wikipedia":"Википе́дия (ингл. Wikipedia, /ˌwɪkɪˈpiːdɪə/ буларак укыла) — эченә һәркем яза алган ачык эчтәлекле, күптелле онлайн-энциклопедия. Аның барлык мәкаләләре сайтка керә алучы бар шәхесләр тарафыннан үзгәртелә ала диярлек. Википедия - интернет киңлектәге иң зур һәм иң популяр гомуми белешмәләр җыелмасына әйләнде,, веб-сәхифәләргә мөрәҗәгать итүчеләр саны индексын алып баручы Alexa (ингл.) агентлыгы мәгълүматлары буенча дөнья күләмендә 6 нчы урында басып тора, аудиториясе якынча 365 миллион укучыга тигез дигән юрама ясала. Википедия проекты табышсыз Викимедиа Фонды карамагында яши һәм үсә бирә.", + "wikiquote":"Викиөзек — Викимедиа фондының вики технологиясенә нигезләнгән проектларының берсе, 10 июль 2003 елда эшли башлады — MediaWiki программа тәэминатында эшли.", + "wikisource":"Викиханә — Викимедиа фонды проекты, вики технологиясе нигезендә эшләгән ирекле контент текст чыганакларының тупланмасы булган бөтендөнья пәрәвезендә урнашучы дижиталь китапханә.", + "wikispecies":"Wikitörlär (ингл. Wikispecies) — Wikimedia fondı qaramağında irekle üzgärtülär kertü mömkinlekle biologik törlär turındağı mäğlümat katalogı.", + "wikiversity":"Wikiversitet (ингл. Wikiversity) — belem aluçılar cämğiätlärenä yärdäm itügä, alar qullanğan materiallarnı barlıqqa kiterügä, saqlawğa häm eşçänlekläreneñ uñışlılığın raslawğa yünälgän Wikimedia fondı proyektı. Wikipediä kebek qatıraq strukturalı proyektlardan formal mäğlümat urınına, belem aluğa yünälgän kurslarnı täqdim itüe belän ayırıla.", + "wikivoyage":"Викисәфәр (ингл. Wikivoyage) — туризмга һәм ирекле юл күрсәткечләрне булдыруга багышланган күптелле проект.", + "wiktionary":"Викисүзлек — Викимедиа фонды оештырган, күптелле Бөтендөнья пәрәвезенә нигезләнгән ирекле эчтәлекле, һәр телдә үз тезаурусы булган сүзлек проекты. Викисүзлек 158 телдә, шул исәптән гадиләштерелгән инглиз телендә дә эшли. Бу төшенчәнең “Вики” (Wiki) өлеше һавайя теленнән алынган һәм “тиз” дигән мәгънәдәге сүз. Викисүзлеккә 2002 елда нигез салынган иде, шул елның 12 декабрендә аның инглиз телендәге версиясе пәйда булды. Бүген күптелле сүзлек карамагында төрле телләрдәге 37,8 миллион кертем исәпләнә.", + "youtube":[ + "видеоязмалар хостингы, видеоязмаларны карау мөмкинлекләрен бирүче веб-сайт", + "wikidata" + ] + }, "uk":{ "1337x":"1337x — це веб-сайт, який надає каталог торрент-файлів і magnet-посилань, які використовуються для peer-to-peer обміну файлами через протокол BitTorrent. Згідно з новинним блогом TorrentFreak, 1337x є другим за популярністю торрент-сайтом станом на 2023 рік.", "9gag":"9GAG — розважальний сайт розташований в Гонконзі, в основі котрого лежать смішні зображення або відео, що завантажені користувачами. Відвідуваність сайту досягла 1 мільярда переглядів сторінок на місяць, за даними на грудень 2011.", @@ -8515,10 +8589,6 @@ "gitlab":"GitLab — сайт та система керування репозиторіями програмного коду для Git, з додаткових можливостей: власна вікі та система відстеження помилок.", "goodreads":"Goodreads — американський вебсайт соціальної каталогізації, який дозволяє людям шукати в його базі даних книг, анотацій, цитат та відгуків. Користувачі можуть додавати та реєструвати книги для створення бібліотечних каталогів та списків для читання. Вони також можуть створити власні групи пропозицій книг, оглядів, опитувань, блогів та дискусій. Офіси вебсайту розташовані в Сан-Франциско. Компанія належить інтернет-магазину Amazon.", "google":"Google Search або Google — найбільша пошукова система, що належить корпорації Google Inc., яка в свою чергу, входить до міжнародного конгломерату компаній Alphabet Inc..", - "google images":[ - "Зображення Google. Найповніша система пошуку зображень у мережі.", - "https://images.google.com" - ], "google news":"Google Новини — це безкоштовний агрегатор новин, який підтримується та керується Google, що вибирає найактуальніші новини з тисяч публікацій.", "google play apps":"Google Play — крамниця застосунків від Google, що дозволяє власникам пристроїв з мобільною операційною системою Android та іншими завантажувати і купувати різні застосунки, книги, фільми і музику.", "google play movies":[ @@ -8712,10 +8782,6 @@ ], "github":"GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm. GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản. Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí. Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới.", "google":"Google Tìm kiếm, cũng được gọi với tên tiếng Anh phổ biến là Google Search hay đơn giản là Google, là dịch vụ cung cấp chính và quan trọng nhất của công ty Google. Dịch vụ này cho phép người truy cập tìm kiếm thông tin về trên Internet bằng cách sử dụng công cụ tìm kiếm Google, bao gồm các trang Web, hình ảnh & nhiều thông tin khác.", - "google images":[ - "Google Hình ảnh. Dịch vụ tìm kiếm hình ảnh toàn diện nhất trên web.", - "https://images.google.com" - ], "google news":"Google News là một trang web tổng hợp tin tức tự động được cung cấp bởi Google. Ý tưởng ban đầu được hình thành từ việc xếp hạng trang web của Google, được phát triển bởi Krishna Bharat vào năm 2001, trưởng bộ phận Nghiên cứu của Google. Không ai được thay thế trang chủ hoặc nội dung của nó. Tất cả đều được thực hiện bằng các giải thuật tổng hợp tin. Google News trở thành bản chính thức vào tháng 1 năm 2006. Hiện trang đã có phiên bản tiếng Việt tại địa chỉ http://news.google.com.vn.", "google play apps":"Google Play trước đây là Android Market, là một nền tảng phân phối kỹ thuật số các ứng dụng cho hệ điều hành Android và cửa hàng truyền thông kỹ thuật số, điều hành bởi Google. Dịch vụ cho phép người dùng duyệt và tải về các ứng dụng phát triển bởi Android SDK và được đăng tải thông qua Google, như nhạc, tạp chí, sách, phim, chương trình truyền hình. Người dùng có thể mua phần cứng như Chromebook, Google Nexus, Chromecast, phụ kiện, thông qua Google Play.", "google play movies":[ @@ -8731,7 +8797,7 @@ "lemmy communities:vi", "ref" ], - "lemmy communities":"Lemmy là dịch vụ diễn đàn và đọc tin tức xã hội tự lưu trữ (self-hosting) tự do nguồn mở được phát triển bởi LemmyNet. Các server của Lemmy, được gọi là instance, giao tiếp với nhau bằng giao thức ActivityPub.", + "lemmy communities":"Lemmy là dịch vụ diễn đàn và đọc tin tức xã hội tự lưu trữ (self-hosting) tự do nguồn mở được LemmyNet phát triển. Các máy chủ của Lemmy, được gọi là liên hợp (instance), giao tiếp với nhau bằng giao thức ActivityPub.", "lemmy posts":[ "lemmy communities:vi", "ref" From af3f272b0ba52312c07674b7d98b9380e6d5cb2d Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 29 Dec 2024 09:55:39 +0100 Subject: [PATCH 006/417] [fix] update_engine_traits.py: annas archive, bing-* and zlibrary engines Github action Update data - update_engine_traits [1] had issues in annas archive, bing-* and zlibrary engines: ./manage pyenv.cmd python ./searxng_extra/update/update_engine_traits.py [1] https://github.com/searxng/searxng/actions/runs/12530827768/job/34953392587 Signed-off-by: Markus Heiser --- searx/engines/annas_archive.py | 8 +++++--- searx/engines/bing.py | 15 ++++++++++++++- searx/engines/zlibrary.py | 20 +++++++++++++++----- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/searx/engines/annas_archive.py b/searx/engines/annas_archive.py index ea1ab42a4..f9b466ed4 100644 --- a/searx/engines/annas_archive.py +++ b/searx/engines/annas_archive.py @@ -169,7 +169,7 @@ def fetch_traits(engine_traits: EngineTraits): lang_map = {} for x in eval_xpath_list(dom, "//form//input[@name='lang']"): eng_lang = x.get("value") - if eng_lang in ('', '_empty', 'nl-BE', 'und'): + if eng_lang in ('', '_empty', 'nl-BE', 'und') or eng_lang.startswith('anti__'): continue try: locale = babel.Locale.parse(lang_map.get(eng_lang, eng_lang), sep='-') @@ -186,10 +186,12 @@ def fetch_traits(engine_traits: EngineTraits): engine_traits.languages[sxng_lang] = eng_lang for x in eval_xpath_list(dom, "//form//input[@name='content']"): - engine_traits.custom['content'].append(x.get("value")) + if not x.get("value").startswith("anti__"): + engine_traits.custom['content'].append(x.get("value")) for x in eval_xpath_list(dom, "//form//input[@name='ext']"): - engine_traits.custom['ext'].append(x.get("value")) + if not x.get("value").startswith("anti__"): + engine_traits.custom['ext'].append(x.get("value")) for x in eval_xpath_list(dom, "//form//select[@name='sort']//option"): engine_traits.custom['sort'].append(x.get("value")) diff --git a/searx/engines/bing.py b/searx/engines/bing.py index d4f46eaaf..da76f771e 100644 --- a/searx/engines/bing.py +++ b/searx/engines/bing.py @@ -192,8 +192,21 @@ def fetch_traits(engine_traits: EngineTraits): # pylint: disable=import-outside-toplevel from searx.network import get # see https://github.com/searxng/searxng/issues/762 + from searx.utils import gen_useragent - resp = get("https://www.bing.com/account/general") + headers = { + "User-Agent": gen_useragent(), + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", + "Accept-Language": "en-US;q=0.5,en;q=0.3", + "Accept-Encoding": "gzip, deflate, br", + "DNT": "1", + "Connection": "keep-alive", + "Upgrade-Insecure-Requests": "1", + "Sec-GPC": "1", + "Cache-Control": "max-age=0", + } + + resp = get("https://www.bing.com/account/general", headers=headers) if not resp.ok: # type: ignore print("ERROR: response from bing is not OK.") diff --git a/searx/engines/zlibrary.py b/searx/engines/zlibrary.py index 0eed5f621..c9acb28fe 100644 --- a/searx/engines/zlibrary.py +++ b/searx/engines/zlibrary.py @@ -183,17 +183,27 @@ def fetch_traits(engine_traits: EngineTraits) -> None: from searx.network import get # see https://github.com/searxng/searxng/issues/762 from searx.locales import language_tag - resp = get(base_url, verify=False) + def _use_old_values(): + # don't change anything, re-use the existing values + engine_traits.all_locale = ENGINE_TRAITS["z-library"]["all_locale"] + engine_traits.custom = ENGINE_TRAITS["z-library"]["custom"] + engine_traits.languages = ENGINE_TRAITS["z-library"]["languages"] + + try: + resp = get(base_url, verify=False) + except SearxException as exc: + print(f"ERROR: zlibrary domain '{base_url}' is seized?") + print(f" --> {exc}") + _use_old_values() + return + if not resp.ok: # type: ignore raise RuntimeError("Response from zlibrary's search page is not OK.") dom = html.fromstring(resp.text) # type: ignore if domain_is_seized(dom): print(f"ERROR: zlibrary domain is seized: {base_url}") - # don't change anything, re-use the existing values - engine_traits.all_locale = ENGINE_TRAITS["z-library"]["all_locale"] - engine_traits.custom = ENGINE_TRAITS["z-library"]["custom"] - engine_traits.languages = ENGINE_TRAITS["z-library"]["languages"] + _use_old_values() return engine_traits.all_locale = "" From c1bb0bebd4b8d02980fe722cdbe74404c9ea94c5 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 29 Dec 2024 10:02:07 +0100 Subject: [PATCH 007/417] [data] update searx.data - update_engine_traits.py Signed-off-by: Markus Heiser --- searx/data/engine_traits.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/searx/data/engine_traits.json b/searx/data/engine_traits.json index f0c818f38..e4d8ef933 100644 --- a/searx/data/engine_traits.json +++ b/searx/data/engine_traits.json @@ -6873,6 +6873,7 @@ "CU", "CV", "CW", + "CX", "CY", "CZ", "DE", @@ -7771,6 +7772,7 @@ "tg", "th", "ti", + "tig", "tk", "tl", "tly", From a060c0985454dc3f0b5fd45631749457a2ba1b8f Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 3 Jan 2025 07:09:45 +0000 Subject: [PATCH 008/417] [l10n] update translations from Weblate 3db237112 - 2024-12-31 - kratos --- searx/translations/hu/LC_MESSAGES/messages.mo | Bin 21501 -> 21739 bytes searx/translations/hu/LC_MESSAGES/messages.po | 22 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo index f36c178ac3e7ad295d0d6e80615ae5d871a4cfb7..15df80673fd2fc599704094c0a750e915f566534 100644 GIT binary patch delta 5692 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 delta 5482 zcmYM%3wY1h9mnyLa-}61^{QvFk&3->_ z@^ik9_N*}c$@eoR4kv`D_WwWIVvGr-`T@2;A2!3k+V-p1n)(e}58=Z`)T68|Fo?Pr zLope{uq*a6#xc)O2&dt7EXL*N!JDW7|FYJhCJt(DOgD_cDC~=TWQJh^PDE|w*QmfY zVLBd1jelefc!II4Z$c@g@IfKA$2q8lH=qL9iAu^IY>S7mFa}%|b2dEuCM(rS$irUkyJusMh zZ&Zc`AbT>!sCg%&)_WB-|H4@EuK{n-Am7FaT!-4php5Pp+s|uI3x0`Syn^cQ&w=M+ z6V$lDsEn0bUqJ;h6&3hwR3LA~k^iO?R@0!={0X(dAyh!eu_vBFP1uBUku;(sQ$k}&HH;)zcr|F&L#?83Oi68Yfv5kZaZ8+^g&(9(WvJ=9Tmvy*oF1YZz*V@!>EN$q5`>yx2i6|gB?&4bVdc3jj!Tp48(Kx^RKWY^_$3F6O+s)F$YKCQsmUk?PT(wMIpSs zF+(vAdFo~*F2miZiSjz|#&H@dSz-&1Jf}WCtwIp zb|?f%mXb5VZ zXw*6h7^wH3NI?s zjYDudYFs_e#PF_e;8m!vI-KQCgCwuhHFuo^mABEmnH~#swM_CQ7_@cv<{N=JGN+P)CYp;%eHAvxb*PE=VC zpi)(h3TUPEeN@0(P~(r;_H(v=8I_S*)R8*P#ycCQeTLQ zcs};W<=7IxLIw1|`UC0+{rHK~C5%KZoQz6&Iw~`LQ2~rX^`C^j_5Ld-3_)v9Z3>8N?j)k+G!4I zq5@PVMx&0P3^iaH>aNU01u_@4lQ&S~R-yWDw(i7M)c=g?cLp`jRn$B;dXj(byq1Rb zcn=lGs$TAqY()jK3l-==)b0HOHPOGZ;V5t|^&e3E-h0NKXFKW{A4DC&8BE37sN3IC z`Bx#HD=k}N3v7o z4Lk|Ck0uof%rO%wXuv|$Ld$G@CF;4Y$8tP?nkb!B)Lw*vI2m8S3e*lypyoSk>sK(5 z`W@7fMe?+~n1G>r|Gg*#(=ZU#p%}Hmc$|l?p%$vQpL_D%U$>^1M0+ld#qszO9>D}m z8Q}hp$N=QjOciPa$M6HZg>6~itQ^Q9_%SMFIfLA9wt?7~dKq@W3RHl9z#!aa>ppy* z`e6*iW(95r5>ewjqb_L{Ho`*d2z0V&7)wEyYZV6L4h+G47>=K!&io`Q6W37vZ{kdR zY};oJcJIz>$g!JUNY+gqM&PqU+{_F`wf|xW`Pc2-M}sCji5~nG!|{%_4i$NDp}Vsv z)Xw5inMgu?o{HK)H`Mr^wtWz)e=+KAyomAmN+J2zz{NCZ$IDRlcWlRXsFdzNeUW^G z%0!LzDk^|`=#P(30o0@BYc$kdFdEgKfZAX(Mq($2f+omCEzk!waJX$BhZF zniA_QRNzZ73fG}hzYDd)!>ApfvY(%`pWi?-R%Gr|(1Z`|2T?_C zDQWx(8B|g+J+-*JWJ<-PlIc^+v%Te|(`S@V$;|NP{#5dHOg|P7Fzoq3zK5A3J-%f< zJpR>x%$eY8n%m6J*X`+8|G?7mFPE14hWFajD5$8kbOPlko?8^;VTjkap&+l({{SQU BUUUEe diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po index ed5a15956..cb32df8df 100644 --- a/searx/translations/hu/LC_MESSAGES/messages.po +++ b/searx/translations/hu/LC_MESSAGES/messages.po @@ -15,15 +15,15 @@ # return42 , 2024. # meskobalazs , 2024. # Kran21 , 2024. -# kratos , 2024. +# kratos , 2024, 2025. # elek , 2024. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-26 08:08+0000\n" -"Last-Translator: return42 \n" +"PO-Revision-Date: 2025-01-01 02:33+0000\n" +"Last-Translator: kratos \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -1227,11 +1227,11 @@ msgstr "Maximális idő" #: searx/templates/simple/preferences/favicon.html:2 msgid "Favicon Resolver" -msgstr "" +msgstr "Weblapikon-feloldó" #: searx/templates/simple/preferences/favicon.html:15 msgid "Display favicons near search results" -msgstr "" +msgstr "Weblapikonok megjelenítése a keresési eredmények mellett" #: searx/templates/simple/preferences/footer.html:2 msgid "" @@ -1382,7 +1382,7 @@ msgstr "A felület nyelvének megváltoztatása" #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "URL formázás" +msgstr "Webcímformázás" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" @@ -1390,15 +1390,15 @@ msgstr "Szép" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" -msgstr "" +msgstr "Teljes" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "Kiszolgáló" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "Az eredmény URL formázásának módosítása" +msgstr "Az eredmény webcím formázásának módosítása" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" @@ -1542,11 +1542,11 @@ msgstr "torrent fájl" #: searx/templates/simple/result_templates/torrent.html:9 msgid "Seeder" -msgstr "Seeder" +msgstr "Feltöltő" #: searx/templates/simple/result_templates/torrent.html:9 msgid "Leecher" -msgstr "Leecher" +msgstr "Letöltő" #: searx/templates/simple/result_templates/torrent.html:13 msgid "Number of Files" From 96c32549bef1de19a98a9c19a8983f46e4425e73 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Sat, 4 Jan 2025 20:01:46 +0000 Subject: [PATCH 009/417] [fix] requirements-dev.txt: remove autodoc_pydantic Related to #3727 --- docs/conf.py | 1 - requirements-dev.txt | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 27881a4e0..fec9eb64b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -127,7 +127,6 @@ extensions = [ "sphinx_tabs.tabs", # https://github.com/djungelorm/sphinx-tabs 'myst_parser', # https://www.sphinx-doc.org/en/master/usage/markdown.html 'notfound.extension', # https://github.com/readthedocs/sphinx-notfound-page - 'sphinxcontrib.autodoc_pydantic', # https://github.com/mansenfranzen/autodoc_pydantic ] autodoc_default_options = { diff --git a/requirements-dev.txt b/requirements-dev.txt index d2269b38c..9882599e2 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -21,4 +21,3 @@ wlc==1.15 coloredlogs==15.0.1 docutils>=0.21.2 parameterized==0.9.0 -autodoc_pydantic==2.2.0 From 18c3e088374b997352cf5856fdddb6d89b6fef14 Mon Sep 17 00:00:00 2001 From: Lucki Date: Sun, 5 Jan 2025 21:54:04 +0100 Subject: [PATCH 010/417] Fix usage of `api_key` engine setting The value of `params['api_key']` isn't read anywhere. Writing directly into the header object solves this quite easily though. > [Users can authenticate by including their API key either in a request URL by appending `?apikey=`, or by including the `X-API-Key: ` header with the request.](https://wallhaven.cc/help/api) --- searx/engines/wallhaven.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/engines/wallhaven.py b/searx/engines/wallhaven.py index 127873d5d..4ab83a562 100644 --- a/searx/engines/wallhaven.py +++ b/searx/engines/wallhaven.py @@ -57,7 +57,7 @@ def request(query, params): } if api_key: - params['api_key'] = api_key + params['headers']['X-API-Key'] = api_key params['url'] = f"{base_url}/api/v1/search?{urlencode(args)}" return params From 0642c5434a26f9483a935389dedbe1209d21e23a Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 27 Dec 2024 20:12:02 +0100 Subject: [PATCH 011/417] [fix] dockerhub: switch to new api path Co-authored-by: Markus Heiser --- searx/engines/docker_hub.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/searx/engines/docker_hub.py b/searx/engines/docker_hub.py index 5963ee2c5..021c05827 100644 --- a/searx/engines/docker_hub.py +++ b/searx/engines/docker_hub.py @@ -19,14 +19,17 @@ about = { categories = ['it', 'packages'] # optional paging = True -base_url = "https://hub.docker.com/" -search_url = base_url + "api/content/v1/products/search?{query}&type=image&page_size=25" +base_url = "https://hub.docker.com" +page_size = 10 def request(query, params): - - params['url'] = search_url.format(query=urlencode(dict(q=query, page=params["pageno"]))) - params["headers"]["Search-Version"] = "v3" + args = { + "query": query, + "from": page_size * (params['pageno'] - 1), + "size": page_size, + } + params['url'] = f"{base_url}/api/search/v3/catalog/search?{urlencode(args)}" return params @@ -36,23 +39,32 @@ def response(resp): resp: requests response object ''' results = [] - body = resp.json() + json_resp = resp.json() - for item in body.get("summaries", []): - filter_type = item.get("filter_type") - is_official = filter_type in ["store", "official"] + for item in json_resp.get("results", []): + image_source = item.get("source") + is_official = image_source in ["store", "official"] + + popularity_infos = [f"{item.get('star_count', 0)} stars"] + + architectures = [] + for rate_plan in item.get("rate_plans", []): + pull_count = rate_plan.get("repositories", [{}])[0].get("pull_count") + if pull_count: + popularity_infos.insert(0, f"{pull_count} pulls") + architectures.extend(arch['name'] for arch in rate_plan.get("architectures", []) if arch['name']) result = { 'template': 'packages.html', - 'url': base_url + ("_/" if is_official else "r/") + item.get("slug", ""), + 'url': base_url + ("/_/" if is_official else "/r/") + item.get("slug", ""), 'title': item.get("name"), 'content': item.get("short_description"), 'thumbnail': item["logo_url"].get("large") or item["logo_url"].get("small"), 'package_name': item.get("name"), 'maintainer': item["publisher"].get("name"), 'publishedDate': parser.parse(item.get("updated_at") or item.get("created_at")), - 'popularity': item.get("pull_count", "0") + " pulls", - 'tags': [arch['name'] for arch in item["architectures"]], + 'popularity': ', '.join(popularity_infos), + 'tags': architectures, } results.append(result) From d9343b6388cee46b99b3d343ec99dca372c70a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aindri=C3=BA=20Mac=20Giolla=20Eoin?= Date: Sat, 21 Dec 2024 18:55:44 +0000 Subject: [PATCH 012/417] [l10n] adding new language Irish (ga) --- searx/data/locales.json | 3 +- searx/translations/ga/LC_MESSAGES/messages.mo | Bin 0 -> 23456 bytes searx/translations/ga/LC_MESSAGES/messages.po | 1526 +++++++++++++++++ 3 files changed, 1528 insertions(+), 1 deletion(-) create mode 100644 searx/translations/ga/LC_MESSAGES/messages.mo create mode 100644 searx/translations/ga/LC_MESSAGES/messages.po diff --git a/searx/data/locales.json b/searx/data/locales.json index 355a6b90b..6a18c2eeb 100644 --- a/searx/data/locales.json +++ b/searx/data/locales.json @@ -21,6 +21,7 @@ "fi": "Suomi (Finnish)", "fil": "Filipino", "fr": "Français (French)", + "ga": "Gaeilge (Irish)", "gl": "Galego (Galician)", "he": "עברית (Hebrew)", "hr": "Hrvatski (Croatian)", @@ -67,4 +68,4 @@ "fa-IR", "he" ] -} \ No newline at end of file +} diff --git a/searx/translations/ga/LC_MESSAGES/messages.mo b/searx/translations/ga/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..f47b3a63c868a314f1daddd3343e5b6cb6bb88d0 GIT binary patch literal 23456 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 IynK=Qe{l=anE(I) literal 0 HcmV?d00001 diff --git a/searx/translations/ga/LC_MESSAGES/messages.po b/searx/translations/ga/LC_MESSAGES/messages.po new file mode 100644 index 000000000..52e0dd871 --- /dev/null +++ b/searx/translations/ga/LC_MESSAGES/messages.po @@ -0,0 +1,1526 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-12-16 08:30+0000\n" +"PO-Revision-Date: 2024-12-21 18:53+0000\n" +"Last-Translator: Aindriú Mac Giolla Eoin \n" +"Language-Team: \n" +"Language: ga_IE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.4.4\n" + +#. CONSTANT_NAMES['NO_SUBGROUPING'] +#: searx/searxng.msg +msgid "without further subgrouping" +msgstr "gan foghrúpáil bhreise" + +#. CONSTANT_NAMES['DEFAULT_CATEGORY'] +#: searx/searxng.msg +msgid "other" +msgstr "eile" + +#. CATEGORY_NAMES['FILES'] +#: searx/searxng.msg +msgid "files" +msgstr "comhaid" + +#. CATEGORY_NAMES['GENERAL'] +#: searx/searxng.msg +msgid "general" +msgstr "ginearálta" + +#. CATEGORY_NAMES['MUSIC'] +#: searx/searxng.msg +msgid "music" +msgstr "ceol" + +#. CATEGORY_NAMES['SOCIAL_MEDIA'] +#: searx/searxng.msg +msgid "social media" +msgstr "meáin shóisialta" + +#. CATEGORY_NAMES['IMAGES'] +#: searx/searxng.msg +msgid "images" +msgstr "íomhánna" + +#. CATEGORY_NAMES['VIDEOS'] +#: searx/searxng.msg +msgid "videos" +msgstr "físeáin" + +#. CATEGORY_NAMES['RADIO'] +#: searx/engines/radio_browser.py:103 searx/searxng.msg +msgid "radio" +msgstr "raidió" + +#. CATEGORY_NAMES['TV'] +#: searx/searxng.msg +msgid "tv" +msgstr "teilifíse" + +#. CATEGORY_NAMES['IT'] +#: searx/searxng.msg +msgid "it" +msgstr "é" + +#. CATEGORY_NAMES['NEWS'] +#: searx/searxng.msg +msgid "news" +msgstr "nuacht" + +#. CATEGORY_NAMES['MAP'] +#: searx/searxng.msg +msgid "map" +msgstr "léarscáil" + +#. CATEGORY_NAMES['ONIONS'] +#: searx/searxng.msg +msgid "onions" +msgstr "oinniúin" + +#. CATEGORY_NAMES['SCIENCE'] +#: searx/searxng.msg +msgid "science" +msgstr "eolaíocht" + +#. CATEGORY_GROUPS['APPS'] +#: searx/searxng.msg +msgid "apps" +msgstr "aipeanna" + +#. CATEGORY_GROUPS['DICTIONARIES'] +#: searx/searxng.msg +msgid "dictionaries" +msgstr "foclóirí" + +#. CATEGORY_GROUPS['LYRICS'] +#: searx/searxng.msg +msgid "lyrics" +msgstr "liricí" + +#. CATEGORY_GROUPS['PACKAGES'] +#: searx/searxng.msg +msgid "packages" +msgstr "pacáistí" + +#. CATEGORY_GROUPS['Q_A'] +#: searx/searxng.msg +msgid "q&a" +msgstr "q&a" + +#. CATEGORY_GROUPS['REPOS'] +#: searx/searxng.msg +msgid "repos" +msgstr "stórais" + +#. CATEGORY_GROUPS['SOFTWARE_WIKIS'] +#: searx/searxng.msg +msgid "software wikis" +msgstr "bogearraí wikis" + +#. CATEGORY_GROUPS['WEB'] +#: searx/searxng.msg +msgid "web" +msgstr "gréasáin" + +#. CATEGORY_GROUPS['SCIENTIFIC PUBLICATIONS'] +#: searx/searxng.msg +msgid "scientific publications" +msgstr "foilseacháin eol" + +#. STYLE_NAMES['AUTO'] +#: searx/searxng.msg +msgid "auto" +msgstr "uath" + +#. STYLE_NAMES['LIGHT'] +#: searx/searxng.msg +msgid "light" +msgstr "solas" + +#. STYLE_NAMES['DARK'] +#: searx/searxng.msg +msgid "dark" +msgstr "dorcha" + +#. STYLE_NAMES['BLACK'] +#: searx/searxng.msg +msgid "black" +msgstr "dubh" + +#. BRAND_CUSTOM_LINKS['UPTIME'] +#: searx/searxng.msg +msgid "Uptime" +msgstr "Aga fónaimh" + +#. BRAND_CUSTOM_LINKS['ABOUT'] +#: searx/searxng.msg searx/templates/simple/base.html:50 +msgid "About" +msgstr "Maidir" + +#. WEATHER_TERMS['AVERAGE TEMP.'] +#: searx/engines/wttr.py:32 searx/searxng.msg +msgid "Average temp." +msgstr "Meán-teocht." + +#. WEATHER_TERMS['CLOUD COVER'] +#: searx/engines/open_meteo.py:91 searx/searxng.msg +msgid "Cloud cover" +msgstr "Clúdach scamall" + +#. WEATHER_TERMS['CONDITION'] +#: searx/engines/duckduckgo_weather.py:45 searx/engines/wttr.py:51 searx/searxng.msg +msgid "Condition" +msgstr "Coinníoll" + +#. WEATHER_TERMS['CURRENT CONDITION'] +#: searx/engines/duckduckgo_weather.py:118 searx/engines/wttr.py:104 +#: searx/searxng.msg +msgid "Current condition" +msgstr "Coinníoll reatha" + +#. WEATHER_TERMS['EVENING'] +#: searx/engines/wttr.py:100 searx/searxng.msg +msgid "Evening" +msgstr "Tráthnóna" + +#. WEATHER_TERMS['FEELS LIKE'] +#: searx/engines/duckduckgo_weather.py:53 searx/engines/open_meteo.py:81 +#: searx/engines/wttr.py:59 searx/searxng.msg +msgid "Feels like" +msgstr "Mothaíonn sé" + +#. WEATHER_TERMS['HUMIDITY'] +#: searx/engines/duckduckgo_weather.py:64 searx/engines/open_meteo.py:93 +#: searx/engines/wttr.py:68 searx/searxng.msg +msgid "Humidity" +msgstr "Bogthaise" + +#. WEATHER_TERMS['MAX TEMP.'] +#: searx/engines/duckduckgo_weather.py:77 searx/engines/wttr.py:34 searx/searxng.msg +msgid "Max temp." +msgstr "Teocht uasta." + +#. WEATHER_TERMS['MIN TEMP.'] +#: searx/engines/duckduckgo_weather.py:73 searx/engines/wttr.py:33 searx/searxng.msg +msgid "Min temp." +msgstr "Teocht íosta." + +#. WEATHER_TERMS['MORNING'] +#: searx/engines/wttr.py:100 searx/searxng.msg +msgid "Morning" +msgstr "Maidin" + +#. WEATHER_TERMS['NIGHT'] +#: searx/engines/wttr.py:100 searx/searxng.msg +msgid "Night" +msgstr "Oíche" + +#. WEATHER_TERMS['NOON'] +#: searx/engines/wttr.py:100 searx/searxng.msg +msgid "Noon" +msgstr "Meán lae" + +#. WEATHER_TERMS['PRESSURE'] +#: searx/engines/open_meteo.py:95 searx/searxng.msg +msgid "Pressure" +msgstr "Brú" + +#. WEATHER_TERMS['SUNRISE'] +#: searx/engines/duckduckgo_weather.py:81 searx/engines/wttr.py:36 searx/searxng.msg +msgid "Sunrise" +msgstr "Éirí na gréine" + +#. WEATHER_TERMS['SUNSET'] +#: searx/engines/duckduckgo_weather.py:82 searx/engines/wttr.py:37 searx/searxng.msg +msgid "Sunset" +msgstr "Luí na gréine" + +#. WEATHER_TERMS['TEMPERATURE'] +#: searx/engines/duckduckgo_weather.py:48 searx/engines/open_meteo.py:76 +#: searx/engines/wttr.py:55 searx/searxng.msg +msgid "Temperature" +msgstr "Teocht" + +#. WEATHER_TERMS['UV INDEX'] +#: searx/engines/duckduckgo_weather.py:80 searx/engines/wttr.py:35 searx/searxng.msg +msgid "UV index" +msgstr "Innéacs UV" + +#. WEATHER_TERMS['VISIBILITY'] +#: searx/engines/duckduckgo_weather.py:62 searx/engines/wttr.py:66 searx/searxng.msg +msgid "Visibility" +msgstr "Infheictheacht" + +#. WEATHER_TERMS['WIND'] +#: searx/engines/duckduckgo_weather.py:58 searx/engines/open_meteo.py:86 +#: searx/engines/wttr.py:62 searx/searxng.msg +msgid "Wind" +msgstr "Gaoth" + +#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS'] +#: searx/engines/lemmy.py:85 searx/searxng.msg +msgid "subscribers" +msgstr "síntiúsóirí" + +#. SOCIAL_MEDIA_TERMS['POSTS'] +#: searx/engines/lemmy.py:86 searx/searxng.msg +msgid "posts" +msgstr "poist" + +#. SOCIAL_MEDIA_TERMS['ACTIVE USERS'] +#: searx/engines/lemmy.py:87 searx/searxng.msg +msgid "active users" +msgstr "úsáideoirí gníomhacha" + +#. SOCIAL_MEDIA_TERMS['COMMENTS'] +#: searx/engines/discourse.py:157 searx/engines/hackernews.py:82 +#: searx/engines/lemmy.py:130 searx/searxng.msg +msgid "comments" +msgstr "tráchtanna" + +#. SOCIAL_MEDIA_TERMS['USER'] +#: searx/engines/lemmy.py:129 searx/engines/lemmy.py:164 searx/searxng.msg +msgid "user" +msgstr "úsáideoir" + +#. SOCIAL_MEDIA_TERMS['COMMUNITY'] +#: searx/engines/lemmy.py:131 searx/engines/lemmy.py:165 searx/searxng.msg +msgid "community" +msgstr "pobal" + +#. SOCIAL_MEDIA_TERMS['POINTS'] +#: searx/engines/hackernews.py:82 searx/searxng.msg +msgid "points" +msgstr "pointí" + +#. SOCIAL_MEDIA_TERMS['TITLE'] +#: searx/searxng.msg +msgid "title" +msgstr "teideal" + +#. SOCIAL_MEDIA_TERMS['AUTHOR'] +#: searx/engines/hackernews.py:85 searx/searxng.msg +msgid "author" +msgstr "údar" + +#. SOCIAL_MEDIA_TERMS['THREAD OPEN'] +#: searx/engines/discourse.py:149 searx/searxng.msg +msgid "open" +msgstr "oscailte" + +#. SOCIAL_MEDIA_TERMS['THREAD CLOSED'] +#: searx/engines/discourse.py:149 searx/searxng.msg +msgid "closed" +msgstr "dúnta" + +#. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] +#: searx/engines/discourse.py:160 searx/searxng.msg +msgid "answered" +msgstr "freagraí" + +#: searx/webapp.py:323 +msgid "No item found" +msgstr "Níor aimsíodh aon rud" + +#: searx/engines/qwant.py:288 searx/templates/simple/result_templates/images.html:23 +#: searx/webapp.py:325 +msgid "Source" +msgstr "Foinse" + +#: searx/webapp.py:327 +msgid "Error loading the next page" +msgstr "Earráid ag luchtú an chéad leathanach eile" + +#: searx/webapp.py:496 searx/webapp.py:904 +msgid "Invalid settings, please edit your preferences" +msgstr "Socruithe neamhbhailí, cuir do chuid roghanna in" + +#: searx/webapp.py:512 +msgid "Invalid settings" +msgstr "Socruithe neamhbhaintí" + +#: searx/webapp.py:589 searx/webapp.py:679 +msgid "search error" +msgstr "earráid cuardaigh" + +#: searx/webutils.py:36 +msgid "timeout" +msgstr "amuigh" + +#: searx/webutils.py:37 +msgid "parsing error" +msgstr "earráid parsála" + +#: searx/webutils.py:38 +msgid "HTTP protocol error" +msgstr "Earráid prótacal HTTP" + +#: searx/webutils.py:39 +msgid "network error" +msgstr "earráid líonra" + +#: searx/webutils.py:40 +msgid "SSL error: certificate validation has failed" +msgstr "Earráid SSL: theip ar bhailíochtú teastais" + +#: searx/webutils.py:42 +msgid "unexpected crash" +msgstr "timpiste gan choinne" + +#: searx/webutils.py:49 +msgid "HTTP error" +msgstr "Earráid HTTP" + +#: searx/webutils.py:50 +msgid "HTTP connection error" +msgstr "Earráid nasc HTTP" + +#: searx/webutils.py:56 +msgid "proxy error" +msgstr "earráid seachfhá" + +#: searx/webutils.py:57 +msgid "CAPTCHA" +msgstr "CAPTCHA" + +#: searx/webutils.py:58 +msgid "too many requests" +msgstr "an iomarca iarratais" + +#: searx/webutils.py:59 +msgid "access denied" +msgstr "rochtain diúltaithe" + +#: searx/webutils.py:60 +msgid "server API error" +msgstr "earráid API freastalaí" + +#: searx/webutils.py:79 +msgid "Suspended" +msgstr "Ar fionraí" + +#: searx/webutils.py:314 +msgid "{minutes} minute(s) ago" +msgstr "{minutes} nóiméad ó shin" + +#: searx/webutils.py:315 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "{hours} uair(eanta), {minutes} nóiméad ó shin" + +#: searx/answerers/random/answerer.py:76 +msgid "Random value generator" +msgstr "Gineadóir luacha randamach" + +#: searx/answerers/random/answerer.py:77 +msgid "Generate different random values" +msgstr "Cruthaigh luachanna randamacha éag" + +#: searx/answerers/statistics/answerer.py:50 +msgid "Statistics functions" +msgstr "Feidhmeanna staitisticí" + +#: searx/answerers/statistics/answerer.py:51 +msgid "Compute {functions} of the arguments" +msgstr "Ríomh {functions} na n-argóintí" + +#: searx/engines/mozhi.py:57 +msgid "Synonyms" +msgstr "Comhchiallaigh" + +#: searx/engines/openstreetmap.py:159 +msgid "Get directions" +msgstr "Faigh treoracha" + +#: searx/engines/pdbe.py:96 +msgid "{title} (OBSOLETE)" +msgstr "{title} (ÚSÁIDEACH)" + +#: searx/engines/pdbe.py:103 +msgid "This entry has been superseded by" +msgstr "Cuireadh an iontráil seo in ionad ag" + +#: searx/engines/qwant.py:290 +msgid "Channel" +msgstr "Cainéal" + +#: searx/engines/radio_browser.py:105 +msgid "bitrate" +msgstr "ráta giotán" + +#: searx/engines/radio_browser.py:106 +msgid "votes" +msgstr "vótaí" + +#: searx/engines/radio_browser.py:107 +msgid "clicks" +msgstr "cliceáil" + +#: searx/engines/seekr.py:193 searx/engines/yummly.py:71 +#: searx/engines/zlibrary.py:137 +msgid "Language" +msgstr "Teanga" + +#: searx/engines/semantic_scholar.py:78 +msgid "" +"{numCitations} citations from the year {firstCitationVelocityYear} to " +"{lastCitationVelocityYear}" +msgstr "" +"{numCitations} lua ón mbliain {firstCitationVelocityYear} go " +"{lastCitationVelocityYear}" + +#: searx/engines/tineye.py:45 +msgid "" +"Could not read that image url. This may be due to an unsupported file format. " +"TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or WebP." +msgstr "" +"Ní fhéadfaí an url íomhá sin a léamh. D'fhéadfadh sé seo a bheith mar gheall ar " +"fhormáid comhaid gan tacaíocht. Ní thacaíonn TinEye ach le híomhánna atá JPEG, " +"PNG, GIF, BMP, TIFF nó WebP." + +#: searx/engines/tineye.py:51 +msgid "" +"The image is too simple to find matches. TinEye requires a basic level of visual " +"detail to successfully identify matches." +msgstr "" +"Tá an íomhá ró-simplí chun cluichí a aimsiú. Éilíonn TinEye leibhéal bunúsach " +"sonraí amhairc chun cluichí a aithint go rathúil." + +#: searx/engines/tineye.py:57 +msgid "The image could not be downloaded." +msgstr "Ní fhéadfaí an íomhá a íoslódáil." + +#: searx/engines/zlibrary.py:138 +msgid "Book rating" +msgstr "Rátáil leabhar" + +#: searx/engines/zlibrary.py:139 +msgid "File quality" +msgstr "Cáilíocht comhad" + +#: searx/plugins/calculator.py:18 +msgid "Calculate mathematical expressions via the search bar" +msgstr "Ríomh nathanna matamaiticiúla tríd an mbarra cu" + +#: searx/plugins/hash_plugin.py:10 +msgid "Converts strings to different hash digests." +msgstr "Athraíonn sé teaghráin go díleá hash éagsúla." + +#: searx/plugins/hash_plugin.py:38 +msgid "hash digest" +msgstr "díleá hash" + +#: searx/plugins/hostnames.py:103 +msgid "Hostnames plugin" +msgstr "Breiseán Óstainmneacha" + +#: searx/plugins/hostnames.py:104 +msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" +msgstr "" +"Athscríobh óstainmneacha, bain torthaí nó tosaíocht a thabhairt dóibh bunaithe ar " +"an óstainm" + +#: searx/plugins/oa_doi_rewrite.py:12 +msgid "Open Access DOI rewrite" +msgstr "Athscríobh DOI Rochtana Oscailte" + +#: searx/plugins/oa_doi_rewrite.py:13 +msgid "" +"Avoid paywalls by redirecting to open-access versions of publications when " +"available" +msgstr "" +"Seachain ballaí pá trí athreorú chuig leaganacha rochtana oscailte de fhoilseacháin" + +#: searx/plugins/self_info.py:9 +msgid "Self Information" +msgstr "Féin-fhaisnéis" + +#: searx/plugins/self_info.py:10 +msgid "" +"Displays your IP if the query is \"ip\" and your user agent if the query contains " +"\"user agent\"." +msgstr "" +"Taispeánann sé do IP más “ip” an cheist agus do ghníomhaire úsáideora má tá " +"“gníomhaire úsáideora” sa cheist." + +#: searx/plugins/self_info.py:28 +msgid "Your IP is: " +msgstr "Is é do IP: " + +#: searx/plugins/self_info.py:31 +msgid "Your user-agent is: " +msgstr "Is é do ghníomhaire úsáideora: " + +#: searx/plugins/tor_check.py:24 +msgid "Tor check plugin" +msgstr "Breiseán seiceála Tor" + +#: searx/plugins/tor_check.py:27 +msgid "" +"This plugin checks if the address of the request is a Tor exit-node, and informs " +"the user if it is; like check.torproject.org, but from SearXNG." +msgstr "" +"Seiceálann an breiseán seo an nód amach Tor é seoladh an iarratais, agus cuireann " +"sé in iúl don úsáideoir más é; cosúil le check.torproject.org, ach ó SearxNG." + +#: searx/plugins/tor_check.py:61 +msgid "" +"Could not download the list of Tor exit-nodes from: https://check.torproject.org/" +"exit-addresses" +msgstr "" +"Ní fhéadfaí liosta na nóid imeachta Tor a íoslódáil ó: https://check.torproject." +"org/exit-addresses" + +#: searx/plugins/tor_check.py:77 +msgid "" +"You are using Tor and it looks like you have this external IP address: {ip_address}" +msgstr "" +"Tá Tor á úsáid agat agus is cosúil go bhfuil an seoladh IP seachtrach seo agat: " +"{ip_address}" + +#: searx/plugins/tor_check.py:85 +msgid "You are not using Tor and you have this external IP address: {ip_address}" +msgstr "Níl Tor á úsáid agat agus tá an seoladh IP seachtrach seo agat: {ip_address}" + +#: searx/plugins/tracker_url_remover.py:16 +msgid "Tracker URL remover" +msgstr "Aistritheoir URL rianaithe" + +#: searx/plugins/tracker_url_remover.py:17 +msgid "Remove trackers arguments from the returned URL" +msgstr "Bain argóintí rianaithe ón URL ar ais" + +#: searx/plugins/unit_converter.py:29 +msgid "Convert between units" +msgstr "Tiontaigh idir aonaid" + +#: searx/templates/simple/404.html:4 +msgid "Page not found" +msgstr "Níor aimsíodh an leathanach" + +#: searx/templates/simple/404.html:6 +#, python-format +msgid "Go to %(search_page)s." +msgstr "Téigh chuig %(search_page)s." + +#: searx/templates/simple/404.html:6 +msgid "search page" +msgstr "leathanach cuardaigh" + +#: searx/templates/simple/base.html:54 +msgid "Donate" +msgstr "Deontas" + +#: searx/templates/simple/base.html:58 searx/templates/simple/preferences.html:156 +msgid "Preferences" +msgstr "Roghanna" + +#: searx/templates/simple/base.html:68 +msgid "Powered by" +msgstr "Cumhachtaithe ag" + +#: searx/templates/simple/base.html:68 +msgid "a privacy-respecting, open metasearch engine" +msgstr "inneall metaschuardaigh oscailte a bhfuil meas ar phríobháideacht" + +#: searx/templates/simple/base.html:69 +#: searx/templates/simple/result_templates/packages.html:59 +msgid "Source code" +msgstr "Cód foinse" + +#: searx/templates/simple/base.html:70 +msgid "Issue tracker" +msgstr "Rianóir saincheisteanna" + +#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18 +msgid "Engine stats" +msgstr "Staitisticí innill" + +#: searx/templates/simple/base.html:73 +msgid "Public instances" +msgstr "Cásanna poiblí" + +#: searx/templates/simple/base.html:76 +msgid "Privacy policy" +msgstr "Beartas príobháideachta" + +#: searx/templates/simple/base.html:79 +msgid "Contact instance maintainer" +msgstr "Déan teagmháil le cothabhálaí sampla" + +#: searx/templates/simple/categories.html:26 +msgid "Click on the magnifier to perform search" +msgstr "Cliceáil ar an mhéadaitheoir chun cuardach a dhéanamh" + +#: searx/templates/simple/macros.html:40 +msgid "Length" +msgstr "Fad" + +#: searx/templates/simple/macros.html:41 +msgid "Views" +msgstr "Amharcanna" + +#: searx/templates/simple/macros.html:42 +#: searx/templates/simple/result_templates/files.html:34 +#: searx/templates/simple/result_templates/images.html:19 +#: searx/templates/simple/result_templates/paper.html:6 +msgid "Author" +msgstr "Údar" + +#: searx/templates/simple/macros.html:50 +msgid "cached" +msgstr "taisceáilte" + +#: searx/templates/simple/macros.html:50 +msgid "proxied" +msgstr "trí sheachvótálaí" + +#: searx/templates/simple/new_issue.html:64 +msgid "Start submitting a new issue on GitHub" +msgstr "Tosaigh eisiúint nua a chur isteach ar GitHub" + +#: searx/templates/simple/new_issue.html:66 +msgid "Please check for existing bugs about this engine on GitHub" +msgstr "" +"Seiceáil le do thoil le haghaidh fabhtanna atá ann cheana faoin inneall seo ar " +"GitHub" + +#: searx/templates/simple/new_issue.html:69 +msgid "I confirm there is no existing bug about the issue I encounter" +msgstr "Deimhním nach bhfuil aon fhabht ann cheana faoin gceist a bhíonn agam" + +#: searx/templates/simple/new_issue.html:71 +msgid "If this is a public instance, please specify the URL in the bug report" +msgstr "Más cás poiblí é seo, sonraigh an URL sa tuarascáil fabht" + +#: searx/templates/simple/new_issue.html:72 +msgid "Submit a new issue on Github including the above information" +msgstr "Cuir isteach eisiúint nua ar Github lena n-áirítear an fhaisnéis thuas" + +#: searx/templates/simple/preferences.html:65 +msgid "No HTTPS" +msgstr "Gan HTTPS" + +#: searx/templates/simple/elements/engines_msg.html:14 +#: searx/templates/simple/preferences.html:69 +#: searx/templates/simple/preferences.html:70 +msgid "View error logs and submit a bug report" +msgstr "Féach ar logaí earráide agus cuir isteach tuarascáil fabht" + +#: searx/templates/simple/preferences.html:74 +msgid "!bang for this engine" +msgstr "!bang don inneall seo" + +#: searx/templates/simple/preferences.html:80 +msgid "!bang for its categories" +msgstr "!bang dá chatagóirí" + +#: searx/templates/simple/preferences.html:102 searx/templates/simple/stats.html:64 +msgid "Median" +msgstr "Meánmhéid" + +#: searx/templates/simple/preferences.html:103 searx/templates/simple/stats.html:70 +msgid "P80" +msgstr "P80" + +#: searx/templates/simple/preferences.html:104 searx/templates/simple/stats.html:76 +msgid "P95" +msgstr "P95" + +#: searx/templates/simple/preferences.html:136 +msgid "Failed checker test(s): " +msgstr "Tástáil(í) seiceála ar theip orthu: " + +#: searx/templates/simple/preferences.html:138 +msgid "Errors:" +msgstr "Earráidí:" + +#: searx/templates/simple/preferences.html:162 +msgid "General" +msgstr "Ginearálta" + +#: searx/templates/simple/preferences.html:165 +msgid "Default categories" +msgstr "Catagóirí réamhshoc" + +#: searx/templates/simple/preferences.html:190 +msgid "User interface" +msgstr "Comhéadan úsáideora" + +#: searx/templates/simple/preferences.html:212 +msgid "Privacy" +msgstr "Príobháideacht" + +#: searx/templates/simple/preferences.html:225 +msgid "Engines" +msgstr "Innill" + +#: searx/templates/simple/preferences.html:227 +msgid "Currently used search engines" +msgstr "Innill chuardaigh á n-úsáidtear" + +#: searx/templates/simple/preferences.html:235 +msgid "Special Queries" +msgstr "Ceisteanna Speisialta" + +#: searx/templates/simple/preferences.html:241 +msgid "Cookies" +msgstr "Fianáin" + +#: searx/templates/simple/results.html:23 +msgid "Answers" +msgstr "Freagraí" + +#: searx/templates/simple/results.html:42 +msgid "Number of results" +msgstr "Líon na dtorthaí" + +#: searx/templates/simple/results.html:48 +msgid "Info" +msgstr "Eolas" + +#: searx/templates/simple/results.html:75 +msgid "Try searching for:" +msgstr "Bain triail as cuardach a dhéanamh:" + +#: searx/templates/simple/results.html:107 +msgid "Back to top" +msgstr "Ar ais go dtí an barr" + +#: searx/templates/simple/results.html:125 +msgid "Previous page" +msgstr "Leathanach roimhe seo" + +#: searx/templates/simple/results.html:143 +msgid "Next page" +msgstr "An chéad leathanach eile" + +#: searx/templates/simple/search.html:3 +msgid "Display the front page" +msgstr "Taispeáin an leathanach tosaigh" + +#: searx/templates/simple/search.html:9 searx/templates/simple/simple_search.html:5 +msgid "Search for..." +msgstr "Cuardaigh do..." + +#: searx/templates/simple/search.html:10 searx/templates/simple/simple_search.html:6 +msgid "clear" +msgstr "soiléir" + +#: searx/templates/simple/search.html:11 searx/templates/simple/simple_search.html:7 +msgid "search" +msgstr "cuardaigh" + +#: searx/templates/simple/stats.html:21 +msgid "There is currently no data available. " +msgstr "Níl aon sonraí ar fáil faoi láthair. " + +#: searx/templates/simple/preferences/engines.html:24 +#: searx/templates/simple/stats.html:25 +msgid "Engine name" +msgstr "Ainm an innill" + +#: searx/templates/simple/stats.html:26 +msgid "Scores" +msgstr "Scóir" + +#: searx/templates/simple/stats.html:27 +msgid "Result count" +msgstr "Comhaireamh torthaí" + +#: searx/templates/simple/elements/engines_msg.html:7 +#: searx/templates/simple/preferences/engines.html:31 +#: searx/templates/simple/stats.html:28 +msgid "Response time" +msgstr "Am freagartha" + +#: searx/templates/simple/preferences/engines.html:35 +#: searx/templates/simple/stats.html:29 +msgid "Reliability" +msgstr "Iontaofacht" + +#: searx/templates/simple/stats.html:59 +msgid "Total" +msgstr "Iomlán" + +#: searx/templates/simple/stats.html:60 +msgid "HTTP" +msgstr "HTTP" + +#: searx/templates/simple/stats.html:61 +msgid "Processing" +msgstr "Próiseáil" + +#: searx/templates/simple/stats.html:99 +msgid "Warnings" +msgstr "Rabhadh" + +#: searx/templates/simple/stats.html:99 +msgid "Errors and exceptions" +msgstr "Earráidí agus eisceachtaí" + +#: searx/templates/simple/stats.html:105 +msgid "Exception" +msgstr "Eisceacht" + +#: searx/templates/simple/stats.html:107 +msgid "Message" +msgstr "Teachtaireacht" + +#: searx/templates/simple/stats.html:109 +msgid "Percentage" +msgstr "Céatadán" + +#: searx/templates/simple/stats.html:111 +msgid "Parameter" +msgstr "Paraiméadar" + +#: searx/templates/simple/result_templates/files.html:36 +#: searx/templates/simple/stats.html:119 +msgid "Filename" +msgstr "Ainm comhaid" + +#: searx/templates/simple/stats.html:120 +msgid "Function" +msgstr "Feidhm" + +#: searx/templates/simple/stats.html:121 +msgid "Code" +msgstr "Cód" + +#: searx/templates/simple/stats.html:128 +msgid "Checker" +msgstr "Seiceálaí" + +#: searx/templates/simple/stats.html:131 +msgid "Failed test" +msgstr "Thástáil theip" + +#: searx/templates/simple/stats.html:132 +msgid "Comment(s)" +msgstr "Trácht(anna)" + +#: searx/templates/simple/elements/apis.html:3 +msgid "Download results" +msgstr "Íoslódáil torthaí" + +#: searx/templates/simple/elements/engines_msg.html:4 +msgid "Messages from the search engines" +msgstr "Teachtaireachtaí ó na hinnill chuardaigh" + +#: searx/templates/simple/elements/engines_msg.html:7 +msgid "seconds" +msgstr "soicind" + +#: searx/templates/simple/elements/search_url.html:3 +msgid "Search URL" +msgstr "Cuardaigh URL" + +#: searx/templates/simple/elements/search_url.html:4 +#: searx/templates/simple/preferences/cookies.html:54 +msgid "Copied" +msgstr "Cóipeáladh" + +#: searx/templates/simple/elements/search_url.html:4 +#: searx/templates/simple/preferences/cookies.html:54 +msgid "Copy" +msgstr "Cóipeáil" + +#: searx/templates/simple/elements/suggestions.html:3 +msgid "Suggestions" +msgstr "Moltaí" + +#: searx/templates/simple/filters/languages.html:1 +#: searx/templates/simple/preferences/language.html:2 +msgid "Search language" +msgstr "Teanga cuardaigh" + +#: searx/templates/simple/filters/languages.html:4 +#: searx/templates/simple/preferences/language.html:7 +msgid "Default language" +msgstr "Teanga réamhshocraithe" + +#: searx/templates/simple/filters/languages.html:8 +#: searx/templates/simple/preferences/language.html:11 +msgid "Auto-detect" +msgstr "Uathoibríoch" + +#: searx/templates/simple/filters/safesearch.html:1 +#: searx/templates/simple/filters/safesearch.html:2 +#: searx/templates/simple/filters/safesearch.html:3 +#: searx/templates/simple/filters/safesearch.html:4 +#: searx/templates/simple/preferences/engines.html:27 +#: searx/templates/simple/preferences/safesearch.html:2 +msgid "SafeSearch" +msgstr "Cuardach Sábháilte" + +#: searx/templates/simple/filters/safesearch.html:2 +#: searx/templates/simple/preferences/safesearch.html:7 +msgid "Strict" +msgstr "Docht" + +#: searx/templates/simple/filters/safesearch.html:3 +#: searx/templates/simple/preferences/safesearch.html:11 +msgid "Moderate" +msgstr "Measartha" + +#: searx/templates/simple/filters/safesearch.html:4 +#: searx/templates/simple/preferences/safesearch.html:15 +msgid "None" +msgstr "Níl aon" + +#: searx/templates/simple/filters/time_range.html:1 +#: searx/templates/simple/preferences/engines.html:28 +msgid "Time range" +msgstr "Raon ama" + +#: searx/templates/simple/filters/time_range.html:3 +msgid "Anytime" +msgstr "Am ar bith" + +#: searx/templates/simple/filters/time_range.html:6 +msgid "Last day" +msgstr "An lá deireanach" + +#: searx/templates/simple/filters/time_range.html:9 +msgid "Last week" +msgstr "An tseachtain seo caite" + +#: searx/templates/simple/filters/time_range.html:12 +msgid "Last month" +msgstr "An mhí seo caite" + +#: searx/templates/simple/filters/time_range.html:15 +msgid "Last year" +msgstr "An bhliain seo caite" + +#: searx/templates/simple/messages/no_cookies.html:3 +msgid "Information!" +msgstr "Eolas!" + +#: searx/templates/simple/messages/no_cookies.html:4 +msgid "currently, there are no cookies defined." +msgstr "faoi láthair, níl aon fhianáin sainmhínithe ann." + +#: searx/templates/simple/messages/no_results.html:6 +msgid "Sorry!" +msgstr "Tá brón orm!" + +#: searx/templates/simple/messages/no_results.html:12 +msgid "No results were found. You can try to:" +msgstr "Níor aimsíodh aon torthaí. Is féidir leat iarracht a dhéanamh:" + +#: searx/templates/simple/messages/no_results.html:14 +msgid "There are no more results. You can try to:" +msgstr "Níl aon torthaí níos mó ann. Is féidir leat iarracht a dhéanamh:" + +#: searx/templates/simple/messages/no_results.html:19 +msgid "Refresh the page." +msgstr "Athnuachan an leathanach." + +#: searx/templates/simple/messages/no_results.html:20 +msgid "Search for another query or select another category (above)." +msgstr "Cuardaigh ceist eile nó roghnaigh catagóir eile (thuas)." + +#: searx/templates/simple/messages/no_results.html:21 +msgid "Change the search engine used in the preferences:" +msgstr "Athraigh an t-inneall cuardaigh a úsáidtear sna roghanna:" + +#: searx/templates/simple/messages/no_results.html:22 +msgid "Switch to another instance:" +msgstr "Athraigh go cás eile:" + +#: searx/templates/simple/messages/no_results.html:24 +msgid "Search for another query or select another category." +msgstr "Cuardaigh ceist eile nó roghnaigh catagóir eile." + +#: searx/templates/simple/messages/no_results.html:25 +msgid "Go back to the previous page using the previous page button." +msgstr "" +"Téigh ar ais go dtí an leathanach roimhe seo ag baint úsáide as an gcnaipe " +"leathanach roimhe seo." + +#: searx/templates/simple/preferences/answerers.html:4 +#: searx/templates/simple/preferences/engines.html:23 +msgid "Allow" +msgstr "Ceadaigh" + +#: searx/templates/simple/preferences/answerers.html:5 +msgid "Keywords" +msgstr "Eochairfhocal" + +#: searx/templates/simple/preferences/answerers.html:6 +#: searx/templates/simple/result_templates/packages.html:7 +msgid "Name" +msgstr "Ainm" + +#: searx/templates/simple/preferences/answerers.html:7 +msgid "Description" +msgstr "Cur síos" + +#: searx/templates/simple/preferences/answerers.html:8 +msgid "Examples" +msgstr "Samplaí" + +#: searx/templates/simple/preferences/answerers.html:13 +msgid "This is the list of SearXNG's instant answering modules." +msgstr "Seo an liosta de mhodúil freagartha láithreach SearxNG." + +#: searx/templates/simple/preferences/answerers.html:29 +msgid "This is the list of plugins." +msgstr "Seo liosta na mbreiseáin." + +#: searx/templates/simple/preferences/autocomplete.html:2 +msgid "Autocomplete" +msgstr "Uathchomhlánú" + +#: searx/templates/simple/preferences/autocomplete.html:15 +msgid "Find stuff as you type" +msgstr "Faigh rudaí agus tú ag clóscríobh" + +#: searx/templates/simple/preferences/center_alignment.html:2 +msgid "Center Alignment" +msgstr "Ailíniú Ionaid" + +#: searx/templates/simple/preferences/center_alignment.html:14 +msgid "Displays results in the center of the page (Oscar layout)." +msgstr "Taispeánann torthaí i lár an leathanaigh (leagan amach Oscar)." + +#: searx/templates/simple/preferences/cookies.html:2 +msgid "" +"This is the list of cookies and their values SearXNG is storing on your computer." +msgstr "" +"Seo an liosta fianáin agus a luachanna atá ag stóráil SearxNG ar do ríomhaire." + +#: searx/templates/simple/preferences/cookies.html:3 +msgid "With that list, you can assess SearXNG transparency." +msgstr "Leis an liosta sin, is féidir leat trédhearcacht SearxNG a mheas." + +#: searx/templates/simple/preferences/cookies.html:9 +msgid "Cookie name" +msgstr "Ainm fianán" + +#: searx/templates/simple/preferences/cookies.html:10 +msgid "Value" +msgstr "Luach" + +#: searx/templates/simple/preferences/cookies.html:23 +msgid "Search URL of the currently saved preferences" +msgstr "Cuardaigh URL na roghanna atá sábháilte faoi láthair" + +#: searx/templates/simple/preferences/cookies.html:32 +msgid "" +"Note: specifying custom settings in the search URL can reduce privacy by leaking " +"data to the clicked result sites." +msgstr "" +"Tabhair faoi deara: má shonraítear socruithe saincheaptha sa URL cuardaigh is " +"féidir an phríobháideachas a laghdú trí shonraí a sceitheadh ​​chuig na suíomhanna " +"toraidh a chliceáiltear." + +#: searx/templates/simple/preferences/cookies.html:35 +msgid "URL to restore your preferences in another browser" +msgstr "URL chun do roghanna a athbhunú i mbrabhsálaí eile" + +#: searx/templates/simple/preferences/cookies.html:43 +msgid "" +"Specifying custom settings in the preferences URL can be used to sync preferences " +"across devices." +msgstr "" +"Is féidir socruithe saincheaptha a shonrú sna roghanna URL a úsáid chun roghanna a " +"shioncronú ar fud feistí." + +#: searx/templates/simple/preferences/cookies.html:46 +msgid "Copy preferences hash" +msgstr "Cóipeáil roghanna hash" + +#: searx/templates/simple/preferences/cookies.html:57 +msgid "Insert copied preferences hash (without URL) to restore" +msgstr "Cuir isteach hash roghanna cóipeáilte (gan URL) chun athbhunú" + +#: searx/templates/simple/preferences/cookies.html:59 +msgid "Preferences hash" +msgstr "Roghanna hais" + +#: searx/templates/simple/preferences/doi_resolver.html:2 +msgid "Open Access DOI resolver" +msgstr "Réiteach DOI Rochtana Oscailte" + +#: searx/templates/simple/preferences/doi_resolver.html:14 +msgid "Select service used by DOI rewrite" +msgstr "Roghnaigh seirbhís a úsáideann DOI athscríobh" + +#: searx/templates/simple/preferences/engines.html:9 +msgid "" +"This tab does not exists in the user interface, but you can search in these " +"engines by its !bangs." +msgstr "" +"Níl an cluaisín seo ann sa chomhéadan úsáideora, ach is féidir leat cuardach a " +"dhéanamh sna hinnill seo de réir a! bangs." + +#: searx/templates/simple/preferences/engines.html:15 +msgid "Enable all" +msgstr "Cumasaigh gach duine" + +#: searx/templates/simple/preferences/engines.html:16 +msgid "Disable all" +msgstr "Díchumasaigh gach" + +#: searx/templates/simple/preferences/engines.html:25 +msgid "!bang" +msgstr "!bang" + +#: searx/templates/simple/preferences/engines.html:26 +msgid "Supports selected language" +msgstr "Tacaíonn le teanga roghnai" + +#: searx/templates/simple/preferences/engines.html:29 +msgid "Weight" +msgstr "Meáchan" + +#: searx/templates/simple/preferences/engines.html:33 +msgid "Max time" +msgstr "Uasmhéid ama" + +#: searx/templates/simple/preferences/favicon.html:2 +msgid "Favicon Resolver" +msgstr "Réiteach Favicon" + +#: searx/templates/simple/preferences/favicon.html:15 +msgid "Display favicons near search results" +msgstr "Taispeáin favicons in aice le torthaí cuardaigh" + +#: searx/templates/simple/preferences/footer.html:2 +msgid "" +"These settings are stored in your cookies, this allows us not to store this data " +"about you." +msgstr "" +"Stóráiltear na socruithe seo i do chuid fianáin, tugann sé seo deis dúinn gan na " +"sonraí seo a stóráil fút." + +#: searx/templates/simple/preferences/footer.html:3 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to track you." +msgstr "" +"Freastalaíonn na fianáin seo ar d'aon áisiúlacht, ní úsáidimid na fianáin seo chun " +"tú a rianú." + +#: searx/templates/simple/preferences/footer.html:6 +msgid "Save" +msgstr "Sábháil" + +#: searx/templates/simple/preferences/footer.html:9 +msgid "Reset defaults" +msgstr "Athshocraigh réamhshocruithe" + +#: searx/templates/simple/preferences/footer.html:13 +msgid "Back" +msgstr "Ar ais" + +#: searx/templates/simple/preferences/hotkeys.html:2 +msgid "Hotkeys" +msgstr "Eochracha te" + +#: searx/templates/simple/preferences/hotkeys.html:13 +msgid "Vim-like" +msgstr "VIM-cosúil" + +#: searx/templates/simple/preferences/hotkeys.html:18 +msgid "" +"Navigate search results with hotkeys (JavaScript required). Press \"h\" key on " +"main or result page to get help." +msgstr "" +"Nascleanúint a dhéanamh ar thorthaí cuardaigh le hotkeys (JavaScript ag teastáil). " +"Brúigh eochair “h” ar an bpríomh-leathanach nó ar leathanach torthaí chun cabhair " +"a fháil." + +#: searx/templates/simple/preferences/image_proxy.html:2 +msgid "Image proxy" +msgstr "Proxy íomhá" + +#: searx/templates/simple/preferences/image_proxy.html:14 +msgid "Proxying image results through SearXNG" +msgstr "Torthaí íomhá seirbhíseach trí SearxNG" + +#: searx/templates/simple/preferences/infinite_scroll.html:2 +msgid "Infinite scroll" +msgstr "Scroll gan teorainn" + +#: searx/templates/simple/preferences/infinite_scroll.html:14 +msgid "Automatically load next page when scrolling to bottom of current page" +msgstr "" +"Déan an chéad leathanach eile a luchtú go huathoibríoch agus tú ag scrollú go bun" + +#: searx/templates/simple/preferences/language.html:24 +msgid "What language do you prefer for search?" +msgstr "Cén teanga is fearr leat le haghaidh cuardaigh?" + +#: searx/templates/simple/preferences/language.html:25 +msgid "Choose Auto-detect to let SearXNG detect the language of your query." +msgstr "Roghnaigh Auto-bhrath chun ligean do SearXNG teanga d'fhiosrúcháin a bhrath." + +#: searx/templates/simple/preferences/method.html:2 +msgid "HTTP Method" +msgstr "Modh HTTP" + +#: searx/templates/simple/preferences/method.html:14 +msgid "Change how forms are submitted" +msgstr "Athraigh conas a chuirtear foirmeacha" + +#: searx/templates/simple/preferences/query_in_title.html:2 +msgid "Query in the page's title" +msgstr "Fiosrú i dteideal an leathanaigh" + +#: searx/templates/simple/preferences/query_in_title.html:14 +msgid "" +"When enabled, the result page's title contains your query. Your browser can record " +"this title" +msgstr "" +"Nuair a bheidh sé cumasaithe, beidh do cheist i dteideal leathanach an toraidh. Is " +"féidir le do bhrabhsálaí an teideal seo a thaifeadadh" + +#: searx/templates/simple/preferences/results_on_new_tab.html:2 +msgid "Results on new tabs" +msgstr "Torthaí ar chluaisíní nua" + +#: searx/templates/simple/preferences/results_on_new_tab.html:14 +msgid "Open result links on new browser tabs" +msgstr "Oscail naisc torthaí ar chluaisíní brabhsála" + +#: searx/templates/simple/preferences/safesearch.html:20 +msgid "Filter content" +msgstr "Ábhar scagaire" + +#: searx/templates/simple/preferences/search_on_category_select.html:2 +msgid "Search on category select" +msgstr "Cuardaigh ar roghnaigh catagóir" + +#: searx/templates/simple/preferences/search_on_category_select.html:14 +msgid "" +"Perform search immediately if a category selected. Disable to select multiple " +"categories" +msgstr "" +"Déan cuardach láithreach má roghnaíodh catagóir. Díchumasaigh chun catagóirí " +"iolracha" + +#: searx/templates/simple/preferences/theme.html:2 +msgid "Theme" +msgstr "Téama" + +#: searx/templates/simple/preferences/theme.html:14 +msgid "Change SearXNG layout" +msgstr "Athraigh leagan amach SearxNG" + +#: searx/templates/simple/preferences/theme.html:19 +msgid "Theme style" +msgstr "Stíl téama" + +#: searx/templates/simple/preferences/theme.html:31 +msgid "Choose auto to follow your browser settings" +msgstr "Roghnaigh uathoibríoch chun socruithe do bhra" + +#: searx/templates/simple/preferences/tokens.html:2 +msgid "Engine tokens" +msgstr "Comharthaí innill" + +#: searx/templates/simple/preferences/tokens.html:9 +msgid "Access tokens for private engines" +msgstr "Comharthaí rochtana d’innill phríobháideacha" + +#: searx/templates/simple/preferences/ui_locale.html:2 +msgid "Interface language" +msgstr "Teanga comhéadain" + +#: searx/templates/simple/preferences/ui_locale.html:14 +msgid "Change the language of the layout" +msgstr "Athraigh teanga an leagan amach" + +#: searx/templates/simple/preferences/urlformatting.html:2 +msgid "URL formatting" +msgstr "Formáidiú URL" + +#: searx/templates/simple/preferences/urlformatting.html:8 +msgid "Pretty" +msgstr "Deas" + +#: searx/templates/simple/preferences/urlformatting.html:13 +msgid "Full" +msgstr "Iomlán" + +#: searx/templates/simple/preferences/urlformatting.html:18 +msgid "Host" +msgstr "Óstach" + +#: searx/templates/simple/preferences/urlformatting.html:23 +msgid "Change result URL formatting" +msgstr "Athraigh formáidiú URL torthaí" + +#: searx/templates/simple/result_templates/code.html:13 +msgid "repo" +msgstr "stóras" + +#: searx/templates/simple/result_templates/default.html:6 +#: searx/templates/simple/result_templates/files.html:8 +#: searx/templates/simple/result_templates/files.html:11 +msgid "show media" +msgstr "meáin taispeána" + +#: searx/templates/simple/result_templates/default.html:6 +#: searx/templates/simple/result_templates/files.html:8 +msgid "hide media" +msgstr "na meáin a cheilt" + +#: searx/templates/simple/result_templates/default.html:14 +#: searx/templates/simple/result_templates/videos.html:14 +msgid "This site did not provide any description." +msgstr "Níor thug an suíomh seo aon tuairisc ar fáil." + +#: searx/templates/simple/result_templates/files.html:38 +#: searx/templates/simple/result_templates/images.html:22 +#: searx/templates/simple/result_templates/torrent.html:11 +msgid "Filesize" +msgstr "Méid na Comhad" + +#: searx/templates/simple/result_templates/files.html:40 +msgid "Date" +msgstr "Dáta" + +#: searx/templates/simple/result_templates/files.html:42 +#: searx/templates/simple/result_templates/paper.html:24 +msgid "Type" +msgstr "Cineál" + +#: searx/templates/simple/result_templates/images.html:20 +msgid "Resolution" +msgstr "Réiteach" + +#: searx/templates/simple/result_templates/images.html:21 +msgid "Format" +msgstr "Formáid" + +#: searx/templates/simple/result_templates/images.html:24 +msgid "Engine" +msgstr "Inneall" + +#: searx/templates/simple/result_templates/images.html:25 +msgid "View source" +msgstr "Féach foinse" + +#: searx/templates/simple/result_templates/map.html:12 +msgid "address" +msgstr "seoladh" + +#: searx/templates/simple/result_templates/map.html:43 +msgid "show map" +msgstr "taispeáin léarscáil" + +#: searx/templates/simple/result_templates/map.html:43 +msgid "hide map" +msgstr "folaigh léarscáil" + +#: searx/templates/simple/result_templates/packages.html:12 +msgid "Version" +msgstr "Leagan" + +#: searx/templates/simple/result_templates/packages.html:18 +msgid "Maintainer" +msgstr "Cothabhálaí" + +#: searx/templates/simple/result_templates/packages.html:24 +msgid "Updated at" +msgstr "Nuashonraithe ag" + +#: searx/templates/simple/result_templates/packages.html:30 +#: searx/templates/simple/result_templates/paper.html:25 +msgid "Tags" +msgstr "Clibeanna" + +#: searx/templates/simple/result_templates/packages.html:36 +msgid "Popularity" +msgstr "Coitianta" + +#: searx/templates/simple/result_templates/packages.html:42 +msgid "License" +msgstr "Ceadúnas" + +#: searx/templates/simple/result_templates/packages.html:52 +msgid "Project" +msgstr "Tionscadal" + +#: searx/templates/simple/result_templates/packages.html:55 +msgid "Project homepage" +msgstr "Leathanach baile tionscad" + +#: searx/templates/simple/result_templates/paper.html:5 +msgid "Published date" +msgstr "Dáta foilsithe" + +#: searx/templates/simple/result_templates/paper.html:9 +msgid "Journal" +msgstr "Dialann" + +#: searx/templates/simple/result_templates/paper.html:22 +msgid "Editor" +msgstr "Eagarthóir" + +#: searx/templates/simple/result_templates/paper.html:23 +msgid "Publisher" +msgstr "Foilsitheoir" + +#: searx/templates/simple/result_templates/paper.html:26 +msgid "DOI" +msgstr "DOI" + +#: searx/templates/simple/result_templates/paper.html:27 +msgid "ISSN" +msgstr "ISSN" + +#: searx/templates/simple/result_templates/paper.html:28 +msgid "ISBN" +msgstr "ISBN" + +#: searx/templates/simple/result_templates/paper.html:33 +msgid "PDF" +msgstr "PDF" + +#: searx/templates/simple/result_templates/paper.html:34 +msgid "HTML" +msgstr "HTML" + +#: searx/templates/simple/result_templates/torrent.html:6 +msgid "magnet link" +msgstr "nasc maighnéad" + +#: searx/templates/simple/result_templates/torrent.html:7 +msgid "torrent file" +msgstr "comhad torrent" + +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Seeder" +msgstr "Síoltóir" + +#: searx/templates/simple/result_templates/torrent.html:9 +msgid "Leecher" +msgstr "Leecher" + +#: searx/templates/simple/result_templates/torrent.html:13 +msgid "Number of Files" +msgstr "Líon na gComhaid" + +#: searx/templates/simple/result_templates/videos.html:6 +msgid "show video" +msgstr "taispeáin físeán" + +#: searx/templates/simple/result_templates/videos.html:6 +msgid "hide video" +msgstr "físeán a cheilt" From 655e41f2748d5602e3cedb297d64b17aa7cb165c Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 14:40:18 +0100 Subject: [PATCH 013/417] [l10n ga] trigger weblate.push.translations Related: - https://github.com/searxng/searxng/issues/4117 Signed-off-by: Markus Heiser --- searx/searxng.msg | 1 + 1 file changed, 1 insertion(+) diff --git a/searx/searxng.msg b/searx/searxng.msg index a4bfb038a..389dfe45a 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,6 +36,7 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', + 'DUMMY': 'dummy', } CATEGORY_GROUPS = { From c5991865c8932a80de35b6ed2515c0fb04d39511 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 15:32:06 +0100 Subject: [PATCH 014/417] [fix] l10n ga (Irish) messages.po is marked as fuzzy $ ./manage pyenv.cmd pybabel compile --statistics -d searx/translations/ reports: catalog searx/translations/ga/LC_MESSAGES/messages.po is marked as fuzzy, skipping This commit removes the ``fuzzy`` tag and BTW reverts commit 655e41f27 Signed-off-by: Markus Heiser --- searx/searxng.msg | 1 - searx/translations/ga/LC_MESSAGES/messages.mo | Bin 23456 -> 21772 bytes searx/translations/ga/LC_MESSAGES/messages.po | 3 +-- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/searx/searxng.msg b/searx/searxng.msg index 389dfe45a..a4bfb038a 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,7 +36,6 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', - 'DUMMY': 'dummy', } CATEGORY_GROUPS = { diff --git a/searx/translations/ga/LC_MESSAGES/messages.mo b/searx/translations/ga/LC_MESSAGES/messages.mo index f47b3a63c868a314f1daddd3343e5b6cb6bb88d0..f5e197809015c897f01f5a2484d469f5affe6301 100644 GIT binary patch delta 5573 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 delta 7267 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, 2024. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: \n" @@ -12,7 +11,7 @@ msgstr "" "PO-Revision-Date: 2024-12-21 18:53+0000\n" "Last-Translator: Aindriú Mac Giolla Eoin \n" "Language-Team: \n" -"Language: ga_IE\n" +"Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" From 91d3d38690eb8a58742aa22db07108e04ea6cca9 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 16:16:04 +0100 Subject: [PATCH 015/417] [l10n ga] trigger weblate.push.translations Signed-off-by: Markus Heiser --- searx/searxng.msg | 1 + searx/translations/ga/LC_MESSAGES/messages.po | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/searx/searxng.msg b/searx/searxng.msg index a4bfb038a..36f9510ad 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,6 +36,7 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', + 'DUMMY': 'dummy', # https://github.com/searxng/searxng/issues/4117 } CATEGORY_GROUPS = { diff --git a/searx/translations/ga/LC_MESSAGES/messages.po b/searx/translations/ga/LC_MESSAGES/messages.po index d3dffe265..4e76ce1f7 100644 --- a/searx/translations/ga/LC_MESSAGES/messages.po +++ b/searx/translations/ga/LC_MESSAGES/messages.po @@ -1,22 +1,23 @@ -# Translations template for PROJECT. +# Irish translations for PROJECT. # Copyright (C) 2024 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # FIRST AUTHOR , 2024. # msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 18:53+0000\n" -"Last-Translator: Aindriú Mac Giolla Eoin \n" -"Language-Team: \n" +"PO-Revision-Date: 2025-01-06 16:02+0100\n" +"Last-Translator: FULL NAME \n" "Language: ga\n" +"Language-Team: ga \n" +"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 " +": n>=7 && n<=10 ? 3 : 4);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.16.0\n" -"X-Generator: Poedit 3.4.4\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] #: searx/searxng.msg From b0391fe718840e0e257540c4cb2d2ce678dcf7e3 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 16:24:44 +0100 Subject: [PATCH 016/417] reomve DUMMY from searxng.msg catalog Signed-off-by: Markus Heiser --- searx/searxng.msg | 1 - 1 file changed, 1 deletion(-) diff --git a/searx/searxng.msg b/searx/searxng.msg index 36f9510ad..a4bfb038a 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,7 +36,6 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', - 'DUMMY': 'dummy', # https://github.com/searxng/searxng/issues/4117 } CATEGORY_GROUPS = { From e352926187774ea6c390e89e27623136e1495b49 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 16:59:20 +0100 Subject: [PATCH 017/417] [l10n ga] trigger weblate.push.translations (another try) Related: - https://github.com/searxng/searxng/issues/4117 Signed-off-by: Markus Heiser --- searx/searxng.msg | 1 + 1 file changed, 1 insertion(+) diff --git a/searx/searxng.msg b/searx/searxng.msg index a4bfb038a..36f9510ad 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,6 +36,7 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', + 'DUMMY': 'dummy', # https://github.com/searxng/searxng/issues/4117 } CATEGORY_GROUPS = { From 6dab7fe78be3c8872b8a6d99cf00c597813171ba Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 6 Jan 2025 17:12:16 +0100 Subject: [PATCH 018/417] Revert "[l10n ga] trigger weblate.push.translations (another try)" This reverts commit e352926187774ea6c390e89e27623136e1495b49. --- searx/searxng.msg | 1 - 1 file changed, 1 deletion(-) diff --git a/searx/searxng.msg b/searx/searxng.msg index 36f9510ad..a4bfb038a 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -36,7 +36,6 @@ CATEGORY_NAMES = { 'MAP': 'map', 'ONIONS': 'onions', 'SCIENCE': 'science', - 'DUMMY': 'dummy', # https://github.com/searxng/searxng/issues/4117 } CATEGORY_GROUPS = { From 94a0b415ef587e013df9e7350667b752a3822e90 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 10 Jan 2025 07:09:47 +0000 Subject: [PATCH 019/417] [l10n] update translations from Weblate 8f8f92dc0 - 2025-01-10 - hirushaadi d4ae2e4ba - 2025-01-08 - Harshith-10 05848d0bb - 2025-01-08 - return42 151cde7fc - 2025-01-08 - return42 43ba79c99 - 2025-01-06 - return42 --- searx/data/locales.json | 2 +- searx/translations/af/LC_MESSAGES/messages.mo | Bin 20235 -> 20243 bytes searx/translations/af/LC_MESSAGES/messages.po | 24 +- searx/translations/ar/LC_MESSAGES/messages.mo | Bin 25008 -> 25014 bytes searx/translations/ar/LC_MESSAGES/messages.po | 26 +- searx/translations/bg/LC_MESSAGES/messages.mo | Bin 26503 -> 26507 bytes searx/translations/bg/LC_MESSAGES/messages.po | 23 +- searx/translations/bn/LC_MESSAGES/messages.mo | Bin 31328 -> 31340 bytes searx/translations/bn/LC_MESSAGES/messages.po | 23 +- searx/translations/bo/LC_MESSAGES/messages.mo | Bin 9998 -> 10018 bytes searx/translations/bo/LC_MESSAGES/messages.po | 15 +- searx/translations/ca/LC_MESSAGES/messages.mo | Bin 21391 -> 21393 bytes searx/translations/ca/LC_MESSAGES/messages.po | 35 +-- searx/translations/cs/LC_MESSAGES/messages.mo | Bin 21307 -> 21339 bytes searx/translations/cs/LC_MESSAGES/messages.po | 18 +- searx/translations/cy/LC_MESSAGES/messages.mo | Bin 19788 -> 19792 bytes searx/translations/cy/LC_MESSAGES/messages.po | 21 +- searx/translations/da/LC_MESSAGES/messages.mo | Bin 20636 -> 20630 bytes searx/translations/da/LC_MESSAGES/messages.po | 19 +- searx/translations/de/LC_MESSAGES/messages.mo | Bin 21347 -> 21343 bytes searx/translations/de/LC_MESSAGES/messages.po | 17 +- searx/translations/dv/LC_MESSAGES/messages.mo | Bin 1462 -> 1467 bytes searx/translations/dv/LC_MESSAGES/messages.po | 19 +- .../el_GR/LC_MESSAGES/messages.mo | Bin 28966 -> 29408 bytes .../el_GR/LC_MESSAGES/messages.po | 41 ++-- searx/translations/en/LC_MESSAGES/messages.mo | Bin 445 -> 445 bytes searx/translations/en/LC_MESSAGES/messages.po | 8 +- searx/translations/eo/LC_MESSAGES/messages.mo | Bin 18084 -> 18092 bytes searx/translations/eo/LC_MESSAGES/messages.po | 19 +- searx/translations/es/LC_MESSAGES/messages.mo | Bin 21623 -> 21621 bytes searx/translations/es/LC_MESSAGES/messages.po | 40 ++-- searx/translations/et/LC_MESSAGES/messages.mo | Bin 20814 -> 20798 bytes searx/translations/et/LC_MESSAGES/messages.po | 20 +- searx/translations/eu/LC_MESSAGES/messages.mo | Bin 21008 -> 21008 bytes searx/translations/eu/LC_MESSAGES/messages.po | 28 ++- .../fa_IR/LC_MESSAGES/messages.mo | Bin 23927 -> 23927 bytes .../fa_IR/LC_MESSAGES/messages.po | 21 +- searx/translations/fi/LC_MESSAGES/messages.mo | Bin 21050 -> 21052 bytes searx/translations/fi/LC_MESSAGES/messages.po | 21 +- .../translations/fil/LC_MESSAGES/messages.mo | Bin 21710 -> 21740 bytes .../translations/fil/LC_MESSAGES/messages.po | 21 +- searx/translations/fr/LC_MESSAGES/messages.mo | Bin 21912 -> 21914 bytes searx/translations/fr/LC_MESSAGES/messages.po | 41 ++-- searx/translations/ga/LC_MESSAGES/messages.mo | Bin 21772 -> 21854 bytes searx/translations/ga/LC_MESSAGES/messages.po | 225 ++++++++++-------- searx/translations/gl/LC_MESSAGES/messages.mo | Bin 20926 -> 20932 bytes searx/translations/gl/LC_MESSAGES/messages.po | 28 ++- searx/translations/he/LC_MESSAGES/messages.mo | Bin 22634 -> 22646 bytes searx/translations/he/LC_MESSAGES/messages.po | 21 +- searx/translations/hr/LC_MESSAGES/messages.mo | Bin 20586 -> 20594 bytes searx/translations/hr/LC_MESSAGES/messages.po | 23 +- searx/translations/hu/LC_MESSAGES/messages.mo | Bin 21739 -> 21735 bytes searx/translations/hu/LC_MESSAGES/messages.po | 31 +-- searx/translations/ia/LC_MESSAGES/messages.mo | Bin 7264 -> 7284 bytes searx/translations/ia/LC_MESSAGES/messages.po | 15 +- searx/translations/id/LC_MESSAGES/messages.mo | Bin 20755 -> 20759 bytes searx/translations/id/LC_MESSAGES/messages.po | 26 +- searx/translations/it/LC_MESSAGES/messages.mo | Bin 21347 -> 21352 bytes searx/translations/it/LC_MESSAGES/messages.po | 40 ++-- searx/translations/ja/LC_MESSAGES/messages.mo | Bin 22637 -> 22637 bytes searx/translations/ja/LC_MESSAGES/messages.po | 18 +- searx/translations/ko/LC_MESSAGES/messages.mo | Bin 20884 -> 20888 bytes searx/translations/ko/LC_MESSAGES/messages.po | 22 +- searx/translations/lt/LC_MESSAGES/messages.mo | Bin 18687 -> 18793 bytes searx/translations/lt/LC_MESSAGES/messages.po | 24 +- searx/translations/lv/LC_MESSAGES/messages.mo | Bin 11613 -> 11613 bytes searx/translations/lv/LC_MESSAGES/messages.po | 16 +- searx/translations/messages.pot | 12 +- searx/translations/ms/LC_MESSAGES/messages.mo | Bin 16258 -> 16254 bytes searx/translations/ms/LC_MESSAGES/messages.po | 22 +- .../nb_NO/LC_MESSAGES/messages.mo | Bin 19931 -> 19929 bytes .../nb_NO/LC_MESSAGES/messages.po | 24 +- searx/translations/nl/LC_MESSAGES/messages.mo | Bin 20973 -> 20985 bytes searx/translations/nl/LC_MESSAGES/messages.po | 34 ++- searx/translations/oc/LC_MESSAGES/messages.mo | Bin 11895 -> 11895 bytes searx/translations/oc/LC_MESSAGES/messages.po | 15 +- searx/translations/pl/LC_MESSAGES/messages.mo | Bin 21535 -> 21527 bytes searx/translations/pl/LC_MESSAGES/messages.po | 30 ++- searx/translations/pt/LC_MESSAGES/messages.mo | Bin 21167 -> 21161 bytes searx/translations/pt/LC_MESSAGES/messages.po | 30 ++- .../pt_BR/LC_MESSAGES/messages.mo | Bin 21377 -> 21375 bytes .../pt_BR/LC_MESSAGES/messages.po | 37 +-- searx/translations/ro/LC_MESSAGES/messages.mo | Bin 21393 -> 21556 bytes searx/translations/ro/LC_MESSAGES/messages.po | 40 ++-- searx/translations/ru/LC_MESSAGES/messages.mo | Bin 27436 -> 27446 bytes searx/translations/ru/LC_MESSAGES/messages.po | 22 +- searx/translations/si/LC_MESSAGES/messages.mo | Bin 7218 -> 8320 bytes searx/translations/si/LC_MESSAGES/messages.po | 60 ++--- searx/translations/sk/LC_MESSAGES/messages.mo | Bin 20661 -> 20657 bytes searx/translations/sk/LC_MESSAGES/messages.po | 17 +- searx/translations/sl/LC_MESSAGES/messages.mo | Bin 19890 -> 19888 bytes searx/translations/sl/LC_MESSAGES/messages.po | 19 +- searx/translations/sr/LC_MESSAGES/messages.mo | Bin 24244 -> 24242 bytes searx/translations/sr/LC_MESSAGES/messages.po | 19 +- searx/translations/sv/LC_MESSAGES/messages.mo | Bin 20739 -> 20735 bytes searx/translations/sv/LC_MESSAGES/messages.po | 25 +- .../translations/szl/LC_MESSAGES/messages.mo | Bin 15233 -> 15233 bytes .../translations/szl/LC_MESSAGES/messages.po | 13 +- searx/translations/ta/LC_MESSAGES/messages.mo | Bin 24115 -> 24109 bytes searx/translations/ta/LC_MESSAGES/messages.po | 26 +- searx/translations/te/LC_MESSAGES/messages.mo | Bin 23370 -> 33156 bytes searx/translations/te/LC_MESSAGES/messages.po | 181 +++++++------- searx/translations/th/LC_MESSAGES/messages.mo | Bin 31583 -> 31589 bytes searx/translations/th/LC_MESSAGES/messages.po | 25 +- searx/translations/tr/LC_MESSAGES/messages.mo | Bin 21115 -> 21115 bytes searx/translations/tr/LC_MESSAGES/messages.po | 36 +-- searx/translations/tt/LC_MESSAGES/messages.mo | Bin 13713 -> 13683 bytes searx/translations/tt/LC_MESSAGES/messages.po | 37 +-- searx/translations/uk/LC_MESSAGES/messages.mo | Bin 27207 -> 27219 bytes searx/translations/uk/LC_MESSAGES/messages.po | 18 +- searx/translations/vi/LC_MESSAGES/messages.mo | Bin 21840 -> 21842 bytes searx/translations/vi/LC_MESSAGES/messages.po | 24 +- .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 20066 -> 20070 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 41 ++-- .../zh_Hant_TW/LC_MESSAGES/messages.mo | Bin 19633 -> 19633 bytes .../zh_Hant_TW/LC_MESSAGES/messages.po | 30 ++- 116 files changed, 1046 insertions(+), 782 deletions(-) diff --git a/searx/data/locales.json b/searx/data/locales.json index 6a18c2eeb..cb3da69cb 100644 --- a/searx/data/locales.json +++ b/searx/data/locales.json @@ -68,4 +68,4 @@ "fa-IR", "he" ] -} +} \ No newline at end of file diff --git a/searx/translations/af/LC_MESSAGES/messages.mo b/searx/translations/af/LC_MESSAGES/messages.mo index b01b99d78b27958ecdce4267bbda69b34ffd535b..ed1e72c3806e91a9a801532d8a08543506e49c28 100644 GIT binary patch delta 2757 zcmYM#eN5F=9LMovqTxlP6ct4ngs4OpE;m4VkO$Fx!ordm6+oZtDK@ArJq`CZ#O z$Fz5jIiBlrM#mUan`+EBV@z3^F;Q57({Te%z#SNm`!N(xTKnzui#VR~D>xCaV;J7R za=eYxu*7f7^SBNbuitN+`xDPG5YE6LK8Qb}4{zcmob|YyP%_5RFG3~y5@um5DuEvK zU>`2QbLhp0bYs|~S%^xo9z$?by5kNw3?wqJ9hKQf7>&KCKwqO48b$3aI>SwLE~-MQ zwx5Ml=@()pmf=zC!H2Lqlg(f=j>TOL4F%kblkp%b!!FcLPN81>0weJ%=HV?|hspEZ z_uKJd`Ug-69Ys~{6Z`xOYQ6KQd4s4p&Ik>a?l(-rJ2(v!7r5iOs8SW77FdRQ@fn->`2Z^5 zCCtTd?epjyH$XCS;Y}ebfgoyQ+feK6M8)es5An@mHSicJ^Iq#|)ZMsgyRtR+<-%u{aGCI0Lm_5o*2V=qQsC8XK_`wbKFA?Yxc(G>p20w@^E~ zi+V40p}SBz?xLTA3N(P4e+{SOE!5G4aC7-0O$=)N)p^ukjZ!;Mj=G%{s7f@VO5K7l z;_Jv?^ArClvAOwf1^lS_g|@#EmEd!zgep<%)T5511@->+e8=6vJ_fY&PMnQhsLOQO zI)WV-o$hP?flV{I(d+BKN%lRKQ}4#%EDy9Y8O(pb|ZTx+~5J8Y)#EDo{VF z5*KkB4q*yb7r8$`yHN`s!6&c_wX@$*fz4vK0q#4!~#X7ivH z+i?em;3G@i1?QqJO&ZR@8eEIpaXpS=0+y4FA6u~)kE1GZ7rSxBQuqIq0SwUp2SfG! zzp~6dlTA3D2W_ac*=@&<;aK{8s6O} z{aaA$??uN$N6i~VRc6SJe{a2sk1~E6H7}m?2*Y`( zembf$ImOgp4;C|^TUlbQv^Jn#XhoHFD=Odt)TQb`z4s0(!H-e%PvS)U9JP_JQ14x~ zUPaBnR!ses$uI+2=!Sjp7i#<-D#6fI?t+o1h2n7nCZZ~mYM*D@@ujHme>EzB^{Dll ztS#0p4h{X{wV@X5upU8W_#uX459){GEGpm?RAR%Zd879EuNY2052G(LEHem`L#RxoW?X}PQFpTl*7>ze^GTy=p z9K-2Y6fmX|x1i$n28{D?;zb5x7`TSv_!Ii@Hcr8~EH|N4^w7^oCHgGpVk0VnGZ=+E zxDqd-7sIoSVUK1ZD#2=;gu!gb9oWObV+ib1Q9FxW=q8$ss!*Ek z`!Sw=E^fgxJcVa)DpoEsW;X7^iTH*?LjjNAqu7eduoJbDZq$okVjSMUB{+iHFm6ceIqrBis#N)?1(u;+T!XW4 z6Dm+WD)8(02p+cmxAEbIP)FR2s?bH`s2%gY+c3kZ%k>MUpbevlZ%(LzCsCPqSmfAB27FuSnC%rq5f)=+JSYb+qn@{iEXG-*WnBJ z3i7Y{ng1xUiq*t9d`$BGN7Fw$GO;vx=dHC z!>H2V#UvcZ*_gP@otJ|;iW21Bno3N-W2nSVqXK@8s?24ag@X=_3L1ald@Nq>X4;54 ztJhG0o2^GNgZ^8nN?b<1EoQ<~?t3|?fQ6WdYf)#t1HD*>O0)xYSDe!{RH`0Spk7oZ z`mhNH@d>P4;eLP)q89AHr?C^Yv)@sHAD~J;q0s$~OhpAs!#S8~`=!W{IA$Y_xjd-C zR&2saIBTW5U^42`WZ>iY96pZ+a3_vpDy}1&05)O?eu%2TJ?zG5tK7dS{TQVG4@T(s zUsL3sNf5($upf0c2krPtoJhY1mB=~NPRCF?eSo1DR_s_t^3eYG)srHvQMvD$h8wNCsR_ve;^ne_8eN4f)b z`}d;OKY~sajaEC*j>`OfRG?Eh8M{y~oJY;Sgqn8^RhdCM{)6>4&SQKGH7|kln2a7& ze*vm8StZn84+q z)*Gn#10~d7nG7+Yg>Kmgf1$?jqY~5~glLFHEtG(fI0sdcH2XYY$Csjh|HY^TwxZVC zZmqNKb!g~|w;#1&o3#U#;YS#QXHXxG3#fqCQHc$q=8f9tzhVsiah!lrYu)!^Q0ph5 zDwmF`l;1}~J6eqTqUB>MZbJQkz&_lHtr&~q6E|mj{Q<9kk;j*lm*t!9, 2023. # return42 , 2023, 2024. # APoniatowski , 2023. -# return42 , 2024. -# louispires , 2024. -# notlmutsaers , 2024. +# return42 , 2024, 2025. +# louispires , 2024, 2025. +# notlmutsaers , 2024, +# 2025. +# Anonymous , 2025. +# jestie , 2025. +# APoniatowski , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: APoniatowski " +"\n" "Language: af\n" "Language-Team: Afrikaans " "\n" @@ -359,15 +363,15 @@ msgstr "Bron" msgid "Error loading the next page" msgstr "Fout met die laai van die volgende bladsy" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ongeldige opstellings, redigeer asb jou voorkeure" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ongeldige opstellings" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "soekfout" diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo index fe582b99ad1a3001476b8c1cd648f69a0f89d182..ae5b49135f2ed829763047b2019ea45630e1479e 100644 GIT binary patch delta 2740 zcmX}ueN5F=9LMp4f-tTRpd=z(xu8HO#Dj1zPbFHS8KR(O2x`}vQIQN`mYeG~)7lbC zSC%ywnru!MWs%vFQj$=SX;w3G&Syq5Wvl$l2E9N0&T{O&&iCB&`=0Ol{(iqZ4|fKA z(iwEPIy{gv!kAkb#)KGSCT1HGhjAE-`51=FkUz7Ek8s?D5xCddhNFp(V*>VI4Bo^w z7&_C5pTrj8t*AVyIVLc?Fek^DXeP?6>u?_NbErgJI0Y|ZE)HP|<`OKzm8b&RP>Das zT0DuxnC&&@UTnY#_#x_GC%pk@gCCht!hZWjgwGiMObj2>u-wKQF^%|rRAJ|F6y8Q9 z{1>%8B+r<7oQ~&kFRG)B`NkCDP8^9p1Q@8|GdLB`V>}Mo`S=23B8jIXhc-o+jP*Dl z_uxBt8P$R3$sU6{Q1L<3^&g`O>_TBeDf)7vy ze~M$V6BF?)-i5bO`CRl{>oZXs=A#N(XkCpI8Zh+?=#JTry5Jks2B%OD*>A}6Y5qWM z6my?*&x_DQ+=Ri{X8j0N@KKD#Zgk;Q)WbP|>SQFRbhE!HVW17yVma2K5`Jy%!aCv} z^k88zPcBxYI`E=(H?AXYL3P44+gYE04-(J8Xl$~!pgX|CmkdGjp+Xa84PT-p3 z+|v})J)MnOUxq565~pAdYW+*7Rv$oh^ayI*anvn6g<5wT14Z=*VL(0<>6yNS=E3aww{yiSKOjJOBa;xDKUacml$s30{a4ODXf0M^x0zQj+YMW3`Z8NHnV>sL)RO@Ger*Q#puBQJwQ8yFX@C@q03#df>I9xf#5QnaG zOt2QB)-A($tVZSAY`@=z>TEMAZ#!zA<2VU>R?>fcag7O`V8AYPt#T4iL?v{iPMnNN zkcT?STy*17Ou`MQ4fmk(zK0Qb)cP$B-$G1a{z`y>P7u7B|9+thl^_w7z>9G>8}-Ap z%Gzjs8Pk~Ghh98|YIX3VPQlTrLQ~O$d8mU_qVktN#b7dnji^d@S>Hun*p52k2~=U1 zP_NZLs6VXpUExA&7P6TzwlCj rLu2~V4gU2Fwf@Gs4F#S`f6XR;dZ~Z?+B#3srs1GgLHqv9aasQX|FmC* delta 2734 zcmXxke@vBC9LMo58qQr&ArQnXa<8C;iQap;Too;_A4-a%DgG$@0n?mAQPEs$Rnf1j?3}O*>#Y*I3Gx!SNdQ8QQ&L&JD-j88y!EC&WwU|`o z$MbL-@hViFytsKC3x~wbvY04$&c(6BPookwV?R8L#drhn!J!0|I2~0$6Dsj%xCjqp z84gaE-H(eg9X~`J>~O;KH~5wbC2VyU0>jMsSUO+%INrreaWL@*sKQQT7rc&2_z!CR z9bAU_!_Cg%MpQ@ZN0^Pob=Vod@ffJ$6PSmmF&A&R`Ro$2G~#^Z(3Ze~Scm1f0k_~e zR0p0Rdp52`#amJLe~c=y8P$Q~n1kL02CDcL>Y0W{nU!J`)sbb`6B|(pwxbIE6no$y z?2jk07hXr@OQzpiKM1v95vq`}&Y4J|p4Bm+JGL5i!aD5|`itJcKHIK)K)IINnWMfjKw_b^mjy1HFuTx3-nje@%SOgr3b$ zs6=geFSes94f6m8VLj?Zji^rSa`OkVKk-$}z`!{FXPk?NiA#|)*c}YunDPE2o$N8t z&!Y~9q2e955BW)3ExW70&DaGGpb|8r?)wfW;3b@dg#>inR-vvRMZF7WumIaI1=A<` z2lGM(^qDe*dpC=)uI-s2fh9HolAlu^sndE-#7-Jca7SMdbaoEBF`|@U;z}#RC|g!i$UN zunbeCn!Sw^FpgL7l79bvs?3HkaTB*=!8BJ0s%4j59GLDu<1FmMd z#NK!uv#=G_;hU%fX3p>roQI|CZ!rex*noO#*P!0oM$`@au%kn$)}2CabRL^AWv0LG zd*lpu78hdVaWkHlZ9)~&hPp553I1nb6g^#7%^(jqqgs3fwed;R#=pAw59i;Q#(bx0 zzn}~Z66c^gG6I#S%v~RkI@nZHz6CfAS60)1o#+S?+VBMG#xtlyt=LgHW)mmP@(ntR zQR^x(7pI}}t#sEtRA(Ded3U1r*^j-kWfuL{g^Nt+1Z{3%@@zkGDk@ck;bf*9%~ zrI>>gaR4qtZMXrI_kB#o-OjJD;}K$*`STtFo!~ZRV)7h6L0?pY2=>L1*b8Sk>zyy* zVCFYr0*|3ueH&G9+FZZTJPa9yqvofe@=u=6KyUL>RHf^k@1jn)6LrFasFR&V{j9E` z66MzTFIyBdh~L@Mn6V?+Jzf}%6-E=G$ncV)$QzR)!2~nW!dP)A8Y_uM?u+mjsHj=K kqHtiDbh3gA7ZdwW&i*H diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po index 52664904a..c3d5d069d 100644 --- a/searx/translations/ar/LC_MESSAGES/messages.po +++ b/searx/translations/ar/LC_MESSAGES/messages.po @@ -14,19 +14,23 @@ # Cavemanly , 2023. # Rick1029 , 2024. # nebras , 2024. -# return42 , 2024. +# return42 , 2024, 2025. # Yahya-Lando , 2024. -# nebras , 2024. -# geekom13 , 2024. -# cherrad , 2024. +# nebras , 2024, 2025. +# geekom13 , 2024, 2025. +# cherrad , 2024, 2025. +# Cavemanly , 2025. +# Anonymous , 2025. +# Rick1029 , 2025. +# Yahya-Lando , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: Yahya-Lando \n" "Language: ar\n" "Language-Team: Arabic " "\n" @@ -368,15 +372,15 @@ msgstr "المصدر" msgid "Error loading the next page" msgstr "حدث خلل أثناء تحميل الصفحة التالية" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "إنّ الإعدادات خاطئة، يرجى تعديل خياراتك" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "إعدادات غير صالحة" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "خطأ في البحث" diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo index 079bf5cc4a9552355da9dc071420ae6bef2aebea..f1ddc99103e36ce20079c2dda9719f5f9a111d60 100644 GIT binary patch delta 2674 zcmYM#eN5F=9LMp4Nhs4RDEM$ixuB?cMJ`vk+7*02G!+#^Gy@9}L8m3+Ws)nswk$U& z%gkX(nND-8=*ej{7n^gd^)R2(h7T*NH8D1w&8^zZdVf4;#Xqm}J?D3xzUQ3Fjx#aM zXJS4~iH}~3G3LGT#>5(9UJ4kKhP!bj9zzda#_4#&#r_;)5{Sd-#bS)dTFl0J%)|p& zhTq^o^aYLi3@4(#za2DDGm64pDu&~T3C6@>A=ctt9E~4g9$vx{?3c?RSc#8f3*H|P zlZfwP3ntR(1#H8G7zo)7J&O+#zY>ZXlT4w7iZHgL2I#_a{2NJ*S;lN-xC7JiD)z^J zP?_jI$;Kma8gU5sVIz(w!vh{-bHs&ALKjnuQ}L}Rg?TZtE8Pv$pg?-z`@ zh)pzHMy0N%(5`eR>QWv>-IWu#9nWDpE}dZ~*o^Cm_oFVgr^s$B4|SwPs0}W6aSaY( zezS!_Dz@M-`~-ET7g3q{*~Pa}m+l_=Fma~s7epOZDXM)1>aIjkseck~6UWUlh6iA3 zF&Fpa19-vNIfwkK;wlwccn!4!&s@9WH0&S_;99(ex>V)GcEWn}67R&Z*oL~y7f>7e z)wRdXV+`VS)cA{0nW&vd{`pNY5h~W;5!6v6%(rJBK&5U8l6A8Rr(&CHzkzxUo&`2T zBXBfv18SmH9F8BLUdd_HFXV5y482jVx>g!Nt!NLb<3ZHrI)-e*bYdfpUp;XJ;Kzo3pF zQf4P=!g%5qoPY;WzXRW+j^q}qzn32u5BgF4!WeDvb1FeLVctiQWqPkL<|(X1U9L{lbG?Ha&&x$g!VG5^RbPTSf^v-N zOzK_3Hq^?RQT45^{$1=(eBAk!Yrl$Ga5rk;%$2rZu5$+JNJ~)*tiU1Ih{?EXCHYsy z5h}Ezlh^}0Q7OEFKJ3C_*t^#1n z^aT~#;T6<^Zn_V9t+E67QQw7dFc!P|RhULx=i*&BintZEuv4hl^&{%+<7%v_&WTY9 z`mh93aUCl4&8P*vf!awsj>8UA>bhNfOs(yogj!$#wd0wnaTdC`5;gu>-9xZ&uKq%LpYysSV@Rv_fd359b)yFJ-M!~fOfh4X^`0DtlGsv-?pWgDy3 hN1mu^sM{F!MH=chSFfqr)Y$0D|G#{+GJDLVe*uB(SV;f? delta 2665 zcmXxldrZ}39LMqJ1el$;ctI4o9W=zt0S*T|A|j%dHxMt8nwWACZ3<$bGn;kRY_Kph zN9HNhX^u6ztACho=2mMp=C$y$qFPh4>1=M*X0}}K56{#2=k@b6L;bxco^gH5>ChKF3!$3W)N`*N8&8>VjbpT6OO}u zScP9>5~c=?IgSOW=Whp1*o>iYmx^@EC@|(hEXCD06SMInoQM~3K0aJ%%p|PFr?3)KHh>c+8n!o^oHmH1E8f(B1D{h1G!QP2x(@JW0QwfAQ+ z4*x)<)>CRz7mLbJ3eLs=rr;JFfx9ssKgJ|HgBti6YAZb~Tm6qiCLT7G6m-a{QJGka z+T&K#ioV2McpZJXxy+boj5zmU0`a@3Lw5uRV;^e3-!Ti5rrU*<;ETlbFq-kr>HdN- z7qEkdOQ_V<&agA>Kpo0YP-o>BzKmyZ6fSzy4zLN=6YoVGYVTuqVfm;nEkiAEsf%kd zneojQ3K`gmX?PU1rx#F}`N_q%QHSmx`Y`Ts`(7?;t140L%h8X`sMNoM>gPDB-)~T- z|00ItJfw<3CKWel+J@L!_Q9c;MZFIf;7rsC_BaoqkN3M#1NF?dXW<5}AdZ^D!Noe{ zi!^&N3eP)x=a|mz@ehS_sOzInllRWGlTE|ViT$`1Z=uf9;&MAy6OJVA!136HI>+Zx zYx%{sM^$h}iPKU2&qpPp4!KQCa|LJM848D}&@RNzv)k@RWo;pna8rZRu*fp_qk(aI%Z%q9(i|OyL%VHVk6R6ZQk>LcMSn zcjC{eEokN@)Ie?M#ZD~1{irM8Thx}^LcO2Fy%LYvsP{uyg7Z+vFWf;v=PI(;rs^QF z8|EaIqIU^bHO|2vyo4IyAbETiPvdSZ<-cGY_M#SaAJxyzWyXAlldA2Pcn1T-1DE%Y z8#a?EsKXgJ0h>@?$Xi&02QUFWPuo-u##G`g%)uF`m2N;~<|WhsuVEUV!r}NM>bbvA z?+@TB@#+p5O<^h(x%eG6_BU{6th8TJIkE`zK9VdGQ^QS-)u_YOi~3UUpcj)kD2bTq z458}FQCqMWwIxleXMD4jf@aq48X{^Seh-J>5$9K~{R(QrH&D-I)!7aM&S|JEtwc?5 z2_|DJ4#OQTK7?V-=p=;)uosoW%jm;vn1(U+cA(Ly_FPoQQ(U|RwPmYN3t5Mn*jCrx zj-!a*aP`Mf8Tz80{A-1msn85>x(B0I*$%Q%4+e1r&T{oNm`S|O#XE2eaRfE7Q>f4D z2h`q2HCR)e1*qrB8_0hKg*8-YPufuvdK0yhZuH{`RO)WH_J2_w3|eg`=tr%1I;x)v z7gwYDUyWSUrVaD(EH>f&ffRI=HXcn*{B2}hVNQN9CqLv16crZ)I^*+FLe%8v1Sk6P vgT;k`2?2iIirUtVIaMvS>suRZH#WBv`&t?{ZfaRy81$9=UpiW!H@4_MR~b`| diff --git a/searx/translations/bg/LC_MESSAGES/messages.po b/searx/translations/bg/LC_MESSAGES/messages.po index b04ce41d3..4ca61c9cc 100644 --- a/searx/translations/bg/LC_MESSAGES/messages.po +++ b/searx/translations/bg/LC_MESSAGES/messages.po @@ -9,18 +9,19 @@ # NxOne14 , 2022. # vynaaa , 2022. # return42 , 2023, 2024. -# Salif Mehmed , 2023, 2024. -# return42 , 2024. -# krlsk , 2024. -# stoychevww , 2024. +# Salif Mehmed , 2023, 2024, 2025. +# return42 , 2024, 2025. +# krlsk , 2024, 2025. +# stoychevww , 2024, 2025. +# Anonymous , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: stoychevww " +"\n" "Language: bg\n" "Language-Team: Bulgarian " "\n" @@ -361,15 +362,15 @@ msgstr "Източник" msgid "Error loading the next page" msgstr "Грешка при зареждането на следващата страница" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Неправилни настройки, моля редактирайте предпочитанията си" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Невалидни настройки" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "Грешка при търсенето" diff --git a/searx/translations/bn/LC_MESSAGES/messages.mo b/searx/translations/bn/LC_MESSAGES/messages.mo index 20c6d354520ffe1750c1c8853d822bf0cac51585..d307add9dc8c140071485d1b264408253ae2ac77 100644 GIT binary patch delta 2757 zcmX}tdrZ}39LMo5-tt0LToj|}QI;CSE&D^WO|6{W)^xo;J*Un;ujhXGKF{+zSMNsLyc@AE zw`b^fgjrRpSywZg6I>ay)~vIF8DPuoNG|8jQqs_&By=7PjMM{4HGm z^)Rz9lt=YHoM9nLAn|2}>v$VAK}@FEGE77bv=hhT74)OWXI6x3uoll@EauTz&cHpm z7&l|z;bt%49@NB7WSjNC?Cg;1kWaz06qH~T?!(o19H(GWj@d?h6Z>J}2)E<0m`Z*s zYT{-bhpkwO-{T}AJTlj8DESQ|X^RK2Gd>U+Mv-Jf#fq@u>< zTU>;LF#l<{gG$r@Yw$tbjH~cnR0IZdBh`KeZpCG&h4miqcAkNXWI1Y_CX8l&Yf%DQ zQ6bwC&Ywa><~vl!n;3_ko^knj)R}ux6IG%jvH`Wj_mR`FHq@QEj~dT6!7ZQ=LwW|& zNcbWMEoui_Cc5YGF{;Bc%)|4z6d#%7>er&`H{(qD??f%+@5%1y2J&?3$d5;=>@Y6G z9z2207??`@m1v?sD_(&_(_Y1aco8+hpZF7YFE%@fcThXsJ`p^l)u#7)?OioiBh`EFc^(TxbUg-GPJH4?jaq)PZH3={>9^Kex<`kDr~! zNbEMxoozJsC*OkcxFhTlMxm$NJ?mkpb}i13Z70DCv^E^hgq34rp8}ShN9+mDt<2csSuKV*`bjnvS*eyJZv3mcX zR=H2*H>gPbg_+oyIP;mdY*hJD+=R`TfYFQHnP#DOScRO5y@+am5p`#-VhjF`itvhR zSHA`OFu%P+LLoVT>To{X;743S{#T4+2lH#(S-!w|v{Jqv&tL*??4;VEj^YzKW#A>$ z2P%>qor{}rD4s)$H)d3sytME5o*8yDpH|v`Bv1#M^K@^ zgemw#IR9{?oA^;w|3p;#tVZImfu>NP9aV-a)?yU-9jK5VKrP?`4#az?oeXGl{Zqph zgq?#K)Yqeqb{A^=&ru7zhOrnETFT8Ok%*dLCMp6i;{ei^#9vs=47V3b`vUs4aw63 z6}7?YiiWyCj%Q+Hu(GPY(H|&YSW{8!$*uV>A5eaDW6&Q6rqtF2{7b5rr!@TAaeq$Q H;PL+en~RE} delta 2724 zcmXxleN5F=9LMo5KBO7O#)D!OB8+6KZ%LMIWTpr!JSwkt;D~_2bP3npvsWEDbBrhb@?l?_&pkfk`-#k8xOz4`VIH;!4cGF3iVnJdf9+ z?O*1a^{S2CjqCy`x$(`7T+DHRxfleff_7S$? zC7i;<^B*%CMt$q!W(3c=Q5(66kK$d_Jn56&{CP+gtqPT@NEZcl=thOS7m1P;Pccit zR@8*+Q2pM;k=TRkcMiwl;3r&U@=@c;QFkMVqwp2X#+_J!eaOKhHk!mL0$$Vtld%jd zQ6bxftMM$RV)<0F0oa7vNE_-T8*vOC!QprrbMQ~p2D6@YDXT)QQ->E=-#RF0!b%b+ ztMEIl!8FW&%AKGZb<0=aP+Wtr;wIDr4{;;ae>!f$Wtf5eX1J4Qq9R#|nx_F1Sl`-I zz%EqCc0}t(QIYuyHSiK9=`>QGgnY8S zxCHNEf2=Df{wg%^CbZ)a5>0y}tN@ zDb$JPJ?r|lqZW7vHU39jhqrMUMxJwbF0z?|LiGWTz>iT2^ZAt z3zgeJ3;8v~HXMnYqaHwBp7o(po4Ck5>oKT)ZO({oq`(WbeOSPPcTgJ||Ge8!Augdl z7r8ff6z`+o&=>e!$Hc{EG+AoU{gYaaN2uS!5ei|Afh$VBU)^myP6O3+)j+i^IvoN%cde;zI`c@eJw*N;kR) zUc*d0j@t0A7}2x%C)zNa8yHJH3w3GoQ5~nD`c+2_V;c20Q2qB|JRU{$JBM5w`x*6p zYS?|RK+PMB)?32FUprb$gY3o(ynsHmW*4el)c0c4gmtJ$g`@4SqZU4Z3jG-zhu=o) z16tg|52D7Wp!#RG5PwZnLW53J9sSUW@zgh?Lb@BZfm1jdZ=z0;(CWsgM=gw6hJL;W zQK{XEn*R`LW9Kmm2S?h>#!^T@Eie-mfo2?qTchotU^ew1Fbm__-TMuoCYp_!XEAEr z2293o%*WHH4fpGC#-k$TO{1WYjKxV, 2023, 2024. # lemonadeforlife , 2023. # MonsoonFire , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # MonsoonRain , 2024. # Utsushime , 2024. # MusfiquerRhman , # 2024. +# Anonymous , 2025. +# Utsushime , 2025. +# lemonadeforlife , +# 2025. +# MonsoonRain , 2025. +# MonsoonFire , 2025. +# MusfiquerRhman , msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: MusfiquerRhman " +"\n" "Language: bn\n" "Language-Team: Bengali " "\n" @@ -362,15 +369,15 @@ msgstr "উৎস" msgid "Error loading the next page" msgstr "পরবর্তী পৃষ্ঠাটি লোড করায় ত্রুটি দেখা যাচ্ছে" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "অকেজো সেটিংস, অনুগ্রহ করে আপনার পছন্দগুলি সম্পাদনা করুন" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "অকেজো সেটিংস" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "সার্চ ত্রুটি" diff --git a/searx/translations/bo/LC_MESSAGES/messages.mo b/searx/translations/bo/LC_MESSAGES/messages.mo index 254210800d02b31d781c3a08eee8ca55f484422f..f01014f32b1cbd60369cc6b62650e8b68f45eb51 100644 GIT binary patch delta 1017 zcmX}pUr19?9Ki8kSd${HHdnJ&Y5xReW1DTTWu>5z3M)f;5Ts0RCXC&2w`nVIkU?+u zV19}VnS~Py#;|n-{0<~`|>&G-19rX-}#;CWGT6DyQ;Xl zNu;kv#3v$6J4Ci(J08IvjH8J^a2~61dZ)-ue1J3P-X+q7Pp}Vv;XXX&7RloPR^ew1 z;R?3m7LODw3F01mA&Z*uDW1hOJb=x0w%w=)TyuPgn(%}3-|rQ<%=`ql;2dto_l`@B z%Z^{XMUgQ!d}E;v&+N84F@>6F4)tbB_!>QX=n{U!M*M@?DIe|A`AO7*FQLXyI=)2h zNEvCOtm80lFV@=u84R#+7f<6`yp9{FtsCEKd&6-Ods)AQm4dKR5Ncu{+4O%mUd8)3 zi0c@~0l$6G;ynhfEWE%~Tyy5H_S*&gM3eOquBCx1Nbyp8(0-yO+V2!#WoSVK6L2*+ANeA~{S3tTY9 z$FgH)I?y?kGZGDvP~`u6gQY9k(Eg~E75FWq?w&5B4iuZ8?Uf(J*iMKG1Yj_;*ZR0HbjJvS0LS!7fumtDP z#6=9@j|#~Y6V&p(dI_z1b|z;Xka$xg8?4_yx67KH8`A2GoMPQTLB{K0@tC z0coPF;6?nEVW1lZt3?c)#G^Qk*YF!^>n`kc9rhf-ZsJKS7KFuuP!s#err*Ojj5qNt zu3#H>?RGDkxxpYr;30m*C2#(8k6XYeOcC#;O5M1K)GU8cpUA&ggy)n&)QhB0*XK|Z zuX)-*H%|d$#I@RX;r)9UP?X$7UO}Frc47ga<9E~oAMA5mRzNMl-0$u?iJI6(eX1;K zM?RpQw~BgR8Sg|wiJ%tjV1WE`hk+jO7$f+`Td;})%-7es1)N4*mqShT0vqusQlr!y zbpHz-SS$!n5znH9%P5_rqp1n$Oga;G+QFH>rPHP1!$yl`v_yjDk!Z+lGWl)l?J@f8 zs|hEON*c%FV|FxXnO4X!BZg@O&DN;dnqMxjt-caZUmkawFWCvlPInB&(*zP@%|rG~ J!{*;r{{h?+g`xle diff --git a/searx/translations/bo/LC_MESSAGES/messages.po b/searx/translations/bo/LC_MESSAGES/messages.po index 0c02d29a9..32687cf68 100644 --- a/searx/translations/bo/LC_MESSAGES/messages.po +++ b/searx/translations/bo/LC_MESSAGES/messages.po @@ -6,13 +6,16 @@ # 1225 , 2020 # 1225 , 2019 # return42 , 2023. +# Anonymous , 2025. +# return42 , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2023-06-02 07:07+0000\n" -"Last-Translator: return42 \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: return42 " +"\n" "Language: bo\n" "Language-Team: Tibetan " "\n" @@ -353,15 +356,15 @@ msgstr "" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།ཁྱེད་ཀྱིས་གདམ་ཀ་ལ་བཅོས་སྒྲིག་གཏོང་རོགས།" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "འཚོལ་བཤེར་ལ་ནོར་འཁྲུལ་བྱུང་།" diff --git a/searx/translations/ca/LC_MESSAGES/messages.mo b/searx/translations/ca/LC_MESSAGES/messages.mo index 6f033ab4062829e41bba5ef27ad062f4116faf0a..678941816aaeacb38888cf9c58decca775e56c25 100644 GIT binary patch delta 2776 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, 2022. # Markus Heiser , 2022. # return42 , 2023. -# Ivan Gabaldon , 2023. +# Ivan Gabaldon , 2023, 2025. # quenty_occitania , 2023. # akwceles , 2023. -# return42 , 2024. -# sserra , 2024. -# dansmachina , 2024. -# xawos , 2024. +# return42 , 2024, 2025. +# sserra , 2024, 2025. +# dansmachina , 2024, +# 2025. +# xawos , 2024, 2025. +# Anonymous , 2025. +# akwceles , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 19:47+0000\n" -"Last-Translator: xawos \n" -"Language-Team: Catalan \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: sserra \n" "Language: ca\n" +"Language-Team: Catalan " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -367,15 +369,15 @@ msgstr "Origen" msgid "Error loading the next page" msgstr "S'ha produït un error en carregar la següent pàgina" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "La configuració no és vàlida, editeu-la" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "La configuració no és vàlida" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "error de cerca" @@ -2023,3 +2025,4 @@ msgstr "oculta el vídeo" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/cs/LC_MESSAGES/messages.mo b/searx/translations/cs/LC_MESSAGES/messages.mo index 2e1b2ca5db4b98c5ba6d41ff9254482c70065e89..eb5a18723cb592e8a16671d00cda59535084ad4c 100644 GIT binary patch delta 2797 zcmX}teN5F=9LMn^528FNdXYz!K*fm{x!?u4pduOuK4)N$rcNe4bSXeosD7m7;*V-V zX|2uS%)3H2G1FO^n-N>BRkj+8Sy(eGv!&M7)c&ydhu>NL;p?2kdH8<6=ltMoXvC$^ zh@Kato#|o5wB{KTX^eR%-zZek*i4!8$R#_9CEI2LPA8*Q=%QJHSXQP_qV z*p4ySjVkeJOu#-Ij{|o6IdsqxQ2~913gA0b;J=}V^UdEhl)XK8DmCBsD^U9_N6lY@3T&hOc@Q0K*i1vEe;zgQP1M9As4F;*+V~Wnz;mbogY(@0 z9Mo0pv38&y=^@nq{njCDqyG!45}V4XzaGbqGWWY|N0ssv^1H?iqB4wK;5ydoL0wTY zD#MvpKW?Hw56duwx`JO(CI8FzqsrX?#+5s6X)_s6q}iy6vrrXSgbHvu>hoKNnis@0 zY{rGyf#a|rRf%h;gKwk0u5czz#B@|YfU5LrhlYOPtV12N5A|9Pqc%Ej$IoLb{foE- zuj34?;brOSUO)x*HtMPlqXOzi-lzE(dFSRX`mpeRH$kV4hVG&Pb8$CngA6J&7q#v!)D`uiDmjQt@d_%?yv4)o9W#f9O1l_Unrc)9f|!mi zs5?G@QP^dD7c=SiU>AOiBeCfLx3sOuuNLz%da)PR;4M@ID=Ybe^!QZ>I!aR4BkTp5VOqfXJ9n_nW%L|=*7AC3T{P>-$6bEa}S*| z8Vi>5!f`kMX@hT2ulsw{#M`Kh11sDEm!UG=fN{7PmC+8=0d1%N_gXtp2^~c36GFX- z4_8osHG1v9m#BpUs12{+Ec^p?VERgTVHRpbuhoyS^yi}1SD^x{vEv(2`#pnU*kb$7 zt)%{%xYtg69V6%;LS+)dF?bAh;5k$vpQ0-D1#07dR3evAU&}SrKL4Tu(;o^27H3UC zeH~LB8rrbf{-6xCU@0nqM^F==L><(Ky7OmIZ)G29{d<^zJ*b2}!FarAy^IO;|HKJs z9(2!fl4xkb6x2rfsJkylWnPUcSuKvmI#i~+Pyz0-wxeGAYpB3FaRwemz5afz!5gRq zDpvE~eH%{R@cfh(=lACMym^HgzQTa7u=9t!w1xkV_yhj@oIL(TFJ0f*Mwe8%8Do delta 2783 zcmXZdeN5F=9LMn^$b-m5L=bsWK*NGAUPKT`<*KNNiXsLHRwB#9oX(3+>DEuCGQ*nm zptCZUk*?O0js{~iY%?pemDbjLSkpAugFTBg)K%{fzr!E*bh~hK_5=W zX&8l@a24)C&Hp{uI3|=v9|Obi4r+s;lZ+|G5g3P+I1(Fh9B#)fJc0`NEKa~*Q0pb; zxq+wQT>4o!6E~us>p}%|EzdD#FpWM26mdT))3AJZyZ}?^PsMnwMK3m@<{w4{{J!mX zVg&tDn22X^8D7VCu#|Er(VKV=hByVr1k=bum1F|OVjgN@nH{e|ZMYms(yT>o(1s6S z4{pKRsP!5PjY-GNsEWLdk$Bkp9%>(_o5m;_XD|+bMs4&T-iw|hW1=x1wa^@EIV#f! zF&vj;DmLIyY(bTHKMuzuI08HE_-W)h$6TPHOs`@B-awVqLs|ou3bk<(YCIjsU?ysV zG8~UfQJ1y}b)<)^ZK#0WLZsn^)`?y{JIWqe^}SRe>9*jr&m*_!o7S zq0`*69)TK;^I z0LzQr03JmhMZGnEx};60^*gLRxSjqds7lQ7Q-58KYQOtlHlRwm5BZHTU8vjqtMyN7 zAL@wyL1h>@-8Bv$r#~9`$~2>n;8Rq|zqb7!Q33ot-Em7BG{cQF3^j2WssiIs0cNA# z3O_2Na!kT1oQVO9!46akp5cvPwK zP!%Z0WUN7*@n#Ie?bh9xPQMjj!*&eCC8cg@YmuK4vkJY~hShi$Rl)n_@@ne+f04#` z2D-5ZucAsit&ATLdJp^W2R0qwdOEsEvDYG@e4e9Y0_&-b5wVj|wP;GKAv- zjADONMI#a)!*~o}7`9*tK9BsrFb7aaa0Z9sB~$>{ZQm?#FI^<+xp-9ODfleTLyezD zUI23m9Y2k|V>_=v#csN4M^YT`N687D4uH}s-1o`D{mi^`}PwZU>!fGe#5R6>%HSX>kT+13dKh^bF z6@G, 2023. # return42 , 2023, 2024. # Fjuro , 2023, 2024. -# Fjuro , 2024. -# return42 , 2024. +# Fjuro , 2024, 2025. +# return42 , 2024, 2025. +# Anonymous , 2025. +# zenobit , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-02 19:38+0000\n" -"Last-Translator: Fjuro \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: zenobit \n" "Language: cs\n" "Language-Team: Czech " "\n" @@ -363,15 +365,15 @@ msgstr "zdroj" msgid "Error loading the next page" msgstr "Chyba při načítání další stránky" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Neplatné nastavení, upravte své předvolby" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Neplatné nastavení" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "chyba vyhledávání" diff --git a/searx/translations/cy/LC_MESSAGES/messages.mo b/searx/translations/cy/LC_MESSAGES/messages.mo index acad48297c8f38c9985d5f2aab65b2220bc5f089..860ec39237a89c50a40f179f2a4dfdaa0a94733d 100644 GIT binary patch delta 2656 zcmYM#e@vBC9LMn^Ttt3YDheuQ7(^0W;PT7F%MSxn0f`ps)Ja@M_=g0^WlU%8F-Cug zwz0X$VT~EtYL0YK>Y~{al`Y#K)@C}2{vcLXGgs!&e!V|DXXPKh&NzUO`cd;s zunfy_4R+%rIEM4_4u)cQw!6WoY{!@c1{N})%yMxB`f&l);N!RlmCzfg%Jk!0Jd2ul z36W(8q{5BMBR}#JKl~uiZ0Yq4Il|PW{`$nyn=~1hRW~{EXT+vjETc7=)opy5Vg== zRO0QZ9Ua4&9irx)L%lbGPvdn|oD|CGVSSTMqmY4Y)Dg5;J5T|;Q3;;FbnHjnjdANO zOrsx?@6OLa&0CAQBNeExWIJkJE$T>u7{mIeorXS>Zj8oLs7rDlRq{_zJGhKG+YwYk z6ZZK}s0DsU1-@s;BlrZg(*>w_aj1miZ9fGa1@_WVW~(p@%j^pWP&;`U-@+rPGtcn5 zB`!vlxZ2u?TpQDYT5!<%sdWgo(P7la#{JY^xA=PoD)DFBfNKie9d@7+=&~M1Rp1@e zB|3{bvJ0rnjiS!}8~gk=YN2UV;vt-KD#oDhOi>~A*MrRrs1gmR@AO4njNSId)2Ib5 zV=|7Rc0P@oH^0bz9*;VjmAD*pupFPo$FLWb@G$CVt~)ezcHg4TZW46_zaiB&$;Dhu ztV5k$xAkpQzzS?6V_z1P52~=ixu^9hE z1t@sZbt9_uoADvsiF$uOF2RGSBke&|<^(3Sv9#$9+E6*zRGyVE%I($7R4RSm{s8%E%(sH1uv!?4f#9(w4XM%|$gtryWz zW}`I1@fxZ>fhyUQ9lwP>`giT~lrndrOw@aR+h2#O*fZ7|)Yr8eRneC)0uNhXE93iD zro9X(fs?2J{TPZL+x`VqpsT0=x4kpzmTN4x$#if|`E~HGk5M-?!t@ zPKEoz5>x`os6c6`1&VMcA=D2?HEMwdJH7{_>F-5t+l9De!(XG zTTvGn_%)_r>D*jzrq7$1m*C6G_vIbUPmj<4ZzMNAH!C%he~}e|V5_&fCD0UX474`4 b&XHt(wsz7S|>P4NHU9ypx-+46q@1ur!u delta 2631 zcmXxleN5F=9LMovB2NieH-W-=5VIaE;M5^F8v|d z=4OG*k~!0Ij%;P(viXNkZ21Sq+?zwoZo$vXc?>WEA zl>@UbADDF_Dn1hPkTGMq#>_FsOynE$7~a5G{1s88OZW;-;3pU?bmskxne?Yn38WP{2``G!(8MLE41*Yt>ro3fVKTO%cDxI_@EmI4 zl49q15S3U1sw_&^_w|)J|iUIpfKgMt>11 z!BW)oI%^1ZSGJ(;NZ5{dqmE(^>Zrd&5{Q`7H1y&{T#Tcr4FAMhjP@Iog6lB~w_4j# z3w5Fr??&xtAI|I$HE#&@-UzP6Yp6JxlrxI;%~BfAGLVltf;MXpDqtTf!GoBGgQ&YP zX1#?u^runtvjfh&a#UriQD4ah)VxO2k+h?W^-VVoeI|W47muMX$tl!Pe1qD-1=QJ& zpb{Fl&woWN@CPdJJv%;!Pe40OM8$KV5=ycCOl(r%EE>wJ0DZX1zR-oLz*~3(ccacc zyUZzZ8LGtf)-A|&F+HdSPxr4&bVanaVMer-G1RsF3D@9nSdGidoh|jCR@`IVkJ|DP z)U7#*s__|AsV<`q`+NKRHfo(IRHoDAoNzXcBu-ejq!jgF9ct?>s1I`+reYuJz2m3_ zF5uHRirVTFYFo6rod;3zYEbiD!Yuv5G}7o`pcm)h zKgd6VnXBInMSKFSxE~ex0cxkN)y}`e9Mn;TFd4%bhwq|}svi~iko72PqsK9U_00)2 z@GL5`%NT=KZGRk9vPnCB3%&I3+UJ=y&O$k;_x!fM996OBts&Ic)rzXTL~Z14)Med;i*W$8@HuS3>sn9? zlnmW;RX&kWnCtcBdW+p2f1tqAAIM89X2hH8D{^~%fkIEVhrjr`=8n$X7sJhM9ow2a a+rt5Ocys3);kH7byX^ng(B8ZY3;zQU(=Z_b diff --git a/searx/translations/cy/LC_MESSAGES/messages.po b/searx/translations/cy/LC_MESSAGES/messages.po index f9e9f0fca..1455e6e46 100644 --- a/searx/translations/cy/LC_MESSAGES/messages.po +++ b/searx/translations/cy/LC_MESSAGES/messages.po @@ -8,17 +8,20 @@ # CJ , 2022. # RhysJones , 2023. # return42 , 2023. -# lloydsmart , 2024. +# lloydsmart , 2024, 2025. # EifionLlwyd , 2024. -# return42 , 2024. +# return42 , 2024, 2025. +# Anonymous , 2025. +# EifionLlwyd , 2025. +# RhysJones , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: lloydsmart " +"\n" "Language: cy\n" "Language-Team: Welsh " "\n" @@ -360,15 +363,15 @@ msgstr "Ffynhonnell" msgid "Error loading the next page" msgstr "Gwall wrth lwytho'r dudalen nesaf" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Gosodiadau annilys, golygwch eich dewisiadau" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Gosodiadau annilys" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "gwall chwilio" diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo index 41bc6eeedea6b74dc83974ed3d9b045eee699bf2..31fc923cc0eb2bfac463b66193c7e94daf0f7047 100644 GIT binary patch delta 2760 zcmX}udra0<9LMnk2y*cO1(mDvSUeKwW89uc0uv-}DT0#DONm05rUmT*Hc9NaOy_bI zF4I5Err2tlThf>_wX~LQv}*m)g`Cswd5fv7d7+rSKm1Pd&+DA?JHK)~7iP?cJYyn_F^dX}NyW!816wg1U&CzNg;Dqs4#6`RkDp--evircv$Y== z&`&HhCJ7s`9@pbgJYQ%WlStzi2DH#E`yjH&m>l{ZjK;}063fwti*Ounz%+alC*cRE zL@r?*_Te(Ti^O6U28;>fR#d>J0*;$W4+9# zD$;@txCeDa_b>sY9&$4sjhgR81?;d1Lb%%! zQD=J!Q}HJ1y|_}>;iv#d;Yb{Z3OtA-*x!`XP-Zo#1(%>QSZ8g+mGrlw7QSrl!zJ|p zM9rT&#Z6=>4hD`Yc@s{>c1*{UsEYPtA^V$aG_*kG!)~eks0fQufmPrLoQ(=_8R~4G zMcs*wsETbzm3F7?zkyo!0IC9As7iilpPxlXFMdHI1HVR{)eY1_f1{p95WX^s#pf{r zwcs|?<=t)jdr%p_gSps^O5h@DonLV`UPHaVsf_yT>|ZT&&u$;8M8{E=?_1Oc1J1U$?s6s8c0(GWO+kO*{qThxuUCIM#~sr}LjjyX1#lLX z!H=lB@CRyv=$Y{gAPC*6gMGt190t=u5DnlhU2eokxYW`x3 zz}k7#Uk~c-gVm@P8&QF@;r+M;mC+&821jiFII5JVQS*CH?|)KcU8dx8A@o`u(We@((JvVb$)uQPxb1XFLZJuozXF z+1AHUJJ+JFZ9}!G9n5Vb11i$Xn1I_+x$Q;O;4SN6)G2mjCLTlmZ`6zW*2T;>W+^^^ z%5_usm64ayJpq4SzCSPM%@3C32X|h`OAr1(5-152OvvLewz96d#lJ9A*Vz0_T}xA_ X#2Z@G(i&5-2$9rTqKpEAMwWtHn#tyGVOv^r zISp3nme?v=&C9$rb*7fq(v4QFKe~`(*}YU^T5G7iKm5)g`OoW|^EbFue~%eUcmNgnkV7Mw#web#9nx1$!mY8}B^ z`v0KjFDr2qc@)P2N0qz_OR)!&@f@n6gBW0cGfYDZc;~yN3ZNn^MFm!gaae;2umN?p z9jH681y!+~sM5Y_`~9eO_oFIs9978=?ek0M=*2H+q~O=6v$}~|D2TB2JRFr#EN;R{ zs0DYRF7F=O-;2ulJt2`HTI!4`T_O)8mc1yqTZiS=D3+9mAM;CM`e(KT6i|9^hLJ6 z7*&~vP)AXZUTi~Mu0GV!yo=iK6ei-wI2|ve*1L^5x>)C4_k)s(x)jS$FE*n#YC}c3 z5w*}ZT#oxN8*iXCOuNrbz>mtf0F}T()R(aeIaTuv7UKJ;N;ubPXv5n$6~oKjOEMEP z>HAOttUxW;j5^a++wa0j^c~!cy?8e!EOLL&WvKURaWSqzC3e6acg%4b3g9d%fJ>+h zenQ=azfcQASGY%&h?+kQXX0JB7nj)QS5fmv?DJdbrJr%XdnYRKar(XJ)$f0l2A_MA zQEALdti@?~2w%qm%*6E%@KM5E)E&8lI`gP1w<77NBg#TmWFd~nhfzmVhkTpNlQ;q2 zLJ#|!gEYeMG-~1n48^bP_;)yq{uKupKv|0{R{E z@jB|*%#3Pd7GMiT;(kD<;a2$r# zxB-OMP=CGXVL&FK0`j6Z%tjCTQJIvY=2f8PEl15;iDQ|eel1OQyvvSvqt@v`C9nha zbAQdDp#=_Dk6KTnCZ0uonlGX@{MnBGVZDh#jGG7DyE6`z=|t4~$yP5$)1QqoScUmKw7Pb5WUZ zMU%ef$hCx_WKV%FFW;9pH_cyI9PsZN^e2~$jrjA^@`{QBg*kryMN~I-boy4bH?Hq^ gs1F+gUZ~y=R diff --git a/searx/translations/da/LC_MESSAGES/messages.po b/searx/translations/da/LC_MESSAGES/messages.po index ee9d33a77..7cdc873e3 100644 --- a/searx/translations/da/LC_MESSAGES/messages.po +++ b/searx/translations/da/LC_MESSAGES/messages.po @@ -7,17 +7,20 @@ # Morten Krogh Andersen , 2017 # Markus Heiser , 2022. # return42 , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # lolmeOzzi , 2024. # AndersNordh , 2024. +# Anonymous , 2025. +# lolmeOzzi , 2025. +# AndersNordh , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-02 19:38+0000\n" -"Last-Translator: AndersNordh " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: return42 " +"\n" "Language: da\n" "Language-Team: Danish " "\n" @@ -358,15 +361,15 @@ msgstr "Kilde" msgid "Error loading the next page" msgstr "Fejl ved indlæsning af den næste side" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ugyldige indstillinger, redigér venligst dine valg" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ugyldig indstilling" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "søgefejl" diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo index eb6aa938e29b5e2ee88b7a651cd1b8360ff2baef..1dc1760bfe3758f658fd8e9ac30cb0abc684373f 100644 GIT binary patch delta 2776 zcmX}sZA_L`9LMp4py(YaB$$NAouDuTC&Ds*Oo{tC)1{sB*J3Yboip|MdJGYxX!xYe9k%7IsfxN|8w2fKx@GD z)_~)U9_N<;V_r!$W~?!$EX|mQaW%$Z9cug_CSWs;$1^wqJ23*gQS%0I65hfocn??M zu;`8__sIK z<##uT#f9_}Q1LcmGJb#_?D9Lt1kt$6KnV6=91fyR=wX!?BXBbMkv+^}d;oW$PO{(H zgsRYcI0cVlEq;w%nEa?2J@8$ePJe=vWlSKAL{#R zT>J`O$D62xYUUX;6&p|oc?%Wq2r6D1DxUKN4NdGs-BBOvDu!_;j$j1FWxIj1P*;+R z3S5L*SBCNU6sl5tF$~{DZP<>QcN(?soICEAi!_v3FBaf!)COr>s20vcm9!AGuoS1^ zT2#OnktJp?>L6!PSK4F!9TjH)btQLDR~NiM2jl)H)6fQqsEmE6gz{~_95>RhMg{J& zUcmMAFQGO_Hu$`PId@=*p7Osuc6}gV+a0;ddb^zslQJ2O|HAJ3zbMeCgOe6zat^f zb+&abs?_PI6BXlV$+4FH23&*}QI(pK?^Z6(>O&=(lkd0z)-a$GRH5#^#!h?{Bk3PN z1!_T^bSzGKJFqB8EX&##~o?#E*oR_tzc3bnoib@KC=fcJ47&RWbKxEmAn{|{VZ z%u)tsV+C%ME-2cr7Z>4)ow2R3dNM{$b3a{}Jk7{TPH< z%lW3@LUdG;MjG-uYC?9Y`}XD_UrSShy5oHqitnQm`xtf7&r$0-Pzii*$A3c2yNYA6 z50&sBsxrf+)L)Ie3@FeD>Le3ZxPc;2rJs(PS7=>^3cM1v;d)fyr!fq-p#Fxh*?tph z{ZSl)?Wlx5Swa03-~Id}eXt01@}+jdDr+^)WPB?sU^8mohp519sFR$)a6FAlxCRJ#=4ry&E5sijCyj8&p+co!s$#z delta 2760 zcmXxkdrZ}39LMqJc!NL=kR&FO$J?MI%)=cCF9;eUCTK9P6_&7?Y1}Gr`*~&99IjNh z&~AT#<%m_3TbLE*+7xNUblQ~EB$y1FPX8$Tquw8WPv@W4^E~Ide81o4_xoLM@!V?h ze6}~l`PF00wtz9CjWH$3#!SRD7>lo?#t&m0HeoQH!AGzQqwo@H-XMnKT^x@l#h6lv zMlWu{=Wz!HVQ-3Y%%e2^U?2?tvVV+8H71?D7sud2^kE^!1J0(;Q<)(YV6ESnS1VIEc#7%PJpEz;QSmIm0Z)P~45mq`}&V zs?hs59*<)sev9WYkYR=seuz)d4|6h&8A&4n6?p(vk#tlk7o!4Og^^f}%HU0m#%7#_ zr*RM7K?PJfo1k$EDv@_k`yE5=*NWQD`I?3%cA@U54|NsyaRz#_+&hj#ZJdp|l04ML zOHk`da5}z(s?>gr!1quGwxQ;oLajURjyvWe4Mlbn^Y9+(fOIZY3+JFpT7X)(0w>`* z)P`G;C1yV=k+Y~P?X~`n+GhZDB@a+n7n-faxc_JxIv@cRaT+S1MYdmx8|YV{Htx3e z;9B~ZQ3s^*q(xy4>VQ(z_Y=`Y+OHo^ks;%1<7D8%6+VSJuO9HM!t*b)?b{G@! z6V&?4I2C_G1>jlaRwlxsp$R_JfpMtYOTxXFhgx_JmFW4>QK?P8ODtRp` z;C-kHG@u{fwc}?|^PO%x;VLTPer(35eD|OZ)CQfX%r9UZj#zBWYV_kS+=m(uD&Vt) zv#qYi z^KaY!zo?1@FLmF$Nf<`je;tzDEUm!Pv&XE0uaI;W|a`fK7x3~1w4R3;}e5>KHb?#6JuX8S|df2<+P z-F+TMJ#^Di0cK((&P7$Y2vxC_sPDv@d>ShCYp95}peF7_WmJ#);vGOgo, 2022. # Peter Martin , 2022. # return42 , 2023, 2024. -# return42 , 2024. +# return42 , 2024, 2025. # German , 2024. +# Anonymous , 2025. +# German , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-04 06:07+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: German \n" "Language: de\n" "Language-Team: German " "\n" @@ -370,15 +371,15 @@ msgstr "Quelle" msgid "Error loading the next page" msgstr "Fehler beim Laden der nächsten Seite" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ungültige Einstellungen, bitte Einstellungen ändern" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ungültige Einstellungen" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "Suchfehler" diff --git a/searx/translations/dv/LC_MESSAGES/messages.mo b/searx/translations/dv/LC_MESSAGES/messages.mo index 6669002572efff383c70fa8a8bf4fc8c7e4ac2cf..e5322bbeca49f6e836dc92b854ddc99c66126084 100644 GIT binary patch delta 349 zcmdnSy_*eJar55B=>Xks1r|Ko= lr=%vO7NzUu7o|@YWY!nMAr-*vz?P?=Xsckjc?Po_6967UL{|U+ delta 344 zcmdnZy^VXqmHG#a3=H~A3=9GcK+M9xAOWNmfixeGwu16KfwTyap9G{8fOI*K<^a+& zfHV(~UI^u{1JWRKwnO(Kl>Z*eXJBP80~^fC%D^BCRGMcXsckTxp^+L91{Q( C?Lf8w diff --git a/searx/translations/dv/LC_MESSAGES/messages.po b/searx/translations/dv/LC_MESSAGES/messages.po index e50fdf4bf..ed1c59a02 100644 --- a/searx/translations/dv/LC_MESSAGES/messages.po +++ b/searx/translations/dv/LC_MESSAGES/messages.po @@ -3,18 +3,19 @@ # This file is distributed under the same license as the PROJECT project. # FIRST AUTHOR , 2022. # Landhoo School Students , 2022. +# Anonymous , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2022-11-04 07:18+0000\n" -"Last-Translator: Landhoo School Students " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:52+0000\n" +"Last-Translator: Anonymous " +"\n" "Language: dv\n" "Language-Team: Dhivehi " -"\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -351,15 +352,15 @@ msgstr "" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "" diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.mo b/searx/translations/el_GR/LC_MESSAGES/messages.mo index 46d7f0197e8b79fa394c74afd695bc2bfd803d17..5b4218eae20c65be57818d1ce142c5e378dd83d8 100644 GIT binary patch delta 5750 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 pTks~kPlb3(GyD2_8~W^T, 2023. # KDesp73 , 2023. # RaptaG , 2023. -# return42 , 2024. -# notlmutsaers , 2024. -# silukyo , 2024. +# return42 , 2024, 2025. +# notlmutsaers , 2024, +# 2025. +# silukyo , 2024, 2025. +# Anonymous , 2025. +# RaptaG , 2025. +# KDesp73 , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-02 19:38+0000\n" -"Last-Translator: silukyo \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-09 07:08+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Greek \n" "Language: el_GR\n" -"Language-Team: Greek " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -361,15 +366,15 @@ msgstr "Πηγή" msgid "Error loading the next page" msgstr "Σφάλμα φόρτωσης της επόμενης σελίδας" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Μη έγκυρες ρυθμίσεις, παρακαλούμε ελέγξτε τις προτιμήσεις σας" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Μη έγκυρες ρυθμίσεις" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "σφάλμα αναζήτησης" @@ -1235,11 +1240,11 @@ msgstr "Μέγιστος χρόνος" #: searx/templates/simple/preferences/favicon.html:2 msgid "Favicon Resolver" -msgstr "" +msgstr "Ευρετής Εικόνων Σελιδών" #: searx/templates/simple/preferences/favicon.html:15 msgid "Display favicons near search results" -msgstr "" +msgstr "Εμφάνιση εικονιδίων σελιδών δίπλα από τα αποτελέσματα αναζήτησης" #: searx/templates/simple/preferences/footer.html:2 msgid "" @@ -1393,13 +1398,12 @@ msgid "Change the language of the layout" msgstr "Αλλαγή γλώσσας της διάταξης" #: searx/templates/simple/preferences/urlformatting.html:2 -#, fuzzy msgid "URL formatting" msgstr "Τρόπος εμφάνισης ηλεκτρονικού συνδέσμου" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" -msgstr "" +msgstr "Όμορφο" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" @@ -1407,7 +1411,7 @@ msgstr "Πλήρες" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "Διακομιστής" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" @@ -2021,4 +2025,3 @@ msgstr "απόκρυψη βίντεο" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo index a143a0bd768c392ef72c07cc746aa624442116b3..0fcaa041af89e2892835b706311f1ba097b92621 100644 GIT binary patch delta 24 fcmdnXyq9@GH?OI#fuXK}nS!C2m7&?j8LEr`Sp^1` delta 24 fcmdnXyq9@GH?N7Vp^>hknSz0Zm9fFb8LEr`SrP`7 diff --git a/searx/translations/en/LC_MESSAGES/messages.po b/searx/translations/en/LC_MESSAGES/messages.po index b90f7b029..78d62c06d 100644 --- a/searx/translations/en/LC_MESSAGES/messages.po +++ b/searx/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" "PO-Revision-Date: 2014-01-30 15:22+0100\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -349,15 +349,15 @@ msgstr "" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "" diff --git a/searx/translations/eo/LC_MESSAGES/messages.mo b/searx/translations/eo/LC_MESSAGES/messages.mo index cf557e5be4d45596ac22791a606f4af249a56c7b..734a3f963c4588de2b3386a241167bcc3a4a5aa8 100644 GIT binary patch delta 2367 zcmX}se@vBC9LMp4UP@4tE6T6JaDmmm+_?O>H@%T*aIHq9;zqeu#^~O<)*yvy!P>Jy zKV$}DlBwC0jF=cPh(FAtDXV3hOR>eqS~D%2jK8!w)BbS1KR#zU=IfmEoag&J=X=g` z`#O^bJClZ|=Q-0!#zcL_BpYLVg~sGy&{~Ca>BsRN+={nj7pCAxw%?2M=pRNej^Gmf z9-}yg)wnERj0a!Eg}5zX9Fs=FVL*Yq?Ss9TMZX`F_&DB$f1w}E1IFA2g_w$^_$02z z5bi|HA4e_h9BSSr%*VfR8D9R9xpB8jEP`MwRGuR3(P3$5Dw-qXN%ZFQWoqM;+0e zQa8>DTtz>OnfMy2GCQoDIG_G5Tugp*fQAx}ph`4`>39|^@ggdKugtXw*U>LSopCE_ zCwuMl0o1~Va3Ow;Ui=X$mYKpOn94;-Ccn9xh9(xEE>$TmzzC`mkD)45YscfL1Wl;B z@iwY5?WlP>Q48L0$9qwCFQgiucjKiCXBrtEj(TjBsO==yBA9jkpwBtlg-<{iq5I z+wt?LyK@b7#z_%(A?c_evgN3F<)|Z#q4I1;#cPdFe+77#0UvfFf96~ML z6t#n2FdP4{&u`f0a~|e?FrJHASPyDr`|y73!{vAyqj(wLL?^u3m=!dJa1BmkHD<7i zTRX##>31N%nkIh@zu&kCbq7wM7Bqpn-Lsg5S5QZr%7xL_kcE7CCKolY#?>*K?Z6A@ z=fO*;Qud&Ba1d3QBd9=Mp%#1;Tksqz@a9L|--Rw*Pk$11qy-i3XS@NGcnd0S98>iD zZ=<1vt*FwykNWOAQ7?RA{S0+xM^FozKpoMP^#bay%%Z-ctEjlimF^Fk7gdo0RNPWb zA-{>x@L(nCjGwU9+VOhS3ooNq-iS)vf?9Apda%RxyHJTfL@nqL>Zk_MgJY=o#?eur zlQcAO0=2W>P(P7>q7wguTG&n0j^;=C)G!nE*=3`i`%&+$L{+fbjz5c$6>>O&|Wz581aRJ8WM$Aaga&paLunLt(y|V#TnP%L8Td*H5pb~5jdKKzM?QAzD zVlT$wF;t~aqbf3r+Q0<9hB1*mZzmn7((ORKuosp2L5#y8Ou;WP0WYKG{ehgG{e!b{ zVaVISQfC=z-bz%w$1oMEQE?-$(}<p2347H=M_}o-%&?&0~Ke% zVzVO5!6bYERhcc$Hk?U+8z!*6?V_QD2T>&&!r6Eh%kdH_KzhFCLad;ljXL8-)J}G~ z=X+6!4d5(1g7Nq{QY0J0IXH!jGL7{uiH0VoqArymZ^IC(63b9KTkXcHQ473?x*JWX z%Cw;7ZAB&A?Z)?@?n*x@{;=~4^s&BuMdK~}234BMLN9O?s$YXj@MX-!7We!hYT=`} z9fy&UTE)GdkE0fT$=QZ1VST92`g@G1ao!DFM3r(JwZlo&rTH7zqHl@Wa$Jwv>3gUI z22lwfMZI?l=i*t^2FBg^Ra`{>Ix5jSim1O{3~^($P$_D{3QWWXX9p^9AF2We-1vFa z-MNN3^SSM;@@8CVyi+AD~4C58tjFFuC&F-c#fTcK!t1yNvZte_w z=(i%jnl`_b3xz9DcifLW@{HITH?RTyJa`IK z%1+b{cB3k@4;AQRRKka`8PA~tuX(`xU1-Nj`lFbIsb$`0{2*%K^{BYj7_INWj)oR& zM4f2__1(9jUU=8}KI+W&p%NNF9nqNc0_v_zpuVE3sJQ>4e$b-Jy^5rw;`%X~^({oh zhb5>pUhZ7&#;Z^-JdMiydDOxUsDxY4hpn#Pjw=0jR6;$dquP%?974S}j1dJoMMD!u zP&@k$^%MCcYT@5diCstSXlmFj3S&{9T|DY}2I{>as)AuR{wQi*4Qd08Zv4%#t-Cp~ zlK~~t<0gKHTKE&^XXvAU8nwU(`tcI#>xi!KKC4XB^Bu5a7ppv zpg+jJ8IM#3*4DmS*I4(;#z1+^rrP4PP%y;2yg;ZREiY7@AME}%D=DF&c2iTs#{5uP M$^Wfm{zJF_2bQ)Gg8%>k diff --git a/searx/translations/eo/LC_MESSAGES/messages.po b/searx/translations/eo/LC_MESSAGES/messages.po index 25fa34c55..6eda0c15a 100644 --- a/searx/translations/eo/LC_MESSAGES/messages.po +++ b/searx/translations/eo/LC_MESSAGES/messages.po @@ -12,16 +12,19 @@ # return42 , 2023, 2024. # RTRedreovic , 2023. # Azharjan , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # KinoCineaste , 2024. +# Anonymous , 2025. +# Kjev , 2025. +# KinoCineaste , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: KinoCineaste " +"\n" "Language: eo\n" "Language-Team: Esperanto " "\n" @@ -362,15 +365,15 @@ msgstr "Fonto" msgid "Error loading the next page" msgstr "Eraro dum la ŝarĝado de la sekvan paĝon" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Nevalidaj agordoj, bonvolu redaktu viajn agordojn" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Nevalidaj agordoj" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "serĉa eraro" diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo index 5edaf58f9716dcbecd5ea669ace397c06374b272..42a4e9f956dff49934d185a50019b9b22969baed 100644 GIT binary patch delta 2772 zcmX}t3rv+|9LMqJC^ruvhzL25ix{3T^dN9V4k^Sf%M|j+(zQ@R=FAcgq;&ILEz=-2 zQy12ztIXTP>87)2T4C8Lmy0fQT2O9f>YUA`)uOq+Ki+3K$LD$8=XwAC|8qI#{I%b6 zYrp5nOJ3(2k1@~sjfphIESPCbI)-pEuEjC99dmIP#^7o6;#o|_^QiZ)V+!8Hc#JJH z=24u8n%9Brup6T=qR2QSjo2b%Ch#B$qtSFF-P+Pbc)36tn@NFz;M9ZU$;+^U=`?3u)*M1W^;0p#rv}#-B$OvJpSPS5aqJ zTkZy0f|}om>9`X0G24iG{}^hAPv9Z^43($7g7epwY_4#>aCRZFO+WGpGae3BpN?;pN_N;wUbq-yHj83xRtl?Kr38hC$2*U-h?{S zt+syvwbEmlfhUnqocR$IFr~^ZY#QqQ3e3Uzn2D{Zm2a`*?>aOT;4tRm6;#EE)$YV} zR3JYpVGwocmSPbeL9Ogp)K>qATH$R}qSzXDUMBLDVM17l-KZmR`e|t58JvPYp#nwJ z8Z!gqP~&B&OIe3e*l7DLsFgp3Y^Lc%eLTJQ@pX)MqjszY88Qn|3+!>9J7zZxRnm)E z;c?W8zeff5+4lcI&5NAp21r0{X&UatAV%PM)W>cJeRv&nG4+0a;BXE;f!&y+l80%q z>n8I7V;;t4)Ga=VyYT|%;fDFfwBP|$g2V^ig0nD^{#?|1)u{0%R6$|XWnGWO*o|KN z1jlO2&eG5p4_a@a0!C794923)IvMriJXC@Z#$z+aVi==w11j;$sKUE&6&^<&UG_rv z*V2bh4G&h(V9fNQ5)7lh(W2_?&nhO+Z$MqP7Sz1;))!Hit{YYOo2Y``vd??%^FAEI z^N&!4eo@E%>xBUxsIqgY7l-V`t9Tdvn|3^--c58TYG-Dm0tHb8R@(7Js0A!T?NA#k z@e6jm3zc_AJ^Qc3yLd1T_n@}!JyhTmsFi(+N;rU;e*qQXB5M9`cKjMD@h#N6n1|c~ z5>Rm_;aJQ=eXq=RXedyfozP%?3{^lY>bIc-6>tmcGWDQ7c85@fokCr{GpIzDF$r&> z62>fYO~rBab5Zl05*i9njY_xxm7oE&rK@oiK8JeILCt&3`UYwNZ{uj(he~`9b@@I- z{j6WXMjRD#$D7b(Hy!;w`C?jpalXGG-yg^-2$U8Cwhj8zrvLw>xU{%%nxB8(`ODkd f^F!g~PqwXI-o7SWn$_A7Zptdt-=n^Qg*pELpRz%t delta 2774 zcmXZd4@{L+7{~ELAn28gK|nGTFJh=9dhhjufL;Pg(6mHQVw2e}Gi1y^3kd(UURrLJ zX?Ig|X|-II;+&MZoXMsYmaTHJ=+B&*m|K}Tb8|{-(fa;)k7It$d(L^E^PK0Ld+)uj zn8B`?kG6Q6A7hN!>^EkFF{V0b%s8yWiP(mta1Z9QI?&M(t>a?SBK)cs_+X`#w~F3-yxf-miu#M+dh9E5IBw?6bZCdq*@+uafnP

2CXc1hvx>n1yGMPn`J`6>#k1ZesbU_bV_5pTY^)irV>3JATlip#aA)7jL36PMPOU z%t8eUq81FJE?onL@MF}@{y>%bZ`2M=rTe}YH7^_a$}n{}6Qigjae8Seqw_ckuc89Q zS8+iw2{m4dx|B5-j}iOajN18nq?l$q>f@O>-9Q9rmYJ4Rsp?1_|-G~JkMGt<7 zNh(<%4VCzc^)4!40_l!KFX{}_Q7+V}Z{k8CZI+F1as&t>C0-r|h>?_oQ{iykuPyw!?=KpEOZ=)6-M9uTmxCtbq z;!MCKoQC>dneEU}pc*@&-uf&mfmYOS!zNU~ov6#S7xl6G5S7?j)a5&mTIdF*;2>&2 zPpxYPCi6T6HP0!bp#W8=1*=gD)T2te79YSDQ7^uPnzzgP7HR_rFcuG^7Cwr)e4n9y z)^Fl77`N0NUx_BW@%UeD%wno;rt&X&>Yc26@h^$}N=9@Fj@!Y`Toc{sc(nBu* diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po index 4d12a6939..b322236c8 100644 --- a/searx/translations/es/LC_MESSAGES/messages.po +++ b/searx/translations/es/LC_MESSAGES/messages.po @@ -28,28 +28,33 @@ # return42 , 2023, 2024. # 1024mb , 2023. # pixrobot , 2024. -# sserra , 2024. -# gallegonovato , 2024. -# tiziodcaio , 2024. -# return42 , 2024. -# kny5 , 2024. +# sserra , 2024, 2025. +# gallegonovato , 2024, +# 2025. +# tiziodcaio , 2024, 2025. +# return42 , 2024, 2025. +# kny5 , 2024, 2025. # Atul_Eterno , 2024. -# xawos , 2024. +# xawos , 2024, 2025. +# Anonymous , 2025. +# 1024mb <1024mb@users.noreply.translate.codeberg.org>, 2025. +# Atul_Eterno , 2025. +# Fijxu , 2025. +# pxrb , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 19:47+0000\n" -"Last-Translator: xawos \n" -"Language-Team: Spanish \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: pxrb \n" "Language: es\n" +"Language-Team: Spanish " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -383,15 +388,15 @@ msgstr "Fuente" msgid "Error loading the next page" msgstr "Error al cargar la siguiente página" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ajustes inválidos, por favor, cambia tus preferencias" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ajustes inválidos" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "error en la búsqueda" @@ -2046,3 +2051,4 @@ msgstr "ocultar video" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo index 650891008a5ab4317ae42ba8222a5fa4347a3acb..af516608a24f97f19dc859b6de62aa279cf8a4fe 100644 GIT binary patch delta 2772 zcmX}te@vBC9LMoTF%aZ};6(vbFh~RhE)iEn5RuIIA(T*rveuQN<;+{a%8B~8vc=~7 zQRJo=8?qcDonz9}l`z+|u^MHmWjS@0KXTKtm07y7-k;7{{^9HSp65L0e81oGJeRL} z#tik0>E9gTo*v^kZ9d0&z;T@FM;vE5K8*?3iXPmCbMONkhi7m+{(#~56YBY!=*3?# z3d8cubCXfyRalRW7>a{=j_X8nae{$p{01lBWz4`^7>n_bI?fc##A#THIT*k=d>3b9 zFDj8UsC9nCC3p>0Kz6?4q+$~)@h$nTsc0ty%D5BNfj(5F!#D#+?D!}a5J&k!|YT`ZA2H|r}MUya{I0+|W z8B(0H95>*0RBJu+Ov}Bf=hIOM=An*s0Zu}TW8$cbwNjrWPT|IDtiv+xa%IrR><2cIXBbb7hQ0s>jn*t;7En+XKz+J`kUzL5xKs+A84Ez%HJ>Nln9VrWq zY1T|sB{`@>i%~CIIW}MbpT!~6MpH`6(Wap0`%#6Kl(;6dWeljo22=$BJFx{-=|&sB zhiY{fYTiD~!6P=lj+%cLwXtWB`N2xSB;q-!MC(uqtZ}*UaUu2H_oG_*IjS?Kt(Q?p zG>WP)yp(Sln^5yRQD@$ZO0XZ5z)@6!Cs4l=w{aGxKW65+%ec_Q<){ssP%YYo*|^2V zpIA?#HaKPDbEt}b#@Fy3DzVjz&3HHJYdC`X3I;+;a0$m7+F&2B%^J>hoNSq4*A}L)%bCu@A%XtYm-Z5*K>l zhV@T7A*{l5A_gDgej@6nE5b0W#tB%5TCmaj3XUUw1Cwz*2C>VIdn(Oe!&r3L%PHrg z26ti_-oR9hS!y!&qu%N!)JwV!mB0=hkGn7e_o6y+z{ZEHgQ$dtZ9IaScWx=?uNGZo zKnq^Q33v;&@LimRV>vi2kcqnQLp@iBdae|8#ufH{BSsPjZM+^ezum^$QS0rgqW@a3 z+uk^UTJWg#II6N?8=ppX;yi}nsP#8{{|}5}{2$bYQPt*X;!xvBsJ}7UsOL*uE;Mnm zwGx#;jg42J&U~efTTzv@p%QOLb?SZ84@wt$@Swea%*Mm01irIgMZGibZ9CyUYN5y{ z&D$D>+GsY8#d)X&3Q_YaP>I*tcm=AZFW_{188fjR^)-Er`ntYGbui;8{+qFKVAOkg zswY3omz(ADC+GSLa{V0_d{eXkAIUGs&&%}jFQPKg(wbG<99Yw`I?x(yE=YcLZS%_H MLj6DB&y7$17ZaL7m;e9( delta 2788 zcmXZdeN5F=9LMpaA_xkWVt@!<5JVy3;#K5Hz%1|qRHC*J%8A$=$TaRHwoLoAVAayB zty(naLz(z$()m>u7tU!jn!BhT9!*@`H-8A-XDL*KYX3<`JIRF`JUhJa&qse z{=K8R+9RByQO3OCHD;_aX7wCn5^){IVLL|RE}V~FVF+Huarh^O<3FhR4=@@>`;3Xg z7}UI(sQ#C+8iN>$eLmxu2{bO!F%hrec)W$__z)-Ithp?P1(<+Un1#(a1;4;2u^W}h zRn$6vVHw^x&Zp58<5F^P#`*foR&p0&3(D(yY(i=DhZ=(iAdJ0?g&Cv|WtZbvPA5H;`!D)SSz{|u@E{iu`t zhb0(VV9YcuLtS0HwE>mD22^63Q0s2TXx=~5VFz@gDskM#=TV6aU=?0QEj+i-H4jUO zi%=Ul_&9DwRca^d<=%&-*oDz}4|R1D78sMk{w9HjGFpP#unM(c4QfL_>ZDD!e-o-= z@7VrNQSY4-`{>o$MPrV(~QUyZ;6CJ%^UKUx&{+ z-&%k=Nipi(Sb=)kR$(nRf z)D?}OP8hey7$3Hx#vel6c{eJ-Q>c@lLnU|-^*a&r48NwBhZ^V9(a^v~)CR4n5`BbE z;SL*rZ@q+?c-h9+Q78Hrn=#^9H?hsA{w~zla289k54C=I)>M-Qgrx9G>qs1qz+>b_J}sEuF2cx*y_p6_8Oeuk>VF4R>V!*IMN+20J) z(1iQeam(BRF{nx;VKSzpUb+el!__z*{ip?l)-4!9{4RQM8*ao-+n-SG{xwWShds?I z8dbO-)9^l~U{ZyfaVhGpZbiMM@1qjfgG%rKM&J=tC3wLk&tc?oJ>Ici=N>W*vd^B_(jc5J*2HNL~fyHV>MUQYeB zV3&Q+gIe&M^#bZ-12!H)RpJJY!4d1274Ez+jG})cYQsd-)uh_~EY#naBGmj!hlU2e zV68IbD0Bk`nte%{6dsKkD^-a#eigsgNYM4=X% zhI(65Q5zNFXk3C?pd2->29TCKA^>zJnsu@AG~<=#4LW)Z?Aw$, 2023. # return42 , 2023. # pixrobot , 2024. -# return42 , 2024. -# Priit Jõerüüt , 2024. +# return42 , 2024, 2025. +# Priit Jõerüüt , 2024, 2025. +# Anonymous , 2025. +# dom1torii , 2025. +# pxrb , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-02 19:38+0000\n" -"Last-Translator: Priit Jõerüüt " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: pxrb \n" "Language: et\n" "Language-Team: Estonian " "\n" @@ -360,15 +362,15 @@ msgstr "Allikas" msgid "Error loading the next page" msgstr "Viga järgmise lehekülje laadimisel" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Sobimatud seaded, palun muuda oma eelistusi" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Sobimatud seaded" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "otsingu viga" diff --git a/searx/translations/eu/LC_MESSAGES/messages.mo b/searx/translations/eu/LC_MESSAGES/messages.mo index 655f5b6d5bc6774623158d26fd9239089048d2d2..1bf84a8c6cc2899325b3cdf192fc99a419227a18 100644 GIT binary patch delta 87 zcmbQRgmJ, 2023. # return42 , 2023, 2024. # alexgabi , 2023, 2024. -# alexgabi , 2024. -# return42 , 2024. +# alexgabi , 2024, 2025. +# return42 , 2024, 2025. +# Anonymous , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-22 21:35+0000\n" -"Last-Translator: alexgabi \n" -"Language-Team: Basque \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: return42 " +"\n" "Language: eu\n" +"Language-Team: Basque " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -361,15 +362,15 @@ msgstr "Iturria" msgid "Error loading the next page" msgstr "Errorea hurrengo orrialdea kargatzean" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ezarpen baliogabeak, editatu zure hobespenak" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ezarpen baliogabeak" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "bilaketa akatsa" @@ -1992,3 +1993,4 @@ msgstr "ezkutatu bideoa" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.mo b/searx/translations/fa_IR/LC_MESSAGES/messages.mo index 791f8a28110ee7ed7860b090babeca8b5b3bc7d8..cd958902055f53cb0d8ec9be30a2a772c1979087 100644 GIT binary patch delta 86 zcmeyqi}Cv|#trXuc};Z<40R366b#L*49zD0)|EDei0hdo=afxn7QDRS(zAU8vp^9PhxS2 iZb(sLUU5!hNq&))LQ!f-X;Geuk%A4Bwb@%wM;`#DxEnM8 diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.po b/searx/translations/fa_IR/LC_MESSAGES/messages.po index f850dd605..4be90c61f 100644 --- a/searx/translations/fa_IR/LC_MESSAGES/messages.po +++ b/searx/translations/fa_IR/LC_MESSAGES/messages.po @@ -13,17 +13,22 @@ # Parsa Ranjbar , 2023. # return42 , 2023, 2024. # arashe22 , 2023. -# return42 , 2024. -# tegcope , 2024. +# return42 , 2024, 2025. +# tegcope , 2024, 2025. # Thecode764 , 2024. # MPBDev , 2024. +# Anonymous , 2025. +# MPBDev , 2025. +# Thecode764 , 2025. +# Parsa Ranjbar , 2025. +# arashe22 , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: arashe22 " "\n" "Language: fa_IR\n" "Language-Team: Persian " @@ -372,15 +377,15 @@ msgstr "منبع" msgid "Error loading the next page" msgstr "خطا در بارگزاری صفحه جدید" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "تنظیمات نادرست است، لطفا تنظیمات جستجو را تغییر دهید" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "تنظیمات نادرست" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "خطای جست‌وجو" diff --git a/searx/translations/fi/LC_MESSAGES/messages.mo b/searx/translations/fi/LC_MESSAGES/messages.mo index c413759fb9831243a189b1ac2a2c07a79f1f3ea5..4803d4015270b369328d93f83547c3431432ff76 100644 GIT binary patch delta 2778 zcmX}ueN5F=9LMp40xEcg65$$xpc5bP(nYw4Xo{L3ph8TsnBefC&4+OEP^;#C(kM*H za!%K@G)-MrT7%XDvo)NvmDfL#S-K=LTYm%#b=J&g>;3VZ<CvGY=S;~lC~cMxD_@3uzP+T|e0Ix=R8%P^;7FW-u{aO4U>Rz`N}Ph5QRDX^ zxtinnJpPDEWW_9-U@dAR&!EOPqu#&l+TLy+M$>V~b#$Q4_AI93MNGs&)WqllVCs{8`+9VU>mA(uOS=t%v(I9(Q(rGE$Wi>qjr7^wS&7(GuvL$ z;iyWbAwMSI`Zu5wY;nGV3cL$-#}1-4_#q|`-+ab{b`VBCUPev$0~PpRoQKhK?7~IP zGOVD#0>|SKRDf<&;+IhKuVNWqN39=t%vQ7rvxskMcu=X@Q6)W$%J3wr5}%+xK3%AB zVN{?#RH8Rgfy`VRcsOc9ap*%o>PRwNd$xODf}S$1bOWA3-GzEoA}^sz+3wtft+e-} z7EY!ty1Y|Si3L!1r4YyAO4Qjmp%UDV2XF@}p^1g=^PgX6Z+9t9h< zRoch}_DFn~L3=!^az&^ksYV^)MjVUHn2fKZ#(jXgykB`dP)!p?opJ0!J23^7z!X$} zE~=zOSc7ZvQS3(T=oTume^8~4eB90-iK(>xsEW+QEPM_%&O5<_GChsDonN3byM%?< zhYFCk$o5Y|-IEXD1(3Ln8<)LpoX8Xs3=47r&^RJ>~BNIbLNKA1+-gcj7o zZ=!a53^kz}qcMyRjs{a`_u)>wk5Raz*e1FggR~FgBn;yUyp7v%@nRhb=YO7uTsnTi zRhU#_12^GO+Iw&+=9U`s2G-&T97HAXw`(Vr*+A*2J5-F(ScR%+4f5@5Hew9Ei?PHv zr+LtA>_V0DB1U2#YJp!d6Z=sMCoQoFWT0+!(6#4cEbYapN-Rg6bu~VXue$!5sH6A` zJ^q@4rS@afhPu7Kqt5Ui>XMCFW)oY4`u$)fDzPo7OZO})u!qBN7y59o>py}@=oF5^ zPE-ZYE~EaM7^XuDU2!k2yLLa$p#KhPfyw2zbOF=?`KW*kQ0tW9D6B#yu-@5-n%{y$ zuno0=o#oVDf%mw92i%MIQ2igF7XBO+=p2s3FzSe|I)8HSZ=jB_-?i_f&N`~Xe&fZX z)|-SwG27!onT4FQo%5Z=s87XGRKRtpoo_%b)QAzNb@Y|mf~vrNR0WPZJ5h;sV;uIN zHt5}O0|rn#yodV68}fwxPsWcb*;G^_(@}vJqDokfTBr)Oqt&Q!YcUI7Kz)o);%YpP zT0f(bf6~`<4klbr_Jsn$>_9LtEjzCuJ8y4qFgf@Co=`z3Co{;Om?d?MO@ZYNb@h## c>zcMS6r^q3Qom`_`dMjn+(YNI?D+Km00M$TJ^%m! delta 2776 zcmXZdeN5F=9LMp)gBV;v6S!$S2q~go!OLSvsF=t@D3IY|iE9_PbY&tBZ8@huE1)DB zIbBPWT*$K0Hq0KJ)o{*MUjImE>C(t-{Shu7X3cCi*Zbo+PI&#!`JHpV-}61^UcMTP zI64?H)D`EQi!f$m(3mmCm}U9KJb+C&8P{VX_Tnsj7d7rA#^Luk9xvcnyn>VPCZ?gU zz?d4GiT7g%)?+u`hd&k=@7{}F=$Jsq4b(yrg~rUrSoC8tK7>m#fa_5K_MieDMfPCM zVhlzX*#v#qMB9%!*ovCp@7|v*^6ZX&pd*$S7cd=vMXs00R46+D11;Ws#dRS(;QuQ;Q;5`yp|6;;X%9EU;l;XKrWHK+v}a0Wh$8ovX{ z)$GF!_!BCTC+6A&n^7Bi4mG|5_5Kyt_O|hmNXH)6F@!qXW0;Aj(2rM96QfJ{!Fbfp zC!+dOQRA~P39E1-HlsGuib`N3s&cO*8}-a?9x~|I@B9vR$wpB-zmD3$E$3a-C5?H+ zRw^C&Zvy;M|7ui%p0f)Tcq{6T?LuwvBTOQ``HTncAdHjnENa4^sKEc>0*o%R3s*R6 zuz~(MoPv8%0fteDpGM6;kF|ISwSHipt!M@265p)gL8aMpEBC9(xo%3fz5cG2F6 zT6i*L(dErXB^E&4mHC*8%TZ_Fj!JMd?#3QeLYd|6^Iu$UZ+A6L0q#P$D$ zx+{^7+9UDdblPdC%2l9_qzQF|Yj84lU<$s08uuaUWB#?r1JyKP)EUPvvJ+EK2~0=z z=c7tmfh#eDb8r~7qwA=|{za8Kvck@f!*tqyR7Hv~7hgb)^9FfPrUy~C^9xjFr?DJI zPyx~x+x{7-J5z*8und)8HEzMD@IkzYx(l~ZX2h)a{;Gq_N z3$^0`)P!M-!7$!C8cd@-g1vYL$6!yDO>`RuY45@;4C8XVft#?hT1Ue9pWva8j$g4E zlWT0?b{wGHhchw%F=O7uW{kzFs099T?c`b;XbS2MEyfsZL{)SJ^6hNaU>v@OKH{5$ zJm@waL6!0pM&k%-f!{EIqo{?Gm)HcRp>B1qYnP#qb|tD3%TQx| zA5*f_er&o?xAza!8Qw-+vcx)@*do+d>~d6M&!a9~Co1qJ9E)2q9=E&xy{Lo^U;-XO zRq$9H_1DBO9a`v|dvVFNM=_uNo2Uh{>TT%)s0E5q0n1VARAT}*q7qo;Y(vfWFcP~_ z8+fgr`YUjs8~C<+@jj~mW7NW*qXHeraTrD&(Rt_3?)_!d5std{9n@JzHP~;w1k`#{ zF$(8+JSejQ=UnFk=VH{Sq81gf1-0|lsD;`v0ym+)Qnj8cuoG2*ea=Iu#D;M^oKo5IZvV*mQ6kbMo?Y@`^KpC8Y(y9V5Y%eA^Su$SW!hmIQ+Qi(3-v=*($s53TE1 Z8|rLrFU<(GcdiR<$SAWOo}D)#^M4grLPY=o diff --git a/searx/translations/fi/LC_MESSAGES/messages.po b/searx/translations/fi/LC_MESSAGES/messages.po index 03098dd73..8b2c38886 100644 --- a/searx/translations/fi/LC_MESSAGES/messages.po +++ b/searx/translations/fi/LC_MESSAGES/messages.po @@ -8,18 +8,21 @@ # Mico Hautaluoma , 2022. # return42 , 2023, 2024. # artnay , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # Implosion , 2024. -# artnay , 2024. -# jonkke9 , 2024. +# artnay , 2024, 2025. +# jonkke9 , 2024, 2025. # Ricky-Tigg , 2024. +# Implosion , 2025. +# Anonymous , 2025. +# Ricky-Tigg , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-10 15:08+0000\n" -"Last-Translator: artnay \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: jonkke9 \n" "Language: fi\n" "Language-Team: Finnish " "\n" @@ -360,15 +363,15 @@ msgstr "Lähde" msgid "Error loading the next page" msgstr "Virhe ladattaessa seuraavaa sivua" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Virheelliset asetukset, muokkaa siis asetuksia" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Virheelliset asetukset" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "hakuvirhe" diff --git a/searx/translations/fil/LC_MESSAGES/messages.mo b/searx/translations/fil/LC_MESSAGES/messages.mo index 1931227682ea7659c31abfacbd6c1a257f3f2874..75722bc58e8d737e2fbd47a950126e46923fa6c3 100644 GIT binary patch delta 2853 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 JIiL4n^8eXUOzQvu diff --git a/searx/translations/fil/LC_MESSAGES/messages.po b/searx/translations/fil/LC_MESSAGES/messages.po index 72f086874..fe85cde4f 100644 --- a/searx/translations/fil/LC_MESSAGES/messages.po +++ b/searx/translations/fil/LC_MESSAGES/messages.po @@ -9,15 +9,20 @@ # return42 , 2023, 2024. # johnmartzbuntia , 2024. # hankskyjames777 , 2024. -# return42 , 2024. -# Kita Ikuyo , 2024. +# return42 , 2024, 2025. +# Kita Ikuyo , 2024, 2025. +# Anonymous , 2025. +# hankskyjames777 , +# 2025. +# johnmartzbuntia , msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-13 07:10+0000\n" -"Last-Translator: Kita Ikuyo \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: johnmartzbuntia " +"\n" "Language: fil\n" "Language-Team: Filipino " "\n" @@ -359,15 +364,15 @@ msgstr "Pinagmulan" msgid "Error loading the next page" msgstr "Error sa paglo-load ng susunod na pahina" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Di-wastong mga setting, pakibago ang iyong mga kagustuhan" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Di-wastong mga setting" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "nagkaproblema sa paghahanap ng mga resulta" diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo index 818414d3c15cd8e8c715139ea64a3e19678079b5..c58451251ea20a963fb8d7a8ed1062e2ed5894cf 100644 GIT binary patch delta 2776 zcmX}udra0<9LMoP3Wx|^KtMI`!+a-$M+6*!mKGTmCZIh(yd&+jb%d7X29=kh(@bDo2Hjs$fd z3HrEgyz_mKG0%I92{y)5WE&HY4`B*!!Z7T@H0-hUKI>VGr2Quh!7CVp*D)4DbBtMm zNf?2RxD%g4^^eFkPGCTEt})Rx%)wAxjQ3%gt?$6;)Vpvl9>qC0Y}+T~8RMm%jvC)+ z_2C-oTT$~}z${G6H)bMM z70_?S(LIrdNm5Fnxj9w4aIsaP}G+^oicY=6SK)I+pP>Nch64kHAx*zYS z{w``qqo{Gg3*BE+9BSc2)aA=S1-t=u#O*kr^-T|jXgrTf{a-j9M^TvwTI4P;4s}Ga zsQziFlrBJxt3>s$vGrQiJPoJ-n^7Bj0hQU8(9yu%6m)hysE)m;jsvK7VF-0ef5B~d z5w)|Y7P}c~L0zs^)XsKbHXcBw`bSjeF5+i+8I`HMUd~@TIqG$9b06xAMlcs|q87e~ z{K*_^0djfFeAEtCq854tU&M8&qxs#o7Zkez7h5YahVPFSJ8mkTr9nG&P!qSKCVU;I z;{nt{Cr~NwM+G{FsrV=AD56VT(@-fc!W3L$eFC-N?Wp9`P=<9aN`Pf1F!3^j2LYN9o$ls4G94;4@=@_3py zY{lcK`4&~U^Od5rl!k2-$e#HQC*rh9cW1LvnJGgp?4Wl3GHRmzsH1uxbtHaN;Kxw` zp0@RVTOUOAA3}{EsU-i3^os3x4K>jyYDZ(LNGDE2O}rR&YfDiRt-?SCFpvS%27J~w zoJ4&WYWyM8{2!p!{k)3&E0SIsG{I^6VGz}R9w+07{r)#jZxI!Lk0GwZ6840opZMRDo&w( z+d8G%4QwXrLCZ(2=TzGdt5Jb8p(ggBQrUrb;A^)14OFI%paMLGI_q8>gQrkW>o=Hz zzoIrUVU_z|u~dwr-hn3NG5@vbk%Wl6Oixy(CqFqWzc4Gm>t|0w_Wvz;g?Tx1Jp3EK lqORGOS-rWgskyPvw_$T(a#?-L`nsm%qK1I}w5*MH{|CNvNK60# delta 2774 zcmXZeeN5F=9LMoPpa_EUtf;taCgMfxUIZ0T5r~JvKoR2)iw#IKrji$@&ZJ)xv24{6 zdN8nwy0Wrn#;nbTI>TIy+^E#t63u0_EL%%AXLI!a+~4t^*E#2&hwu5G^E=piBxLWA zkk58TI^TyF^SsZPQO1~xOk*ZtHBQ4OjKDpZhF!MaXFZSOX#WXE<1i-SEu4U(<{GmU zQ!pAEu^qRf`j5>rPH;e6mN5x5%))S7jD=WY>$@?9`W~EvM=>3TYY`JC*!wRjyF&{^3Qh{%t!60 z)LMZa>MLz;yP4&8!FIt)CQb)ZHL3C1x}+2$ zI+7Yp#zUw8d#z_s0i8o-;sPq8w}N%f{~iSmh+pJRFcB3{Ch86pqZX({_3N^BV+Hm1 zQ9HVg8W+0Q{hE?c3r|5^J})ZZ^{69m#XQzGT@(`V5-Rn7VkF*1Wnu)i!03GUh!Ro# zQ&B0+LyfCM^{=t@TGTviP~$hEHuNGYv#+3|fgKcdc3r5By{L`@sCVHa>XQD9FXJ`T z&YoT3W@HQMa&1TLY&T}&0aU7gL}l(8et|bonc7#t`D-Uf`FJN`AL@**BA>Roi&{8? z{7Jtx8@W6t2erd;)Iv{SE7oHL{$|^=i`;+pq;j$CT>Md_!g$% z0n|dLP$}+51v-c`@ekBd#69Agib`=VPQxPWYSe~bLe00&p}<&k7(I9swQy9i8^}b| z0549*d|ZnS$Qxt^P?svS#2uH6qo~h7ea`9V#f4ao&tNI`ppMY_kAfnPpjBswHPQ|xT5g)g|pGF0G4i(@J*onX6ENm@vQ~W80Q}085G6Se_36BP!V8?hUDCIs> zstR!oK8+9JdW^s~Fbq3Umu)|$;V0OQ7f^w3e$0K_TaYi?yoO%v$JKZT8*mlrn9BV# zrzj|uLs*B2OWn7A3-(a&z*H=K+?ZXs0hO^ksLVug)0FZw)B`jJbtGk|fNN2IY#NX! z!Zc$99>a00Z@!|S&!!(W@H%QIcTuSu!6g`8>3*JNsEKP(6FrGa=^9%PpaR;CJf3C; zzJMoD^DSED&R2|12@Sg_kUjGqj>ieh-JQ)uWu^qjVGC;Kuc9XEMjh3Ms3SRs3j8E0 zz_YgAZ|j4o{ufc>uP!J5igeg^{0lYFZPboJs<;;zjhc8d>ed#cCR%~P3}7$=s0{?H zJ1~ZNJ8JwP)chZ#*8Q@I{40`P8Z^OK`@gTn;`%!_;M+H!T@mS$dP$c!J9j&!)L`}F2^)l|T?eAec^$$>iov`f#sJnB)w%^1! z>i4ZN)ox(ZQ4d-cYCWgQ{;&!a$U4--0aPk?;sf}mZGQ)qsgF, 2023. # GeoffreyGx , 2024. # Heyian , 2024. -# return42 , 2024. +# return42 , 2024, 2025. # Vulcain , 2024. -# wags07 , 2024. +# wags07 , 2024, 2025. # Aeris1One , 2024. -# kratos , 2024. -# hemie143 , 2024. -# xawos , 2024. +# kratos , 2024, 2025. +# hemie143 , 2024, 2025. +# xawos , 2024, 2025. +# Anonymous , 2025. +# GeoffreyGx , 2025. +# microsoftocsharp , +# 2025. +# NoEnd-yt , 2025. +# Aeris1One , 2025. +# Vulcain , 2025. +# quenty_occitania , +# Heyian , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 19:47+0000\n" -"Last-Translator: xawos \n" -"Language-Team: French \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: Heyian \n" "Language: fr\n" +"Language-Team: French " +"\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -375,15 +383,15 @@ msgstr "Source" msgid "Error loading the next page" msgstr "Erreur lors du chargement de la page suivante" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Paramètres non valides, veuillez éditer vos préférences" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Paramètres non valides" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "erreur de recherche" @@ -2042,3 +2050,4 @@ msgstr "cacher la vidéo" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/ga/LC_MESSAGES/messages.mo b/searx/translations/ga/LC_MESSAGES/messages.mo index f5e197809015c897f01f5a2484d469f5affe6301..ca35d24a9aa250ca357e402a41ffaec28f3e20d0 100644 GIT binary patch delta 3009 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 diff --git a/searx/translations/ga/LC_MESSAGES/messages.po b/searx/translations/ga/LC_MESSAGES/messages.po index 4e76ce1f7..95637259c 100644 --- a/searx/translations/ga/LC_MESSAGES/messages.po +++ b/searx/translations/ga/LC_MESSAGES/messages.po @@ -2,21 +2,23 @@ # Copyright (C) 2024 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # FIRST AUTHOR , 2024. -# +# return42 , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2025-01-06 16:02+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-07 17:08+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Irish \n" "Language: ga\n" -"Language-Team: ga \n" -"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 " -": n>=7 && n<=10 ? 3 : 4);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(" +"n>6 && n<11) ? 3 : 4;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -180,7 +182,8 @@ msgid "Cloud cover" msgstr "Clúdach scamall" #. WEATHER_TERMS['CONDITION'] -#: searx/engines/duckduckgo_weather.py:45 searx/engines/wttr.py:51 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:45 searx/engines/wttr.py:51 +#: searx/searxng.msg msgid "Condition" msgstr "Coinníoll" @@ -208,12 +211,14 @@ msgid "Humidity" msgstr "Bogthaise" #. WEATHER_TERMS['MAX TEMP.'] -#: searx/engines/duckduckgo_weather.py:77 searx/engines/wttr.py:34 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:77 searx/engines/wttr.py:34 +#: searx/searxng.msg msgid "Max temp." msgstr "Teocht uasta." #. WEATHER_TERMS['MIN TEMP.'] -#: searx/engines/duckduckgo_weather.py:73 searx/engines/wttr.py:33 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:73 searx/engines/wttr.py:33 +#: searx/searxng.msg msgid "Min temp." msgstr "Teocht íosta." @@ -238,12 +243,14 @@ msgid "Pressure" msgstr "Brú" #. WEATHER_TERMS['SUNRISE'] -#: searx/engines/duckduckgo_weather.py:81 searx/engines/wttr.py:36 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:81 searx/engines/wttr.py:36 +#: searx/searxng.msg msgid "Sunrise" msgstr "Éirí na gréine" #. WEATHER_TERMS['SUNSET'] -#: searx/engines/duckduckgo_weather.py:82 searx/engines/wttr.py:37 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:82 searx/engines/wttr.py:37 +#: searx/searxng.msg msgid "Sunset" msgstr "Luí na gréine" @@ -254,12 +261,14 @@ msgid "Temperature" msgstr "Teocht" #. WEATHER_TERMS['UV INDEX'] -#: searx/engines/duckduckgo_weather.py:80 searx/engines/wttr.py:35 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:80 searx/engines/wttr.py:35 +#: searx/searxng.msg msgid "UV index" msgstr "Innéacs UV" #. WEATHER_TERMS['VISIBILITY'] -#: searx/engines/duckduckgo_weather.py:62 searx/engines/wttr.py:66 searx/searxng.msg +#: searx/engines/duckduckgo_weather.py:62 searx/engines/wttr.py:66 +#: searx/searxng.msg msgid "Visibility" msgstr "Infheictheacht" @@ -334,8 +343,8 @@ msgstr "freagraí" msgid "No item found" msgstr "Níor aimsíodh aon rud" -#: searx/engines/qwant.py:288 searx/templates/simple/result_templates/images.html:23 -#: searx/webapp.py:325 +#: searx/engines/qwant.py:288 +#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:325 msgid "Source" msgstr "Foinse" @@ -343,15 +352,15 @@ msgstr "Foinse" msgid "Error loading the next page" msgstr "Earráid ag luchtú an chéad leathanach eile" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Socruithe neamhbhailí, cuir do chuid roghanna in" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Socruithe neamhbhaintí" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "earráid cuardaigh" @@ -482,20 +491,21 @@ msgstr "" #: searx/engines/tineye.py:45 msgid "" -"Could not read that image url. This may be due to an unsupported file format. " -"TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or WebP." +"Could not read that image url. This may be due to an unsupported file " +"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or" +" WebP." msgstr "" -"Ní fhéadfaí an url íomhá sin a léamh. D'fhéadfadh sé seo a bheith mar gheall ar " -"fhormáid comhaid gan tacaíocht. Ní thacaíonn TinEye ach le híomhánna atá JPEG, " -"PNG, GIF, BMP, TIFF nó WebP." +"Ní fhéadfaí an url íomhá sin a léamh. D'fhéadfadh sé seo a bheith mar " +"gheall ar fhormáid comhaid gan tacaíocht. Ní thacaíonn TinEye ach le " +"híomhánna atá JPEG, PNG, GIF, BMP, TIFF nó WebP." #: searx/engines/tineye.py:51 msgid "" -"The image is too simple to find matches. TinEye requires a basic level of visual " -"detail to successfully identify matches." +"The image is too simple to find matches. TinEye requires a basic level of" +" visual detail to successfully identify matches." msgstr "" -"Tá an íomhá ró-simplí chun cluichí a aimsiú. Éilíonn TinEye leibhéal bunúsach " -"sonraí amhairc chun cluichí a aithint go rathúil." +"Tá an íomhá ró-simplí chun cluichí a aimsiú. Éilíonn TinEye leibhéal " +"bunúsach sonraí amhairc chun cluichí a aithint go rathúil." #: searx/engines/tineye.py:57 msgid "The image could not be downloaded." @@ -528,8 +538,8 @@ msgstr "Breiseán Óstainmneacha" #: searx/plugins/hostnames.py:104 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" msgstr "" -"Athscríobh óstainmneacha, bain torthaí nó tosaíocht a thabhairt dóibh bunaithe ar " -"an óstainm" +"Athscríobh óstainmneacha, bain torthaí nó tosaíocht a thabhairt dóibh " +"bunaithe ar an óstainm" #: searx/plugins/oa_doi_rewrite.py:12 msgid "Open Access DOI rewrite" @@ -537,10 +547,11 @@ msgstr "Athscríobh DOI Rochtana Oscailte" #: searx/plugins/oa_doi_rewrite.py:13 msgid "" -"Avoid paywalls by redirecting to open-access versions of publications when " -"available" +"Avoid paywalls by redirecting to open-access versions of publications " +"when available" msgstr "" -"Seachain ballaí pá trí athreorú chuig leaganacha rochtana oscailte de fhoilseacháin" +"Seachain ballaí pá trí athreorú chuig leaganacha rochtana oscailte de " +"fhoilseacháin" #: searx/plugins/self_info.py:9 msgid "Self Information" @@ -548,11 +559,11 @@ msgstr "Féin-fhaisnéis" #: searx/plugins/self_info.py:10 msgid "" -"Displays your IP if the query is \"ip\" and your user agent if the query contains " -"\"user agent\"." +"Displays your IP if the query is \"ip\" and your user agent if the query " +"contains \"user agent\"." msgstr "" -"Taispeánann sé do IP más “ip” an cheist agus do ghníomhaire úsáideora má tá " -"“gníomhaire úsáideora” sa cheist." +"Taispeánann sé do IP más “ip” an cheist agus do ghníomhaire úsáideora má " +"tá “gníomhaire úsáideora” sa cheist." #: searx/plugins/self_info.py:28 msgid "Your IP is: " @@ -568,30 +579,34 @@ msgstr "Breiseán seiceála Tor" #: searx/plugins/tor_check.py:27 msgid "" -"This plugin checks if the address of the request is a Tor exit-node, and informs " -"the user if it is; like check.torproject.org, but from SearXNG." +"This plugin checks if the address of the request is a Tor exit-node, and " +"informs the user if it is; like check.torproject.org, but from SearXNG." msgstr "" -"Seiceálann an breiseán seo an nód amach Tor é seoladh an iarratais, agus cuireann " -"sé in iúl don úsáideoir más é; cosúil le check.torproject.org, ach ó SearxNG." +"Seiceálann an breiseán seo an nód amach Tor é seoladh an iarratais, agus " +"cuireann sé in iúl don úsáideoir más é; cosúil le check.torproject.org, " +"ach ó SearxNG." #: searx/plugins/tor_check.py:61 msgid "" -"Could not download the list of Tor exit-nodes from: https://check.torproject.org/" -"exit-addresses" +"Could not download the list of Tor exit-nodes from: " +"https://check.torproject.org/exit-addresses" msgstr "" -"Ní fhéadfaí liosta na nóid imeachta Tor a íoslódáil ó: https://check.torproject." -"org/exit-addresses" +"Ní fhéadfaí liosta na nóid imeachta Tor a íoslódáil ó: " +"https://check.torproject.org/exit-addresses" #: searx/plugins/tor_check.py:77 msgid "" -"You are using Tor and it looks like you have this external IP address: {ip_address}" -msgstr "" -"Tá Tor á úsáid agat agus is cosúil go bhfuil an seoladh IP seachtrach seo agat: " +"You are using Tor and it looks like you have this external IP address: " "{ip_address}" +msgstr "" +"Tá Tor á úsáid agat agus is cosúil go bhfuil an seoladh IP seachtrach seo" +" agat: {ip_address}" #: searx/plugins/tor_check.py:85 msgid "You are not using Tor and you have this external IP address: {ip_address}" -msgstr "Níl Tor á úsáid agat agus tá an seoladh IP seachtrach seo agat: {ip_address}" +msgstr "" +"Níl Tor á úsáid agat agus tá an seoladh IP seachtrach seo agat: " +"{ip_address}" #: searx/plugins/tracker_url_remover.py:16 msgid "Tracker URL remover" @@ -622,7 +637,8 @@ msgstr "leathanach cuardaigh" msgid "Donate" msgstr "Deontas" -#: searx/templates/simple/base.html:58 searx/templates/simple/preferences.html:156 +#: searx/templates/simple/base.html:58 +#: searx/templates/simple/preferences.html:156 msgid "Preferences" msgstr "Roghanna" @@ -693,8 +709,8 @@ msgstr "Tosaigh eisiúint nua a chur isteach ar GitHub" #: searx/templates/simple/new_issue.html:66 msgid "Please check for existing bugs about this engine on GitHub" msgstr "" -"Seiceáil le do thoil le haghaidh fabhtanna atá ann cheana faoin inneall seo ar " -"GitHub" +"Seiceáil le do thoil le haghaidh fabhtanna atá ann cheana faoin inneall " +"seo ar GitHub" #: searx/templates/simple/new_issue.html:69 msgid "I confirm there is no existing bug about the issue I encounter" @@ -726,15 +742,18 @@ msgstr "!bang don inneall seo" msgid "!bang for its categories" msgstr "!bang dá chatagóirí" -#: searx/templates/simple/preferences.html:102 searx/templates/simple/stats.html:64 +#: searx/templates/simple/preferences.html:102 +#: searx/templates/simple/stats.html:64 msgid "Median" msgstr "Meánmhéid" -#: searx/templates/simple/preferences.html:103 searx/templates/simple/stats.html:70 +#: searx/templates/simple/preferences.html:103 +#: searx/templates/simple/stats.html:70 msgid "P80" msgstr "P80" -#: searx/templates/simple/preferences.html:104 searx/templates/simple/stats.html:76 +#: searx/templates/simple/preferences.html:104 +#: searx/templates/simple/stats.html:76 msgid "P95" msgstr "P95" @@ -810,15 +829,18 @@ msgstr "An chéad leathanach eile" msgid "Display the front page" msgstr "Taispeáin an leathanach tosaigh" -#: searx/templates/simple/search.html:9 searx/templates/simple/simple_search.html:5 +#: searx/templates/simple/search.html:9 +#: searx/templates/simple/simple_search.html:5 msgid "Search for..." msgstr "Cuardaigh do..." -#: searx/templates/simple/search.html:10 searx/templates/simple/simple_search.html:6 +#: searx/templates/simple/search.html:10 +#: searx/templates/simple/simple_search.html:6 msgid "clear" msgstr "soiléir" -#: searx/templates/simple/search.html:11 searx/templates/simple/simple_search.html:7 +#: searx/templates/simple/search.html:11 +#: searx/templates/simple/simple_search.html:7 msgid "search" msgstr "cuardaigh" @@ -1048,8 +1070,8 @@ msgstr "Cuardaigh ceist eile nó roghnaigh catagóir eile." #: searx/templates/simple/messages/no_results.html:25 msgid "Go back to the previous page using the previous page button." msgstr "" -"Téigh ar ais go dtí an leathanach roimhe seo ag baint úsáide as an gcnaipe " -"leathanach roimhe seo." +"Téigh ar ais go dtí an leathanach roimhe seo ag baint úsáide as an " +"gcnaipe leathanach roimhe seo." #: searx/templates/simple/preferences/answerers.html:4 #: searx/templates/simple/preferences/engines.html:23 @@ -1099,9 +1121,11 @@ msgstr "Taispeánann torthaí i lár an leathanaigh (leagan amach Oscar)." #: searx/templates/simple/preferences/cookies.html:2 msgid "" -"This is the list of cookies and their values SearXNG is storing on your computer." +"This is the list of cookies and their values SearXNG is storing on your " +"computer." msgstr "" -"Seo an liosta fianáin agus a luachanna atá ag stóráil SearxNG ar do ríomhaire." +"Seo an liosta fianáin agus a luachanna atá ag stóráil SearxNG ar do " +"ríomhaire." #: searx/templates/simple/preferences/cookies.html:3 msgid "With that list, you can assess SearXNG transparency." @@ -1121,12 +1145,12 @@ msgstr "Cuardaigh URL na roghanna atá sábháilte faoi láthair" #: searx/templates/simple/preferences/cookies.html:32 msgid "" -"Note: specifying custom settings in the search URL can reduce privacy by leaking " -"data to the clicked result sites." +"Note: specifying custom settings in the search URL can reduce privacy by " +"leaking data to the clicked result sites." msgstr "" -"Tabhair faoi deara: má shonraítear socruithe saincheaptha sa URL cuardaigh is " -"féidir an phríobháideachas a laghdú trí shonraí a sceitheadh ​​chuig na suíomhanna " -"toraidh a chliceáiltear." +"Tabhair faoi deara: má shonraítear socruithe saincheaptha sa URL cuardaigh " +"is féidir an phríobháideachas a laghdú trí shonraí a sceitheadh chuig na " +"suíomhanna toraidh a chliceáiltear." #: searx/templates/simple/preferences/cookies.html:35 msgid "URL to restore your preferences in another browser" @@ -1134,11 +1158,11 @@ msgstr "URL chun do roghanna a athbhunú i mbrabhsálaí eile" #: searx/templates/simple/preferences/cookies.html:43 msgid "" -"Specifying custom settings in the preferences URL can be used to sync preferences " -"across devices." +"Specifying custom settings in the preferences URL can be used to sync " +"preferences across devices." msgstr "" -"Is féidir socruithe saincheaptha a shonrú sna roghanna URL a úsáid chun roghanna a " -"shioncronú ar fud feistí." +"Is féidir socruithe saincheaptha a shonrú sna roghanna URL a úsáid chun " +"roghanna a shioncronú ar fud feistí." #: searx/templates/simple/preferences/cookies.html:46 msgid "Copy preferences hash" @@ -1162,11 +1186,11 @@ msgstr "Roghnaigh seirbhís a úsáideann DOI athscríobh" #: searx/templates/simple/preferences/engines.html:9 msgid "" -"This tab does not exists in the user interface, but you can search in these " -"engines by its !bangs." +"This tab does not exists in the user interface, but you can search in " +"these engines by its !bangs." msgstr "" -"Níl an cluaisín seo ann sa chomhéadan úsáideora, ach is féidir leat cuardach a " -"dhéanamh sna hinnill seo de réir a! bangs." +"Níl an cluaisín seo ann sa chomhéadan úsáideora, ach is féidir leat " +"cuardach a dhéanamh sna hinnill seo de réir a! bangs." #: searx/templates/simple/preferences/engines.html:15 msgid "Enable all" @@ -1202,18 +1226,19 @@ msgstr "Taispeáin favicons in aice le torthaí cuardaigh" #: searx/templates/simple/preferences/footer.html:2 msgid "" -"These settings are stored in your cookies, this allows us not to store this data " -"about you." +"These settings are stored in your cookies, this allows us not to store " +"this data about you." msgstr "" -"Stóráiltear na socruithe seo i do chuid fianáin, tugann sé seo deis dúinn gan na " -"sonraí seo a stóráil fút." +"Stóráiltear na socruithe seo i do chuid fianáin, tugann sé seo deis dúinn" +" gan na sonraí seo a stóráil fút." #: searx/templates/simple/preferences/footer.html:3 msgid "" -"These cookies serve your sole convenience, we don't use these cookies to track you." +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." msgstr "" -"Freastalaíonn na fianáin seo ar d'aon áisiúlacht, ní úsáidimid na fianáin seo chun " -"tú a rianú." +"Freastalaíonn na fianáin seo ar d'aon áisiúlacht, ní úsáidimid na fianáin" +" seo chun tú a rianú." #: searx/templates/simple/preferences/footer.html:6 msgid "Save" @@ -1237,12 +1262,12 @@ msgstr "VIM-cosúil" #: searx/templates/simple/preferences/hotkeys.html:18 msgid "" -"Navigate search results with hotkeys (JavaScript required). Press \"h\" key on " -"main or result page to get help." +"Navigate search results with hotkeys (JavaScript required). Press \"h\" " +"key on main or result page to get help." msgstr "" -"Nascleanúint a dhéanamh ar thorthaí cuardaigh le hotkeys (JavaScript ag teastáil). " -"Brúigh eochair “h” ar an bpríomh-leathanach nó ar leathanach torthaí chun cabhair " -"a fháil." +"Nascleanúint a dhéanamh ar thorthaí cuardaigh le hotkeys (JavaScript ag " +"teastáil). Brúigh eochair “h” ar an bpríomh-leathanach nó ar leathanach " +"torthaí chun cabhair a fháil." #: searx/templates/simple/preferences/image_proxy.html:2 msgid "Image proxy" @@ -1259,7 +1284,8 @@ msgstr "Scroll gan teorainn" #: searx/templates/simple/preferences/infinite_scroll.html:14 msgid "Automatically load next page when scrolling to bottom of current page" msgstr "" -"Déan an chéad leathanach eile a luchtú go huathoibríoch agus tú ag scrollú go bun" +"Déan an chéad leathanach eile a luchtú go huathoibríoch agus tú ag " +"scrollú go bun" #: searx/templates/simple/preferences/language.html:24 msgid "What language do you prefer for search?" @@ -1267,7 +1293,9 @@ msgstr "Cén teanga is fearr leat le haghaidh cuardaigh?" #: searx/templates/simple/preferences/language.html:25 msgid "Choose Auto-detect to let SearXNG detect the language of your query." -msgstr "Roghnaigh Auto-bhrath chun ligean do SearXNG teanga d'fhiosrúcháin a bhrath." +msgstr "" +"Roghnaigh Auto-bhrath chun ligean do SearXNG teanga d'fhiosrúcháin a " +"bhrath." #: searx/templates/simple/preferences/method.html:2 msgid "HTTP Method" @@ -1283,11 +1311,11 @@ msgstr "Fiosrú i dteideal an leathanaigh" #: searx/templates/simple/preferences/query_in_title.html:14 msgid "" -"When enabled, the result page's title contains your query. Your browser can record " -"this title" +"When enabled, the result page's title contains your query. Your browser " +"can record this title" msgstr "" -"Nuair a bheidh sé cumasaithe, beidh do cheist i dteideal leathanach an toraidh. Is " -"féidir le do bhrabhsálaí an teideal seo a thaifeadadh" +"Nuair a bheidh sé cumasaithe, beidh do cheist i dteideal leathanach an " +"toraidh. Is féidir le do bhrabhsálaí an teideal seo a thaifeadadh" #: searx/templates/simple/preferences/results_on_new_tab.html:2 msgid "Results on new tabs" @@ -1307,11 +1335,11 @@ msgstr "Cuardaigh ar roghnaigh catagóir" #: searx/templates/simple/preferences/search_on_category_select.html:14 msgid "" -"Perform search immediately if a category selected. Disable to select multiple " -"categories" +"Perform search immediately if a category selected. Disable to select " +"multiple categories" msgstr "" -"Déan cuardach láithreach má roghnaíodh catagóir. Díchumasaigh chun catagóirí " -"iolracha" +"Déan cuardach láithreach má roghnaíodh catagóir. Díchumasaigh chun " +"catagóirí iolracha" #: searx/templates/simple/preferences/theme.html:2 msgid "Theme" @@ -1524,3 +1552,6 @@ msgstr "taispeáin físeán" #: searx/templates/simple/result_templates/videos.html:6 msgid "hide video" msgstr "físeán a cheilt" + +#~ msgid "dummy" +#~ msgstr "" diff --git a/searx/translations/gl/LC_MESSAGES/messages.mo b/searx/translations/gl/LC_MESSAGES/messages.mo index 722ba96c8ed8360962ee8313d16f45c5658ead15..725ef3c0ac2d0f14493155790607c5a1904ad8aa 100644 GIT binary patch delta 2780 zcmX}tdra0<9LMp4a#4_5prYI!HBFZw50@uyaw!Z#M4g(}!iJaCkVFuf!;N1hm9EP& zibiPaSdKqz^RAmt*R)yFrLLAsrIcASGo5CMR;%}ibIQ5B&N;u|?|jeqd(L?{+7oo5 zCumoDxOXwgm~|P(gcxHMW*Xze8ce`8)cA)u1-IZZJc+~cEXLpkH~tHbpnn%5F(}KJ z`5286xD1!zDh$Q1vy3-5(FF$L8MumJcpvjHDBA`oz!dsbn1(BGB6eXi9z#F&p%xsS zV*`%FS@g#tIhqEXfZI@UPULvDahd_G_!}IL{TPlR0UIC&AEKX*#4x28g)OLwUUR;U z%IpK2jGM6zKgW+T<1riO3_e1?&!aJvMo6wP!8ja8V-zajBvk40FdAo|GFgCQ@O3Q2 zZCHbSsCfz~Up$tewrl}vYZjv_v;vi|*GOZG8mNF>sEl^vINXPE_$?~4>!=BCqb9zG zs+7sM??s?0lZqoT9re5nwV>IkGqVht*E4Hq#4@lE6R{h$fP<(2$DCiF0-rHq=iy;gC8MX?N=(22@l7s`G1!1A@kUe$-*x@1s0?PW?pGixsGf%tt-1L1nxgTd)qb zhgVQrat9T70F}rP_CseU2{lg<>UlZ7fpbx3;k#n?Ux(x-1Ntzy#GZi^q}nDQbvs&| ztXRh&nrWT>ri^w9LL2hlDVt$c;7aIC%e$($MKWjXu1DTG`(? z6^GBTr4FDzs6_4gBG+Gx+KPH?#+OkU|Bl+y_$O`2(~)AC0BZiVcHA@VG(s783zM+} zRqEZSk{xmV^Qe;cqb9h4sW^b^F`?XU&1TdO*(W$24`C8s#DzHEoKvCa?0+u}mF5&K z!lbXJI%tU?lNP zs~gyW%CG}9;T9Z*J*Y#r(>?zI72s#oME6l=Ah^m_G8TjBC!i0LQP;KzHSd1ZLJp%> zLgO9{7Hx88*$LO9R{Rd8<91ZQv#8r~8MUz6s0BPg1q`XSgyBrohx6Qv&*K#Ob*T5=cjMitO6@>RybB}o04m@KjKXuy%c$>f;ZXbo z_1%MN>aPc8w#_gMmC0z-f|5|z@L|*k0XJUg`en{aR7K{XD)bC$-a6F68c`MXT>m}P zwce%yO?&_q_=xL&hFZW$)GauJn(#VC;cZkPGsgywMg1U+MO7dZ^K0J+j?|bJ@s041JN_!V|-3Cy%X5?JEup)ex{?n*R z>_#(g$=+M>R}v$0(lY#M83CU^knaz4^kpOl{vXN7&&hf;gMZ;wwX2)c<~P-@TwPz= a+|ZQoYg*pCrfFq%rmyh7*51kfPT#*+y+$|y delta 2774 zcmXZc4NR3)9LMoP$lJw>FClm(@M_B-!7i`zVj!fVsG#YB+OR>Q2`wE^(=4ARl`XTE z5jb&`)6KRtMIA2Iq*>`gSIebRMpkBK!!W^WVUxZ;p2OHa=bYzx&j0-X=bZcbo}jKh zLG3SkoO40OYz!C^VvJduW{e-paU!lqjlYFSxE;gsI7Z+p9E)e|_^&vcem{Eg7B0t# zbYmiM1y*A%hT@m$#u=IDECbODT*NRO#2mbZ3Xqv$Oajis6s*B}uo>gA6H~DVwcv7$y&+a2;wQ$GQcT z*&CRMtyqhn;JbL=OgBz9-b=s7p%F}D7)N1nwlT37jtb~Ul`b8}U;!$VGW6jKI1Agb z5_?edWKzCp%tdWk8ER`PP!*~{CG6DE@X^?S3fPRwXfIB|19&HXjmqpYYJxu0#5Yit z8bZAnlIvE+hZE>0qMqlY7PJ7hr7Mv49kZ6kI0l+94qH$QID`t&Y5f!x_%vz{&!E2h z3kxtT&kb0Nsz9Z+8kPBKjKN0K;oUmYXa8GhDA0cNV+U#h=k54KETsP%YT_j7EoWdc zrlYoIBPzgF`+PU5#P8!W>_Am0;sLi3@t8$?lSadbYfvR_LLIJGZGQ(UgI%bz@S%O) zY5QNG7JL?!S+DJ1L6yEA_1(X=ACm9J8HC>hZARW#V`YPJJwkn zt?N;xd=8c2o7SE9IQ_lIzwxkds@y`|C?`L93bLzUM_km^{qEO*nG@Kcb=2dlLP49<{Q6Fd2jA zx}^@FKA3~r^M`D|0<{&Zuo0g{WqcjArBU0RO+%$QffX3O zz^z0Tw$k5>iRdd~Kd}gPJrAHVJ%%CJiwbxNRnd@z?yZ@CTF@lap-w>$u0b#HO`{#y zjLL8uYQpUpj_;rj*Y%G?f9rtcZ<9@nsFa0@HEu>$*6_S zET#TxF2+@4arvTTqqSg_`&S^kO?IU>8Q=Y3l{l_rGH>{)zhT zW-0a8gCPc#VNjWy$vD)4Vo=vG0rf$^j%V3^zI6_&A|, 2018-2019, 2022. # ghose , 2023, 2024. # return42 , 2023, 2024. -# ghose , 2024. -# return42 , 2024. +# ghose , 2024, 2025. +# return42 , 2024, 2025. +# Anonymous , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 19:47+0000\n" -"Last-Translator: ghose \n" -"Language-Team: Galician \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: return42 " +"\n" "Language: gl\n" +"Language-Team: Galician " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -357,15 +358,15 @@ msgstr "Fonte" msgid "Error loading the next page" msgstr "Erro ao cargar a páxina seguinte" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Axustes non válidos, por favor edita a configuración" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Axustes non válidos" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "fallo na busca" @@ -2013,3 +2014,4 @@ msgstr "agochar vídeo" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo index 14dd091cba2dcaa0723cc518fb121c6e772e8c0b..289a2db688e48526916bcd6615e849c0f273c5d8 100644 GIT binary patch delta 2749 zcmY+_drZ}39LMoT1wud&<)DD*Aq`PHc(@!Cyo5?B1}bui&@`gcq6pYIn7V8~b6%EC zGsxDmY?_yrnJ6{QG+Q=kwb^W`ZT1hjvgk5brpt2c{qgs#E$7bbxnI7|^Ze-V8gQd) zKvzMG;~i*BY<1sdoCYR5le7GB3xOfNL10;ggkZbC)i6;%8Es0DPP z7Wx6M#f#XFRa4xJ%$#bBkNgrGgzFp<8ejvC!52^y9riL+HmXApDpX%%JYGf(*pFWP z0~L{^X|9>5Bb$oqUvA6mQ44CuEL@9h+%fw}Xy7i?z-N$qWj;gg=oZeyq0@~Shjkc% z&sx``CfbatxDz!|7kcqy)Hr>ph22EW6FY-rVSbZDLIXZ-eF~S751~SI4%6@lRL6lc zjTwxws7vZWO}GL_V=I>9c1*_0sD8hr7VtMJq6zmhKJ%Mo5-FHtoo{^vbu?>H13Ztq zD;+lfI*ufN0CfasZ2fubx2UteifR{M;*K-k>PJUAFCuXoXQFoU4{E}=S?&TnsGZ!6 z_hS*Next45j=kh}p?26f+YR|D)RAnnzJ&|PpGDpNVRMMT63KJif>hK*qft8zpe8E8 zb}YlW_z@;yWT_juR8*u2P?4C03UQUq*W3DLRHWCS#_ue3+>W~`&`J;Ceb{3g#*xwG z$wYOSj^l71s(rI{GwKrW#bP{)io`EC6t!wCED?35#^OYr=8&i+@fhj@^da8qh}yZX zz9t@wT6q#`f*jOQG$Bzp?_&nuL`{@3-RVACo(-rFcc6~$4UEEW)OaVc1ka*E zA5rOUFd5^R-(=W=92Jl+LUo*rS-1!f<7(8vnM?Qsf$r zwW#uas1MmmRD>_0qlx-R48wj@{x%N9C~oF(9D(YPjaonlG{)l?Ff1(B$QtO(GYCpz02{mvL>baKK zd_8)|H=s7Q%I3E^By@@PpdxStwX-v}!Fkk#S5XsPv-P)8J4<-L{Sc+1jx2x*^;}zC zgKF1ieFinoCe%VFbdu1sdKG8h(4mGrdn;Y6&L&e^3Lt`lT ms4pB0wFO(+z0?1nFIh=NIH#pG6l`l=lhb~uV|R+bGV5P`Ay0k) delta 2716 zcmXxkdrZ}39LMnoP=lkQ2zWW59tib-o^d!H)Q)IgP=vUND6PCPg2p5_Wt;LV(h%0`{nyQ&+k@OOmA0A zSJ>mE#2Pa{*O

n1(!KhGP?^;*03P4vgR-jK^Pa0QO>k{KuBZg^U?NegLN7SbQ93 zVG4HOF6=^$Q#jE$4<;&`=uTLN4^goWi*XYs<2g*npD+jS;Yb`8HYSL3Py?>9I#^GB z8!p4^n2+WBXk%NjAMVR{+#SA2fd)E)+VPL*$E)bYq)En<;RH;=^{5EEglfMRwSZ34 zLXYBecouuHXtKMJ&=g|=Mja9wU@eZu7f=%(wB?`SK=NlW121AB-obX9{)oGf z3z$m&SJXmo;~}p3jpN0!=*MB`RFKe4p2lp9qRwtVszVPdR9|5to<|LM8GZOW zDkAYyUA?Fyn}F&+!8Jz@4apyOH~3K0)p1Iu>D{0%NkU6#L+_ z)-|Y!HlP=`qbBM^AAX1$=K^YB*HH7^#|6x9;-|R-F1FUA4cXlA+#NI>mmC_aV( zRQ)D14(`K72MYs7fmh(yLQTS;i=d+;2d zK@aX`dkXy<$iMlBAMG%fx7CJOxE~LrA4|%NslZmO!_QIW?SRDB)l!?P9@;x^RL?ZSTe4r;t(I0H|hLVp{z zLC<{pF~3PAp@K{mU;x!If_|KhN3jVtu(!$>{!IoyJOC5Lh4?WlVu=gfon|3HFeRw+ zJ*W@aG1Po#(a}T~NDRTtsQe8ajCU~^`*TCpVKiz1IjDu^q1sQk^+nby3{k!W)&3RK z>v+x9A42szUQPV_ljxyf5PpG4_$_MUtEh?Yp%$3HHq|j5)ozS+vMn!0wXecaxD2)M zjo25rqx$baEo{$1`~DA5kV?T3)BvZf=dC}W-t8Z#0b&-pdQk0?tv=Mi0n~F1+k82u zl3$40*b19>91^-jyHOE1h}v1VZEzYj;U&~WS8V+a)Xw5++z(MA>d3NDp^n({VpO}Q ztj(x#)}t1hy_JNX)yo*bF4QHtjEnIuD)cqo#VJeDmWBg)p+MdwUvNrfVsLzrKTl;v zpsIdNV{2pc%0OXlv_9es1w*vU3xx80d7((ywkxe|jRvY)YFD;4)kd3JBEFXT=<1f0 P;gGN3|5W$jV1xfZZ5ct3 diff --git a/searx/translations/he/LC_MESSAGES/messages.po b/searx/translations/he/LC_MESSAGES/messages.po index f97a933cb..0d99c5683 100644 --- a/searx/translations/he/LC_MESSAGES/messages.po +++ b/searx/translations/he/LC_MESSAGES/messages.po @@ -13,18 +13,21 @@ # Shopimisrel , 2022. # return42 , 2023, 2024. # shoko , 2023. -# return42 , 2024. -# sacred-serpent , +# return42 , 2024, 2025. +# sacred-serpent ,, +# 2025. # 2024. # Shpubly , 2024. +# Anonymous , 2025. +# shoko , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: sacred-serpent \n" "Language: he\n" "Language-Team: Hebrew " "\n" @@ -366,15 +369,15 @@ msgstr "מקור" msgid "Error loading the next page" msgstr "שגיאה בטעינת העמוד הבא" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "הגדרות לא תקינות, עליך לתקן את ההעדפות שלך" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "הגדרות לא תקינות" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "שגיאת חיפוש" diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo index 87b9395ec7e8425defedd609eb621f73af2161d8..eab394f337df6e297d47c4b551f9a6dbe7d5c90c 100644 GIT binary patch delta 2726 zcmX}sdra0<9LMnkhzbId+;2k2Ga>fKoe&5f#SrA?q|GQxz`-o(u>i4};BU>}0 z85YqWxM{jFE39nU3cF9OoNKNNRL<0#qt%*oqxZ+(S&sQS-}C&=Ip6a==l8ob7BDjw z@Me9e;|(-sZ;mm+#+Z|N#w6g^7=;&bE?!3u2ILzv50~P6%&~C^YP=6`!D@`dyKx;p zY~xR`ocKIy-uMFJm~a}Y1?Hw+)B-AtnrSX5|CD8}O& zT!K~TN7giNp%VWc=it>s$Cw2){-R?E&SE4kDKaJl3sDQVU>5eFejh_EbObfwaa7`y zn1tV8EB=9FxTe@m_%bdg4!+%(Ak1)RDDzBI>6T#_`cN4*U<9tiL~O$n+=1=*4u)Vn zof@BxN~91qPdRG-T2$gq7=^945S?Bc+Q|Se#pmn;6R4eig*vP6ZG0ZJz;AdfUO^=o zvD~d>3N9kfLiLy1xDI28??(^zBJ(CBp@hZk)Ua4D|T5BWf zxn@)aHllX^2*zSRrrV;*l(dZ*iKuvrPD)UYo??5fE6Lp)1 zQ9Jz>RoW@kW&0ad@=PAm!pl+dO4N}wV+8A)7Bz6Qb-Q&CRqA2uE7oyT0*6rvzK<&T zN&EW`s3V&~C3F#W#5Yih%)7%)AQByA5=&zYlTj0Wh^okG)WEZ-Tl)*@^_xX4kY3?V zl!ar&IjGn9G-^XX;bQ#L8dhlxFM!EL-TwAU>aRwp?RXI5iT$WEdJ2{CZd{Ke$e)?v zKkYo<=l)({U5&Z}Yi-<)+Rzr%M*1-tpGIw9)aSS*9;YLLj>DLVpP_be4OQw{R3c$3 z+)EgPX~bUCgpH^LHX+Au{FsObQR64^<{hz4VG{k<92!kD!nooZxB+!*_o6EB2I>yH zhbryIn2)EBp(e1(7``!P73%rNQ3(xT3ciF&d;+ua1gaueP?yn}r4dXca+O=sSkyx4 zxCL`j6?qx;7EGc_cOJP(JRe=`Njyq8aJ%P;Qm}h9{ET6|@ z97RsWe1LPXtlItEhf1U#GjJQ;izC>I|DYx;O6_*K+%ucJ121a-v6P#gII zb(CissJ}YS(xCxAq6YkmI`d054rz4zBQc!*II9QsIu)SCSECZIx3-|>??hcfKWhFb zQFm*XLqijcqaHkF;}aM`{2l7drfocfI=cWq8ZrvCpa+#eK5Bsy)c8u&&Kpq`+lZ=g zJF0Rk`e2j4}#o)@qMgVws2>%OCpMfWC!7kP8@yt&0`dBvr9 z#e1&jBvt(1Q&d`1ke$oF(E7HXUhiGqZT_CFw%)DXrD@F_o3?eebvO5R^mU|__qb7y LqN8=WscHWKsE9m$ delta 2704 zcmXxkeN5F=9LMpaBH)#ah!DwxUc?(J-nhW^dPC(w5C|~CEE5|8oAgA`kZd*MXQpdb zw1h_X2M$fw=t)Xjwt}9gR?aoogH%q_oTJs6b7SgUy+8a;4);3WbIk1J7VIUPeD&#TcBOZ%iy^qv9ay`3O$OB22+M zaWy_@) z#D_2qzs5#9hyA!b>?V93XA$4PNto^|b~E>(N_Pv!VFZ=o3XI2UOvQB=!4BMj@8A?n zpi|GMq7qq%nkR&+OereyN}PfB;xu$xXlN%}FdLt<0}i5g_9g19zO(Tu)B?X^CSE`# z7=4>t$z)6<&P4TxY+Q!P#P^^dTabAj(@jGQy@uM!J`CX7sG}Ld<#-WOaDJg%nNn*7 zYFrJf0&7t_e+X~F&6t5*sCC{#t#cTwSl|>XvqWgD5dvN zMIN>zzDFI>X;cblQHOd3we-KJC1aPl#$!Km5^A0gP$f8qdhP`3n*NM>-^P|vC@qj$ z;D+B9P-?n6y5gyXludK%N{zl5tWiaV|6)}XHG%cu&xflBZ_RAoOx z-6rQK4W2dEkgtkaTIN2`j!I|?X5cPV<_9qckDw}Y0d@VxaQrTmyA_Q`EtHCn;5<}C zUO`>^Asl~EPto8WnGw{^Q&zYS&Ov1yM4e>>Re?IxjvG)3J%u`gXHl2`*07c|2po%#47h=z8_nNkE1FP zzTF*HiP6Ljs10mHUE)rhgnbxMhI?tm;s|Po=dJ&sj^GBWGKtl0MKVxF=11Ly2WMeN; zHP1Gjf;-WJJvbTn*myrGk%Oos`LLGyYv3pLhojb$sEYiAn((Z36z36NK~0>o()~RP zH9lbDFzSOqHq`T5R#N|oG`7*933gat!l}fs+JUd5b~u1K<3ZF;K1ZG9 zaT}jNP5c9D{4c08|J}wD?r{5K(M$g{$2KxhuTu_cf+AGr<<>gXf(@uk*o<1>Y1HM~ zj(WZiHEz(xM=+lFThx(_*mx9mbk0@Vn9A2f3ud4aSb$m}i1D}>wet#8#nz%qT#u?; zE9&_tPzh{DJ^v!=1J;AN_%7=8JcH|WO|H|>Ex-HFlSv(E-cTSfKadyp1tWz8!Jccm zX<>Tu0{M%4dHIE*U`~*Kp4z5O9f39NO|6?+nmXFr3w`YyJ05Ru4dwfm{@*%uS8%rP EKO_1z>i_@% diff --git a/searx/translations/hr/LC_MESSAGES/messages.po b/searx/translations/hr/LC_MESSAGES/messages.po index 70fb4f5cc..14b6927bb 100644 --- a/searx/translations/hr/LC_MESSAGES/messages.po +++ b/searx/translations/hr/LC_MESSAGES/messages.po @@ -11,18 +11,21 @@ # prljav , 2022. # ptomljanovic , 2022. # return42 , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # Uzakmo , 2024. -# ganoci , 2024. -# madnomad , 2024. +# ganoci , 2024, 2025. +# madnomad , 2024, 2025. +# Anonymous , 2025. +# Uzakmo , 2025. +# SecularSteve , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: SecularSteve " +"\n" "Language: hr\n" "Language-Team: Croatian " "\n" @@ -364,15 +367,15 @@ msgstr "Izvor" msgid "Error loading the next page" msgstr "Greška u učitavnju sljedeće stranice" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Nevažeće postavke, molimo uredite svoje postavke" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Nevažeće postavke" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "greška u pretraživanju" diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo index 15df80673fd2fc599704094c0a750e915f566534..73474863ae43e8dc6b02dcae546c6432cc0f5c13 100644 GIT binary patch delta 2766 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 Zv1#wl=0=~_wa14|u42c*tlV!i{|Cw9Mt=YR diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po index cb32df8df..6c516f42c 100644 --- a/searx/translations/hu/LC_MESSAGES/messages.po +++ b/searx/translations/hu/LC_MESSAGES/messages.po @@ -12,26 +12,28 @@ # Lakatos Tamás , 2022. # return42 , 2023. # kratos , 2024. -# return42 , 2024. -# meskobalazs , 2024. +# return42 , 2024, 2025. +# meskobalazs , 2024, +# 2025. # Kran21 , 2024. # kratos , 2024, 2025. -# elek , 2024. +# elek , 2024, 2025. +# Anonymous , 2025. +# Kran21 , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2025-01-01 02:33+0000\n" -"Last-Translator: kratos \n" -"Language-Team: Hungarian \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: elek \n" "Language: hu\n" +"Language-Team: Hungarian " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -365,15 +367,15 @@ msgstr "Forrás" msgid "Error loading the next page" msgstr "Hiba a következő oldal betöltése során" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Érvénytelen beállítások, módosítsa őket" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Érvénytelen beállítások" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "keresési hiba" @@ -2011,3 +2013,4 @@ msgstr "videó elrejtése" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/ia/LC_MESSAGES/messages.mo b/searx/translations/ia/LC_MESSAGES/messages.mo index 27b1e214f63e327913d5bc2a88caa3a755b08468..4c821e8c8dbdfea2e1bb9cae4e498d52cba4bbf9 100644 GIT binary patch delta 1048 zcmYMzUr3Wt7{~FabWWM8)mEBYlv(tT%}w1{tIz_Wi-L@xKhVWm%M{t<-3)diql>^R z6AS`x2ZeXSg1YO@D+?mB8wqa(38M&!!oENDLNMOXIp;m+InQ(6v-R}P^wLUG_3JJ( zf55EG%r^I#wc;;Se+T{8w%_aqc3=+2@d$pv)A$XKVQ0{cP<9@@comQ1O>Dvn9>i&6 zi9HWm)qFHwG4KfM7{Uk-1xlb6Tt)@FgGw-q3NVhEH;vsmi<-BDJ@^*2ehr)PhwHZM z-%z#jV)ubYK(A{TwzD9L{4B$x6R+bSj-gIw5%=I5R3ghrZ2N+HaTAr$AJn{NvQYs+ zY{5vChAQbn52mn&7f=D#Q31EGA3Yt7qdez&(e)B4&M+#m+o%E_B45!;co?5zAJ*^? zR#$0+X>8$HY^O|RoJIv0LT!8vRlyUa7@NZr_!3pg3aYYCsD#(t{&!TI->5s|Wmnyq zlX#2$ZG=Xafko6e^K~^g=tXj}VN}3-?zn?GsTtJWnMGZ)1ytqlP>H<9Q@Dznzk@2w zL$xZzkGg*raR=h4g@dkFP)9d{3XnrpI_CB#-S>}CfoD+vnmJUQ1=O9Wq2jzoZM=-! zbNj6R0F4bA%6!|kCDPa^gqj$}GuVq9lHILWyc@0lWHg?L##2WVsZ1g@Ukrr*k0dk6 z{`nVy?x>S5PdSBwzM-j7-YLZjMJGQwQHhnEY@sxfE$3so;)DGCyfYdrI-~WEfoHyd DU9oZe delta 1028 zcmXZbPe>GD7{~D^*4zo(+*3hdS;^io|SyGVEqB#a^~5+O2+>Qvt!JFv{>ecyTC=Y5`c-u;>Xn18ww3Eu25 zi^a`$nc3=IGY3DR`kNTTUpRu1eP-8j43FRo?8SH3i46%eLfLVQVjjD27$aE316V?q z*xiH$)PH+o6s7&34mIB0oFE;}D+0(>RJcnK|5p^Qc4?kP!A7n{gGD&{x#F@2CR) zVIw*L>1pF;+=-nyk3FaWE2w~Ln8hvBQFb4!+Z*bl;$%>Xok0~af_y!@ifwoceXL>< zgC!a%8f(~xe^42BQLX}-``J1T1 zworxqMcqGhC|?7usD*u@In>b&p#oe)RXQ5>FNg21p#oP>|C$+8oLSVJsG{OLLhZAF z+;e-SevZal8p?b<^apAqYpqX=;t9Gbu~ s@A`hbH!$e=wfpgo^muXcbG+L0AB2Ex_W%F@ diff --git a/searx/translations/ia/LC_MESSAGES/messages.po b/searx/translations/ia/LC_MESSAGES/messages.po index 774d65d81..44049ef34 100644 --- a/searx/translations/ia/LC_MESSAGES/messages.po +++ b/searx/translations/ia/LC_MESSAGES/messages.po @@ -5,13 +5,16 @@ # Translators: # Guimarães Mello , 2017,2019 # return42 , 2023. +# Anonymous , 2025. +# return42 , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2023-06-22 09:02+0000\n" -"Last-Translator: return42 \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: return42 " +"\n" "Language: ia\n" "Language-Team: Interlingua " "\n" @@ -352,15 +355,15 @@ msgstr "" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Configurationes non valide, per favor, modifica tu preferentias" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Configurationes invalide" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "error in recerca" diff --git a/searx/translations/id/LC_MESSAGES/messages.mo b/searx/translations/id/LC_MESSAGES/messages.mo index 8a7b20e7ad1e6f1ae615ebfbb5a241ddf95a3252..c5c6318ba5f616059c637c4068c6e832e18c5908 100644 GIT binary patch delta 2766 zcmX}seN5F=9LMp4fIM>rFW^I0P}D2Zl_xLCgMz5x6JWV!Z52`D8ey`Aw*;&^XEVb_ zOQ!Z9TM>U~S#xTpWlhL7b-7Vc+JnZlX$EP3xc-o>dVlzxdH;ExbMATgp6@xo)7c%i zuRHAUE3u(#VaBxO8WU-Zsm(Vg73v z)BkJ_q44DxMn&2+#l0_9e3wcq2%(M0RsD(>#E|#M* z)QFYXf@#=`>i3iN3TnY?sDN&xc0R5|{W<>x3Oa&Ws0g!AXIX^mSb@v13N`U=>ppyz z`hHX(QKiOA#1vEpvQXm-P)D>F$Ic$ruLE;f-*i*Z!r!A(d=)kDrmf#W-HlPyLg9;? zlqR9-8L0o~p~e^5`Xbak%TY(L)>?~WM~NY&I7nd%wxK56i^@O`YR4a2k6=6X&rmz5 zU|Sl$4wd3Z(T(*u16xt!yHNeQQR5Gw)+s16)5gwzNtrSC(NK-)*obp*SLbxs#E=f> z6fL@5r%}oM5w*7=Y`|gU+cXcCJE81CeJ}e^{SKl+K8DKGH>i*Tsf!kMT&RHLrdW2l@pp|-LG)qf8v@DEWFo!K9AaQ3r@#& zRA7ft89a`fe*~4G(GUeK6t>JsZ8T~EH@4v{%)s|isp~@x97F~Fv#nrl;Z;n>*YPACvh9HfoExrtTpwtebBD{r>7`e(h+c?xEn~rL~AN4`!Bk#1Su=Q5d zU1>*sFI~2N5H;?UwGS2GS)8CJDr~iLNs=*&Kc=Dr%EVaALrqYMGqD1jaD#2Xhh&sF2Onp)t-skP!?*v;u`YrqEJSIc36YzSZC`SFp+u-x^SoUE!4sXPyv35 z3h+ECkU`WuLpT|)qvkPdos79qbJ1~Inp$nsq z-gN&x)$jM^=J|39Gx7?H^9r+b`NgiS@jX=kLPK*y(yaf{nq=!Ho^g8Kw7%NBwzM(*FluM?TX4 delta 2782 zcmY+_drX&A9LMoPfZXIFp$rp$5OE3m#r-OR7N*=pv$h)11`G);8F5Kv?%9mA(X=Tw zrIj(KMXfm!DsAX&smqO$(k>dqrWJ;NfD7;$d>S2m11C`x+LCWfBKA5od}$1!0*+ufj$$Z|p#oh-RpMvsEu2q3u)vrS zT#W5lhnoL2hTxB=E1E)8_zzTqK9ob_P5=#M6p31pfSQnwv6zcG$vT{a8&DN%v;8hq zDYu~#>P00mfRXq5>Sbx+I|Kqa6YDDF{(n% zxDq=t8c(3+eQUjp3U~#T&<)hd|G{YDo1i7`6~v=5OhnyfE^1;4mSH(+* zb^D7@&r?zBvuwW*wa;?Y{3>fL&R!)tDsdZ)h4=z0z+O}Z22dw{&w2!V=?|k$Qo^yc zz6Mp|$1w`)@m}mgt?x(8JAhh$2o)#2l=|!LmzEl{2rJNo&6t8aarW0?9kCumy=)dm6!Hr-YnQo+?L_^0`cU%@qYf~%%yCQi83W4joPBT}RnnhO3$LRB{fR1_ zAD=OuGz9O*IMj(MP%qgNs0waG9jpU2e-A40cToF{IyCq=nX`7nU#Nu<54ju0pemG% zdTDZS6|TZ$+=IH?{pi1l9();(~dqaVm+#~6Q~5I(I0&(+`A1xy=1Yd@f6h0`$6QZZAxsv3nPhdcF<5M z`!#@vQ45b*Pofe$jk>Da7>Hq&Ze^lT33)IWy{PpCcpsKvD>mBk3s_435;~1EVygH{ zh1)O)e?`5mH&GM)tK9%AQ18MzoP!M*fGwzm+H8NT?Qh3W#$Q1t)NjY%M#UMdrvAFi zqxQik)>C%EIrQ@U0%`-F)vf`k1VT~kqi`<9pemGvdinCL<*50!co#OH_G?;A{ngmW zKq$7MHgxQS9t@-3i`t;yI)Iw@E~)|_p!OL-Rqj*N3C~+Eq1InRB|42EIP+g1-x~Ms zf~--f4Lzt6C87f6VK^>9ov;!$ug>-xF^qmEhGUQQHB{h3s02SmCFq=`p-je68%zYIYutrlsJl);&40j}g}(F)a4{BR64s*j+m7q;O$$ok*BzOc;bh^m%NP0v5O OC9c>uh6^(%J^up!2|vpK diff --git a/searx/translations/id/LC_MESSAGES/messages.po b/searx/translations/id/LC_MESSAGES/messages.po index 7e039b1fb..b9a725a7f 100644 --- a/searx/translations/id/LC_MESSAGES/messages.po +++ b/searx/translations/id/LC_MESSAGES/messages.po @@ -5,22 +5,26 @@ # Linerly , 2022, 2023, 2024. # Markus Heiser , 2022. # return42 , 2023, 2024. -# bukutulis , 2024. +# bukutulis , 2024, 2025. # SilentWord , 2024. # Linerly , 2024. -# return42 , 2024. +# return42 , 2024, 2025. # eddywidjaja , 2024. # LIGMATV , 2024. -# drat , 2024. +# drat , 2024, 2025. # adriennathaniel1999 -# , 2024. +# , 2024, 2025. +# Linerly , 2025. +# Anonymous , 2025. +# SilentWord , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-16 08:30+0000\n" -"Last-Translator: Linerly \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: bukutulis " +"\n" "Language: id\n" "Language-Team: Indonesian " "\n" @@ -361,15 +365,15 @@ msgstr "Sumber" msgid "Error loading the next page" msgstr "Gagal memuat laman berikutnya" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Pengaturan takvalid. Mohon ubah preferensi Anda" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Pengaturan takvalid" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "galat pencarian" @@ -1892,5 +1896,5 @@ msgstr "sembunyikan video" #~ msgstr "Mulai mengirimkan sebuah masalah baru di GitHub" #~ msgid "dummy" -#~ msgstr "dummy" +#~ msgstr "" diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo index 9f683a7cc13a687caf521a453d39048e93184389..a706177af7257ead8e73fc60a24b0bef1e2221df 100644 GIT binary patch delta 2788 zcmYM#eN5F=9LMo;2)Jm22M5!?h=cHZ9E!JbAl}C$^c5JB zjLBGs`KWbTa3!{*=0{F7o{6IoJJpy(Ou=XjU=fyJ0ydx$+KG>12j<{uH+~0$^b-qh zBGssXi*Yrsz%o3G#5Qp(uIJ@No}EzX1{Pp859%-mccUtD0F&?o%)>Jnj}K5gA5v@+ zABL)A3XaAMT!Ur!Hg@4KTv%e)UG33`WMDrIz=N2GZKxODMP>RiD&QH^4lbht#6M;X z|4kl07GW5*&T$-$r%*?B31jg(D&gNy>v{KRB+-bbekyf3>V*L2Vlir=Rj8xciVCn3 z^(*Po0@#5X}2nlK+n;G+Hq#?+$%@4_m48TH=R z&a1eX{teU)OCPuM=b$Q3huY~noQ2!*5j^RKpn|Zj|TV0oWju<@wCl2 z3zf)Z)TJpyEmVs&xCN)+=crQtjXH`UGi-thsQD>afRj*h>X1`5Z=yEhU7?{D`!Eyl zp)TFXnf44bP-j|$8V{o;Zb1D4*@`-fz1W0rU@m6QvR}h|97z8;oQvyFmHZF~===YS zh88@F*?1nK@h{Z(>U+jMPeq;eSkzhP;aHr8?HEE93s_{Wt+jaS1+;%kTtd z>HE*Buzwt8U@Z@tFdeUAEB=GpQOg|4j>l1FSj=`*nK`H(E_eMf>hs)zO6VY}!fhDD zBRCkZV?6QA&oorRhfaT`T`(I5F+KsgXQlvE@-5CLjHTa(sz?Vak@r!7dvP*;go<+u zqi{`?O=JUlTDXe_vCS_y6sOIzJF7shg9)L=J24J>Q9JkqmEaesL@uBbxPdWv8&!$B zsDz@c?fbE)BTlR)FFi^xGkD}iD z6eI8)D&CjX)I}36F`yFOLK7(+&AB5>~|)k7RW%oKMs{}E+$~H8=s8|JkRxO zQI%SXky!7!2Mwr_ZALA;1687C)K_o-73dvIz;4u?Ie|Vr@5V2n0{rN_>x`_i<9_L{3O8hw{@?D&$={aQ+F5h#UkuGe!vFvP delta 2784 zcmXZdeN5F=9LMp43JAzE-caKCA=571dofV7yn+fT5*eXpiC4rmB}pZ83jJ(kQc-SU zfAEJa+G3;OX1ScEEp@rInVL>rY7d&NY4b5#=$xzfhu?9I*E#2R&iQ`N_xyfvwLk1i zf7tG~qn$Hh#%%T(6K;&D2^f=yb(oEtF$QO+2Zt~fBJSd1GWBsk#S5cjS-WL8H))Ri3M1Ug_wwqsDw6P0ruboJY>hOVJZEXr`$y5 zpaRavS8*{0@dy&zjAU~?FDZ811?6^NF6Q!}4x@1ssv=v_gP-G*co^gH4(jA#C2r!Q zQI$-ttZqV@1c!(->3U$CzY%u!RAg@IBPYwxdeghiN!~ zI^j`NWlrOxcoF%XV(y{V6_&dj2T|+mFddho=C`2^+=IH3T@DT2A9DaR@gC|Vsk7V- z^H48MF>0e~T!2j&z;98d{2O%@VYA%?BT)$@U=ik^;?yCxYr0VfaZc0F#EY1XH&8EK z{2ccVJ*YdaM2**@7Oq770%=BFg@f`2*w7|D1cWAo4nxg{bkJ7>k3b6MT(I@HF3v zLJv{%N7T4i98*JHdXUV37N(*mWTFC0zzG;YWxm9Yhpekn^WVS(d=r)Ec5AP77i!)? z9Dzqs@xHI2E?RJs0hRDqRG`1?gxjd+L#UTB;(6CN)CL~Z{B%^pxtNGvJ3a#yc((0V zqbgO4BQfOI2aTwbtwwF!iVE0{`UNi~%PQ(G!AGb3Y!kd_c zH81cZd-I@5*Zqqx%{M#}@Mrm_mQF62 diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po index abe005a8c..fa2aeee67 100644 --- a/searx/translations/it/LC_MESSAGES/messages.po +++ b/searx/translations/it/LC_MESSAGES/messages.po @@ -24,34 +24,41 @@ # nicfab , 2023. # pietro395 , 2024. # feather1 , 2024. -# return42 , 2024. +# return42 , 2024, 2025. # unoyoa , 2024. -# tiziodcaio , 2024. +# tiziodcaio , 2024, 2025. # Fabio_Perri , 2024. -# lrnz2 , 2024. +# lrnz2 , 2024, 2025. # OpenCode , 2024. -# xawos , 2024. +# xawos , 2024, 2025. +# Anonymous , 2025. +# feather1 , 2025. +# VaiTon , 2025. +# Fabio_Perri , 2025. +# nicfab , 2025. +# SonoAX , 2025. +# OpenCode , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 19:47+0000\n" -"Last-Translator: xawos \n" -"Language-Team: Italian \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: tiziodcaio " +"\n" "Language: it\n" +"Language-Team: Italian " +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] #: searx/searxng.msg msgid "without further subgrouping" -msgstr "senza altri sottogruppamenti" +msgstr "senza altri sottogruppi" #. CONSTANT_NAMES['DEFAULT_CATEGORY'] #: searx/searxng.msg @@ -379,15 +386,15 @@ msgstr "Sorgente" msgid "Error loading the next page" msgstr "Errore di caricamento della pagina successiva" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Impostazioni non valide, modifica le tue preferenze" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Impostazioni non valide" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "errore di ricerca" @@ -2041,3 +2048,4 @@ msgstr "nascondi video" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo index c1b5cd8a830b5742530b24aeec00fb1e2f8208c0..b591fd59982394eb44ae9c957ef30588904fbc7a 100644 GIT binary patch delta 46 ucmaF6f${AI#tqH}yr#MahPno33WjD@hGvrk45SevrdFoLn=1^yssjK>unijk delta 46 zcmaF6f${AI#tqH}ye7JaM!JS(3I-Nd#s-rE45UFKhPp, 2023. # eownerdead , 2024. # syobon , 2024. -# tentsbet , 2024. -# return42 , 2024. +# tentsbet , 2024, 2025. +# return42 , 2024, 2025. +# Anonymous , 2025. +# EOWNERDEAD , 2025. +# nogb , 2025. +# syobon , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" "Last-Translator: return42 " "\n" "Language: ja\n" @@ -369,15 +373,15 @@ msgstr "ソース" msgid "Error loading the next page" msgstr "次のページの読み込み中にエラーが発生しました" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "設定が無効です、設定を変更してください" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "無効な設定です" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "検索エラー" diff --git a/searx/translations/ko/LC_MESSAGES/messages.mo b/searx/translations/ko/LC_MESSAGES/messages.mo index 29d6ca973447b71c326a6b100a753de45615ba9c..5aaae4158c1fe4a79fb4317875dcad5fb758ec41 100644 GIT binary patch delta 2689 zcmYM!eN2{B7{~ELn#eoFiwa?oR4Bs3+k=1@_?9La7)i_F1dRYKn3`5RNA>6u-bM{2G;De75>k6v#668LKScW=VMgR?^mN1s>d*F!bp4)zOUT6i(e!j;&8`%#4iikzE-g{Xq6 zQ0pv171o4We?4lQofh|AvqlfjW1tUX@jB|Sh%WXMB$_E^I_ktSQO{RcycU&s6{?W6 z)_(?7z)noXeMsS+>-QV(m^p~5@C<5!Vbsz8f%;2|N}L;uwPro)ay^E(;(Cn09XJtp zV+tNdt@jz~#Li(2`P~H?S}=d6ZxQMwW}$Yr)$Bw~Jb*fx9xT9KOvGW-^EWIWTk7}c zqY~Gcb*Ob#V+8r#S{mBHW(9DUxfe$hnmwrh@_p2T1E`}uY4P(GzhwT3cQZbMdM=fV zqxG`QAbJXv(s&!^qIPfvbvv)45{BI4A7M0V$J0^s>dhwHMZXo5=x@~P9A4(!WK1v% zFoS+IYW-)+TxU;on5TBTJ+lLqvm3R^BiM%hI2VKEe(sH^9M4(*MO5yWt-l|&mu}R( z>qA|uK~(J*QF(^TxdW4ETqQ6SV`lpkictkDHXp`x`t_)Vw_AUYjem%I=iG4{AF+5C zA0Q=)!_j{Mlj&#U6S!!O=iF^H`Uu3}IaGz0%`2##{)zeu|AUWUI>(_GV+(4BM^OpB z!X*3&wN40^ITOdD#tTpzn1dRx_H1C8*@Vpuw4oAyZ}D+t(}Z~BWpv5bUuxExt8fD2 zt5GMo6;;448}Bm*Fq^n{oW^MyS8d?fy?%v*SWf&K)V-O!z`3Qk0Jq^j%)u!O`2gZW z$X$2sn1UbULHrK+PP!NF^XGkn+Q`C1qlJ2|l7<3}e!#V$F79@Vzlprn?hxwehEYd( z%?z#ZzrG1LhIjzAUOuY864di+FdR3cPNp5l=^NBB+Hmd_oW{Vb*nuZ3UUR?yOXKicNF$cU*d@+AiV3LKXH#!+d|h%dn3a>8l~b6STUe4? zn3=;bys9$m!G^Zxbw|TuPH9)?M#nuAN7WQCi(dKH^*mTRtt@p>@H~x8@@AsVFIp1^c`TfSB zj#2F$qq^=7c$Y^xSDfoytaC0c?A$##4QFF1j>Tr2fmNMaftUDk0PbrOT90!Hv5jLY}qa@0gM7>9M3fK50N zpT{kD0Q>Qd0{^)|%q0F5V{n}JfIm?@s`3=ng7;cJYH=}Y;w3l_pTK>11XW0OAwM5R zPz5bR%~OdgtPVB*M$|lQmiJz>Mkkih(Tz!X6ZKOB=J*Swm}zDZbz(D7;}=`L3bk-8 zs*pyDx1b7W!yq0;3isS8zv0f9eW(ftP!kNHj{Z;7PZBNSK46tugSuQ#VG3@$^r8+QC*OaIe{pw-+=!QNQJfs0n*eM}5xn7cGCq{0(Q)e;qY$ zG8ael%`(I2DN#t{7%o8V;2P?7-b5{U3#VXUzQ5xv)N?gv9lk>RENY>@QLppZ1p2AWLm-q#2MlH16;ytJW_E~%cwV@8w ztv=KSE|+-zLPI3dNDSkB7{AbeARkr067x}!8c7@-cfSO>EImMig z3FNae3kxm3#(dh`V78*Zm@lm0{IyU!3Ekdz&5uz9eTk!S(Bkh<1q`8{``zMy&6sk3 zo&ajxRMb2(EY39xEI+TD^VbJqv2|3VPGl`=N9$1wZL)kDYQmQ=5f7Rjs0B}=#-FnI z3mi}UmF2IXeyU;1$9NU~1IgyyW*+K@%1{eFj+&?*wNMMH@NJlc`%x!#6!qG5pq}e7 z&!ILpU|zI*<{%B-@~fDHZYBRLKr-s}X+1e-;*%Nq(VTE3CtMH=6&B@%vP1j@D#~+K z)wedZG;C, 2022. # mystery-z <07juwonc@kakao.com>, 2023. # return42 , 2023. -# return42 , 2024. -# eaglclaws , 2024. -# seonghobae , 2024. +# return42 , 2024, 2025. +# eaglclaws , 2024, 2025. +# seonghobae , 2024, 2025. +# Anonymous , 2025. +# mystery-z , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: seonghobae " +"\n" "Language: ko\n" "Language-Team: Korean " "\n" @@ -358,15 +360,15 @@ msgstr "소스" msgid "Error loading the next page" msgstr "다음 페이지를 로드하는 동안 오류가 발생했습니다" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "잘못된 설정입니다, 설정을 수정하세요" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "잘못된 설정" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "검색 오류" diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo index 865d884d251c38b7459c58218eb6237281cc10fb..d7add127987afccc182f2c9b23916d289eae6b11 100644 GIT binary patch delta 5078 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 diff --git a/searx/translations/lt/LC_MESSAGES/messages.po b/searx/translations/lt/LC_MESSAGES/messages.po index 67afba730..5bb1b3807 100644 --- a/searx/translations/lt/LC_MESSAGES/messages.po +++ b/searx/translations/lt/LC_MESSAGES/messages.po @@ -8,15 +8,17 @@ # Mooo , 2023. # return42 , 2023, 2024. # Archfiend , 2023. -# return42 , 2024. +# return42 , 2024, 2025. +# Anonymous , 2025. +# Archfiend , 2025. +# Mooo , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: Mooo \n" "Language: lt\n" "Language-Team: Lithuanian " "\n" @@ -186,7 +188,7 @@ msgstr "Vidutinė temperatura" #. WEATHER_TERMS['CLOUD COVER'] #: searx/engines/open_meteo.py:91 searx/searxng.msg msgid "Cloud cover" -msgstr "" +msgstr "Debesio serveris" #. WEATHER_TERMS['CONDITION'] #: searx/engines/duckduckgo_weather.py:45 searx/engines/wttr.py:51 @@ -344,7 +346,7 @@ msgstr "" #. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] #: searx/engines/discourse.py:160 searx/searxng.msg msgid "answered" -msgstr "" +msgstr "atsakyta" #: searx/webapp.py:323 msgid "No item found" @@ -359,15 +361,15 @@ msgstr "Šaltinis" msgid "Error loading the next page" msgstr "Klaida keliant kitą puslapį" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Neteisingi nustatymai, pakeiskite savo nuostatas" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Neteisingi nustatymai" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "paieškos klaida" @@ -453,7 +455,7 @@ msgstr "Skaičiuoti argumentų {functions} funkcijas" #: searx/engines/mozhi.py:57 msgid "Synonyms" -msgstr "" +msgstr "sinonimai" #: searx/engines/openstreetmap.py:159 msgid "Get directions" diff --git a/searx/translations/lv/LC_MESSAGES/messages.mo b/searx/translations/lv/LC_MESSAGES/messages.mo index c7dc9fa733c9b494676a29ec572df59b73f74453..c6bed27cc07d613501cf0823a119c9c451d5d1bc 100644 GIT binary patch delta 85 zcmcZ`bvJ5*y%evhu7RPhftiA#nU$g0WFIMMGq{MUm8r3|0T6KcBo>$Gh7={{73U6 delta 85 zcmcZ`bvJ5*y%evBuAz~xp_zh#g_W_vWFIMMGZS3{Q(Yrt1tUW%LrZM~AmH*zEH2Rv hDN4*M&PgoEFS1hbPs+(mPb^7Quz|5Q&y_kL1ONmV8S4N5 diff --git a/searx/translations/lv/LC_MESSAGES/messages.po b/searx/translations/lv/LC_MESSAGES/messages.po index ad9598563..934de4da6 100644 --- a/searx/translations/lv/LC_MESSAGES/messages.po +++ b/searx/translations/lv/LC_MESSAGES/messages.po @@ -6,15 +6,17 @@ # Markus Heiser , 2022. # wldkwl , 2023. # return42 , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # Obligate , 2024. +# Anonymous , 2025. +# Obligate , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-05-23 21:19+0000\n" -"Last-Translator: Obligate " +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: return42 " "\n" "Language: lv\n" "Language-Team: Latvian " @@ -357,15 +359,15 @@ msgstr "Avots" msgid "Error loading the next page" msgstr "Kļūda lādējot nākošo lapu" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Nepareizi iestatījumi, lūdzu rediģējiet savas preferences" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Nederīgi iestatījumi" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "meklēšanas kļūda" diff --git a/searx/translations/messages.pot b/searx/translations/messages.pot index 96facb169..1b78a4c93 100644 --- a/searx/translations/messages.pot +++ b/searx/translations/messages.pot @@ -1,14 +1,14 @@ # Translations template for PROJECT. -# Copyright (C) 2024 ORGANIZATION +# Copyright (C) 2025 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2024. +# FIRST AUTHOR , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -348,15 +348,15 @@ msgstr "" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "" diff --git a/searx/translations/ms/LC_MESSAGES/messages.mo b/searx/translations/ms/LC_MESSAGES/messages.mo index 3b9f3ae88b7b2596d5d55fe77c6240007e004c51..1e7f98a6661f9aaae411bbcb6dd7b698fd6935b5 100644 GIT binary patch delta 2317 zcmX}sdrZ}39LMn|vIM!q!3!)oT7zSB;2e(U802NNvf1h48pC;6dBV++3dx}~yZjj1 zZNy);B^l+w4D1h1!;0vSE~AUi8LR1ZEw}0)x0=-2oGz^1AAaA(#$M0$`#j(0d48wI z`{#wsWVUzy2InTLoV&?6HxP1eE)L;s_&#Ril(k>L0_s0o{STZ^{VFcR!e!3oVF(|_ zI4bUon2)`v`TeMMhL<_d-A*AxLn;1<5uCOGK{|7&hp-OoQ42hdH)03gjA_({_n`v6 zgNyM!EXJ=$f=GpzM3Ma91bD>00U_n_%DQ_u-)MjhE!)Q&y82VciUcmXx;FY_vD1J_Y^pTqqW z;8I+GQPjfgP?>MUByK~+$@qHiLke1G0u}II%*I?UOcMjBJFG54EwwRzHq9p>dqc`*UAX(4CyJ0aG^MqSY^1{}ohbGu9u7`hgasG76bt zETLYHvu^;ESQ5){1CpcLrGD0T12$j?_fsE5?L1cR2WmoHO*85drp-O(vsg~MhkE^Q z;u;)8E&K~A-ev2bG3UgXQ$j}`1x>6(9aS|JVFGo;_o3dzL#RNlsCm0lS9QSp`%oDU zqUMjIGCheJcMXd%YdN1V29|UFODOE2K@0bz792+1=_oSCP2in)8EdgR?r)?8E2wWn zEzoW4uc9)419b&MsCXk-h$rv~oQ!k+`poJQ{*E6(O=v|e+=dD~fSPy=mBB}-NAxY0 z;rFPkxrBNPzoV|~PkaT7R`~7xsCjQAKM`)&qi`#Qvlzr{$oq2Tq`MK5sJnd^`|)$+ z`rM`lKcha>Q6EB`+z19RWBp&D5}HB|&z(bUAeUb&&GX7A=xC}?1Eb~&3{zi)`rLM) zj&v_-p#!M9?M2P|6p8J=!29uU+>C4Q@)sIJUDX&Wf$xwL^<36U|L#jrftR2jV+eKh z5vw<#j#e`V`X9CSR;(U1tw4#e}+1u)2KWD z3H9oyQC~sUD*mwuweeEahRRX>K~%h2YmcGcPy=fGI;rn}Jp~QiU~WMLN}&R6xAvz{ zC$kTgQ4eZ^y{O0c7HZxR)Ri8y`Uj{4K1Qu`619;t=qb~SHsCkZ9bZSa=dAVz&PUa& zP#cP&POJ&FP!hFp3ogPfsPRvuPH4Zizl7TO5!CpR)h;o+qfr`^!3iwKanxt|11`WT z_!t(f@i){y)>iyUS$;emiH0MIU^LMfO&qMNuBiXNCEgg1)kOH4_dqJ$6>jcKwWoKc Yx;i==gXykRXKGh)rSDjGb=JcF000g9VE_OC delta 2315 zcmXxkZ%oxy9LMnkCX#VQ{>dLVya;J>@6~%R+>4^<+M+GYu^MXzOND8;OvnqYRm88t z8PyswpVX3!a$p9=1}!T_52DsTTQgSE=~`~p6Stbw+MHJJkH2p`d7X29=X}rkp6|K* z)AyV=IhW~OOml8-jdP2gb0c>+w*<$q0^h?-oVW2yxQzZU*8dY%(7%pFn77WkEDU2K zZbHR<0RuRQT0e~1XMCOWTqTWZ2J-MHjN*b#sNmzR^uxFTlc)_I#zokL8TdHrzNNo&H+aTa$sYQx7+2k1rxdKPu? zm#`L(V+US9Wqwb@xqNKIrMMS0-f8_Fk482F&){wNig^rI(?5yI@N4rN2I!wh&HoLv zaKUuzEkm;q6~7EuVGI@TKGWMtLpQJ+b!B@|C+^3)@Kr3vOQ?B&o7YhXNTV*QeE^r? z8Z5*FX5$W2<`3a^+>eSg?d!P@X=tNaRKP_PDigC&3yV-SEJxm%OQ15|h05drYF^6v zPuusysGAx>9qhREPoqjVgG+dS?sFQd$+tFP-X>hO{uTRv4V9UT`2mW|)u@cZW(;%b zC-LSRKqc0Q1=xb*>JI5U@5GJRgfZ-=KZQDZP23Muk1Ea1qldEcJUv5?krM1jz4te8 z8;+v3`V|%7s(p7={=7`gWqi5y%Tad|!sS?ty3_5bM{qwXPCIH{PZbxY;tbe?AyiJI zr~osl+|Hur-M}2osCKRmi?9rzLTx;Z+Hf3I#3^Kno5hWI71v`Z;UA==&FyQu5JSJaoQ$)iOOgmxjlCQb%1RCKWSYt>SiiY^AhG}jL^Rm_512X-Dodr zp8=$_o*Sg0g`Xg?-DlW<|6&U^Z1y)AMV0CUR0iLpt~6tdU;7oPz_+6waTs;=)z+^= z-E2K7fd*WxA8eCNXtoJ$H$PBA^B^iv7lyFc#!s53Q30n>8_c3I{uFgX-=S*$GwRhZ zpne4zbrnG|m`$j8E#@9noPDS`2WPp0fV?s0=W>Fd^Gd8=i8@dX z>c;A~a{t<>kpXSojK#PI75GU^$LDSQMbybppyp4Y4m5>I;0%`F4C-h3BNpN{+>N>0 z`~#)Xm9@2Yv`?jSCJO@9kytzuO9rDGYpbG1H>_QmWF!`eCxWqfZFMvh, 2022. # chenghui-lee , 2023. # return42 , 2023, 2024. -# alma , 2023. +# alma , 2023, 2025. # staram , 2023. -# return42 , 2024. -# wazhanudin , 2024. +# return42 , 2024, 2025. +# wazhanudin , 2024, 2025. +# chenghui-lee , 2025. +# Anonymous , 2025. +# staram , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: staram \n" "Language: ms\n" "Language-Team: Malay " "\n" @@ -359,15 +361,15 @@ msgstr "Punca" msgid "Error loading the next page" msgstr "Gagal memuat turun muka seterusnya" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Kesilapan tetapan, sila ubahsuai pilihan" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Tetapan tidak sah" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "ralat pencarian" diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.mo b/searx/translations/nb_NO/LC_MESSAGES/messages.mo index 144e363ed40469db585076199e9c3912ab6adb05..837f860b6969f8456336451e1043c74926f92b77 100644 GIT binary patch delta 2688 zcmX}seN5F=9LMp)gCZ9aCE`kmT^R`q1or~hyaFZy@*qPgDN)#9W5i_06~oNU-)f~j zOft)w!)VL?fw`u`HJes8GpVgnGbqz2XXR!t)0RD0v-gMJS@)mUIp=pCzTfZf{OJD7O`FI62 zKmLCApj1@g3s98_peh_fC02#1&?Cq`j@e8@?_`_xDa@q*0;*Ia$bB(qa1Q>3s#qc~ zR(eqf&P8RGg$lF;mElTMf=#GEI8**>)Lev2v)JBz9 zh7Y0wd=-;%82Mn#hp2;Yph|C+y2ha@my8N94dXfAWZHp3Ybk1Cm9^g5h}yUrwedz& z<@)S%2UYT&n2P_=_< z2JXcnRAq`w+{#s>m;QRZ8+&mf_M>k7G3$vE>aT&54Cr!vgxdH^Q~;CMgjY}{uPAlL zpGD1k1yzwj)Vn@p$3H*?^a(1l2~;8%?em+c%9&-H#;SZQ0Sw|H zq{`+J>W|2`+zqf1HNPG2!Z2!|UAO>uqxLz9I_I=~K4$yQI1QEVJKTXca1n;7w=y|^ z%HRkpkaunWS5#^Lv_`FP1DJ^_eFo~?`%wq4LS4Q_)VgM*l8$+lhTic`ROA;?3ofHR zr|Y;7)63n@a~1Z`A4H8ORPY*c3AW%iROVmf5Z=alI8@2sH;$qzws@sJU&ojgG!)sx zn2If^Qa*wDO!gpqn0=_g&Rc)P82Z;x@AeOzhOt%dcmgUwFKXR#Yb~lmYcZPhO`Cnt zp#l0~%)~z2h=X?AQ|-Q*1k_y!VFPYOmGo0A#BtQ+_0+hgpaRXpSjC2C&*mM}*Kr0l?;F&@@2$U}GW`d2cc!m$14~DZXIlNJ3M@taZMjj1cotwdG zTt~kP6~MOay0LrHW?!*wjO@=VoA)2TSuM)| delta 2690 zcmXxm3rv<(9LMnkf^yRY2}Dwn5z5t94;96W*wcnr1SX;h%+ z@Ls%*Z{Xc5*1CUD>*Df_nTF{O4K2*ZSjJD7MMR*A{e^!Be z(0o+jOHh^Zp(^Z0C02#1&?aOb$8^%rJK14<5*O2d4ppjy$bB&g1P$k`h`ph~|cVYmw@$1-! zL#WEED0VAXjq&ui;5_WYH0(v)`oq?v#nfK|#~9G%_yo1_*Qfv{aT8ubmArg~JN`6k z-b<*845HrkemnjVDxl9$iA|sqId7j|M^!Gkg!=2Rs!g77S4nGDorZcb+ z6LBl5l#gNv_91(jepFy*tv})n`d3iz_74oj$O?Bn8WmsyYTatY#JB{}YDMzl{3D{2e1OvYPs9gScvU zqh!>^*%*v@I1LNzbHB9$70?|x_3BWc;Z{_pZFamHmB>!(6Lx$LYJP7u_1A=b3~1q- z7>UEE&*nYU*Krax?_1Qu@2$U}GW`d2cfxAiz*11-Y1Uj+1&UF>8*6Rn)d@Lv7fEKp(=U0em`A7#p0J=gZ3RX6583c?ybhJsBSUMch`KRo~Lx8fbl}EvxLF&X%GiugA;0 koGfo%QjWLC=h@r7G(M)IrL(J}&F4+>|KA$vU%G0+f1(vGh5!Hn diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.po b/searx/translations/nb_NO/LC_MESSAGES/messages.po index 6de6300f6..07f7c4e3b 100644 --- a/searx/translations/nb_NO/LC_MESSAGES/messages.po +++ b/searx/translations/nb_NO/LC_MESSAGES/messages.po @@ -7,19 +7,21 @@ # forvirretfrukt , 2022. # return42 , 2023, 2024. # Bananhylsa , 2023. -# return42 , 2024. -# omfj , 2024. -# combwizard , 2024. -# laaknor , 2024. +# return42 , 2024, 2025. +# omfj , 2024, 2025. +# combwizard , 2024, 2025. +# laaknor , 2024, 2025. # Aadniz , 2024. +# Aadniz , 2025. +# Anonymous , 2025. +# Bananhylsa , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: laaknor \n" "Language: nb_NO\n" "Language-Team: Norwegian Bokmål " "\n" @@ -360,15 +362,15 @@ msgstr "Kilde" msgid "Error loading the next page" msgstr "Det var et problem med lasting av neste side" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ugyldige innstillinger, rediger dine preferanser" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ugyldige innstillinger" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "søkefeil" diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo index 98224b18175e3450073e14a47e5c793cd3e8ad5f..0201c1d65a5611f6bcb309cc239ad9d3b5e32f09 100644 GIT binary patch delta 2787 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 diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po index 6a97bd6c8..3fc83bdc8 100644 --- a/searx/translations/nl/LC_MESSAGES/messages.po +++ b/searx/translations/nl/LC_MESSAGES/messages.po @@ -18,20 +18,30 @@ # return42 , 2023, 2024. # microsoftocsharp , 2023. # marcelStangenberger , 2024. -# yannickmaes , 2024. +# yannickmaes , 2024, +# 2025. # MVDW-Java , 2024. -# notlmutsaers , 2024. -# return42 , 2024. -# ljansen , 2024. -# zarlin , 2024. -# artens , 2024. +# notlmutsaers , 2024, +# return42 , 2024, 2025. +# ljansen , 2024, 2025. +# zarlin , 2024, 2025. +# artens , 2024, 2025. +# Anonymous , 2025. +# Vistaus , 2025. +# MVDW-Java , 2025. +# gjveld , 2025. +# marcelStangenberger +# , 2025. +# SecularSteve , 2025. +# microsoftocsharp , msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-14 18:53+0000\n" -"Last-Translator: artens \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: notlmutsaers " +"\n" "Language: nl\n" "Language-Team: Dutch " "\n" @@ -372,15 +382,15 @@ msgstr "Bron" msgid "Error loading the next page" msgstr "Fout bij het laden volgende pagina" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ongeldige instellingswaarde, controleer invoer" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ongeldige instellingen" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "zoekfout" diff --git a/searx/translations/oc/LC_MESSAGES/messages.mo b/searx/translations/oc/LC_MESSAGES/messages.mo index bd3226bfe981ebe24e9c1173ee2350bbc82e2b8a..1327c8ff7358b387410321121207d285d7a1bef9 100644 GIT binary patch delta 66 zcmew!^F3yRs*I_ru7RPhftiA#nU$fLwgC`u1^DX*rIuwDXXfYWx+IpQS}7PA7{S$< NTA3Pej*^iT0sx0a5y}7n delta 66 zcmew!^F3yRs*I_LuAz~xp_zh#g_W^^wgC`u1^DX*rIuwDXXfYWx+IpQS}7PA7y;E8 T>Kd6U7#dlb7;KJ`kre^}hXE18 diff --git a/searx/translations/oc/LC_MESSAGES/messages.po b/searx/translations/oc/LC_MESSAGES/messages.po index ee0d2cf20..ad9af6d5e 100644 --- a/searx/translations/oc/LC_MESSAGES/messages.po +++ b/searx/translations/oc/LC_MESSAGES/messages.po @@ -7,13 +7,16 @@ # Marc Abonce Seguin, 2019 # return42 , 2023. # quenty_occitania , 2023. -# return42 , 2024. +# return42 , 2024, 2025. +# Anonymous , 2025. +# quenty_occitania , +# 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" "Last-Translator: return42 " "\n" "Language: oc\n" @@ -356,15 +359,15 @@ msgstr "Font" msgid "Error loading the next page" msgstr "Error en cargant la pagina seguenta" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Paramètre pas valide, mercés de modificar vòstras preferéncias" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Paramètres invalids" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "error de recèrca" diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo index 25200d0576ca74f5859f410554f7674a835be35d..ae928ab5d907420570a083fbd3d021ed5e0b5698 100644 GIT binary patch delta 2774 zcmX}sdra0<9LMp4fO3^ffFzKQ5Gm?o4|n6@1xqMN#Yj?Y>7$O4k_DJ~sb7BxN|@7e zvEi`QQgP)a`A0UFx3zM)mas<6EX|gy#=vOPKXml|_&bX~c%5^8=l1=cbDocS0uJ;9 zoZ1=Y)QmG`yU&KS7S8RpvJ$A8vicFU?;A@ z9-N4wImT3DB5Iz-9OIY}3Oi_s!Y2En1LsojMh*NK6Yy_*9LMFd8JvdkSb?*#2FGJ3 zhGRD_$74v0<~|moH_r`hW1eG7APrk=!*+a(`fgNYM^TZV!AI~GYT>)~`_z0l6Is?` z)CS5h5trgRd=<~&6?_=z9Ai?bcQ_Q{DfD6xUPdkS9clx=+4fP4rG5{|rU`$_m?WHs zoR+D^ZMYYe+Ry?wb1|q4dr(J`fjZJc)O=1Eg-H~uQ42TN4!cmPZbx*?0v<%A@U*oL714R?H<(KO zdsIZDs0;*iu*opL-l_02vC8gLXf;peD`zeJ_#DlWxeQ2k~X zyJllG^*Kl+rX3%}Pf!t`MJ@a_a_nXRHGeoaTm4cnoApgTg*dE5MgATtBfD(s6ytscPSP%ZyGA2+30A8g%p(1Qrlr8s(l+O;%3zQ zZpFj6A9XqN=ew_`47G4M>Mm6w55&}=<~f4e$Z0%?XHj?Ir3K_)JE~dWZeRS+2=M|uObp;1%-VXT4s zl!{7e4r-wVsEMjj3vEDMrZ;dpHlvQ@Br2dwsD1;OjMuF9P#cMV+ReaphXTQweAL-) zMNP2RdI+`C6R6al!}U0bxmfg!+g^{lJMUZfqsD!R`n@=Y1Z}RP#(5UGnQ&H6(9Zp+ zoxX({*oL$4Q`C;HqB8J1>MZ|3ZS+2Bd_*Z17d_~~k5K_#MD-g)u8p~kx+~Ml93GK!do!}_h1lqpw6%hC*u)p!3!9Si=TDBSD=^r%b13(_yV594H)>G z?i}a;8UvCnV@o8`XcGt#_a@)QuW{ z8nsX#YW{Qf`;Vx*G33||cTfx6MJ*Jx+#MK=dIbp>f*GjGm1SLo0n}GvEUre)Q)k^_ zZ9!eaPShPcVcVUrC}_fd)Q8QvuQRDJa8=Q-JmZhlI z;72X|0j|Wuwmybts=s$Q?q*VCuGg38_2qdo^9nNa+OGSOeE+xP7UX8n^zj!~zP6#! fTUoz$Q^V_P8|&%|JnL&W*KYO{J*3x{Ih^_*?Jq@h delta 2782 zcmX}sdra0<9LMp4f)5}l2m*rAlSpytiRY0^@SvgLCB=O3vKrGwK-UHp1r`HaKQGj5 z%UhV~5NtG@wY-f&!+&yfd0Q)&YYB7a>|)ts)mR#B_Wt-gi$8dsbAIRc{ho84_YQ|0 zJREksJ=$p;W6VasF%ia?+cS+x#y>C>qwlmV#p&wqiQawtrua2mt$GHRi3Q5*QxwvXZ@>ZZgPvS|`9 z4HqJ(W$LgE_o7l8A9OP}1(o3})R6>Gk(Z<9b1Eq$Q>a5NywP^piAwbWRL3)@iLPK2 zUPIl1pKbe}m`8mSAHdvFcfJZ#ziQM`)}xN56=PZ7yg@-J>A)oX0F}Z4>lsu;=dEAk zbn4%sA{s?yAeMujigQqzeAZfvTJSkc!Dd^38V;XhOAbK}Ea+ z^}ai>7x$wkESuxLo=VihD^Yi;8hIe51vSr6)SVf?PCSdc3v1_+f9ea-fB7GPYksoWZ7)gTZL>PT;)HZ+O~z*FwHJ5MQhQ=fr4 zqa0L9XQ38agqo-twa^Qw%k&Cn;SSW1oJ0k53Ds{1r{Ybkndfd~8Y%;RhXO&GGSt~_ zMoqBSdI+`CepG7D;X1sIg*b1%+unw{JMUQcqsG0D`n@=T1Z{pqjmui#X2MxRK|8NU z?euljz)pMwKSrhQDk=lNq0aIj)JDS>y5kdZ6ZI_g;)ke!E~5HfN3M+-M%|UXC-1N0 zn4nuQ6{u&i8r9)d)WVxF68B&@cA?I&2UGDVzJ(Vs0#__@zgMA;`g+X34qSmJaXpS- ztUJf~zf3`wWe={!Z%}7mP+`mwT#T7`2OBYciF-G8ppK*ywXr_T!BeP=-o&x^H>%$# z@>^vRo^mr7!Z_A9RTPw>dekpqo9(b0$5HRZhp-2AG#4-y2T|j0VGQ1}Ml5wVGzk@X zGPYtVDnp+lzeVOWI^`7ZQV8K}{%PXvI1M{dJN^tO;t1+YBP!jAQZbUc7o#xSw&$bf zDM1e|L>nt1WhZgG=oIv|_^x*;21Q$^QFQXzELM?Cu)&CdNe0Qwj z%iMY#YW!4N&p?gOTSopBSs@L2&+}1dxdt_$4wc$^)Wj{ez7@6bE>!=0w%&!xP%moy z0BWH#sQJ&?@86^D#)xA(+(j*P54BLta(7?~>J_A;QXN2DuAp@(hEcD@Nw^L*Pm8tP zx*K%~yHR(n-?lqnQqY8hs2%@~@i<~Tcz82os3)RcMKWrGK2&5SsBvYe4K6@E%Mj`{ z)T0)D7pw4yt$S8dd9b!`IPpeWY=JK@(-$c6`iq14{*G(@v|_i#?+p|N{l&R{{-T%E nG;i>&Y^r&&`T3d+jZHysLqk(dOI=%QgLl^d#lEb-@bv!x*lR~z diff --git a/searx/translations/pl/LC_MESSAGES/messages.po b/searx/translations/pl/LC_MESSAGES/messages.po index 6a0bafe9b..6e39bc11b 100644 --- a/searx/translations/pl/LC_MESSAGES/messages.po +++ b/searx/translations/pl/LC_MESSAGES/messages.po @@ -8,25 +8,31 @@ # Mateusz Bączek , 2022. # ewm , 2023. # return42 , 2023, 2024. -# Eryk Michalak , 2023, 2024. +# Eryk Michalak , 2023, 2024, 2025. # mradalbert , 2023. # y0nei , 2023. # Luna , 2023. # Linuks , 2023. # Bubowny , 2024. -# return42 , 2024. -# dkuku , 2024. -# danielszewczuk , +# return42 , 2024, 2025. +# dkuku , 2024, 2025. +# danielszewczuk ,, +# 2025. # 2024. -# kkrawczyk , 2024. +# kkrawczyk , 2024, 2025. +# Anonymous , 2025. +# Linuks , 2025. +# Luna , 2025. +# y0nei , 2025. +# mradalbert , 2025. +# Bubowny , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-10 15:08+0000\n" -"Last-Translator: kkrawczyk " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: dkuku \n" "Language: pl\n" "Language-Team: Polish " "\n" @@ -369,15 +375,15 @@ msgstr "Źródło" msgid "Error loading the next page" msgstr "Błąd wczytywania następnej strony" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Nieprawidłowe ustawienia, zmień swoje preferencje" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Nieprawidłowe ustawienia" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "błąd wyszukiwania" diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo index 7e360c3bc2a4782eb00a61bb9498eed6d76cc6b1..5d06e6249a4bfe76e38d68112f2eedf05de1a0a8 100644 GIT binary patch delta 2736 zcmX}tZ%oxy9LMo<4Mh3>Pl1aV@+U$-FMloxXcweH!6Xb9kvzB#m=!|@RK}8@rpqjR z5Hw8lfsUk%5}FT;d}7qvq%<;3spZPCx!Ov~*^pN2{kgy2;>qirbARWY@ArGo@5jgq z*U1yE(dJNV%4JN1$CzMa%*}jb((yM;z?cGK=3_Rdp$8Y>MlIF0w=znF}fMaB@TsXztL ziJJc+*5Dp2!3&s$AznL>m8j<`y_N|CP{V*SZ^TgSL1laZ7vl%G5ggEJff7L zsElGU6O*tNefS{`VKml1V9Zi%!FzC@MI(sDs~C$1Q5zh?FdT9EXK@An33TIKT#fOo zjA_6+)H?5D3XY%xx`0~eveW+wRmq#E1T7c!(HUl792TJ}vCiqYp%&VWD)D~Q9XN=p z)BxU($1wsYFafWj)|ONuL5|ikJ{oQY>QJR@Lv7H7+HeI^$k6|$WE zepKN7s3SUx@i>SI>|@mPU!b15h^p9C3>*zw`XPw$v_J$Z^LQM>Bvh%+p#u8`Rm!WV zQvQtDIE$K}=Ce1-#-sELPyv07s@OE%i*vXX-Q}FWE?Y^t{W>%``W;(PC3_lm+4i6+ z(Ti>P7Cwx@oSQ0EgUYjuaSw43u?lOj4>j*PDv{qY9bJ@5N0o_u6pfWjL#6Yh7H-F2 z+=(h>4=STxd>M~n7N$R9e@JRjrENiqWZF?jHHw;l7M1aN)Z1_c_52J{5zE}Ap$Sn{ zb^vbFgbd6<4-ViK48q%}(#|@+hfuC%^b4^8H)A`Va>i5E+usWxHZi^%lkqwpW`8qB zL#2L``aOf=sDC P%}-q&;Pg4qt!4iK&=NZ_ delta 2742 zcmXxle@vBC9LMoP0vExHC@OFXy>cyouq&5);dZ@QK!!*vKUy392qyLeCk)n=Tw3`! zMV(HwU@K@?)~1f8C8@O9%>1XUwMl7Ynp(@1V{^7uma}2+&wZZw=XK7x&pGG&{hsqY z^dCt0;6TFBr&Fz~3C6es#v~bIZWI~g!#^+!vx3GXVXkD9$QiKU&3*? z1#@sOHef$yqAO%fHRht$T^ll%NvH7~1KGG4UD%6Zd@%5DW23RKT}U3#1UG z%s^$7jrZX+d=@M42p+}^T=9T0Q?Uid;4X_sB8^vYB6g!TIEZO@!s(yJx%7w7gLiR0 zdLqUw!+O*@M==jipaMFFTIZtE{}olq8>j>=7xmE@&cRHKqAF4C^kb-nwxdeC2XzO! zQI+b$S$GKDID}bv1-0HSoQ$bay8>R+coA~6mZ_lOVW1vW${1>cji?Q`;tbr0D&hNB zhNmza&4YI4IgV3Nm(YjWIDopW3vmk8qSk4S%lW@RLmTeIa_mBt^1R~@sLON(x$Ru0@^U22_Q% zIsHATz#V%v~XwcFRsf4EmGEtd(@E}e@mFja;VBe!k zc^Os8-*7gLqUO&kwKponKKc<#n$J-4@1QoGu)zMX4Tks&x#Muk&4@n)Wv@J-HOb6kj zXu{-5I{+_g!W=BXFusnfF%fU0N;~TO?xtMR>CeMuxDwm&xHImnvcDG<*ueO9%*AWi z%l`4Ysnl;$zqNP<^-m{69d&yvFbP*+KCW`cx1s{-!T6bDg#G|3p%GLC{zAPiW0u%Q z=0U9&M3?rD&?vz&9E(0>uNVJD{JE>xhsI35oz zTK59x;8l#@A=LAuHPl}bB~vG5oQay4hnnbf`g2ed0+@jj)bCZOfND|m8=d|d)cd|3 zwcc*jK3&f5Z=(`CV$slRG3X3@gX8I6L|wuWOu&CpXE%ykXiA-35uala6-YTwz#7zZ zO{mJXp%Qo*^*z{z8MwTMhDz4&3>-$C%}LaRGpG!PP^BA2eNr!B0sezZV8-LdJc*^K z4f>AtPx?65UF, 2023, 2024. # fabiosantoscode , 2023. # Coccocoas_Helper , 2023. -# return42 , 2024. -# lspepinho , 2024. -# diodio , 2024. -# gvlx , 2024. -# ds451 , 2024. +# return42 , 2024, 2025. +# lspepinho , 2024, 2025. +# diodio , 2024, 2025. +# gvlx , 2024, 2025. +# ds451 , 2024, 2025. # Pedro_Tresp , 2024. -# saltsnorter , 2024. +# saltsnorter , 2024, +# 2025. +# Anonymous , 2025. +# Coccocoas_Helper , +# fabiosantoscode , +# Pedro_Tresp , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-13 06:33+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: ds451 \n" "Language: pt\n" "Language-Team: Portuguese " "\n" @@ -368,15 +372,15 @@ msgstr "Fonte" msgid "Error loading the next page" msgstr "Erro ao carregar a próxima página" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Definições inválidas, por favor edite as suas preferências" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Configurações inválidas" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "erro de procura" diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo index 2467225bca637d243b0690de26837b1988bc82b9..698c077a30daa53a418b6bb565a89c361562be3e 100644 GIT binary patch delta 2784 zcmYM!e@s?Y9LMqVpdcWK0wIX}R3RkjA%v$8kW3H_gvi;NCVQyVf-pgvChUqcf6Q#9 z(nhUOM!LD0FiO|_$E7Qrv8m;fq#tCF{UI!ef3Q{b{&3HVvAxc{_uTLKe!u73r~Ra7 z@`R^nZ>TfoF=m(7m_TDp{X@pY;WmuLL#X@Rct4)PVEhI{a0nxD1T}90!*S9Yo@-1s z*YT)%4d_P)gK#+4IA%73+uVr837mnmmKgIe#$Xgy;e31+GjKPi;VDeOtGE=$P>E#b z88Z`ePzx4eA$H+H973(*$#>jANIr{lV-7CBWDLa>xCpCI9cjTw@D0@bepI0EtUsYD z`yG|=D87g@eayjEPzA4{I>oDX7))cZ1E*svs#Wc%1&*OA`4IKuX{1T!JZh`Pk$*Fb ztX{yCs5reCgJ)0)4WQzEYrTcqD(5Z(O*93@M8I5B%hOSvSc*!h78R%o)#9C~v*4i4 z!U0UiBdCS?P;tLN#T&$Eyn|XNfc+w_VJiLs{Sl^5=n2Tw}Zi|aiEiARyYf+W2M^)mt&l^!^ zqYahtK~!aLp*r_2s<3XmgEZAFSZ+IpO1KfHPCY8o!^<5vvuifz^&hC# z-9zo+-}oTLKIR^-a?~l`i0Vi)s<1YU$M;Z`e~wCIz+sTX;3mdl_zHL7bktXoi^{YV zmBzIzeVg`n-;x`5JaSOhUDf<2=8I*7% zWwkL+VjXJXGx!l+L$!Lxt!3r3UGcW~p$TCo8;%U^D)uRIK!Z6&2L3k9k@H?1>U8t@35*4># z4L>|sf)2%)-3*?JZkVDrrHr>^0Pa2T+-JqUIk*C3Xs@VJ}AFXPAlor~<}u z14i(P>3M@bwUoNPvFPFW@VqQ+_xmBGWB1O07s($ delta 2786 zcmYk+eN5F=9LMo<1qG2uc?bmJ0?NY>yMQ7P!i`FNKpu*@T3O!8Qm5d!7)^@bP*y(7 zZ28ni&C!%R<(0Z-sYj9P5W6?_Aga3k4iy?{d_gvK@u#V%B-cAz#mgv#U?>c!(ok<3}tQB5NM zCYGo+;BwSDgP4S;Pyr32*89nN3w2b^T^gD=t-_cXOhJ`AA61DZsDJ{fh1yXi?nK>% zZq!}ajb1!}+UO)|-EUFrUBd(%N9_~Jd9kiz5@^IRkc+ukjw)#YwZR5!8$Q?=b%x!j z!20nqJdKGsg{nXt2QHH^5>rvn^H2d-VG{eBWi)iwFQOvdhzg*~`ZhMue;2jjsP!hU zray+tsCtQeL=C9YuC=xxQ_P#F^-tp*yolB8Z^mdmgn3nNiT$V&*4qARROV|?nY?VD zZ$aG+2Nm!hRA&28mHP;lSU+mxN1{31$G6s@paUh|A{5|FY5hbzq?*J9-&`@+UGYv_1Bq9GLV6h9OT0|9}93L>g(vR zc3K@&#de@F>_t_gAKUN*QdBdq##Rg!@D@}Bx>14dt8v`O`Wa9rU)YH!Q45~OWE`>m zzfq;ThdRUi_z2E<+`U{YP`7+7sv=uai8+{xM^Kr6g9>C=4~l49#}tft!reF@^;IlF zMOupr9`q3*<8RH;2ry8UoeWfDJy`F?uW*?l$U$aa2I}P#K3(Ce4pVEs$tUMa|Ddt&@+MSB?tE zk9xn}_Mbr|@Tx;Y6I<Gdhi$2FXAXF;7QcRAy2u+ zSu;?Vw-6POa~O7;$F!`-OJdr|X`q5>Ph5FEtW_%#;b5GsL5 zd>-TY#PqyHpIYWigX0M|Qll0Y78Ms3m3n<;6(zp?*L|s#4@P_oy}r^4-{Jxve-U+o nV0&S6Tc9PlDbU{9R^bf>Hnj&^THD&!wRtQ5*BLA>T9x%5{$xjK diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po index 2578edd8c..7af225275 100644 --- a/searx/translations/pt_BR/LC_MESSAGES/messages.po +++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po @@ -23,24 +23,31 @@ # Coccocoas_Helper , 2023. # ETRB , 2023. # LeoLomardo , 2024. -# return42 , 2024. -# matheuspolachini , +# return42 , 2024, 2025. +# matheuspolachini ,, +# 2025. # 2024. -# nouoneq , 2024. +# nouoneq , 2024, 2025. # Pyrbor , 2024. -# rodgui , 2024. -# rafablog77 , 2024. -# Juno Takano , 2024. -# purp0w , 2024. -# saltsnorter , 2024. +# rodgui , 2024, 2025. +# rafablog77 , 2024, 2025. +# Juno Takano , 2024, 2025. +# purp0w , 2024, 2025. +# saltsnorter , 2024, +# Anonymous , 2025. +# lhostfree951 , 2025. +# Coccocoas_Helper , +# ETRB , 2025. +# LeoLomardo , 2025. +# Pyrbor , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-04 06:07+0000\n" -"Last-Translator: saltsnorter " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: rafablog77 " +"\n" "Language: pt_BR\n" "Language-Team: Portuguese (Brazil) " "\n" @@ -381,15 +388,15 @@ msgstr "Fonte" msgid "Error loading the next page" msgstr "Erro ao carregar a próxima página" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Configurações inválidas, por favor, edite suas preferências" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Configurações inválidas" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "erro de busca" diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo index 4b23c94384959cebd4254f29665091f5b6d5d445..b55ef6e4de557de8503516bb065c7df6734607c8 100644 GIT binary patch delta 5489 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 Y`R7_TEg#m, 2023. # alextecplayz , 2023. # microsoftocsharp , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # LunarCat93 , 2024. # UnD37970UnD , 2024. +# Anonymous , 2025. +# alextecplayz , 2025. +# LunarCat93 , 2025. +# trmx , 2025. +# UnD37970UnD , 2025. +# microsoftocsharp , +# 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-09 07:08+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Romanian \n" "Language: ro\n" -"Language-Team: Romanian " -"\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 " -"< 20)) ? 1 : 2;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -365,15 +372,15 @@ msgstr "Sursă" msgid "Error loading the next page" msgstr "Eroare la încărcarea paginii următoare" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Configurări nevalide, modificați preferințele" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Configurări nevalide" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "eroare de căutare" @@ -459,7 +466,7 @@ msgstr "Calculează {functions} din argumente" #: searx/engines/mozhi.py:57 msgid "Synonyms" -msgstr "" +msgstr "Sinonime" #: searx/engines/openstreetmap.py:159 msgid "Get directions" @@ -1386,7 +1393,7 @@ msgstr "Schimbă limba aspectului" #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "" +msgstr "Formatare URL" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" @@ -1402,7 +1409,7 @@ msgstr "" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "" +msgstr "Schimbă formatarea URL a rezultatului" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" @@ -2024,4 +2031,3 @@ msgstr "ascunde video" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo index 8d10af838ad967f29dcf138c7646db7c3d4a627d..5b89988892b5f6ac70f8a642207cb06f8893014b 100644 GIT binary patch delta 2780 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, 2023, 2024. # 0que <0que@users.noreply.translate.codeberg.org>, 2023. # mittwerk , 2023. -# 0ko <0ko@users.noreply.translate.codeberg.org>, 2024. -# return42 , 2024. +# 0ko <0ko@users.noreply.translate.codeberg.org>, 2024, 2025. +# return42 , 2024, 2025. # Xvnov , 2024. +# Xvnov , 2025. +# Anonymous , 2025. +# mittwerk , 2025. +# BalkanMadman , 2025. +# AHOHNMYC , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-16 00:07+0000\n" -"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: AHOHNMYC " +"\n" "Language: ru\n" "Language-Team: Russian " "\n" @@ -370,15 +376,15 @@ msgstr "Источник" msgid "Error loading the next page" msgstr "Не удалось загрузить следующую страницу" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Неправильные параметры, пожалуйста измените ваши настройки" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Неверные настройки" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "ошибка поиска" diff --git a/searx/translations/si/LC_MESSAGES/messages.mo b/searx/translations/si/LC_MESSAGES/messages.mo index 0034bd61b63a1353b60c7857e501778dbb3e7565..f79f2e4fd5227c40653512894fac54f1595e3c36 100644 GIT binary patch delta 3104 zcmaLXeQXp(7{~E}mbbnrv>>HmSy7~@#VbOAiUv?35@J;hDvEkukM^X!t9M(mR=6S( z5MK}$160k?DNsNNYXi7!#qnDCPL0z_Sf_)4M@UmFtr{`RI4|Ip^TpPAX2XP$X> z@AgdXn3?{(B>xG+Uz-0>{144n@AO~MKx6vREyn&>ibYtC#W)TJ;AA`pFSGsIaS;6m z9D;Xa9vYt~XCNO_$3=k_;zby-!?b+jYDz29Y2og=?wfpLzz}GOAA6s@@5KZqnXIZ%;ho$7obkmhPt0dty_aibR81X zJdNYX9EWr2Y!KiF3}dLkOYOw_ZGRJ1Xa=s)cq<{fN7{iW}?1cSD{XLGiv>< zsFOFN=DDbZ?n8acmSZKRJ83ABxA6`iQqs3EGpMl*0KF2ISn4wcYb zcpZL#nm3B9^fFFFy)&~=2}E%;#*p8ew0Vfeg$!)NIy{7Y%owuJ#*W@%A<$s{&598Q0O*K~I9MrpUAErBKtgsXMlC~y}Km`gR zhd1+)k7?jC2Rl#+ypQB$4&wy;5vO3q2xHE}1-KB~Q3w1Ouf$`hL@LXv|M@f)mgh>d z0u^{8>X|-|D)qZK77rlrm-!7fZve-W!%>NhLv3^!l8c#(S|7pS+hFgz$a`*9jHLd0 zChHhbpyyDf+hhCtQ31a|y@V(1coCB{e-vJd7ukLzYU6uxGOkA@whtBOGkgDgtfilq zK09}^%TXn-M=e~9+HkME{~4+xc@??wv8ceaQR{9&K4v)=CG-^PV24o~pRoRkdW8K6 zJ{QaDXy}=B;ubuFdge`z*VF&!;;8G?$CA;A8%xAf-gg5&7!Zy(w1yj^-tK{al!V<_ z%8f-*&f?a%ow9AvZ3E}G#S`(i=9HILuyq#W_e7o6R5Y0~;dp9kG#RZo;g%M9t!`r? zDH7(+rf_75i8RF`OHz~)y?xJp0 zSJzj0bw%@wCs&24t3owSbxmz`jkl|4WNk1~9dbfbYD3d54DnYmj~%LRNK&V!u$xHM zI*qYpYpO9Eu8%p>Pq({H6>Z8J?`IzNGcWs@U4C|ppIzx^*E)V?ub;{I*>$wG`kCE~ zaqZeL_}f0kS%&@W1HrYUYiY@Q7mz{162l7?D0&buyV7{oBg(27Yc)^M7ges;6BefZdGh`P$pZVc|}n0s?+lK_FZncKzdjgajK zYNX28T~-BKJeVt;_x|utDl}(lgD1+FcZ@fG1C#;3vH$=8 delta 1998 zcmYM!YiyHM9LMp~b%U$gMbdKUA!)(R2n{#e^p+E>slBp33LZZ=VGFbHcTTf#1^nA`aJ(vIg zJkQg;_n&RgTnQB)GJN{@*6}^yRqOxH%>~Ak(40dq<6US>0R32wRmf$QQ7pxnYxiI& z?TvT~rcg_#u@ZM7>t)P7Dq8S0jNn_yWzIRzqn~yjEAUI#|06D@{Tmje$5(IxmeDT5 zTd@i?KZc929l6YUiemOR8|Evm!L=_Umzkm<7V{nI z#C~@DGpLjL3l(S)i^zrOWq%V;1uLClRHoIa$QzNlCW+11>H4>0kaijsa26Hl8>kZ) zb?p<_Mf)@=z!}&7CuaDXSqe=kX1Ck15|u#V-$_}Br2o*s7w#K z_S?>5&N0-jeiya=grDT50yz&vCbhq_h0 zq^YCbhdRoWsPTE!AJR{#dwm1iwuTkTFN1fap&cFYQX({3;YCt3EwP{5y zxDvI{22{pRx%Mz>{OhiL)H#lw^iLv}xj}I^hHDCebfe~NtKt3EfamDwz!6-AAEAzD z8a2^hTeye!p?=?n%5cQ>kDR, 2022. # Chathura madusanka , 2022. # return42 , 2023. -# nish_j , 2024. +# nish_j , 2024, 2025. +# Anonymous , 2025. +# return42 , 2025. +# hirushaadi , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-06-22 11:18+0000\n" -"Last-Translator: nish_j \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-10 07:09+0000\n" +"Last-Translator: hirushaadi " +"\n" +"Language-Team: Sinhala \n" "Language: si\n" -"Language-Team: Sinhala " -"\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -160,7 +165,7 @@ msgstr "අඳුරු" #. STYLE_NAMES['BLACK'] #: searx/searxng.msg msgid "black" -msgstr "" +msgstr "කළු" #. BRAND_CUSTOM_LINKS['UPTIME'] #: searx/searxng.msg @@ -287,18 +292,18 @@ msgstr "ග්‍රාහකයින්" #. SOCIAL_MEDIA_TERMS['POSTS'] #: searx/engines/lemmy.py:86 searx/searxng.msg msgid "posts" -msgstr "" +msgstr "සටහන්" #. SOCIAL_MEDIA_TERMS['ACTIVE USERS'] #: searx/engines/lemmy.py:87 searx/searxng.msg msgid "active users" -msgstr "" +msgstr "ක්‍රියාකාරී පිරිස" #. SOCIAL_MEDIA_TERMS['COMMENTS'] #: searx/engines/discourse.py:157 searx/engines/hackernews.py:82 #: searx/engines/lemmy.py:130 searx/searxng.msg msgid "comments" -msgstr "" +msgstr "අදහස්" #. SOCIAL_MEDIA_TERMS['USER'] #: searx/engines/lemmy.py:129 searx/engines/lemmy.py:164 searx/searxng.msg @@ -318,27 +323,27 @@ msgstr "" #. SOCIAL_MEDIA_TERMS['TITLE'] #: searx/searxng.msg msgid "title" -msgstr "" +msgstr "මාතෘකාව" #. SOCIAL_MEDIA_TERMS['AUTHOR'] #: searx/engines/hackernews.py:85 searx/searxng.msg msgid "author" -msgstr "" +msgstr "කර්තෘ" #. SOCIAL_MEDIA_TERMS['THREAD OPEN'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "open" -msgstr "" +msgstr "විවෘත කරන්න" #. SOCIAL_MEDIA_TERMS['THREAD CLOSED'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "closed" -msgstr "" +msgstr "වසා ඇත" #. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] #: searx/engines/discourse.py:160 searx/searxng.msg msgid "answered" -msgstr "" +msgstr "පිළිතුරු දී ඇත" #: searx/webapp.py:323 msgid "No item found" @@ -353,15 +358,15 @@ msgstr "මූලාශ්‍රය" msgid "Error loading the next page" msgstr "ඊළඟ පිටුව පූරණය කිරීමේ දෝෂයකි" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "වලංගු නොවන සැකසුම්, කරුණාකර ඔබගේ මනාප සංස්කරණය කරන්න" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "වලංගු නොවන සැකසුම්" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "සෙවුම් දෝෂයකි" @@ -439,7 +444,7 @@ msgstr "" #: searx/answerers/statistics/answerer.py:50 msgid "Statistics functions" -msgstr "" +msgstr "සංඛ්‍යානික ශ්‍රිත" #: searx/answerers/statistics/answerer.py:51 msgid "Compute {functions} of the arguments" @@ -447,15 +452,15 @@ msgstr "" #: searx/engines/mozhi.py:57 msgid "Synonyms" -msgstr "" +msgstr "සමාන පද" #: searx/engines/openstreetmap.py:159 msgid "Get directions" -msgstr "" +msgstr "උපදෙස් ලබා ගන්න" #: searx/engines/pdbe.py:96 msgid "{title} (OBSOLETE)" -msgstr "" +msgstr "{title} (පරණ)" #: searx/engines/pdbe.py:103 msgid "This entry has been superseded by" @@ -471,22 +476,24 @@ msgstr "" #: searx/engines/radio_browser.py:106 msgid "votes" -msgstr "" +msgstr "ඡන්ද" #: searx/engines/radio_browser.py:107 msgid "clicks" -msgstr "" +msgstr "ක්ලික් කිරීම්" #: searx/engines/seekr.py:193 searx/engines/yummly.py:71 #: searx/engines/zlibrary.py:137 msgid "Language" -msgstr "" +msgstr "භාෂාව" #: searx/engines/semantic_scholar.py:78 msgid "" "{numCitations} citations from the year {firstCitationVelocityYear} to " "{lastCitationVelocityYear}" msgstr "" +"{firstCitationVelocityYear} සිට {lastCitationVelocityYear} වසර දක්වා උපුටාගැනීම් " +"{numCitations} කර ඇත" #: searx/engines/tineye.py:45 msgid "" @@ -1653,4 +1660,3 @@ msgstr "" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/sk/LC_MESSAGES/messages.mo b/searx/translations/sk/LC_MESSAGES/messages.mo index 8ad575baebedbbdd13565d2bc0bb00a69aed7dd7..7d5e68a486f8e26cd812b1b6cc455887d5690ef5 100644 GIT binary patch delta 2652 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 BI2!-} diff --git a/searx/translations/sk/LC_MESSAGES/messages.po b/searx/translations/sk/LC_MESSAGES/messages.po index 96b81123e..9785f33bd 100644 --- a/searx/translations/sk/LC_MESSAGES/messages.po +++ b/searx/translations/sk/LC_MESSAGES/messages.po @@ -8,16 +8,17 @@ # Fero Novák , 2022. # JohnyPeaN , 2022. # return42 , 2023. -# return42 , 2024. +# return42 , 2024, 2025. # Vision , 2024. +# Anonymous , 2025. +# Vision , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: Vision \n" "Language: sk\n" "Language-Team: Slovak " "\n" @@ -359,15 +360,15 @@ msgstr "Zdroj" msgid "Error loading the next page" msgstr "Chyba pri načítaní ďalšej stránky" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Nesprávne nastavenia, prosím upravte svoje predvoľby" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Nesprávne nastavenia" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "chyba vyhľadávania" diff --git a/searx/translations/sl/LC_MESSAGES/messages.mo b/searx/translations/sl/LC_MESSAGES/messages.mo index 7a4f1742217fee182a7c1514aa474a463a5c124a..e045ee1363c7f76555228b66352f73a46d49d54e 100644 GIT binary patch delta 2650 zcmX}seN5F=9LMn!$#W3#P&{!V_u+NgqnZIYy9RO8UqZ-6BvwV(TC?S25+GYBOh@BS&k3TFUJh5LoIj^Be4&k z!q2b>Z($S$#?wEGOYkyA;6JF$!*ZNT#G(Rs zp#n?8YAnQ0upjTm60%ChO1vAJ{WKJLE5_h!s0?~g5gxJqLDa&ha0On(Dh$kZHm*T! zP>U)I!@) zfw$s)_!cUFk5G4I(2gHR9mO}ux_&clCtR~$$A_3OhtcRF-2(Jr0ydy3^R{(AD&rnh zW`}Km7~|-V+WsV}5?65}&f)_0H@-Y)!F*iHgJMjr-YqBi&%mC*!JBr}Q1I6U9k zC=mn17y^O&<>1Zutu z^?W(%cITinFGg+rEGm#%Q~>p;%h!bdcWJyrLlXn3vq~F>S||~fc^axBUi-Wpwc#dw z6RS{n<`>l2|B3pVf+P=RhmC9n&Xz^k_3fm-i<)Ftgjt$Q4mz?mZIe?N^e1{UHJs-%CTHV7$p7KlS- zl7cSGN6mWu?R~j+{XKPK;rYzW+%Yx_r~9 zO5DUi3@dfM^C(ncrKpmXqt3nxwNL}9B70Gp??b*+^P%luLcMw0{s`*GMp21eM1Kg4 zA8F{tYp550MUBtlBK#M%Q0h8oJl*QC=Ajl|g$n3t)K|3?bxB)M@4sRD-KhNzuA~0i z=nw;XaS%iCw4E?!$IsjT6bAGBXH>>BcKk2Y=Q(ft31!X(Zq#Kjb12JUX=uSVYd30QFKWR-R7FNnFMfv#=zH70j2ZN&F%5$^IDuv2X8Nm9m$VN}>bB~} zoz7qPj@?b}x|ZgVt1-tCBYc@2Z>A^L?aj^i<{s$HO3L|v#Fy{O&hYRrY<+ceOJ-$L ebz^gVb<6IieE0S}jkPtkZSDfw7`dJ`k^CQkl{ZxY delta 2652 zcmXxkdra0<9LMp4fygZgP?X#AAQ%#XJP+3Zxs+mf$rj#<)r2O-Flby{*y2fsE@9G& zl}*8hv9U!gyrkL1L0h7^xi%ZJ71o*yTB~epw#ZfQkG~Ut@H*!_=XcKc`#tCP8$0HA z>X_fyA3?r|1;!L)8WUiQsmwAa4mV>oHlW5|!4y1*3vmP&;VBHlPf+u|zzDp8k@zi^ z;%|0*mB*N;>6fAAANLra38gW_fINwTcmZ?qB1YjIOuz`Q6G$e;(67RDY(On|1nGyI3Esh2EXp<}7`LH6)@1vfjq4alVxR?;;hVPKk4x!a!29t!hT%V`%tLdWN-RMI z?m`8YiZxh@LpX@xSV2~axDD^YHXjW|-i}eIzB1@TMR>yYhfxck#R9yF&tPDlvvD12 zgGLO&4pc?E@or^Mfe&Cbj^N$>#%U;%uW<$5K%Jp~zO(RRR7DbOKgISRL{7zIqZZnQ z3cMZf!&gxO97WxgVLLvCI*QMcb$w>WPPl3P1y?fRHb$b0bc@l8%diPmnM2lIRK|U% z%-*s6Gq{-kxb07&D)9q8hI8o8{wDt+XTf58lpo5`h25wC-a~Eh87ia8NRiAGD&w$1 zXQOyrP2Y>l@C8)mx=}~-Ix2uc+aJaV_BZG3z$Mgz)2JhvMV0P%)a9B-1+bvVSuh+m z--Y@;6Lq`uP??vbHr|d3WH%~+M%3kNMPDzC7inl>Aaz!0V^9mlqcTrLRV3T~UWM9l z2Ohwks5|o`>g@kSy-h)sBNo$<7sgbeHr{9LSWW#k(8)kN9z!V{L`>J))YChEbTQRBBU8UIBsl)T;paOaV^;XrQE@?aJ`2)7!gWB)Ndg`x@ zjx(SKhcO7x*$ESN{F3cYqe}Q4D&tu@{uk=?G#i|Sq)Wm+&g2SkajH4d>5*5%_wtpSd>CfN_4BF%bwhFh?UyHh=189&F=cvmeb!yjmC!MWO%$8o;-I}L1A`Q-_gvtJVrbj-dwlGTbPrTp2c7A#+sJa jj4jPIjV*g>TAP{+-OamN+nO75yzb)vTc>}@oJ{-=ahx>u diff --git a/searx/translations/sl/LC_MESSAGES/messages.po b/searx/translations/sl/LC_MESSAGES/messages.po index 4413c11dc..d66d2d21a 100644 --- a/searx/translations/sl/LC_MESSAGES/messages.po +++ b/searx/translations/sl/LC_MESSAGES/messages.po @@ -10,16 +10,17 @@ # Nik Drešar , 2023. # return42 , 2023, 2024. # Hudobni Volk , 2023. -# return42 , 2024. -# cynedex , 2024. +# return42 , 2024, 2025. +# cynedex , 2024, 2025. +# Anonymous , 2025. +# Hudobni Volk , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: cynedex \n" "Language: sl\n" "Language-Team: Slovenian " "\n" @@ -361,15 +362,15 @@ msgstr "Vir" msgid "Error loading the next page" msgstr "Napaka pri nalaganju naslednje strani" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Neveljavne nastavitve. Prosimo, preverite vašo konfiguracijo" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Neveljavne nastavitve" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "napaka pri iskanju" diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo index 711eb4a2a3e5c9b8efb9fab3a48d725dc9921d0b..f2d3690e8a64e35b4f223a2435af41ea8484a9a2 100644 GIT binary patch delta 2454 zcmX}tdrX&A9LMp4AlfhF76=G(lbb*I;g6qk5%3CvAtY%b3S>fzZ~`k4EhkT2<_0TS z5?EW>(im&Z#?)$aA=%2jWzm|G8vUa}tF<+^m|JV>{n_&@#`ZerJm)#j_k7Ryz@;(2 z3uAtxrB7JNbBwv4Y0O+>OklP#ZVbYB%*Q9O1~+0O2IB~Z;$;lOTj;_mOv2xAF}ju+ z(~lXLj$hybe1MwY;5C+6NaJO%F_CEDJRHC@JdMloYg~zsF#~-$#x!9aYN2rq$D7!L zQ)pp}&lp}YGpOg$EEb5F7=ga!%*v-x&VUxOa0T|_IvmF+^kXm-V;tQWOuq=-Sb@E` z4^#bU?)6l}js2y%XvSsQq2Kz7wKSrJHXQ;Ei zhuYyRY6Ibg_K_8!=I=zUx5x1iZlZqzlksOfqEq^pMjQig6d4nMr%{iqcq@K)G z48y-r#WaV!DsVUILo4wRR-o3o?)V+H(f<*Zk+rMrfNOD~s-&BS9t_}1cpjC?@YVK2 zA8w&vi;HmtRirmi0ZyQfUoG! z2?mt1Y1E5z%8XfpPobXYqt3h%m5EN&yu+y4IEj42Tt%%DSkAkcj5?}3>>*P}A?3TojV)bk-!Du2KvOnKT4s0@{XZK(OX@mV~M zd+{Fb!paIe1D{wlG;s`-@=4UrT-+7C7>la&Jb@`HVMjwm;mCY{ncz3f|no zcW^;9g@$J_6}PgBCVUOw#wpCe4zAR+?*F?q_!D3(@_7v}qpsQE=j;eSK%Mz*bmJtd zx&t^b6<-RrV+JZiryNHxo&Gp#$1@m=kC7P6yc*5t{I}Ck2HH?(cMSExQ^-v*AE5%9 z#yxm`n=voqqFOuE2Qi!ex2T=XqTWx~Zr4zj<2qCTHK>4^F^KP*F6Y5fETMl=5Ad!t zejoM1BS-%ocJ)SJB;)xQgH@iL(8 zD{%=Hp(5XjdT}3Wr+uhe8OCM!4Jz=zo$-JM`@Lk0V7vgmScQ7OyCL6xVUPhuJcQ9W ziiLOsRmA}>aF@}IaX4_XHT?US++2@0$K%aQ%*iXv$;#d7TrO9Hi>N6g76MV0f?!OXqaligUK=G;E#ocEmbKIb{ld&kJx zu+wM5hRdgf(k7Yxl4Ca6%%bwlvN0A@umm5(HCTx)7>h$V4bNa4UdCvgz*PJV=U_~} z*+I<4O#BSD<4x53^*#$(B8}&LW;3t{AHYMHfk&|rFJKAY$1DsKm~FsD)JCHikKf|! zIDsK-^_#K8?x3DO%x008iwPJgWYz*2D;dy6Js80K_!y4jOblmm8qRk0Vl4eK%*HBw z1Giy%nAxQH%%z`IWVR5?F&ukP@7awc!48CIq|-QuQFs%*_$O|{WTM-TyHGETD|S-p zL7k)$wP6j;#d=J@S5Se!iL-D3Yw;ZFYU4=fLm2YW(8h~UCtQVO%bG9=`!EJSMBVKt zsJp#^I^jLk0TP1Fl?74rn^F6GAH1AOjMQZprHqcumw+|Qkk&G znHa!2`t>*mhfqa&2^HWN>I&|l_PL9*F=nwdKg+cOHLnGgp$?1<(Rhu9?rb0Gu8z6= zPf;hkf?6Gj-vv}UrPS3(+JW~ z>o!V@b(&I`U~U^N3jp;BB}>5Mm_GSi9LcpvKd04kN=VJc>!0QpNEsfh#I39-&Etg_yy!Jwg)MA zyN3NZwbpDHk7GKn<`f(7RqVqF%)%Gz__5RX|27SN0<4F8UcfV`&#d=pC&KqocYX!4 zaU50Mk=&PxF9X{#8SXs&>r>Y{HI(PN3>Cl{R6v_BhWFcc_rY#lM!#PV z@CSGNSJZ;Lu9NGX>P^HMjF(^%)}V^D6;&fW7=imy`}Lvbzw3G$L%P$8?u0Q+rvEc4 z(tl935YymnI32Z73T9xA+pj|fupV_KFQWqJM(wxP^@KbA1#14~2J)|y-D1Fl_b?Tc z)|pXrR*Lhm3>A4ZYT-82N&8T>GKl&36)Nz*-SNmqXI&a5Fdjr7)}Yq!Xk6edILv?| z9>7^Rf, 2022. # SecularSteve , 2022, 2023. # return42 , 2023. -# return42 , 2024. -# crnobog , 2024. +# return42 , 2024, 2025. +# crnobog , 2024, 2025. +# Anonymous , 2025. +# SecularSteve , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: crnobog \n" "Language: sr\n" "Language-Team: Serbian " "\n" @@ -364,15 +365,15 @@ msgstr "Извор" msgid "Error loading the next page" msgstr "Грешка приликом учитавања следеће странице" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Неважеће поставке, молимо уредите свој избор" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Неважећа подешавања" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "грешка у претрази" diff --git a/searx/translations/sv/LC_MESSAGES/messages.mo b/searx/translations/sv/LC_MESSAGES/messages.mo index cd7d293282d9fbee5f4942a56b6b7f2e30c7c721..9ff46229d53c30063bb3caf12954e2d73173c479 100644 GIT binary patch delta 2782 zcmX}teN0zX9LMnk2pA}dLOcrsqJT7>Awc9o43Y;?K+_bVw6O{m*c4se3Z|f@C39gp zlghso*I<>!Djk1>!!4%uN1-gsoYfyol&W@10@H z!&r;$*o3q3n+)TaU>Z|);65tB-?$9DGu?^lsCoGqiM6N&wW1dM29nDRqBin9`r~bU z3V*}LuqMlx9PC9c_)?Z*j2De749vv|RNyI8AdhTg7NIYOVIrnrDQcm+Q1d!bJ96xJ z4{D*W;|n;50~kT}Ap8s$<5h=7Fpa-ZfdX=knU6sjfJ;z2$;Jg(f?8k$24W{B;~{(o zKSm#nWV=cfhgw)JYJM?3gzIn~I-6-Ia4V`Luc8vZhT6di)WnZa&-_bNf-9&BTtg+8 z#3;Ol+JI-CdtWdrZUQQ98tT5~?zm&hXy}GDsDw|W61z(CHQX{4dj??UZ#H>&hKs8YR&bvS@p(4W=^_&9x2 z;La;YRdTKEZ^t?GcVY>?hrm3SdV&*HlYsd zbEpKJsM797%|B*6ftq(3RpIlf(qFRIFQcQ|s0vb^qxV)L*4O$AC&Qf)RKPAH}<<*K=W!YpgW^ zRq7;Er3z62%W*T-VKEM&#_yx%X;At6Q1^!wJMM)P29ziV^^EdSH&ogFdfRV7m9QQ4 zDE6Vg2ZvDieS&(FfpHMvTR0 zQ7b-(s>s`@1ZPkSJcruhhxigs;8Lt9b4$DjHUBW`ZRtbZH;HW2F}K`?nZ`%BFoR08 zV3iv<3f0d=1u8)u+6s)rIvl_~I19tcqWRI7go&7mb+`q4u^#VWq~8C+aQOb@{tjy=suEq8ggw}T!*)EX(*3oJMTe@H zdK&t|okT6*9_lRkRPnvWXw)IBMV<1k=!Y`;T-I@*UzBlpSAs= zD(bI57Z{KiQ31wKJNz2caSD|nu-Xk6g6hYkN|}Uym|-onR#@v$i5t-qx1$!=Qce98 zpp^k7-i->}W$i`n;3#T=CsBdkx1L4KAF^IR&Hvn9A4lDH)%qPO-w&v_>Q{$`0?eQm z;927ufT}<^>bnq+T5%C7U>Pb;{h_D@#$XIC#uQwI`dRM4jd%q0cKnQHQSu#1<;ASuwx?rT TTT4f0Ou_E|n!}lCUq$~5)LT65 delta 2786 zcmYk-TToS19LMp6a?yie5_mfx2Q*Re&^aKANO4I-4M-6Z33a&G#ZqSuXw4w*X*6XN z(zJA(G=#!SR&Y{rc^4!_Gbj!B>~Y6l*o0))*sW*&}5OY0Co3UC!w zf$OLMBbbD@Q5%TNbMKpmS~nfFZVu|cB6r*|%W3F_DpbIiPyu$M0`5lzIA}eFv*>rD zDmQ>^+T6ftIC-&qU%;A!N+1takrLE;wK$3MXBug!^xIH7ZAF#7168W`u?o+i68hWv z2utaQ=ezUDP?db%_BY`K`Yl+DZ=xQ-C7goSu#ouXHyR53WVp(;^{N^mXe zHQInWtXok5+EAt4hnj!HdIB}?G^)bqQKi3ZuU|n&r5UD?j3cOtk5DCwd)i&li`scA z?!z=x!1H$e3)}x1^+<+rF8*k*Pb_fPiN|)vy{P+77f^qdx`zRkq#wO_9W(KF)a#jA z=sMe)jw*E~s#3+M1fp6k;yo;(#6bC`qlTeQ?)1kq^HH%R@-;TQR5b6

{-cK8YI#9^F+t4rJx??BBzhd=sf5wv-vE2O)ID-xJ2T-L;U*YaB7bEDGVKP>t9#sg(Vms=rbRfks$8j9q z!dT*)J2WEkFVq)GznSVMU=$`|2F}80T#4FY9qLiNX#369HdH0{Vmfxk_OHd0gM=i97}6s z`%#GupaNb&E%XbjWcN|O4S(8k53h4gdfE diff --git a/searx/translations/sv/LC_MESSAGES/messages.po b/searx/translations/sv/LC_MESSAGES/messages.po index 571c6d96f..b9237e886 100644 --- a/searx/translations/sv/LC_MESSAGES/messages.po +++ b/searx/translations/sv/LC_MESSAGES/messages.po @@ -16,20 +16,27 @@ # tygyh , 2023. # return42 , 2023. # Luna , 2023. -# return42 , 2024. -# mrintegrity , 2024. +# return42 , 2024, 2025. +# mrintegrity , 2024, +# 2025. # wintryexit , 2024. # Wexterity , 2024. # Erico , 2024. # AndersNordh , 2024. +# Anonymous , 2025. +# AndersNordh , 2025. +# tygyh , 2025. +# Luna , 2025. +# Erico , 2025. +# Wexterity , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-02 19:38+0000\n" -"Last-Translator: AndersNordh " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: Wexterity " +"\n" "Language: sv\n" "Language-Team: Swedish " "\n" @@ -370,15 +377,15 @@ msgstr "Källa" msgid "Error loading the next page" msgstr "Kunde inte ladda nästa sida" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Ogiltiga inställningar, vänligen redigerar dina inställningar" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Ogiltiga inställningar" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "sökfel" diff --git a/searx/translations/szl/LC_MESSAGES/messages.mo b/searx/translations/szl/LC_MESSAGES/messages.mo index e78e232e22576091366383ef7a0254d929784340..166375855f87e4820b22ff851509ee736a6ff87a 100644 GIT binary patch delta 65 zcmZoHZ!F(%TFKN@*T7KMz)Zo=%*xPA+W-i-0{nG@Qp+-nGxPIwT@p)DtrUz5jNs}_ MtxSzKDK|<00B|c2)&Kwi delta 65 zcmZoHZ!F(%TFKNz*U(7U&`iO=!phh{+W-i-0{nG@Qp+-nGxPIwT@p)DtrUz5jDYG4 Sb&X6F42`Tz3^pk@N&o, 2022. # gkkulik , 2022. # return42 , 2023. -# return42 , 2024. +# return42 , 2024, 2025. +# Anonymous , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" "Last-Translator: return42 " "\n" "Language: szl\n" @@ -353,15 +354,15 @@ msgstr "Zdrzōdło" msgid "Error loading the next page" msgstr "Feler ladowanio nastympnyj strōny" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Niynoleżne sztalōnki, zmiyń swoje preferyncyje" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Niynoleżne sztalōnki" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "błōnd wyszukowanio" diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo index feaf3dd13a7fd266e8f6faca90a2759faa7abe90..08a8da42c0136d1d4b1a9f63278993e8351daa64 100644 GIT binary patch delta 2205 zcmX}reN2^Q7{~Do-!im;e$FdMelm#;qngip-7S*0wR5qrR zWNc1>VGA8po}ESL1Q+H$qFv{?eu_viCW{@`=p_qm_vy6*eBp25+G z_eUc>2+wyeMwlHIMIyA7kz%3CuwS zdI8(;AijjNGtBP8S1}HU@eql9gPhfB17^FhBjB)^!A~scMZaPQ|3>y&fVU{{4lKfE zyo?{B5&QyFc-%#2B%O7Mv#d)J*Y&7FbXeWH2&$XJ9dMC0;h4@E_@6% z{|l9A8WWPXwWy4rMxCSs)f+vYBc9`^=dPgw-kI<2Pewvn9x9=|=%fGah_~TARE^Jg z^J!GT=m*>v-Hp2H0BXGqeOQC5a6hV4L*DuYY^Uk|K=sm|0(W0GKFIuQEF`}93(X$I zYE&~0dw$}12Gx|Gp-w)H3LH&Txg3>1A^+%GYsXmZN1gN>>P9XjRkeAXQlE1HIvotE z7%0OZP#YGkc57XXTbbA6IvmCnoW$SJUrfVcWQkjfYUIPP=Wzp`!gjpktv9Z5Z|)sb z0w>pS|1`XP$-*#BB71FMt=l|Tv4Z&`qU!|pco%k{O3{nDk~RL#O}|+k#^W)p!H=;s!ffeAH}eyl+yn+O%WfU^kN@oV#z~h+1QA>;^U~= zpT~au4b!n}n|tDqP@n5K?!y@jli@BSI*WAGbUsvq z+b|IuFbX>{72if(`8m8Dub}o#dnS~-S6_m9?-SUG&miw{Y%T>>ZGGs&AgY!dQ30Ox zd>vK0VQ+o`wSNkgXiTM>z*f}rm8j?2QSX1(`+XF3^DZ=NIpA6HLQc=BrSNR^UQ>1LKKry$qD`X-vimRE=j< zxduIJQ2V-2pX&gs#uMIr-cC1QHmVmkc|L{e{-daaoJE!JDi*~tn6t~hB0uVfLM+8F zHenCamv&pV+ic~i1aDLiwnw+c+>sl|3I?+B{K33XFt2+mDK7ukN^U4OCnJl$$Z%~- kYhZhGZDY&c+SaD#kiTws-TsEgrq+6Y;jQ6ddGbW)e+Kj-+yDRo delta 2211 zcmYk+e@vBC9LMqR5hS%qrW#BBl5lb-}o3H{S_!b_NOL#TCr#0BUpFk6l_1?F4}{4@i8242M1@fbdaZG~pD@oUrq|6%|$ZZ>Pc zd8j~7;uajnotRi;b_+g(nHa@gB=!ZeSKAOYYsJB!V-`!}2L`mz&sd3nB6F>jRTTI> ztj34&Cp?Zy_yF6k!wDp|T}1^fC^jp@I&8*mUjGx!rXLeBdkS+M8Z9)AU^>Q^xQS$8 zIsHP^3+>p6kE3?*J#t8vSZc=UTM26XZdAhCQ6+i~Z^KDU!x*wsf_~J7oe+%&XjG$K z7(?yk0>QpzuA&0Y47>9Sk(gG6N~jP0+&|mzO?VSk zZnV-@wMouzaHn~BdAiH@W#*M0GIAJ)Lq(iyE|_$uB87tRuSLw ztEd}xqAp|9^L@|Ls7v_~YUi;;Q{Z&Zxu^tc`NO@n9hiYfP&++~I+0(Is#+4e)aP7- z&J#4+X(+?*P!m!YxV2t_E9m!N9Y!%1eGAPlVLmotN{w5JPUOR|owx*#;Q(It#v`@v ziN13*JC>TG3xeDq1Lm-ZUQB! zK-(}E_uyc@6%B5nRQwD$W^)hHCWX$NJAN)!W_Ja zs&T?St`(l^QS(MnpX&sw#uvSQ(mFR_7~~@+KjSbs3aIF4-|(hON)p9o|9Q!7Ay`2ODY1P z^2$)SsF0+_Kv(ys-k$#Z`?|Zj`vO(}?~OO+d{y}$@_8GO diff --git a/searx/translations/ta/LC_MESSAGES/messages.po b/searx/translations/ta/LC_MESSAGES/messages.po index b973c6b83..54820aa91 100644 --- a/searx/translations/ta/LC_MESSAGES/messages.po +++ b/searx/translations/ta/LC_MESSAGES/messages.po @@ -14,17 +14,23 @@ # jenishngl , 2023. # sriramsekar , 2023. # Eshan-K-I <2027eiyer@tjhsst.edu>, 2024. -# ecevinoth , 2024. -# mukmckenzie , 2024. -# demonshreder , 2024. +# ecevinoth , 2024, 2025. +# mukmckenzie , 2024, +# 2025. +# demonshreder , 2024, +# Anonymous , 2025. +# sriramsekar , 2025. +# jenishngl , 2025. +# return42 , 2025. +# Eshan-K-I , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-08-27 16:18+0000\n" -"Last-Translator: demonshreder " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: ecevinoth " +"\n" "Language: ta\n" "Language-Team: Tamil " "\n" @@ -365,15 +371,15 @@ msgstr "ஆதாரம்" msgid "Error loading the next page" msgstr "அடுத்த பக்கத்தை திறப்பதில் தவறு நிகழ்ந்துவிட்டது." -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "ஏற்க முடியாத அமைப்பு,உங்கள் விருப்பத்தை தொகுக்கவும்" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "ஏற்கமுடியாத அமைப்பு" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "தேடல் பிழை" diff --git a/searx/translations/te/LC_MESSAGES/messages.mo b/searx/translations/te/LC_MESSAGES/messages.mo index 9456585844aff1d4ba192cdaad97b71229735711..a4497d052e6d77cda83e1d47d14b9de87c11b63a 100644 GIT binary patch delta 13165 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 delta 4704 zcmYM$3s~3H9mnzWM@_-J1pW~MFg zwy3u{ec|J=y>}aae&la5e=qK*+W&uk7-UQzs^>8kdkyyL8Q7P4&^aD2qF#y@<5ZlE zl{f%*<3ikvz409OHzsV(dj%7Hi8rAiC(vOS^2jVeKdwRrum!bni*p|asXv9I@E9_& z@x^)z4Zs-cv6zm-FdC;~66>3C3Ywq>HSj*v0{Hdt^+0H@?52Rr-1w~$o7b0^VYEgk~!T{cc>i-C;e;ev752F@* z3;AP?@{bliiEQ3{i(0rpgVb*ba-B>dp8PAa92%6;iKvv$#cT|rGIB3!f`^@tJKIqU zy@1NVYtAF6z>lFe)a}}PQ1hI2?cc?de|7W?^(Kf$b%;Z?C!=s*BO)R&@m`VQ(2b)k;vYvhmV7p9g$A%MMbhVu$ksw+@CTaMakwX+_T%4Sp` z+fjk+LIvK68h-#a?m5iFS5X=M91}789R;#shEUUlK^%vLs0pf36K_Ht)mGG*?!>XU zAGN@Hs0?(WQvRuH{~WWZpGD1+cBz+<9Hc31CR5OWrOuGE1{F{pDup*<2=7AecN8Z^N#P&?b> zd=wSXQy7I2)C8TV_LouP52481)0%33AA8F8lz8t7J z`cWN{QIV#h78-+EsK7lhaZX0{n}K?-D^T;SM(w;7HGT`~_1lKp@UOxYwBuIiZ%_j| zQFq`FYT$dQ1&*Tv`zPvyauU`5M^uLTbCb2eK-A7tP=TbQ#syIu$VDAdcmf4Q{4-pE zn=lqXzz==Ke1ZC=zn0D}@FU~}F|#tf_Eo6*7SwCH2Z_ZzhF{^EsD(N+xfjg$F>1bn zG%|JAq*DmeFcbL}nFegeyHT%E%xGR29ElZJjS8?6wcsCdH-3mav5t2x1$|7a%%mc3 zqRGZeEJp?0f{XP2KTkmu3>@oy68E7N_&u&6;ybLXZ+*5KuYln z>T^)@?ZLA+HpdGnl|hBnr=aF$Ol&}XI9@_Mf7kgL z@(D1$@%$pf01}&7iJX?%g$ndJGwSD)r|u2~#I}6Hmls>MK$0H>3KspkBwrcmwtz$ucV@aiKAMKZUsz z{(`zh8HBYTr(p?xfjX;<$=(7BaT@gvcs+KaE?L?XZ>KXcfqFISLv%B4!=0`@VXBv@ zT%;*%W>L^t?Z6a#0JYN>UHuK@g)lu>?BfPs&c}xO0-~6KM^G8^PdDaP4B~}Li^{}7 zRDfNm)JHK$^DV^-|Np<6g1&4Aa3u@G^R6j?EwjAW$Mb=!W}pWTT!oB zJL)W7#8LP@>W=(?N^Q~t?|C6=hjUTwwOE7OQS+Tajf-07Wgyj=zmW6K;K589vauF} z*n+yHZ=wQF{uNLn#^MN6djTr2O4N>TaL;dd?f0Xf_JgSYAD{v{g__SSCjW{oX0bQX zXw**TV_z_IQXE7d+;RyU16?j~DiB~9d zR-p#`5|xn-)NSo{&tth!TCfzAsR~s8EvO7Uk(+eWS8FPHLE%RXHfsw5~`}XLO(Q9g}0`;MF z)m64`Ot$S9GjUhYZ-)gZ*ibOe-WYtvj?9`Ksn06$*^caK_I&o!k=Mt?_y*)><>qDO z76fvNO2+5duAHO-T5_}UCIoWxO7e4pIsC+whZ-8Q7BYLo+E8O%eMz9cs&Qley8OIA z*-xcNe(p%7&igX*%J>(1*>Odcwombx$hqR|D7&oeP^5m+;3#`|@^ITRxx8;%cgK$I z_Q&kOS^mg-Q(~hc1=A9vB3ox%%VY)NI4{cq)RyMNwV`>%O1k@opLQTD+_v+R_sEq9Rw`T, 2022. # networkneil , 2022. # return42 , 2023. -# sushen23 , 2024. -# return42 , 2024. +# sushen23 , 2024, 2025. +# return42 , 2024, 2025. +# Anonymous , 2025. +# Harshith-10 , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-25 12:40+0000\n" -"Last-Translator: return42 " -"\n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-09 07:08+0000\n" +"Last-Translator: Harshith-10 " +"\n" +"Language-Team: Telugu \n" "Language: te\n" -"Language-Team: Telugu " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] #: searx/searxng.msg msgid "without further subgrouping" -msgstr "" +msgstr "తదుపరి ఉపసమితి లేకుండా" #. CONSTANT_NAMES['DEFAULT_CATEGORY'] #: searx/searxng.msg @@ -164,12 +167,12 @@ msgstr "చీకటి" #. STYLE_NAMES['BLACK'] #: searx/searxng.msg msgid "black" -msgstr "" +msgstr "నలుపు" #. BRAND_CUSTOM_LINKS['UPTIME'] #: searx/searxng.msg msgid "Uptime" -msgstr "" +msgstr "సేవ లభ్యత సమయం" #. BRAND_CUSTOM_LINKS['ABOUT'] #: searx/searxng.msg searx/templates/simple/base.html:50 @@ -357,15 +360,15 @@ msgstr "మూలం" msgid "Error loading the next page" msgstr "తదుపరి పేజీని లోడ్ చేయడంలో లోపం" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "చెల్లని సెట్టింగ్‌లు, దయచేసి మీ ప్రాధాన్యతలను సవరించండి" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "చెల్లని అమరికలు" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "శోధనలో లోపము" @@ -451,7 +454,7 @@ msgstr "ఆర్గ్యుమెంట్‌ల {functions} గణించ #: searx/engines/mozhi.py:57 msgid "Synonyms" -msgstr "" +msgstr "పర్యాయపదాలు" #: searx/engines/openstreetmap.py:159 msgid "Get directions" @@ -538,11 +541,12 @@ msgstr "హాష్ డైజెస్ట్" #: searx/plugins/hostnames.py:103 msgid "Hostnames plugin" -msgstr "" +msgstr "హోస్ట్ పేర్ల ప్లగిన్" #: searx/plugins/hostnames.py:104 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" msgstr "" +"హోస్ట్ పేర్లను తిరిగి వ్రాయండి, ఫలితాలను తొలగించండి లేదా హోస్ట్ పేరు ఆధారంగా వాటికి ప్రాధాన్యత ఇవ్వండి" #: searx/plugins/oa_doi_rewrite.py:12 msgid "Open Access DOI rewrite" @@ -558,7 +562,7 @@ msgstr "" #: searx/plugins/self_info.py:9 msgid "Self Information" -msgstr "" +msgstr "స్వీయ సమాచారం" #: searx/plugins/self_info.py:10 msgid "" @@ -570,37 +574,43 @@ msgstr "" #: searx/plugins/self_info.py:28 msgid "Your IP is: " -msgstr "" +msgstr "మీ ఐపీ: " #: searx/plugins/self_info.py:31 msgid "Your user-agent is: " -msgstr "" +msgstr "మీ యూజర్-ఏజెంట్: " #: searx/plugins/tor_check.py:24 msgid "Tor check plugin" -msgstr "" +msgstr "టోర్ చెక్ ప్లగిన్" #: searx/plugins/tor_check.py:27 msgid "" "This plugin checks if the address of the request is a Tor exit-node, and " "informs the user if it is; like check.torproject.org, but from SearXNG." msgstr "" +"ఈ ప్లగిన్ అభ్యర్థన చిరునామా టోర్ ఎగ్జిట్-నోడ్ అవునా కాదా అని తనిఖీ చేస్తుంది మరియు అది " +"check.torproject.org లాగా, కానీ SearXNG నుండి వినియోగదారుకు తెలియజేస్తుంది." #: searx/plugins/tor_check.py:61 msgid "" "Could not download the list of Tor exit-nodes from: " "https://check.torproject.org/exit-addresses" msgstr "" +"టోర్ ఎగ్జిట్-నోడ్‌ల జాబితాను https://check.torproject.org/exit-addresses నుండి డౌన్‌లోడ్ " +"చేయలేకపోయాము" #: searx/plugins/tor_check.py:77 msgid "" "You are using Tor and it looks like you have this external IP address: " "{ip_address}" msgstr "" +"మీరు Tor ఉపయోగిస్తున్నారు మరియు మీకు ఈ బాహ్య IP చిరునామా ఉన్నట్లు కనిపిస్తోంది: {ip_address}" #: searx/plugins/tor_check.py:85 msgid "You are not using Tor and you have this external IP address: {ip_address}" msgstr "" +"మీరు Tor ని ఉపయోగించడం లేదు మరియు మీకు ఈ బాహ్య IP చిరునామా ఉంది: {ip_address}" #: searx/plugins/tracker_url_remover.py:16 msgid "Tracker URL remover" @@ -612,7 +622,7 @@ msgstr "తిరిగి వచ్చిన URL నుండి ట్రా #: searx/plugins/unit_converter.py:29 msgid "Convert between units" -msgstr "" +msgstr "యూనిట్లను మార్చండి" #: searx/templates/simple/404.html:4 msgid "Page not found" @@ -642,7 +652,7 @@ msgstr "ద్వారా ఆధారితం" #: searx/templates/simple/base.html:68 msgid "a privacy-respecting, open metasearch engine" -msgstr "" +msgstr "గోప్యతను గౌరవించే, ఓపెన్ మెటా సెర్చ్ ఇంజిన్" #: searx/templates/simple/base.html:69 #: searx/templates/simple/result_templates/packages.html:59 @@ -679,7 +689,7 @@ msgstr "పొడవు" #: searx/templates/simple/macros.html:41 msgid "Views" -msgstr "" +msgstr "వ్యూస్" #: searx/templates/simple/macros.html:42 #: searx/templates/simple/result_templates/files.html:34 @@ -702,15 +712,15 @@ msgstr "GitHub లో కొత్త సంచికను సమర్పి #: searx/templates/simple/new_issue.html:66 msgid "Please check for existing bugs about this engine on GitHub" -msgstr "" +msgstr "దయచేసి ఈ ఇంజిన్ గురించి ఇప్పటికే ఉన్న బగ్‌ల కోసం GitHubలో తనిఖీ చేయండి" #: searx/templates/simple/new_issue.html:69 msgid "I confirm there is no existing bug about the issue I encounter" -msgstr "" +msgstr "నేను ఎదుర్కొన్న సమస్యకు సంబంధించి బగ్ ఏదీ లేదని నేను ధృవీకరిస్తున్నాను" #: searx/templates/simple/new_issue.html:71 msgid "If this is a public instance, please specify the URL in the bug report" -msgstr "" +msgstr "ఇది పబ్లిక్ ఉదాహరణ అయితే, దయచేసి బగ్ నివేదికలో URL ని పేర్కొనండి" #: searx/templates/simple/new_issue.html:72 msgid "Submit a new issue on Github including the above information" @@ -728,11 +738,11 @@ msgstr "ఎర్రర్ లాగ్‌లను వీక్షించం #: searx/templates/simple/preferences.html:74 msgid "!bang for this engine" -msgstr "" +msgstr "ఈ ఇంజిన్ కి !bang" #: searx/templates/simple/preferences.html:80 msgid "!bang for its categories" -msgstr "" +msgstr "దాని వర్గాలకు !bang" #: searx/templates/simple/preferences.html:102 #: searx/templates/simple/stats.html:64 @@ -799,7 +809,7 @@ msgstr "ఫలితముల సంఖ్య" #: searx/templates/simple/results.html:48 msgid "Info" -msgstr "" +msgstr "సమాచారం" #: searx/templates/simple/results.html:75 msgid "Try searching for:" @@ -931,11 +941,11 @@ msgstr "ఫలితాలను దింపుకోండి" #: searx/templates/simple/elements/engines_msg.html:4 msgid "Messages from the search engines" -msgstr "" +msgstr "శోధన ఇంజిన్ల నుండి సందేశాలు" #: searx/templates/simple/elements/engines_msg.html:7 msgid "seconds" -msgstr "" +msgstr "క్షణాలు" #: searx/templates/simple/elements/search_url.html:3 msgid "Search URL" @@ -944,12 +954,12 @@ msgstr "శోధన URL" #: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/preferences/cookies.html:54 msgid "Copied" -msgstr "" +msgstr "కాపీ చేయబడింది" #: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/preferences/cookies.html:54 msgid "Copy" -msgstr "" +msgstr "కాపీ" #: searx/templates/simple/elements/suggestions.html:3 msgid "Suggestions" @@ -968,7 +978,7 @@ msgstr "నిష్క్రియ భాష" #: searx/templates/simple/filters/languages.html:8 #: searx/templates/simple/preferences/language.html:11 msgid "Auto-detect" -msgstr "" +msgstr "ఆటో-డిటెక్ట్" #: searx/templates/simple/filters/safesearch.html:1 #: searx/templates/simple/filters/safesearch.html:2 @@ -1033,35 +1043,35 @@ msgstr "క్షమించండి!" #: searx/templates/simple/messages/no_results.html:12 msgid "No results were found. You can try to:" -msgstr "" +msgstr "ఫలితాలు ఏవీ కనుగొనబడలేదు. మీరు వీటిని ప్రయత్నించవచ్చు:" #: searx/templates/simple/messages/no_results.html:14 msgid "There are no more results. You can try to:" -msgstr "" +msgstr "ఇక ఫలితాలు లేవు. మీరు వీటిని ప్రయత్నించవచ్చు:" #: searx/templates/simple/messages/no_results.html:19 msgid "Refresh the page." -msgstr "" +msgstr "పేజీని రిఫ్రెష్ చేయండి." #: searx/templates/simple/messages/no_results.html:20 msgid "Search for another query or select another category (above)." -msgstr "" +msgstr "మరొక ప్రశ్న కోసం శోధించండి లేదా మరొక వర్గాన్ని ఎంచుకోండి (పైన)." #: searx/templates/simple/messages/no_results.html:21 msgid "Change the search engine used in the preferences:" -msgstr "" +msgstr "ప్రాధాన్యతలలో ఉపయోగించే శోధన ఇంజిన్‌ను మార్చండి:" #: searx/templates/simple/messages/no_results.html:22 msgid "Switch to another instance:" -msgstr "" +msgstr "మరొక ఇంస్టాన్సుకు మారండి:" #: searx/templates/simple/messages/no_results.html:24 msgid "Search for another query or select another category." -msgstr "" +msgstr "మరొక ప్రశ్న కోసం శోధించండి లేదా మరొక వర్గాన్ని ఎంచుకోండి." #: searx/templates/simple/messages/no_results.html:25 msgid "Go back to the previous page using the previous page button." -msgstr "" +msgstr "మునుపటి పేజీ బటన్‌ను ఉపయోగించి మునుపటి పేజీకి తిరిగి వెళ్ళండి." #: searx/templates/simple/preferences/answerers.html:4 #: searx/templates/simple/preferences/engines.html:23 @@ -1155,15 +1165,16 @@ msgstr "" #: searx/templates/simple/preferences/cookies.html:46 msgid "Copy preferences hash" -msgstr "" +msgstr "ప్రాధాన్యతల హాష్‌ను కాపీ చేయి" #: searx/templates/simple/preferences/cookies.html:57 msgid "Insert copied preferences hash (without URL) to restore" msgstr "" +"పునరుద్ధరించడానికి కాపీ చేయబడిన ప్రాధాన్యతల హాష్ (URL లేకుండా) నమోదు చేయండి" #: searx/templates/simple/preferences/cookies.html:59 msgid "Preferences hash" -msgstr "" +msgstr "ప్రాధాన్యతల హాష్" #: searx/templates/simple/preferences/doi_resolver.html:2 msgid "Open Access DOI resolver" @@ -1171,25 +1182,26 @@ msgstr "యాక్సెస్ DOI పరిష్కరిణిని తె #: searx/templates/simple/preferences/doi_resolver.html:14 msgid "Select service used by DOI rewrite" -msgstr "" +msgstr "DOI తిరిగి వ్రాయడానికి ఉపయోగించే సేవను ఎంచుకోండి" #: searx/templates/simple/preferences/engines.html:9 msgid "" "This tab does not exists in the user interface, but you can search in " "these engines by its !bangs." msgstr "" +"ఈ ట్యాబ్ యూజర్ ఇంటర్‌ఫేస్‌లో లేదు, కానీ మీరు ఈ ఇంజిన్‌లలో దీని ద్వారా శోధించవచ్చు: !bangs" #: searx/templates/simple/preferences/engines.html:15 msgid "Enable all" -msgstr "" +msgstr "అన్నిటిని ఎనేబుల్ చేయి" #: searx/templates/simple/preferences/engines.html:16 msgid "Disable all" -msgstr "" +msgstr "అన్నిటిని డిసేబుల్ చేయి" #: searx/templates/simple/preferences/engines.html:25 msgid "!bang" -msgstr "" +msgstr "!bang" #: searx/templates/simple/preferences/engines.html:26 msgid "Supports selected language" @@ -1197,7 +1209,7 @@ msgstr "ఎంచుకున్న భాషకు మద్దతు ఇస్ #: searx/templates/simple/preferences/engines.html:29 msgid "Weight" -msgstr "" +msgstr "బరువు" #: searx/templates/simple/preferences/engines.html:33 msgid "Max time" @@ -1205,11 +1217,11 @@ msgstr "గరిష్ఠ సమయం" #: searx/templates/simple/preferences/favicon.html:2 msgid "Favicon Resolver" -msgstr "" +msgstr "ఫేవికాన్ రిసాల్వర్" #: searx/templates/simple/preferences/favicon.html:15 msgid "Display favicons near search results" -msgstr "" +msgstr "శోధన ఫలితాల దగ్గర ఫేవికాన్‌లను ప్రదర్శించు" #: searx/templates/simple/preferences/footer.html:2 msgid "" @@ -1241,17 +1253,19 @@ msgstr "వెనుకకు" #: searx/templates/simple/preferences/hotkeys.html:2 msgid "Hotkeys" -msgstr "" +msgstr "హాట్‌కీలు" #: searx/templates/simple/preferences/hotkeys.html:13 msgid "Vim-like" -msgstr "" +msgstr "విమ్-లాంటిది" #: searx/templates/simple/preferences/hotkeys.html:18 msgid "" "Navigate search results with hotkeys (JavaScript required). Press \"h\" " "key on main or result page to get help." msgstr "" +"హాట్‌కీలతో శోధన ఫలితాలను నావిగేట్ చేయండి (జావాస్క్రిప్ట్ అవసరం). సహాయం పొందడానికి ప్రధాన లేదా ఫలిత పేజీలో \"h\"" +" కీని నొక్కండి." #: searx/templates/simple/preferences/image_proxy.html:2 msgid "Image proxy" @@ -1278,6 +1292,7 @@ msgstr "శోధన కోసం మీరు ఏ భాషను ఇష్ట #: searx/templates/simple/preferences/language.html:25 msgid "Choose Auto-detect to let SearXNG detect the language of your query." msgstr "" +"మీ ప్రశ్న యొక్క భాషను SearXNG గుర్తించేలా చేయడానికి ఆటో-డిటెక్ట్‌ను ఎంచుకోండి." #: searx/templates/simple/preferences/method.html:2 msgid "HTTP Method" @@ -1285,7 +1300,7 @@ msgstr "HTTP పద్ధతి" #: searx/templates/simple/preferences/method.html:14 msgid "Change how forms are submitted" -msgstr "" +msgstr "ఫారమ్‌లను ఎలా సమర్పించాలో మార్చండి" #: searx/templates/simple/preferences/query_in_title.html:2 msgid "Query in the page's title" @@ -1320,6 +1335,7 @@ msgid "" "Perform search immediately if a category selected. Disable to select " "multiple categories" msgstr "" +"ఒక వర్గం ఎంచుకోబడితే వెంటనే శోధనను నిర్వహించండి. బహుళ వర్గాలను ఎంచుకోవడం కోసం నిలిపివేయండి" #: searx/templates/simple/preferences/theme.html:2 msgid "Theme" @@ -1355,27 +1371,27 @@ msgstr "వినిమయసీమ యొక్క భాషను మార్ #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "" +msgstr "URL ఫార్మాటింగ్" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" -msgstr "" +msgstr "ప్రెట్టి" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" -msgstr "" +msgstr "పూర్తి" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "హోస్ట్" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "" +msgstr "ఫలిత URL ఫార్మాటింగ్‌ను మార్చండి" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" -msgstr "" +msgstr "రిపోజిటరీ" #: searx/templates/simple/result_templates/default.html:6 #: searx/templates/simple/result_templates/files.html:8 @@ -1401,16 +1417,16 @@ msgstr "ఫైల్ పరిమాణం" #: searx/templates/simple/result_templates/files.html:40 msgid "Date" -msgstr "" +msgstr "తేదీ" #: searx/templates/simple/result_templates/files.html:42 #: searx/templates/simple/result_templates/paper.html:24 msgid "Type" -msgstr "" +msgstr "రకం" #: searx/templates/simple/result_templates/images.html:20 msgid "Resolution" -msgstr "" +msgstr "స్పష్టత" #: searx/templates/simple/result_templates/images.html:21 msgid "Format" @@ -1438,72 +1454,72 @@ msgstr "మ్యాప్‌ను దాచండి" #: searx/templates/simple/result_templates/packages.html:12 msgid "Version" -msgstr "" +msgstr "వెర్షన్" #: searx/templates/simple/result_templates/packages.html:18 msgid "Maintainer" -msgstr "" +msgstr "నిర్వహణదారు" #: searx/templates/simple/result_templates/packages.html:24 msgid "Updated at" -msgstr "" +msgstr "నవీకరించబడిన సమయం" #: searx/templates/simple/result_templates/packages.html:30 #: searx/templates/simple/result_templates/paper.html:25 msgid "Tags" -msgstr "" +msgstr "ట్యాగ్‌లు" #: searx/templates/simple/result_templates/packages.html:36 msgid "Popularity" -msgstr "" +msgstr "ప్రజాదరణ" #: searx/templates/simple/result_templates/packages.html:42 msgid "License" -msgstr "" +msgstr "లైసెన్స్" #: searx/templates/simple/result_templates/packages.html:52 msgid "Project" -msgstr "" +msgstr "ప్రాజెక్ట్" #: searx/templates/simple/result_templates/packages.html:55 msgid "Project homepage" -msgstr "" +msgstr "ప్రాజెక్ట్ హోమ్‌పేజీ" #: searx/templates/simple/result_templates/paper.html:5 msgid "Published date" -msgstr "" +msgstr "ప్రచురించబడిన తేదీ" #: searx/templates/simple/result_templates/paper.html:9 msgid "Journal" -msgstr "" +msgstr "జర్నల్" #: searx/templates/simple/result_templates/paper.html:22 msgid "Editor" -msgstr "" +msgstr "ఎడిటర్" #: searx/templates/simple/result_templates/paper.html:23 msgid "Publisher" -msgstr "" +msgstr "ప్రచురణకర్త" #: searx/templates/simple/result_templates/paper.html:26 msgid "DOI" -msgstr "" +msgstr "DOI" #: searx/templates/simple/result_templates/paper.html:27 msgid "ISSN" -msgstr "" +msgstr "ISSN" #: searx/templates/simple/result_templates/paper.html:28 msgid "ISBN" -msgstr "" +msgstr "ISBN" #: searx/templates/simple/result_templates/paper.html:33 msgid "PDF" -msgstr "" +msgstr "PDF" #: searx/templates/simple/result_templates/paper.html:34 msgid "HTML" -msgstr "" +msgstr "HTML" #: searx/templates/simple/result_templates/torrent.html:6 msgid "magnet link" @@ -1965,4 +1981,3 @@ msgstr "వీడియోను దాచిపెట్టు" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/th/LC_MESSAGES/messages.mo b/searx/translations/th/LC_MESSAGES/messages.mo index bb2880c2be0a4fa0268d30b2a5396be9b324a0de..a2865eff94afeeb55bc38c8f0a26b9a587b275a8 100644 GIT binary patch delta 2718 zcmYk-eN5F=9LMqR6_QGtb^(PLAPue1TlaDW6;afD!Zh*$6;pgnu{1(N5X0-!nsd(7 z`v-HC)&jGd<;KkQU~Wz=*UW7Ck6T*#)HEM9oyIcP`{OxnZS20z_uTV4=X<{A{4VG2 z1TNkQ?49vw>|DU?`g3Lvnc0sKv*CCOM`4cwvrMeQMc9NvyntQtE~a5p)GQsdFpNc5 zf(!99wqiau^)ow*ZJ3Pf3oT}OG`1F+F~+_?O?U+tpcOs%vxPXHa0kAC3H@E7<+y@) z8|t~_0cP3wBp$?J*oJ|DX4CN_)P_10y9Ba}V`jN@^r52+$NMi@P?cy!J#ZPPW5OV} zKozPI%|70Os>tWa8g>vjV+YQp!W$@uHhO8Wt7MlU%tc%uqoIjbph~w1HShqcq`&+A zzi}*a-%^)w1I{Dfj_2_o)I7fpb@SZDY~o(STxCa~;zra_v|tEhhiE9{n|?q(+tyCY z@IeLm$RWOrIR0N^lG6s6IyB_VcK59X`$+=N5>dNOu0#XLXQ$DeQxc^ZdQ z->%{$ESNz3>uJ2j!6e{4uT6AuBI?11Q45B=<@gbYuqAGR;Re|7S7e`Qu zS7Hcjyzfn>{-t#M;0Jc8a1%u_O#e7si_Jc^DSkrK0+px<8-2XXd&Ku&K%IS%3lqh6 zPzjzuZRl={hIW`S%?%iW?Ziv55qnp<1$JVP_&BQ6zhVmB#AZz7on4P>u?CY~cHl_V`?A{X2Bt1@2_(Mi zUbigN4yR%-T!I-GM;*l;)EOVZd>r+ft4uAba&0&qkE1rwZLypG30%Ya7Nwy(un%>{ zXHaK*4OP0p5|==hH;O~)FT=s?bR%{q{{D5dpYQ~(!}qxeA7I`aW>4c$R6;i}jy-Cr z|3Dg_(g@*2)J{{DI-fyhT#7o9GE_oyF^H=$8MmUw?eOt#?>-FDe+c#bY1I7Jkr&Pq z>o|WsSXt*Lo`;$+hI()l>Vci8OSKO*(J3EaLyb#b=AO$z9Z6qQq9v#uPeYAc?Z1zs zj^x8-)L#o;@&j)90iEkz$-1KwC`GDi6{rP{cu%7ex`-usA5(D9ayPCVqr|gNiNrA% zzs526ON@pl?A_pQYY{5*<*1Ce;S_8`Rp1_K!OTV%_d|`Jgj%4+$1Rvf+>UzgnE(C{ zZ?_e0;}ZtZP$@>DCfa~nxYZBX?>&sO=|72OSisBP2j4`!Ub`^|N49TIZO?qHFcgl2 u!bLqJMa7Y#cxCv1J%z=E(fFEhMrw6^UEQ39`uROe>gN2{Zr>f=KlWdO;%{OA delta 2712 zcmXZddra0<9LMqRlj)}64SWVf16-(0c z94PM-IU6wRc-X9`nSGgVHUUrJBpjGwmVjkgiM1Gw=deFs#~=nW&EhZ?!x+XfSb^VQ z3l7KHk&MMwjKcM!EMh4%wv95Qj~zfwcnO!_P0Ydy{w%_s_$b~%C0dkiwgwwe<9g+o zCE^2k6i4G;yoGadcdpyeZBznrc@eY0G=}6c8BRvMXhbd0f~vqpoQro*3zUs^m8e6- zTTvBx51HEz;VamQ^QiDf%At*380#w8bDUWZ;$;yUD(Om8={BP}9>h5O(LetOrxFj% zcL}e+g~Uzx3;v6m=Z69}PX{IvCyjTN9fyi*P)E^-A&eZRp^UHk4k>I~J1xY!72r=2 z@kLZ+0);NIewaW!45zC~!#fght1jN;{KuxebEvbA;=*L&YpC%j zP!+r$p`jhdl(`N$*hXB9^_V=zEzpe7#OIgR> zAByclCGsnlW8{ARDw8@)!e&(I4xuXW9V+AA^Y|(_({$uV%(9+x6V+mn_+4C!M=%j{ zpLX+>p%Pe&`aO9aFZ>#VH7H&sf!ome^!s*CAtK<(w zw6E|FOj$_6^dGRu9c|8Hvp0EOkN;tCiTf=3FXjK3K*Ves4gKP^J!AGK_N#OWbYm`Y z?6Yo%B{+n5DaPY=)KTn1o$)~&js;b&GF7O`wc-S9M{S@_wVQtsZeV>2(a;^(k2>Qs zsI$F-D%~wqiDRF0hOmIR5XZ99P1uY0^XJXJ#uNB5zQIMQa&gnq{+9Jqq| zYlnMjgz!9Sp}sZF2T>X4qK>2xl~6fGV?9RUHdMczKHlTqkI_6oj2eF$HUDqO2WQ?%Ewnw{d(29aq*}l8H!3Y3$^2!sD5kx`|YSB zd8?NCYrzY?!!_SQze+0E08|3GNHwh(wZKvDX;ebzaSYzT7#y|Q^((?m;yI{9w&P&@ z1gGG)5gM8>xz63zFe>xqsEiwMHnyTF(1ltsSnuKysQ%MY3sm~J5rf1ZpvE2d?|=68 zS>rZdl0ieI$VW}I5w&oO@9>fL2+rsENi4!NKK4{xjrzRyU=rrHH4kb_=sPl$o)JpV wN)G4bWrmyPgzr8{4`pN}r)TDcvzs=A, 2022. # return42 , 2023. # yuttct , 2024. -# return42 , 2024. -# abhabongse , 2024. -# tutakrab , 2024. -# sahussawud , 2024. -# saledai , 2024. +# return42 , 2024, 2025. +# abhabongse , 2024, 2025. +# tutakrab , 2024, 2025. +# sahussawud , 2024, 2025. +# saledai , 2024, 2025. +# Anonymous , 2025. +# yuttct , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-11-26 13:07+0000\n" -"Last-Translator: saledai \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: sahussawud " +"\n" "Language: th\n" "Language-Team: Thai " "\n" @@ -357,15 +360,15 @@ msgstr "แหล่งที่มา" msgid "Error loading the next page" msgstr "เกิดข้อผิดพลาดขณะโหลดหน้าถัดไป" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "การตั้งค่าไม่ถูกต้อง โปรดแก้ไขการตั้งค่าของคุณ" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "การตั้งค่าไม่ถูกต้อง" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "ข้อผิดพลาดจากการค้นหา" diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo index 01d1de546cc86f3cd6fe2ce5574d3b262f91134a..4b8000211a25bec687cbc77c0be976f23e83fd41 100644 GIT binary patch delta 87 zcmeypgz@(h#tlgZyr#MahPno33WjD@hGvuV4W!NBBBoZR#@Yrzz~z%zT%sFNl$ckX clUR~pWTjA$lUSaUUtFSK17mGIV6a;e0Cy!E5C8xG delta 87 zcmeypgz@(h#tlgZye7JaM!JS(3I-Nd#s-t~4W!M$B1T{l0}E{fAmH*zEH2RvDN4*M d&PgoEFS1f7N-ZfZ$}=%iuz|5QA28Uh2mo$w8#Dj_ diff --git a/searx/translations/tr/LC_MESSAGES/messages.po b/searx/translations/tr/LC_MESSAGES/messages.po index 70f41dac7..80fcea52d 100644 --- a/searx/translations/tr/LC_MESSAGES/messages.po +++ b/searx/translations/tr/LC_MESSAGES/messages.po @@ -16,27 +16,30 @@ # plawlost , 2023. # Oğuz Ersen , 2024. # ggnoredo , 2024. -# return42 , 2024. -# Oğuz Ersen , 2024. +# return42 , 2024, 2025. +# Oğuz Ersen , 2024, 2025. # Quitaxd , 2024. -# sygmamess , 2024. -# ahmetax , 2024. -# ulsaa , 2024. +# sygmamess , 2024, 2025. +# ahmetax , 2024, 2025. +# ulsaa , 2024, 2025. +# Anonymous , 2025. +# ggnoredo , 2025. +# plawlost , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-26 08:08+0000\n" -"Last-Translator: return42 \n" -"Language-Team: Turkish \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: plawlost " +"\n" "Language: tr\n" +"Language-Team: Turkish " +"\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -370,15 +373,15 @@ msgstr "Kaynak" msgid "Error loading the next page" msgstr "Sonraki sayfa yüklenemedi" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Geçersiz ayarlar, lütfen tercihlerinizi düzenleyin" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Geçersiz ayarlar" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "arama hatası" @@ -2016,3 +2019,4 @@ msgstr "görüntüyü gizle" #~ msgid "dummy" #~ msgstr "" + diff --git a/searx/translations/tt/LC_MESSAGES/messages.mo b/searx/translations/tt/LC_MESSAGES/messages.mo index 63af4c20681174218d883ca9f052be3df0a0d0f4..a832196adbe42c2485cf3270f415d69f50a58d32 100644 GIT binary patch delta 1944 zcmX}se@LBG9LMpm)2?FbY|URe=hf0my?U=d?wZxy2AQcLiH4=c#9XxevAi0Lpl2Jg z?T>+uMcaxMgjrxh;i!-d#t4Lv4Hf^8YLg)nEEw&dS;%^Sc+MslU+0|XdCvKMzvn#9 znRo9T`mQTT|a?I^v|H~`*f#yRz~9z1Fg8~Zmj01?eyy~fNj`-otTE>_y|s8BL0fxVDqQ| z|3YH3dsvEjL9=*#2^GN0_%yy6^!yBtGN1*|BhT0ruHZasp>GQOh-Xj%EV=$oe3Jeq z^0Ok!rg>h(t=NT1pbu4{7^dQfsLGx8Xgo?|+ztGMDfF+Q7W%{WZ($w%4b(!rA2&m60k#nd(CY(Pa74dA220vTmpC;NsRp8-bf3LEg1*nNjFo1hd z_q~7$uoc^J2vzDi4B#Sa-WAl@xP|e!g?-CseGAY~WW}gRcVP$CqxSL(H+~6Kp)05b zmQj1Sih6zn6-e?^eqbf2L%0hou^l!4Dd#!NVtt#Sp~!y0MqEN=n$HnchE=GE_TmTl zCLYEW)M08W@$Y{PNzVE)6F){RIEe~$1~tzD606-tFNsDr?}#!jK$R+r+RFwv-r?*= z1#}#>z$jMW1ZtjTRN&W9uk#%wMyoGlPCSfC^lQ}kY?*ui*BQ_UV|&QovkKHiQPhW` z5f#{5sL0<(W%fCy;1ue<8BE3{%*N~3f_E{14drHsumwkOrkwigwF#3(oi1QAj-pQg z@2Ha9MNOO;c9lZ)qo^~n4;4@wsuDeJybsgqd#D7)P}je7-13bUO-jgTQ@%K#=UuW;RY(QbyQ}zQ49Qs+Ow2O zf4mTNUkFv=C@QcP)Zu#v_52uC;b*9Yuc8uJcGv$w4y9+CG*sdY?pDTCsEPKXUZ=NF z*H1dXLVW?Rpe9^HRWPpF4>TPWU@`Ksv=5*nX!JPjAfv43g delta 1974 zcmZ|QTS!$|9LMoh-r`J}-8?y`@>F(Hk8{rPjFe5-l!TR9$#L?b3zC**UN}0H6>Xem z7*Lo->aiP9Jp|qFR1ju?(^F9)6+{F=NKxiPbpQU^>vcr@tjpg2^Y8n2dY9{n2h^Tl{?|k7)ztu4m`q<^k1VE`e^%}X~q=N_o5bBh4I*C-Gvm- z>_#Pg1heo0>ZqRKYJ7vbuQb!uDW~CQU=@zRZK#AgQ6)Wus>n55gHJFQ=T3KbR*PD& z3AN*P)cswye+;#ei>O3;tPhcjIHsQlzveA}6v#Wnt-x&5S>;;`QGtsw5m%!swH}pV zGgjcgs8aW1BECh%eUExJJe*e?`Z0s`O(qRxR)os50xPi^b(S~m_qYdkzUiT%%%0*>97OGOK98sZtwaS{i#u>9HsgEL z!&H~$UcVLDr0K*oJcnAa7nNuqD$W}uXOqIK;f$b>PeVH`M3pLvI?D}qe2cXcmC#|- z0w?h&>_NpDLM8qg^*WEvabL4)%%}ekYNNO9_>&y!PunB}+z&<=b!MfgKvC3(q863d zAE?atp>}p1N8(-7b$#f;L7ae}aXF^tx^Xw)Ci)HdJND&Lf4w$kY@<*USb`@}PyYv0 z$(J1Rk5PeM+Wsfh&VC5F ziA+H4Fk&skRQk0Tk8Rdnc7C_@04nZfRAv9OJ(UJ6?$jv=%e)FFSwC zdJFXhe2xkj7jY|?fl4$Nm0%I_@ie8V1e;Nn>OjTcgJaA*zWFqiaj*3OD&uE3AN!HD zOyT!*Kk4Qk|q9M{%_`d{KTg8Z|XhaKmY&$ diff --git a/searx/translations/tt/LC_MESSAGES/messages.po b/searx/translations/tt/LC_MESSAGES/messages.po index 84d6fbdf5..f8b0c1484 100644 --- a/searx/translations/tt/LC_MESSAGES/messages.po +++ b/searx/translations/tt/LC_MESSAGES/messages.po @@ -2,23 +2,25 @@ # Copyright (C) 2024 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # FIRST AUTHOR , 2024. -# Amirkhandrend-Nicest-XII , 2024. +# Amirkhandrend-Nicest-XII +# , 2024. +# , 2025. +# Anonymous , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-21 02:41+0000\n" -"Last-Translator: Amirkhandrend-Nicest-XII \n" -"Language-Team: Tatar \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: Anonymous " +"\n" "Language: tt\n" +"Language-Team: Tatar " +"\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.8.4\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -352,15 +354,15 @@ msgstr "Чыганак" msgid "Error loading the next page" msgstr "" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Хаталы көйләүләр; сезнең көйләүләрне үзгәртегезче" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Хаталы көйләүләр" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "эзләү хатасы" @@ -552,8 +554,8 @@ msgid "" "Displays your IP if the query is \"ip\" and your user agent if the query " "contains \"user agent\"." msgstr "" -"Әгәр «ip» соравы булса, сезнең IP адресын күрсәтә. Әгәр «user agent» соравы " -"булса, сезнең браузер турында мәгълүматны күрсәтә." +"Әгәр «ip» соравы булса, сезнең IP адресын күрсәтә. Әгәр «user agent» " +"соравы булса, сезнең браузер турында мәгълүматны күрсәтә." #: searx/plugins/self_info.py:28 msgid "Your IP is: " @@ -583,8 +585,7 @@ msgstr "" msgid "" "You are using Tor and it looks like you have this external IP address: " "{ip_address}" -msgstr "" -"Сез Tor'ны кулланасыз һәм, ахрысы, бу тышкы IP адресыгыз бар: {ip_address}" +msgstr "Сез Tor'ны кулланасыз һәм, ахрысы, бу тышкы IP адресыгыз бар: {ip_address}" #: searx/plugins/tor_check.py:85 msgid "You are not using Tor and you have this external IP address: {ip_address}" @@ -1509,3 +1510,7 @@ msgstr "видеоны күрсәтү" #: searx/templates/simple/result_templates/videos.html:6 msgid "hide video" msgstr "видеоны яшерү" + +#~ msgid "dummy" +#~ msgstr "" + diff --git a/searx/translations/uk/LC_MESSAGES/messages.mo b/searx/translations/uk/LC_MESSAGES/messages.mo index aa883f05d0643811c7ac04d3a68e60db296961c3..385bef3547c257dee303651f1182cc25f50b63b7 100644 GIT binary patch delta 2788 zcmX}se@vBC9LMp4KTr`xgsvhNxgcDB0LfKALAenISqPFpFs+MRQPWU#!fa^vm{I1; zMp0Wh85RE|OVjiZr<*C2Z0gXAtUpRu*)-Sm4_un9)%(MFmUFz$_dMsGbH3kmo~NfT z;@iH6Bh69HSA&e%o^8xfV@%OZW74n`XJH*iVka)eE*y&{#~O$6gno>|Iq1bw*IIm= zcqfj>m|SDd;S|*PySc_OqiH;(BLPR`88Zwgp%%hHiTE*o#g0EAGV5Y-1k7Yp6sf<~ugS0JG``vyri;95vDFSb!}!882W3_M< z5X6B6u$K5VZpGA~F=Ma|GqB5zuVMo6O;lnLlpzzHXc|<}lh5>>e{CgN61!go>g9C72zs08ldBN+MkKHSZO0+R-L5^TjbB8K{}JPG&^)Ti{WBgKDt#g93`uqI<8aT@xu4X5H6)O@#5nfBv098qEuZN}-uAL9F&0Mfc3=wqd!Mpz&mq*29Y<~OEb8^Wf!aX9(>9TE{F=B5wGnR__18pm z%k09{sM74f5FWz8IFg$vV_f6VPdpBlY0z~c?kBFnjrcbz!S#GBe7FmhP$%ln9WJN- z!)aWkL$~-loP@X0hodX(rJRnMXcf|{@Of-UCGrq8v3H?+1jzB5GSpkvfax{i47Q>c=tRBGpQAQ#9)H7IsEYJ* z0aVG1Dm#85wh>ojJU&1w@0d}`+y!wO4^q&B3osLFaSXPgj_M=#c^B%^p2a^f;#vFr z4#pARM;@7x%k8*YyhPlIN3mgrzM!0cI`!wPXsYlvd>^&*1k(5&3o!#Hhm1Lai&1AE zO&v8Z6LlvlaR!Fahb1WLRDlPYW$|v)L%c?=?>hBx*Yp)EPjUb zup2cla*h3AEGkZQ<1Ew$gQ&|`WaXCg3uRvuGMwNOCYW#N8Ja3}r`2^h*ZNa-V(|Z-+=ASh8QJ`cS`cn%%v!P~T;H%E+_-5=fv-5cp)Oos9$vjM TT<@E^Y9QJ;5FMKqNXq{YHIHOJ delta 2776 zcmXZceN5F=9LMp4D7c#8MyOS(uf7G%cTUxv7y-QLCn|+%&gr4NJncw3f};`{ViX2e0$}{mwn-d%owK-}wt+ zUt9?LsMX^fA7soHpD{y>G5M2>8IK`+5SL&Cc3?Gj;z+#d8kuiQEO8=w@BvK5kZTR@ zByPcY44-UF4<@7f|1#M)CW^)Y4-)VWM&g*DoiGLCh@Zt&d=(4u0M5s2I1YnkTZ;=( z1Al_C*o~X;N8E_a6UU1)uwF|&ET)u9niqX&m#FQ(vm9E*Rs&ts-i72-rx z0s*`?0oD^A!VMVrurblthS}KZ#=V$8dOmDvF6LnaDuH&Khleo}%`{_1 zKo)9%0@OsMsLEAi60XLv_%dpoeQtaPwScQQ8gC=9W1@@g4>D0Do{7V-$#n~=)UTi> z>_Bod`!OA_;R_fw-5%cEIGFgD>j_lir&0aC$5Hqj!P5!6;*L9Mh8H{%^tWj4;>rr;a6mHAB%4NX`&)2@6eYOfkm z18v9qaTkumgE$_~VKV-M+LG8=wo)mmO68#zP=sErKyAr-R7Km-(Y@SDLnS?dn&>~& z0Ex5hz}c=roEpaMz*OElbL{QuLT%Z8RDwsb8ZV*}$Sbo8DaNzJWvE1==Td(SBXyOYkk?Ds03Xs0G&YvGC#sRHZslTd{XO^&d*( zG!Jx&zrr-Uf?gcNU7LVusDb9z>T-Kd2Opazb9#3q)9Y`ZB!-Lh8n;tAAz zmmL~U(D)Ol;rvJKDcy-WJV!7Kdy%iMxrv`)W;q8Gf9IbjEUd5-F2X3{HK?uFjO>Eh zgKMx4pTx>adn=qnG&E5+`tc&FM4l>p|3{+^+cF%1+ffsApzibgs02>puXq_%k!}uv zDw*<_?O%d#5?5d>_9K;dOjwOOAx`AQXpF;Yn1eMKjjgDydfk2Bi8{1Lu^(@_@2@^? z@Aq}&k-3ZNSF_NV@2~?u#+8fo1!eyes6SsrQ-&|%4pipDS;lYZ$81chHRd?ZLhZfk zsD575nJC2omZKM2F#_MiB>WH?@Jo!r+$AK+{H90^tVHegO4N#XqXyoKPvJpK$AqQs zy+&$k9T!5+g z4l2QJRAT+81pY-OJc8wE0xxO{vr%Vdy8FBwRguN0{`C#iUq5JZJ36Stu@gt)yI6w9 zQ2lPBemG>gjpI;pDk{MM>M&NhHoNXZje7tG;peCY^elJmr}jJ#Qh4wOYNFvRTOHz2 zdzbFU#TY@n05x$ns?;k`{nw(#c@8zs+o%eBfJ)#PYP_#86Z;$*>KMJ!mMqCNfO>37+JEvT1@1lZ`Mm*O$REh|@#mRWx4tE}s=2Od{nK?VYnwyf%C(KltD3!q L*26*n*n, 2023. # maxch , 2023. # SomeTr , 2023, 2024. +# SomeTr , 2025. +# return42 , 2025. +# Anonymous , 2025. +# maxch , 2025. +# BalkanMadman , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-01 20:12+0000\n" -"Last-Translator: SomeTr \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: BalkanMadman " +"\n" "Language: uk\n" "Language-Team: Ukrainian " "\n" @@ -361,15 +367,15 @@ msgstr "Джерело" msgid "Error loading the next page" msgstr "Не вдалося завантажити наступну сторінку" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Неправильні налаштування, будь ласка, зробіть зміни в налаштуваннях" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Неправильні налаштування" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "помилка пошуку" diff --git a/searx/translations/vi/LC_MESSAGES/messages.mo b/searx/translations/vi/LC_MESSAGES/messages.mo index 86474a54f271821233abf1a69bb3d55171866a7e..240b0b14a10c1954aec8f5a7a345fab5fc043a3d 100644 GIT binary patch delta 2655 zcmX}teN5F=9LMp)qi_M^Nr6kOD-fu}^`7^;6c1s6dnEIt%zw8`y}NXDc@2 z3%D2~=NYpAm!JaQjM4byys$Be6rQ2Mi-+uhb9e*w@306{N{qP?D^LNgu|AHPa0e4vK^11Qs0Z3;3R6t!>FBJz$E+y zmASvL23_-=4b-FNTaD^}8g&=?P#Jm;Gx4<39yVXwhTl*NB$hcJW?N^Xm-YZ=U<+!8 z8&GH1YdwJJ)DNNpKY_}~8C(AX-PFfX8%p3pxVV2NgTg8ra#0g*v+l(Esqe)Uyo#xq zT<%PqhnmQX3akuugdt=N(}jij8Y+;_@f!RF_1z^*VtsSPcEnXU12RzqW};q032K6J zR7$H+3pSuq`+)7=Xx)JYwD)2*et`OJ)Or!M(cdxr7KJMmbT+SZ!!+<6)B>kasT{>1 zPGBs~y2%;m!%wJJpvJo@oy(hxv#FP(GH@Sqx@H&Z)(={TD#^bZ&eEVuaSj#8B~&1n zaT~^P)thh^>IlX$3!|!>%b0`OX%Q+@)u_7^LXB@m&EJE1RXeQvs>r`C&GR&@z+-qF zM&II`dA>D>+DQ%Sc6XsB-iJEVS5ap^fLdtM_9rcJ>K;_U^Kll|V+%eKrcg@ZTT~#~ zw>oFzLuDXVumBI?l!*$q$`*9DZ)HPopM2iwb1a z_K(^2KT(;A4LR$jhB$vsm_dUk%0Zn?F=}8XD&@;i0j)$W&|=#=QGu^V&GRVg2Wu0i z;Bzrffpj>^bxRDcID4F|#$6zLFZf%B+${j+V4YH)Tq4by0MqmIOD+bd9+sX{&96{y$L ziiNlpwSgnpg&(8Fl{fO=jC-4pj;H;URT3!n`HOu)k3U%E4;K0O=c-##9BN(L{!sga royCiqds@ppbA5CF9~USK?49b(Ozm0Q(canSpYJLEuXHr%br=2vwqZ8U delta 2653 zcmXZceN5F=9LMoPAP*M>6j2_gUKK&&@p1|ALPR8pnuws;R@1<6A`Ms~Zr1v_3e>4t zYF4_+p{>GdDw%E8mi7m0uvxfKE_JOITg;4TIajuNe>#Uhc%7%;Ip6a==iK4Gu&?{V zPDl8>kuYPrbB&o~jCnlYnEBX*3$O=$_yLyVd5po^7>B07nCTFY8kdeKn2$-g4C`zQ~wGSc(d0tJ6bGxEGa~qewE% zN!*6RcnxdrGbR}q6x(^rF`RmptF9|bv%bk{Snjz7f?GMM(y+lPQhPMnfn`S zFnY1wz-rWd?Wq1&QFoyim7z~D886v(&wTG1en&0f3)v4-oEex$dk|-06KaP$P-l3= zc?_phKaL9g94aG2uKq2iQon`TPz)Es$Ne)&6gJV|M@_iPxevEce+8%FU7Ut-Wp?7Z zsEKk=ft8?+unt+nv|%Q`j|$`)jK^!J?{4B0);D)tN96r>zzo!Y4Ag5VL`@JvrL+pQ zU_C0eTU`H6=U&X9{RpPv=cwk7fOD{d{Hx(I4Z0LpP=VY;1#%nrU^rL( z3EYo5f?Jq^VU_kWrlEG4h00VF>Mqrx#&1B)|1|1V?R6fmB>%cJZ_=;|&*B`s=OKIM z^PEMfom8W4cN=Qr!>BWT7j@?6Q43AD{@5k9J{uMABFw_o_#{5#Q7EDC11gY|Dtk70 zs0;*A3sfN4H+7hZ2T&S%sK%`=9|#J?DYzG{1?rr|8=v+*VL$|xv+LDXf6 zSZY(3iYuvSq2Bv;)Q-EIucOZR6l!N9sLYL{QlG$&!X%u7`hEfCV-Qc^M&yUdGf~To znMXr1DutyuAG@#GQ@l=>c2209+L8|ubL>c`NJy{L_R z`F}g-KSE(M4cAeTRBfIT*mj z_#(Dq1nZk|3U&A=K8DrY#7)?XI;$8uvoRCbVFT*6pF;HypceQU6L7-S!&lpY6HxtW zsJpZfW3U80HB?fFz9_-Rrf<9ccTnG-b@fZAi7%r9x$64IT>D?B zOhwe&^%Ckie@&P~gC?e+MhxNz8y8sv#1}e=W!~&fl+u0 z^=kT2^9`WpAFe0=D%_wU9LJou+`tLc+5dwYm)u|{PInfg7Op{Ex>}ru8(n`FDx<$w#k@jTNk>t4cQdDLtP|tTI>NRb|Ozc5z z;3Mq7uTbMcYxy^~sj+`NaV({%C^t};8z}Y{l!Sr>*#-Rh>Q?2}H+QvcZE0`IUDDXu m9P$?y6xwkCf1oH7JQSCgoUmeZOLONV?fx=X=r74j&HN93{xrb= diff --git a/searx/translations/vi/LC_MESSAGES/messages.po b/searx/translations/vi/LC_MESSAGES/messages.po index afd745aba..16c7a0be9 100644 --- a/searx/translations/vi/LC_MESSAGES/messages.po +++ b/searx/translations/vi/LC_MESSAGES/messages.po @@ -7,19 +7,25 @@ # Markus Heiser , 2022. # nam000 , 2023. # return42 , 2023, 2024. -# return42 , 2024. -# vducong , 2024. -# tvminh19 , 2024. +# return42 , 2024, 2025. +# vducong , 2024, 2025. +# tvminh19 , 2024, 2025. # KhietVo , 2024. # DiamondBrain113 , # 2024. +# DiamondBrain113 , +# 2025. +# Anonymous , 2025. +# KhietVo , 2025. +# nam000 , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-11 14:33+0000\n" -"Last-Translator: KhietVo \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: tvminh19 " +"\n" "Language: vi\n" "Language-Team: Vietnamese " "\n" @@ -361,15 +367,15 @@ msgstr "Nguồn" msgid "Error loading the next page" msgstr "Không thể tải trang kế tiếp" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "Cài đặt không hợp lệ, xin xem lại tuỳ chỉnh" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "Cài đặt không hợp lệ" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "lỗi tìm kiếm" diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index 0ac7038b777dbb0b3fb9020a667c0f1b8704650c..050437f8958633637f3f5568c20ba7db19aad8a0 100644 GIT binary patch delta 2758 zcmX}ue`wWJ7{~FWbBa1qbJMLg-PMhSb9uLU=e9PdshiVjQl_G;+7h7>&EMsyD>C~< zC^|L_CjDU=h)_7G24$2XNri!CW%@@>G$)t_Iw4uTKl^@YjJ?kDoO7OY&iCB=)hnHY zu5}Ljq;*8{{-6+A;vuAl5Vn+rkc~TR2M#4Z?zr3W&-N0g(ck0vw&OlKq%;J6!&v@k z+2x4XDDeqZVw% z1-K8V;zf*MY9bm}kVr<2$DBxD76YmrFUL&cMjVaXuoBf~+Mir=E@)R#wf zmZIWD$7>vKbew#Zh6?R=;($GjdQ`_zCqIum;Z;<@TlTJffRB(*sffnsq7D+b)pjAO z&Wb2bh9-BcM{T49wZI zPQYF)!oh8^(c_XTQO>H?Y_Z)}W(fm<19o3)h zI3G1{nyr}4D@qI2I`cc_j3j_SXOntvD7pED=Q$59Jc z+B%F8FPoE$UYgrTOd|2A2V6jHtjG2`e+Oga`*A+zJ`nToIXR@6pL zV;f#VjeDgogf*-m_S4V;eK;P6@Nddc%tlR|jJo4;=NI4z;wO=pLs;ehcGSrZqw0NZ zzrYmYGpM>hq7HI?pr8AHFwkIfeN=cns!$9yq0pA#MB)luiz`uuze2sjPGJr9A=eyc zE{rz51G9+V#XS5FwZSuz^}_`kTByhNdcYmW{Wf(`w6QeQ`0+N!=DEMnCY-OawOGQu z#g2F4z$@x4C-&HO)Fbai?ev)Kwx>}WIOq7HdG>zQyix{vF%l{2|9j9e>uq^G~C|Nq2mYy3=1V9WOb5 z$M)Nii=%m&HXpU264aBavU5={qJ@}-jn2R1c;f;m-mtq-h2C@Af%+C4#L3u&DRMIC5qz3Me(xS;>2-O5|xS4!Z<%88k#n5DO$FvY5nGP bOs?2TP(7a(?)7IQ7H@Y4zuFUxl3KlgV delta 2774 zcmXZdduW$c9LMo9mY3N^YMXOz)BRGM=%&B9i`%?RH|K53M3=EH;w+5JOK#?<#GjT$ zC>omyN`h%1Lf|ADlu?Ex6$YA>*&jNynqXS!gk**G{_OdP_&VS3InVd`p7Z>k$L{?} zSNA6!+cqe1Cn<#2;vw`4A-ps>glybs+p$0KQOBK*zqc1LmH95mHyroaP#p9(r16i| z&B7{Nh^o7*I3)Te_ISY|Oktt}$Ka>VU&ajLKT!=Pm4uLqxi}O{kv)WYsKT$HZny>K z;Z7Wn7choNrO~?4rHN=T-iad2VnMm%#W4ti;zb4L`>Lcm~z@52yw%VFvz= zP1uWj@aeLsvD>JP+)pq_W{^E4x^NV#^Rc$r`I(OAVm|W?sGV;@?ff0whF_u@s4b7` z)T81?$IBhBah%w|K!vtC@vc3HI;x|nou5PP@CvHnb$iR+#T@eYQR{Omq6P|Vg`I<{ zvm}ZW;Tcb?LN(Hgy1{naX7}0yIGp*zsFOO0dbZzT7XE_|;1HgZ9EJ~KHV(mj#}$1s z&%c&|ZukVM^JR|L+Lw{vUD$*wc+7Ut5y9M*P zf7r=DJMTm_@(t?3vyOjpe8pb3ckDe>;epel>oZW-=h(5R`M90#`~pnqh7Am|@hLB8 zMdi2I9kv}`AiocFgXHPax-?Xrjyl1SI0h%8e%wp2?}YJjzBkKI>p!01_y3C-A&ek# z1~ai63-KPRKmlJ38Mh^<8RV}^2UWDp1+Jbfj>~|Zae<3DiIY(nHf14 zwII`R40Yi+Tk3qZ;ME*Olu(Fn&e)b$gPrxnU^G`2eb9%}s&oP-_DcSZR`xZwpon8AWxFBr_brG|1* zomQg?)!QYg@4%DTf-TNpLpAgl>SX^#oz!Ty|034ldhEa$zrPTh6aCm~a1j&hQH`9! z-FOjogsbO<@Eqn>0Gt>v|BqpjD^f2HthvEfM z=NnO<(zkF7zK?3~v^|fyQJ3v@{-)zzn^YGyHW0ObsLir@b)0_+6Zu|PP3Yg<+~ YZCKY_nb+L9Zte4V)A~4GP*j=wKNBc6t^fc4 diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po index ae389b9af..6436a0f5b 100644 --- a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -25,25 +25,36 @@ # clsty , 2023. # kirisameSoup , 2023. # err_connection_closed -# , 2023. +# , 2023, 2025. # Integral , 2024. -# return42 , 2024. -# jianhanquwan , 2024. -# lcaopcn , 2024. -# chjtxwd , 2024. +# return42 , 2024, 2025. +# jianhanquwan , 2024, +# 2025. +# lcaopcn , 2024, 2025. +# chjtxwd , 2024, 2025. # Jeex , 2024. -# xyb , 2024. -# xtex , 2024. -# bobolau , 2024. +# xyb , 2024, 2025. +# xtex , 2024, 2025. +# bobolau , 2024, 2025. # Outbreak2096 , 2024. -# rwong , 2024. +# rwong , 2024, 2025. +# Anonymous , 2025. +# clsty , 2025. +# kirisameSoup , 2025. +# BernieHuang2008 , +# Outbreak2096 , 2025. +# JonesBBQ , 2025. +# Integral , 2025. +# yfdyh000 , 2025. +# Jeex , 2025. +# BBTranslate , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-04 06:07+0000\n" -"Last-Translator: rwong \n" +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: bobolau \n" "Language: zh_Hans_CN\n" "Language-Team: Chinese (Simplified Han script) " "\n" @@ -384,15 +395,15 @@ msgstr "来源" msgid "Error loading the next page" msgstr "载入下个页面时发生错误" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "无效设置,请编辑您的首选项" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "无效设置" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "搜索错误" diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index 800e6a67d7180cf08cbb1b965d833e0dd00fa666..6e3f04661251e7af24a3c69a99f3b544f369a6bf 100644 GIT binary patch delta 91 zcmdlulX2rr#tjh$rlz_EhPno33WjD@hGyCZK)@B?uN#zFmRX#cpQr1RSdwa`U}Rtf gS7&NvYCO5uKwPLGr93ewJGDr`2FBXF&EU5*0H{$L;Q#;t delta 91 zcmdlulX2rr#tjh$rY5?EM!JS(3I-Nd#s=C3K)@B?uN#zFmRX#cpQr1RSdwa`U}Rtf kR%c+WU|?!xWH`CkKwPLOwWPEt&%{W<2FBXF&EU5*0H9, 2023. # proton-penguin , 2023. # kirisameSoup , 2023. -# return42 , 2024. -# shadow3x3x3 , 2024. +# return42 , 2024, 2025. +# shadow3x3x3 , 2024, +# 2025. # Right202209 , 2024. # morenewsavailable -# , 2024. +# , 2024, 2025. # PeterDaveHello , # 2024. -# pdwalker , 2024. -# hugoalh , 2024. +# pdwalker , 2024, 2025. +# hugoalh , 2024, 2025. +# Anonymous , 2025. +# PeterDaveHello , +# nogb , 2025. +# proton-penguin , +# kirisameSoup , 2025. +# Right202209 , 2025. +# nonepork , 2025. msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-16 08:30+0000\n" -"PO-Revision-Date: 2024-12-03 05:21+0000\n" -"Last-Translator: return42 " +"POT-Creation-Date: 2025-01-06 16:16+0000\n" +"PO-Revision-Date: 2025-01-06 15:53+0000\n" +"Last-Translator: pdwalker " "\n" "Language: zh_Hant_TW\n" "Language-Team: Chinese (Traditional Han script) " @@ -374,15 +382,15 @@ msgstr "來源" msgid "Error loading the next page" msgstr "載入下個頁面時發生錯誤" -#: searx/webapp.py:496 searx/webapp.py:904 +#: searx/webapp.py:492 searx/webapp.py:900 msgid "Invalid settings, please edit your preferences" msgstr "無效的設定,請編輯您的偏好設定" -#: searx/webapp.py:512 +#: searx/webapp.py:508 msgid "Invalid settings" msgstr "無效的設定" -#: searx/webapp.py:589 searx/webapp.py:679 +#: searx/webapp.py:585 searx/webapp.py:675 msgid "search error" msgstr "搜尋錯誤" From 09cce18518bc13bba6aea5a8223a178c6fd02183 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 13 Jan 2025 07:47:06 +0100 Subject: [PATCH 020/417] [data] update searx.data - make data.all Signed-off-by: Markus Heiser --- searx/data/ahmia_blacklist.txt | 174 + searx/data/currencies.json | 316 +- searx/data/engine_descriptions.json | 448 +- searx/data/engine_traits.json | 15 +- searx/data/osm_keys_tags.json | 13127 +++++++++++++++++++------- searx/data/useragents.json | 4 +- searx/data/wikidata_units.json | 19 +- 7 files changed, 10628 insertions(+), 3475 deletions(-) diff --git a/searx/data/ahmia_blacklist.txt b/searx/data/ahmia_blacklist.txt index 4701524fe..29c8a7276 100644 --- a/searx/data/ahmia_blacklist.txt +++ b/searx/data/ahmia_blacklist.txt @@ -850,6 +850,7 @@ 0506961fc449e91d873bc20a09580c0e 050738a47d6244f7c5cb4d6c8a3c87e5 0509271c25c2ccc40a47d139f485e442 +05093a3951e4a38af72b06d193cea44e 050bdd9f05653e55146de460e512c50b 050f4dddb88ea78a6c89a48de086b668 0513f388955820a05b57d749addeacef @@ -1069,6 +1070,7 @@ 0655eccfeef6e34248da68949cff8106 0655f762d02250fe76301409fd09553d 0656eaf7012d8c9c60fd9bbd0c96c6ef +06590c735bd2e879190d6031bab137ce 065d58f183dfae482295f6082d97d392 065effb49b50de095595777a258a644b 065f8b6d0cf7fe83ec473f76d572a88f @@ -1392,6 +1394,7 @@ 0874f89d65efc6316dea4fee2748e6da 087803844b2aeb87e5135450348f98da 087902c632215461c75e7e3836f5243b +0879ecc195c5239963defb0331e29add 087c0312793c426a3be6e9ecdc990fa8 087c0b3b1478e3ff847abff7855e490d 087d306d51fd1d590a6cb8daa78190e1 @@ -1914,6 +1917,7 @@ 0ba778f3331059274cf92be7132a018c 0bac8607527143db43c39810b2b41d8c 0bacf0790665ed412e116cf3a17547d1 +0bae107675b4748fe036a7e208a85dd0 0bafba2118650088e115666ba32313da 0bb10800e1856cd7fd02f5e46c33eb08 0bb3fbe2ef6b5e711f67ab6ba807f0e7 @@ -2201,10 +2205,12 @@ 0d62b647d0556351c76607952ed97278 0d6448d5fd2780b3e1f8cebbf0687721 0d6463cf5dc246e2d978f0df1a4d6398 +0d64b7e0340c8e7f0d4af688159560f9 0d6730a6c93b521aab9d1a9c6e9fc8d4 0d68aff9fdc5fc44f2c7f51c081577a2 0d68d3281f711450e3a93e6464534356 0d68eb91cf08a83b19ef1c05737722dd +0d6a50b774cdc94c63d4008086af5090 0d6ce06655da03213089e1f0e8790fe4 0d6dcdc51b32e66839e2f2543e931419 0d6e9750ffcc5be934969eff3094bfdb @@ -2834,6 +2840,7 @@ 1172f2adc2542998f3fbe2446ca8560e 11745895be7414693e6441b72f681d3c 11764b54ef0e707093f974d6e093b33f +11768717e6d6d725479fe2cb43f0ac6f 11770499b439f599a042ac5289057fff 11778b81c6f0469075c96dd99c0a5c50 1177ee8d3cf58151f26855decb87448a @@ -3015,6 +3022,7 @@ 126cb597869ddd6a320ae8d1a492608e 12702872f0afb1b572c640fc9674c905 127036e6e6e14221eb7ab7f10381d3f1 +12734ce4370be68141cd4ec7917a9500 1273d8de8919fc20c22db89fc4f0f790 127474dca128768f867589b714cf387c 1274cd730d1ce5e1eda537c2a0bdfaed @@ -3053,6 +3061,7 @@ 12a006792a90c01ef65a5f2adb34536b 12a0e94caa9e2656c57e060506b7421c 12a2399ed8a2b16d101bc19717cbbc27 +12a46445f93fe2624a4342d939fd2689 12a5c7cd12ed2529e5314f56f527d5bd 12a77b697957ea2c133a31ce19dcb63b 12a845487cd2d20ce3b95a5c8e6070b3 @@ -3326,6 +3335,7 @@ 14421442d970bc8e8358bb20b614017d 144317653ad284d883666b886bcef4aa 14484ec91be5f5cd4eb8b6f9fbccb0d9 +14492b41fd88bb374d9cab4f46c21118 144bd7a92546f2ed5b85b652ec83e936 144da64e86acc69372021c8575560bca 1455a351ba9405fe99814a0bc38358b2 @@ -3607,6 +3617,7 @@ 15e9b9671d082d9d0da193df079529be 15ea59673d8dead8746c983843b6aa7d 15eab61287d31deb8bb4c7a37c1a3c27 +15f0604a4339533ff85eaef033236c47 15f3d66f5f99469a739f2df914d2b3f6 15f3ff26f9bc8e910959adf9c06741c9 15f4073741d8bcc8fb48ef61d750594c @@ -3725,6 +3736,7 @@ 16ad709f8ee21887d561d8f28771d7a9 16ae630cdc307e73dc48344e4b280929 16b2a7c4873f9ca64821b2e3c38442bc +16b4d6431b4a7f855ee07ec78fb37744 16b4f648fbb5a77de1e656a274a0f5c5 16b9c3086c338f08bad4d6d02eb98376 16bc877874ed8caf02f7dd406692bc46 @@ -3739,6 +3751,7 @@ 16c51e5074d2fe489be90920ee8fefb0 16c6aab1f0b6f3aa49a6e24dbfb94143 16c70db0bd155f19ecc023f7c49e80a9 +16ca4632eef77a2de779dda4bbb9652b 16cce6b5eaa101e6c8dfe46ee2366a57 16cd08fdab4547ac2d1d44c3cd88ea4b 16cd6d18ebf34be748de76e3ec35480e @@ -4456,6 +4469,7 @@ 1b459aed85a47ff57196ae81e7a5813c 1b4697cc86ea66c62f761ee377cd818b 1b4887d9532e2e07bda5ed2a9b9b87f2 +1b48cb2da599ad766c7bf0451a85df73 1b496d5a1006d4958b92d4976f28481e 1b4a2b8150239956a7961b37ee70d9d4 1b4a63b804f9e556aa7bb7187074e327 @@ -4565,6 +4579,7 @@ 1bdaa68010e109f988ae2cf4de0faef9 1bdb27d304db25cfb7c26f11e5fa38d3 1bdbc6d43098f58b03a075eca06acd6d +1bdc53b3d0a8e71da2670796a522302f 1bdd21cdb14e0c88b9464322c9beafab 1be1da98bec475d20cba8a869724dbab 1be224ce01786481b8e0ebe3a4d946ff @@ -4761,11 +4776,13 @@ 1d05f4f8bb029ddf06fd789fa10a2820 1d068d9a9726aafa9bf0f80ce4d88aa3 1d08f9457d6ad4b8c4b61bf5aa72e601 +1d0a30e165d63c214b37a0ba1c7e7588 1d0c5d2c931de4c6f9e975e052a9f0ce 1d0cf553998c359bf882a2751358ff05 1d0d8669d5d670b4c16c426480cdd344 1d0e5b1ef015212a580160f6b30f4866 1d0f0ed7e3af9d29495516c120da43b9 +1d0f607b27c940c306c8eca5b4a6f798 1d15cafa6e666b2e46cdd246518a7028 1d1648b96c8286c6bc58906d706d71b9 1d17d4c802b76fb3f9bd8fcb53ab2d2b @@ -4890,6 +4907,7 @@ 1decb7ceba97140a58bac61a2cb27738 1decddac106ccc06514d979da1df47c7 1ded248467ad7a7eac18ee454aaddc0f +1ded7af53bd2a3fc153d03c236d5023a 1dee0a18da81e3f6930222f199e1a933 1dee87c2490825cd9e3a280da226c2de 1def95590c80e6592df6aff3c40fe76a @@ -4940,6 +4958,7 @@ 1e36eb383ec21e6614597551ea62dcbd 1e3c02baebbe6bc98479d78956434e93 1e3f07e2a69769822afd77b8515f13d3 +1e40c88325efe725593d234ca64f7a58 1e41b93073b4a12d881d386ca0337bea 1e43313fa63d297fd45f96477a83354f 1e4455b504fb39ccf3f1199d4603db82 @@ -5816,6 +5835,7 @@ 23a47f2b489104d98dca5166c74b30b5 23a49190ff8b99a22062b9da1a9687bf 23a4d0b946ed3948e44c25e9fd907074 +23a4ecdd9d95564114dd937fa986ad13 23a6e4662d76d1251f5f8bbcb1232cf1 23a7c3ce3ddad5c5ac2fa5ea48a3e6ab 23aa04f409f762c292561be3ef03d887 @@ -6128,6 +6148,7 @@ 257e86ae5c40b03f2b22f1fa19ee75a9 257ea4978cf223f28ae729adbb34f593 257f9571a33c26153f5ccd929023f564 +257ff54f85bdb097a1e7781414795a4b 2583c48d8ff6b943825c992fb6631d8d 25850387f350f2dc7dab76eae0fef7c3 258559d1a39f7cf3507b6fc9475496fa @@ -6292,6 +6313,7 @@ 2696b9b23669b164e87f092cd2cb3445 26974606e29d4be0eb9f99f605f37842 26985bc2b966a67428de8d975e32b1c0 +26997f368bc9742959bd4eef80e68691 269a1157d79d40adb268a0d15d44e579 269b06771e7438d1c758dbb1e273301d 269cbede871abf768a266567379158cc @@ -6474,6 +6496,7 @@ 27b15efca09ecf4e9ffb77d267e6b157 27b54675707d37d621793fc265a9d0cd 27b707727e025340c435cb0f8716257e +27b7c73c7070b022660188b0bff63ca7 27b8517a436e324ccfcebf948f685e0b 27b9c6f682d21162984f560348f9885d 27ba8a2b57f512a18af61bc7dda643c6 @@ -6612,6 +6635,7 @@ 2899e545c68d83c8def7a519ba371d31 289b003e51088d4709b4240fc5b92e24 289b591ccdb085a5953285590cd31dcb +289c591edb33bfe90de8b303aa28308d 289f31bce73285875ca78bf48cdc4e4e 28a0378be24361841ee30edcd46ea5f8 28a0583fe4552b6c12b12ad146a38baf @@ -7231,6 +7255,7 @@ 2c358495ae7dd1223f3cb53f97340e3f 2c362d135585f1d43b468228350d4cc1 2c37d3f274eff95439fe6f35afed2d35 +2c37dbca6acc651a3c4d497855c78edc 2c3a3bf916d1885980bf34e98f16914d 2c3c313c4cfc50351c6094d4f9ca8181 2c3fe16cddc5cfcbcffdc637888cf711 @@ -7305,6 +7330,7 @@ 2ca25172bc02641a784db73304058820 2ca3d184874cf5e4e18df304cc1f2ad3 2ca44b4d6da8e52f0a2afe0f26f8ee51 +2ca5ce97d37d2911b42bc7e417e84b3b 2ca6d897d7dc40bd419787b52652b3a7 2ca6d9882a4f5621b7616dd3ec91640c 2ca789b233f5811ace76e9fb3d66330c @@ -7675,6 +7701,7 @@ 2ef2aa50132eedead31474ac73f6eb08 2ef327263b392d6d6e984bc5b686aa7d 2ef3774d22709fc06b0c90e1217f6cca +2ef44112740f28558998cd6f7c5e13d2 2ef6e24f760c9fd4005bf21249e1138c 2ef76bf9952e9e300496cf65cd6db927 2ef8eb69fde2f1f3e396482f0a6f3db3 @@ -7992,6 +8019,7 @@ 30af6ec768c24824a5a129272fe5a15c 30b14b9f0e4b6c48e74383b553b478fe 30b176486c4bbb1aabf193c5d3deb455 +30b547cbae3413e8cde2f33d39430ef1 30b82f0e1ce0f4a11c66991ff927addf 30b9cbb26059e6fc87d16789c558608b 30ba561ec55266b777aeed3112c44b02 @@ -8012,6 +8040,7 @@ 30cc20a00af4c393a864998f1594b31f 30cf02879965b3967f038c43a0e56593 30cfd2565062647559c6d165515c27f3 +30cfdbd58de4d89e4029433d1f27719f 30d2132878fd01ded3b95d194cbf7e68 30d2bcb0eeecdc34a24b500fb8c54214 30d7b59fdfbc71fadb55839455fb28f6 @@ -8082,6 +8111,7 @@ 313b95ec598e9475657d85283a035f89 313c042a6412210a0eba0272ccd441bc 313c79d6dead2ed274e198500f6e4d4f +313d32524671522aec3fa451ae617450 313e4c1b432786b1fd9b791d351a4d55 314059f6d3892ae7cc362b1c8a65c6a4 3141c08ff823691c3c223ed7dcae5e92 @@ -8234,6 +8264,7 @@ 3220eef15cba1c03ce2d87040dd1d13f 3222a401c59b788ea37191fd29a6d6d9 3223739b89b412996a11591af3e81fc0 +3223826c5028c5fcd3b1613593ca75bc 32250931951347220788f766958601a4 3225a563179b39382fe4ca3f66c5c642 3226590abefea4d866dcf647bf8bc28a @@ -8274,6 +8305,7 @@ 326465429d04137d899db08c44b5440e 3264ad6917c818b0549a0a73bd99f0bc 32680650274a209b5d71955ef5c509bb +326bf771fd33c17cf2284708835f772c 326d6c4c1301fc38bd0dd2c8df7318ed 326f35d07ac1ab5353c5fb77fe6cb690 327103dbf26c03edfde04dce5b07668a @@ -8680,6 +8712,7 @@ 34cc8b84a72ecd90c8967231b26a71a2 34cd096503fdef8001a8ac6333fe0cbd 34d0c66c9c0c5ad1e159958615ebba57 +34d0eb518eb26374ed22ee8b9b7be60f 34d2c3e339f8e0eb47803f24997bfafc 34d323c59832a56c42348b4ba3ce67e8 34d46db95c44c3c1670bd65274979e0a @@ -8753,6 +8786,7 @@ 3542ac12135abe47a139950defefc202 3544adbb75c7bcf5ad48e73a1e2b9f8c 3545c430a46d4328601d1711f4b091be +3545d55cd4328294830cdf248c0501a1 3547a7783ae0463875ecbd25ff058646 3549228d2e385efa13bfb7bb4e9e6735 3549ee5ef8928f51c8a82f5e6fb49ca7 @@ -8912,6 +8946,7 @@ 365042c6b5de62835c754a3a0ef21a90 365188bc219752c56d2f5571b21c63f6 3652a8ed711737a17e435f8a6b6cc86e +3654a2a820267f020645667df281e87a 365560934826a6a43344c610a8bd5006 3655ad75a494d643e74356f7d086e158 3655c0c19aa2fc8fbd5345762ebd165c @@ -9530,6 +9565,7 @@ 3a2aa40e3e0e0793045e2623884fb025 3a2b5205398623cf91f9d41a7e41df90 3a2daa030d63d19446adfae0257e733e +3a2f99076e80d3dcf58f78e95b655488 3a3002d55481a62554a889b54879378b 3a305ff92d7ced8c8c1b5b8b7934146a 3a3183c09d3ab2db24d33958e6813df0 @@ -9852,6 +9888,7 @@ 3c12fc5933876e2f31730f8ec942d13c 3c16266ce3512eb9ec6df4acf4efcb30 3c1822000c7b4a41b3eb55032841b10e +3c195b56516373918423466f5cc34170 3c1ae4b439a72f0325befbff2869d9cd 3c1b2f1ea1d1974ad0a60c74597be96a 3c1c582e74db73d247564afaf8666bb4 @@ -9916,6 +9953,7 @@ 3c6f77de8570f80f5e56f16666b05340 3c762d584bedd49ba440566d655c3978 3c78042fc8c361a0df5d99174d365859 +3c7ca7da288ee31d099ecdf42f609502 3c7ceee8abed9eb7bdbf32c11dc26f4b 3c7d90914d5040f43cf5bf939c7723ef 3c7e292ce151756d6072454e47af7a22 @@ -10342,6 +10380,7 @@ 3f41fcca900a60a1444346350e9cdfc2 3f420e37497118cafb483500f797a34c 3f4362025d37b93bc4cf591d2389da03 +3f4d1e5fc4d1f8f5506b5b9033516dd3 3f4dd722b7fca4705fbe18c517c87d1c 3f4f577e19346a1ba18a15a8221703c6 3f4f88ef166e7fff935ab1a4fc4b0256 @@ -10380,6 +10419,7 @@ 3f9760a460e321fd9b976a3e979ff964 3f9aa25628aed0fc535d4effb2cc4668 3f9b74628db652fe294c17c4fa4a7f50 +3f9d844c7c4c9ae8cd07f19536c8491c 3f9f05ec9d8a6a4f526b6075a1e3d9a3 3fa0f2f5dc45f5826e5de0ffad56b10c 3fa3c8cb323add1e9e8942fd4921e851 @@ -10560,6 +10600,7 @@ 40c02333138452f3c89d9755a1501dfe 40c37acecb4d1880ed3296db73fd3d5f 40cc240cbc20ed25c84fcb1e3b49fc4e +40d0f52ad75b73034ea5b96e034b339d 40d3fa3c4670b22e8bd4d98f8b2f9974 40d4a967c02006419be4b6572395af0f 40d6ceadd26f85cd119788cab7a08674 @@ -10649,6 +10690,7 @@ 414ce48edde6c64daa3000d9eb7b9bc1 414eb5bfd403563aa5f1ffc672d85d2d 41527addd0873a2f1c2b239c4ad395e5 +4153ba165fd4a1e436514b2bd5281774 4154f7e0b52624c51c4f3bd49cc18b18 4155c99ed5045008eeacaf3242ef782f 4155cfc282d8902a13eb4b404bac7f38 @@ -11077,6 +11119,7 @@ 43ef949d85db2ec3a03ccd29a297b43a 43f18d061a871ed820c7e6aa0b122f4a 43f1f50b3defb269931bf60e30d2c9f8 +43f25fd9d2a66d58943f8fcdfbe348a7 43f33abe6124aa3ca0c424fa103010cf 43f398a4e94840b541be37828851d1b1 43f464eb9ce1685299d7402b0c0d26e4 @@ -11445,6 +11488,7 @@ 46410b528e3216b48208ced41b6bc31d 4642247029e2c840bf7bd025f49cd02c 4643e6b5b4259b2138625217fba1559e +46473a8fc8c5174a9f3a1ddc83d10cd1 464750e6d457cc51d078a4e897d68544 4648f2a5b9a2f48197bc59b51d295119 4649a3a87572ba827f64a1172fbc5156 @@ -11524,6 +11568,7 @@ 46c0d75cf018e05f90ddc3b7cf554d2a 46c114966e23bfa937732c4702e9c9cd 46c197e54e54da01d7b51ddeeb006cd7 +46c2d5500b9c783e8bcaf08222e139aa 46c3d5db7c22343bd1aa06a40431f455 46c40482b6abff160bb53286dd06dd7f 46c6bfdab84ac9e0710bad5ebf5dc815 @@ -12314,6 +12359,7 @@ 4b9b65775e0b8252aef646105ebf4b46 4b9f05f1cc3fe946e9ee46f3a8f66d17 4b9f3994d91ea8a344db2e29da64dfa7 +4ba02937b9fee263bccdc824ecc0a724 4ba060020c73262e3c8e71cead4a80d6 4ba4b75e2c74a8247e5f0872f967abd0 4ba508a29a77f4e8b513c20773681dc3 @@ -12427,10 +12473,12 @@ 4c6220b72e9d1c5f78ad4365683de657 4c622a02467cfa09e102e925b627ef9d 4c636a51c7a5822ac7df814b421c8981 +4c645b6f465ad9ca7154f284436620f7 4c65f08197e8c447498fa122495b91c4 4c66f7d94b88e2ec0192809405f07639 4c672e9b89b88c17b34cdbb39dfc8060 4c6747165bb908df3c140a220b08d994 +4c68ab9551a6f6664e9f7c80e2779c41 4c6d28a2ff5e474e78e309ac5c852051 4c6e3e77bf73ee770af9d36c1056797b 4c6fa34030f199da147224dbbc606faf @@ -12535,6 +12583,7 @@ 4d136234d4430a2a6c04ec9cfece1061 4d14020d1f0800e8f7a4e67b75b18ab7 4d140ea8eab74088b61cf19d0a55be76 +4d14fd4de1c62f48db0787b1e88e59f2 4d16570be4be043bd9fa21a54bbfd288 4d170c71e635b8da0d6b866ee71f7743 4d1bd0025785e056d74706449b72a192 @@ -12699,6 +12748,7 @@ 4e288ba5d7ce217ca46696580db5980e 4e2b9e83fcdc9e9bb461e505423b0161 4e2d0f808cbefa3fdf1402e7e3558c77 +4e2dcd0f84e7e0612014a64038bd95fb 4e2edf43d263176f3aa78c2183d5117b 4e30839f3da455bc06c4999a33f43768 4e3121581393cb1e7dcdbd2d72d3ce8d @@ -12820,6 +12870,7 @@ 4ee4342b80e715598c8c153f83561a86 4ee4abca73b930a16ac9a54d72df108d 4ee65bf4eacb858f5b27e983aa118baa +4eee6f58598ef5087fddff98c356f397 4eef43301068770c8e0834fd4f34bd35 4ef0098609c04148923c092a9a21a9f9 4ef0361ff7201f78ef77b549f64763d9 @@ -12834,6 +12885,7 @@ 4eff41bad44f90128e72a679acb469d6 4f00fa1722bd7fe24a8f80c758963bec 4f01c63f9c70d6f54791d7b3573cccd6 +4f037042726db06467f5fba8b26d8e10 4f038f19c7618d0e5babd1e943fc85e4 4f08818737e38975ae2be11843ce73f1 4f0905a181072ce3373bacb702e901c9 @@ -13246,6 +13298,7 @@ 516f10244bf82ddeaf95ff2e1dd3c0b1 517131e446646915068ebe107f1e541f 5171b98d18be13b0d958352d15f8ade8 +5172ba719758a6be19c0d290153c7c4c 5175c1977332f8ec57772184834289ca 51765c9627e205508fe721a41225bb42 5176a34a95d0390021464a74e8c94b2c @@ -13278,6 +13331,7 @@ 51ab971efb49dc08a7bc83e3f2bbc7aa 51b2dd5db2b1c57a4292257ee5471658 51b44a0245f08f50094ed68123aaa69d +51b4b881d42af98d1239ae46b0d89d40 51b55378fbdadda4a5d73a58c25cfb79 51b62d6bb01c3cf3ebed532bba5f9b6b 51b81d129d90a15fd25cd2f1afcb5a09 @@ -13303,6 +13357,7 @@ 51cc0d582540a823945b921f69668a96 51ccbcb3e5c673d687f554da306876e3 51cd4180377406453332c71275fb960b +51d1ec56dc57ffa8282caa7d9fccc7d7 51d46b3fd55b6d12eebe2479bc67e8f0 51d7b0d3bc221e79a693515347386c46 51d83264a8bfa3b99219516a9c78b0bc @@ -13553,6 +13608,7 @@ 535ea322316aa6d9f7f7dbc85b38c9a8 535f0938ff8b592af078a2236b5941d9 536111255c47e9750f9b684a48563d4f +5362c7bc0a0f7c0b9bc3c9a8e468aaef 53630d30348cfd5404ad4cc7d2724411 53634c25f44cd616ce73c7d5edf270a6 5366f42afc3a5e6cc1dcd853027c6883 @@ -13581,6 +13637,7 @@ 538a92a0a2a5b02de7c7e13298dcdd26 538de9b76e686a50ec3c597302139fe8 538f61058110dede2cb3a9ef3803368b +5392741f2ea0d8ea24712782fbdb2c9e 539403961b0111c7532f5a169aa1f6c7 53949175303254e4f6ff3af7d527d580 53966fa98ea4dc182b72b862b607e649 @@ -13691,6 +13748,7 @@ 5422cbed9f711797f1d3a85a33129356 5423db2720a2bd287e8da91f22a4bdfc 5424d4917c3362804f1f2fee46c42a01 +5426181ea272c415accc29626f3ac4b8 54261ec7be00a4b1d0ddff712d810eb0 54262bf3e4999d2e519eff053c5abbd5 5426e73f66b0a97cd30f4187c6ae3040 @@ -14099,6 +14157,7 @@ 56aa5059991a4a06e6595a92ed44559f 56ac3d28c5fd955f5b5cca639b035097 56ad333a506d4bc941df7dfcee8531cb +56af6b9f6ae20f23950a9607ff9b4e06 56b1e66217f5480a74be912ca64a75d9 56b295e4663b030b99c711283860b649 56b5707145007961e8c9ad8fe4522fbb @@ -14278,6 +14337,7 @@ 57bb56eed6908553b2dc3ef4a6a51203 57bc4b18470b69d8f121cd032f01f567 57be11cfaddafc8e250cba4ee4dc6a2b +57beca4acc3608b37501d2df7531b00d 57c1367058955ee2e1c8fc237c1fd1c8 57c16c7bd6e426d383123eae59c65d26 57c2e758ab7010628c2c3f3616473307 @@ -14643,6 +14703,7 @@ 59f8c085b974e610a8dd9c5c9cd62503 59fc2d6ea29af7d6b4b0cf8994ed8c93 59fc92808108dda74b64d09e65644366 +59fe44a91b9f7a5377aaea5e57be418c 59fe572e363aff5473e7d5394c4cc785 5a01ec463bbb002f9a4c6211ed0c532c 5a0569b580644c086ba8e6347c0a7d0c @@ -15856,6 +15917,7 @@ 61766d15f28f6a8163f86b4c5b56a321 6177156a20647ac7a07116a0ad3989a3 617d610a3b923dab9c34c114af627941 +6180f462f05114cd13f99098fa3f4a5c 6183267d00a9bb60bdbb7d1c4d219752 6189a4b07746451de290c2a9b94e1b56 618a6a537969745f0a4cee0cbc3f0b73 @@ -15924,6 +15986,7 @@ 61f0e4246df4e9e52047dc34fa31aad2 61f1dd2da50d350156b96b72c43e1f3d 61f21e72bf4d150c87bcf42db99185b6 +61f531a119b43b38f54686d7426dedd3 61f5e8704f41a4c093292b2f672d2756 61f5eabc7f2af6e2a62f57942affad6f 61fb1282c26e90b59e155c8ab3609adb @@ -16284,6 +16347,7 @@ 6441b666d75f75eb4d92ae8b50c1b60f 6446da7e20c8f6f1c828f7c0b0d6813e 6447022354fcd9d9611f957a2abdbb4c +644843a967706120502f43d544b9a2a5 644e841e5e88e1a5ad10075da7b507d1 644eb0f3ef5bd284822b1cba9d79114b 6452bb01ea950e2da7adde9804328ad4 @@ -16609,6 +16673,7 @@ 664f7faf7f906e2c7d3e189f46780e86 665007bb658aa29439682d8d2af9a4c3 6653f121b03018b75e182dfb7c7a4b35 +6653f30635ae6cfc1b79aaa65da7099b 66546e83a376fde8df7c8254b95047ce 66558c4286b51dc8b7173e444e72b290 6655dbfad7b6e0b607b1a27cefb72f67 @@ -17093,6 +17158,7 @@ 6926ff031d0fb5b4a7457001b1a52a56 692aa1a77efa740275a920552dae891c 692ca6c9c048712e37b02dbaef3d3433 +692f56a7ccdc8b1cebf597ac53844c12 692fd0a3f6fc296218f7f57a94e62858 69301829bf92a4c2a4b6501deb1bbe2e 69310b124ee85359491ecf69184eb700 @@ -17278,6 +17344,7 @@ 6a3b1dabe44ca94482bf62f566223f2f 6a3f4625ffaa402ad49578644e8bfd34 6a3fd7b773d98940850a30769b7de0ba +6a41147c71ccc3062bdf30ce55aa8c5e 6a425bee263009b5db86d588616f89c4 6a4653129c16fa7c3f44a7fa59fb0135 6a467733a42b1450c78946d1acfea374 @@ -17427,6 +17494,7 @@ 6b07cbe43a20624c331804413fd1ca80 6b0b58f984052df470b3558e80a8b34e 6b0c0d690af37d2c0a8116566f3ec6b8 +6b0e8b67a5bed97d2714989baa8bd639 6b0fcabf5b3853a9aab66dc165460e99 6b0fd41198697c6e882ff8f467a940c0 6b1039545de8b792f8de3dc7a98126dd @@ -17506,6 +17574,7 @@ 6b74fdbe8126fab1068bf209fdbaa174 6b7529f3e45d6658f57e3dba80e9f621 6b755c4b36149a8c468706f5d7c79f51 +6b756709a8c338332b424c86f627852e 6b762160f5e626b929707cb992758810 6b76e2d755806dd1e02d0410835c6584 6b7b2f7543bf107d23179da59675c6b5 @@ -17577,6 +17646,7 @@ 6bd75b3c7f5cae8273d2b984b5e8442c 6bd82b4ebbc5ff9367177d38b9d81972 6bd88985a3a270eb783098281ada212c +6bdd393a04814deadad8957efff15d51 6bdd471fe7b5e264883a3301f159a369 6bdeb784233e7446302b20096f616aed 6bdfaa1bcaa88afbd7e9ae71c862a265 @@ -18134,6 +18204,7 @@ 6f34734994b2695389e3bbb13fb3de9b 6f3898049030543b714db21040b8b5f8 6f3aa6407a637a4bc53a476f0683e695 +6f41f459c83237ce3f5d29550d57eaca 6f4397ac333f113c6dd89b45f20f3054 6f43eb22b56af2dd1b66a08ee39e39db 6f44397602357803081113dc23e2aa9f @@ -18635,8 +18706,10 @@ 72435306933bbdf4758c71e9df415528 7246d65862979e1065cd8258e378b352 7248eadfb005ec09f4758cc9781f794f +72492c94b4b8c80aa713f218245f63b4 724db74caeb815700356da12b11e2603 724ddbf72ae1d0b921aebb782e084b66 +724f4f9b3e3c93166346b3df66fdab28 724f64d09873dcb068ad29b88a9f2474 72500ef0b832d582be9bfc030cc4aea8 7250a2d23324aa79aaf9aa50f5e8b007 @@ -19031,6 +19104,7 @@ 74851e300e04b4a1d1fd356f31df117e 748742a2e411e0ae69f1c7c0d4091880 7489700cc37c6254c01c84618ac8226c +748a131638ab885d2b264f8a1df9d164 748d8c08d4e0ce4df2917925a69fee89 7490577717d03fde0428fb32d3d20c6d 74907ecab30fb12af62283e27c08f57d @@ -19109,6 +19183,7 @@ 74fedb120f1e200aa0e9835b5f336079 74ffea50ac1f9c8f4f6f0f4de2010c7f 75002ea58c5d343d120593c18d0676c2 +750057d7424c0dc174f94981a0f327c1 750188bb2b5acb75aec33dcd44da2e03 75022b8b744403fb851ac50713ae323e 75034f684bb23a5b98175e933b005fb1 @@ -19124,6 +19199,7 @@ 7518d05cf4abb15262c1041d9aa85861 751ce5384e4e3b5a76cf398e4d6dc527 751ebc258931754e3660666ad2fb1011 +75202243d490d25239a9732965a5f270 752082decb3cccaaa659a7ee014af3d5 7520b6b22c042cdcafae14c5ea41e5ed 752364e560021d8166da2a18a532b98d @@ -19479,6 +19555,7 @@ 7733112961d338d3c2b3b34b249b6c54 77331ea55e50d1268b2eae4b227190f5 7734d87a134c64b4592cc062fc1b207d +77376220e1d913717c8f240ddfea4c97 773a4d4fa7f45e84211ee089f04ef4b8 773c0c4a89976fdbeb6608155182cc6a 773c1924ba24ca13864d0387bf4bc81a @@ -19861,6 +19938,7 @@ 79a19a1995afdae6633209046a06f555 79a55f70f3120c1ca75f370f9745e527 79a5e2cad1b6044cb0e5247204a5545c +79a93f207f69c03555a6fc190a512e21 79a96991701bac84ad7f163428eda55b 79aafdbb2d5bc62b852d839e5927ef0e 79ab5f629ca0ddfd5658696eb51472e4 @@ -19995,6 +20073,7 @@ 7a93aebab462d38028a26b90be19f78a 7a944ee4a0f2261ded7b68cb97059111 7a9e84d58c4baeaa9e5a025cabc5f1ae +7a9f4a1ef04e87938b723d503a5032d3 7aa0c58f494acdbf8b795766215c69e3 7aa3a70a28d936d666d2eb3cbe2281ab 7aa45d9d7c325b8dc1545762eadc1074 @@ -20173,6 +20252,7 @@ 7bba98445b4cff38363c571d52f1b7d7 7bbc27e30756e1599cbfddbcc7529e9a 7bbc57f5a40aac37f61e40dfa9e4748b +7bbe1e849c94646d2c558c988d21f70e 7bc09b4c1e6cf5f69ee8705983751880 7bc12880e5048de6c5498fb0bb1946ff 7bc211b16dd4bee9d81373bb955787c2 @@ -20563,6 +20643,7 @@ 7de1f8f71cda51550798a4410e4a16f8 7de419fdb5788d46df45ff679979e1eb 7de5d63d2da9751ddca4678f41b42b90 +7de84a8be1a8f313435d9094eeffbc08 7dea0c0d79955cca0196421045013923 7dec1ffda07af18c6b9f4f2eb02c8c22 7dedc5a7ef13d11d9b33ad529a48b6ee @@ -20819,6 +20900,7 @@ 7fa7b570de3aee7b0d906612a5a931b0 7fa958649ad8fb9e6cc12d0332bdfe04 7faa965b6530d1f4187f4ac6888295c6 +7faaa5384414ce8295e2425156524fb5 7face646dd54b325fac515858c9e3bf7 7fadcc54d864f53ecd2d8de6a0af25f6 7fafb6e5ee66069ce4f817f04e48dde3 @@ -20949,6 +21031,7 @@ 807c40cf8aff9afe4011f9f7c2fc4335 807e05b73baf6ad39941342d850c3ec9 807f57388d6d83715e42d5e92f3145a1 +807fb29dbc83cab65ff6a87f38737000 8080b4e20fea202b04451ee182cd3027 80836201d1c9f0ffbfc6df8d72f0fe37 8083af61c3c03e4dbc649df83fd2b4b1 @@ -20972,6 +21055,7 @@ 809a3e9dbe3ff394540b6c3b2acfe8da 809b73d7abd03f1d23f9cd129c9b9ecf 809d35d716d4d58a62bdd956892383eb +809d97179464f0dc40e6503e16eba675 809dffa3f4cbdc52f37cddb0ce9ac15e 80a0026402c8a001839f4f419b927c3d 80a213a2d3f02be144a23498acfa0700 @@ -21156,6 +21240,7 @@ 81b230e2a268191f73a6f9d6f6ba5a70 81b320d4ff4c0f1ac66c1cd1b4b4fad8 81b4110443ff26c6f2c5818abb6471ab +81b646ba06afcf8bff994c54aeb1ce38 81b68e5da562fcd9287e141390627734 81b9f6c6e19c8909f8cfd88e3e1c255a 81ba628c72d413884efe8e1265728c3c @@ -21355,6 +21440,7 @@ 82ba6f394954d039cce74f7855197feb 82ba9c1b1d3c779d0ad8434f2ee2804c 82bc730e76edda4132349e85ed5bfebf +82bcfa5aa56efed25e5e81bacec1fc46 82bf9dc62ed88c3aa4d06af9865ed4c0 82c02395eaea970f78891979390c157f 82c4825f07a87bc3af5302fdefc3345e @@ -21775,6 +21861,7 @@ 852d8e61c2ab2c2624f53838e9811271 852ea9a54831895fc7ad908158164fb5 85309b6677937393ed35eff77a99bce0 +8534e72e26649789a82b2f8d950668ff 85365a433c0686f1aa81878e9b09b4da 8538bc14d6f0c586ee94c89827e3623b 853dd508fe4c9132bc3605a62b9e4c1e @@ -21849,11 +21936,13 @@ 85a493ad741bdbb33cc7d75670e24e75 85a4e3e6abd7259b71cdb2dfd2ca011d 85a55c8a33793276b51528af5bffcb72 +85a562746f6ee932b3fa51234ba2ce1f 85a5a5aeb15a4e216f77ae208af3dd7f 85a731fc3c06a06546562292cd6c8787 85a839757cf77b0cdf3910b4a91a6d41 85a88c12bcdb310a83d22d4f6a79acbe 85aaa4e2af4edd53d3360c454b7b221a +85ac9d98f28a8e822523844f84c1dfdb 85ad2dfc132baecd2eab5a299af7705c 85add775fdb1221b258508127213259f 85ae0eca034f4256acab3336e9f46d8f @@ -22063,6 +22152,7 @@ 8707cd3cfa3ad50a22b082927d835e74 870aa5fb18296bd00dfd728da426552d 870ba40024fc8db34f8067b52a9cf54b +870c32df7cc00f5ff1676325afc287f6 870cd11442bf674e1c258a1e0109909f 870da4c4fa6fab3f6f2768fd076bb1c9 870daa69f2d90bfc89c5ddb41ef93618 @@ -22412,6 +22502,7 @@ 8904c44f98dcd7c03e42e72360f6f2c7 89055309369e2a916e6d9b19fe29ecc3 8906fba0d5e7915d10b92a6c7b25b2f5 +8907a22de03e5ee0f503345a6026753d 890842a9f00ec51771ef6957602ccebe 890af499124e7c452f0c145b532aa4b8 890c34b3ee2ad8f0540004e1e485aed5 @@ -22474,6 +22565,7 @@ 897e02150162ccadae1cff33e9e3bc45 8980badaadcc17f33c1ece7c087a4bff 898183eded73a6ac0889bc0697c88ab5 +8983712359b76ff1a85cca5e67645179 8983db87bfff7dc59633ff94a4a5a4e8 8985152b03ec39aa27e3afdec8e8d4e8 89863ff677ac9df95be25980bea7dd14 @@ -22719,6 +22811,7 @@ 8ae02bb448a53aa891b992aa52a54c60 8ae155f1741d92fbf053d916321d0bdc 8ae322f156da964e0c38d7455c06e838 +8ae517843d92fd268a2f7a6d4f0e2f41 8ae57edcad71123777922674ec57ab45 8ae6bb3aef7df0a83a4897c2f3cb01a8 8ae8f44d8faeea97486d15b51879e41f @@ -22775,6 +22868,7 @@ 8b2d200158b69582f410adb0c9a60cea 8b31528bfdd82b5638623ee6044c7a32 8b334a36edab8e2d471c30a6d99b62a6 +8b3486a0b00ed9df7d771aeb916b0687 8b354eecc138039de8e144908dd609fa 8b3754d3f8427496503ccf875142fe86 8b39e381d3e16c4815bd80fda976ad7f @@ -22803,6 +22897,7 @@ 8b57fda9236d1d399ab7223d3831abc9 8b5abfc4d9076aeb22719bfa80a823c9 8b5c3a1f70968b4ac3212d6f9334a527 +8b5cb2af3dd0f9738640d0becb99fa3f 8b5d4a413c91f910656c5238fce8513e 8b618d81ab210c369d850569b8e74530 8b61d0f9563abb6837c50b7aa84c05a0 @@ -23210,6 +23305,7 @@ 8da31f9c28859a4a2241a7c725f0c0af 8da37e805e7dca19a80cde52e91d723b 8da4814f82faf84c8dd418dbb2ac9045 +8da590b29bf63da90c0b01b1e603b2fb 8da5aa24ea7208588ad2388c047a82f7 8da5c721fab86c64758b061c4d292284 8daaf78840e4567d11c9300bb19a68c9 @@ -23349,6 +23445,7 @@ 8e6604bfb9cda34c1bff71c0f85fc87f 8e67c34f3ad53373388e5f008ecc2c35 8e6c56010ed02d9cd7e952bc2b77258f +8e6ceafbc7ac7152cbd78252fb932c31 8e70f28488e05f66866bfe6276b9588e 8e70f89c67b8998541f78f1193f6c596 8e713a3d662514f46ed9a26274ccf059 @@ -23454,6 +23551,7 @@ 8f1b62b402eb5ff6ab9b58c7c67ef6fd 8f1d12ad0e1509725d1e021acce0d0e6 8f1f513e3532c3ca75843bf9540aee78 +8f2196b1822897f5444152d44b2143b6 8f22f03916913929471d4d063a44155b 8f25724d5ddbb7af142bb122b2f08658 8f28a171325c4f9b777224c52f7582e9 @@ -23465,6 +23563,7 @@ 8f2ee7852936030907fcb8a07ee89a7d 8f2fb68aa402b796e71d8adc9b3ce74a 8f348f0ec8605df168393f2dda354a4c +8f35f26d1d16c63a054e3fe21a427062 8f375b5bd5262a2f77f4611bcd52849a 8f3a6e515a2099daf2277e2c63d4b580 8f3d94ce73aa8c274e153c02549a48d5 @@ -23721,6 +23820,7 @@ 90f216f22ce6c731dd9143ffbfd483fd 90f385db526b4e554e243ad42c113116 90f3cd969f2d6fdf49c56ed2c31de8c1 +90f4c056a58c0cf8009b987159347aaa 90feb8a9116a51ec497045477d091e64 90ff804b69e43c1de65791b419673f3c 91020ddb1e03af5a12f21284a146e01d @@ -24161,6 +24261,7 @@ 93ce43eeb9b386dbb6416a717fee2aa8 93cf0510019b59743c79ca600c06caea 93cfad9ee1e9ef0f5af331bceeb12cd3 +93d1da5ac034c2916d22919ace9c0502 93d28583ce170f5386e484686bbd6757 93d3d015536d80f85be58d0def86a4a9 93d6a1625f29bb6617853c482fd6e3fc @@ -24324,6 +24425,7 @@ 94beb98223138c35625a696285c65aea 94bfa6cfe7b4a5636601e2da352619a1 94c0a9fc7347061dfe87bb5918e085ea +94c22819b2d9a6645f89b7459097ae09 94c4220fce46e58c4b6c3fbfd57e5855 94c5313a18461fae02f00b8c64575a94 94c5f07a8b90cfb7a93972b062d94df5 @@ -24864,6 +24966,7 @@ 981c7eedd05b75b78e0599ce00065642 981cb56ec7b7c2eafc9a4d61806d53c1 981e2924dcbbcf253b5afa514cd2ddb1 +981f51204b22c0abab5128b89aba5724 981fd6dc367c8e26f334db80e02df801 98206d07f341039d436007bc119bbabc 9820e3f71c19ddf149c59bd53c43f2b4 @@ -25164,6 +25267,7 @@ 99eacb6460020fbb190d1c2b3c8b0c94 99f246158100e3d24c8f5711fb403f53 99f29e99e2a6940dc179053e851faabe +99f565ba7c5e8c67a9831d793a1f0ba9 99f5c788be9daaf4df8ad6b1d0544bc5 99fa550b6486ca2baf3d873480e91891 99fbfc47b4d17e6c597bf8de5426979e @@ -25291,6 +25395,8 @@ 9a9f3c13d262557e798e360d0b2da5c8 9aa0b687473fc46491295f271441d229 9aa0cba94d8ea9fadd38cb0b0ca6eeec +9aa31e8db9c78c02aefa94e401b62f55 +9aa36fea1c8d1f1d23649752da7f5876 9aa740c0636ff99f3567f8b12e59a8ec 9aaa15f3b3089c960b769eb044f8e0c0 9aaa342581f8003da96324ef4a971e29 @@ -25514,6 +25620,7 @@ 9bebca64f4ac275d22f1eb495139db7a 9bec075725bb94a961977d8afacbc86c 9bec11fda76958b6bab7a2fd0b6299e2 +9bedf2a2d7036c4e6d372313fc799efc 9bee43a6be4282534ba4278e60a08d8d 9befc6443aa48505e0e5db11b6adbf50 9bf21439a3461c98c8b52c009df7f201 @@ -25583,15 +25690,18 @@ 9c578ecd19e7f72409fab6aafe006540 9c5e49821baf79d9f1c336c7a5836de6 9c6054836062a7964773ef6f0216f27c +9c62838a5f777768385a0ebbf4396622 9c6331c0dc503b3655091db66994cf07 9c644775e9e29d9d520bbba9dba49f9e 9c649b1e5634285d6ac4b42882171c5b 9c64ca1d4366168002443bae5b112cd0 +9c719fa5309e48fff09669a273fd4199 9c71bb281f06821a6c112e93cf0c3b2f 9c73aeaffbb4512a6f8da6bcce055c4d 9c76309fe300b591987172f139d8fcbe 9c766a3dda0856b0dadb15995af83121 9c773eb8f77e8d340cbb225ee5f5bf58 +9c782c44c0b99b3097df60dc8bdb5767 9c7abf2b21d131ab0124ecc3aa3cd5be 9c7ae28b1807016a44305c8b70c7658f 9c7ce5942c1c141d1fa203d472605cb8 @@ -26267,6 +26377,7 @@ a0e1c1bb08cf3d09db3bbbe2187b3ed7 a0e23c7ce37e21cc171f1d4f7d18c446 a0e5d717c5c4d92445d6dc66d81e389f a0e6ea3a1db5553044c4795c91a720d7 +a0ecdbc37aefa4381cb9c0242f7d5767 a0ee2646c8e55ed36a14a555b590af29 a0ee769272e7e45aa01a6aa66ea85bb9 a0f02c5bce751ab5337d753f9bffc41b @@ -26364,6 +26475,7 @@ a16e2baa1e3c8c1cce0c932e9433e237 a16f21ad17310b4b704ba9b51f422f06 a16f4fe65601aff8d657737c696903ff a172c579baff44c1d5a7b938bc6cfef2 +a17550f121b1cd7814d8f20171cc7dfe a176fcbd1ffaa755214cf8942da51350 a17776943923adb7d8f061fa8be54af6 a177c6f94030371d5384964496293093 @@ -26410,11 +26522,13 @@ a1cbbef56aecb6e44f8092d3e36834a2 a1cfe9cdeb910a28fba7735cd6ab799a a1d3b86a0d7ff8ea5dad870d55e6ef32 a1d3fd4504ed7fe049500a6e417ece1b +a1d69cac1e0209358c980239f987e427 a1d6d943a515f16b2bf8f424395ba016 a1d765cc75a48d9f22f809dbcb5f61d3 a1d8958e6c776143430602303294a110 a1da0af28b9f79214d175ea3c23efc45 a1dae3503c1cd0f78db1f1276846838b +a1db17d14ad84727b37068ccfdae4319 a1de5cb72294e4494fdf5e499edf4566 a1e0d8eb6b957cddc0620a4f86c72096 a1e139c0352e76302d6941118cd8f3f1 @@ -26423,6 +26537,7 @@ a1e1dea2928e80608c5e6b53fbe92ea5 a1e3a924d73552f0d3f430fb1198bb52 a1e4e447bb18905a78f592da6f7bcb58 a1e581ca2355c60dd701829bb24ad3c3 +a1e6195f900dde36df71f4c52f318516 a1e64f90a425e673f9edf55dfbb97bf2 a1e8397762c69c1b4f366d30203df493 a1e86b77bb61f32cc0c1addec93f53d6 @@ -26961,6 +27076,7 @@ a517ed9c5a3ebbe1e26ab4e6857fa1b5 a51afbf855020a5bd718d004dbe22f74 a51b7cbbf708a7264e9d15b7e6555e68 a51cb043fd90d8424a18d4203b31907a +a51e8867869d9e911de07a0cf80b20a9 a51f0554212f2f423456f88b61db6d70 a51f0960322fb6b4381df61162abb879 a51f1f46a36e96eaa4c8bac0a7b02050 @@ -27014,6 +27130,7 @@ a5709665818dba0f530a7a799aa689e6 a57f612bd6380a6d808dd2b4cb547c4b a58004e07f419d34a92a592c5b8611a1 a588060611e019f8d710d35044516210 +a58848ab73dd53b0e9ecd161c56976a4 a5899038fecc6cb31962afcddb547c84 a5904be098d5092b8bfd4b0e7f9d8659 a59092baac5c24b55aa1e46054a21335 @@ -27047,6 +27164,7 @@ a5b42ef2282bb4932c9289888c182f0c a5b6312d4917ada267cbf270effe6e8f a5b7d16110814a29a64c4e0875a29c43 a5bc21ac8e839e90f85807adee7b3dd2 +a5bdb0228f6e0ea85b2e0915716b9db4 a5bdf9acaded99f883006ce0c20b293d a5be0d7c0bfe10a98d9547a281b82069 a5bfcf1072bfe3c4b218f60a6ad76015 @@ -27327,6 +27445,7 @@ a793b79ca50936aee3d94e5973ea6d4a a7962bc4a7c471a152bda3b5bcc7b145 a79725dd97b61900a07d2a6d0e735153 a79779cf2ef77243632a893bf1c4be52 +a797d402ef95aa1adca441734e4e59af a798ce76f53bc4982ca184097ddc5e5a a7996ccf8d3b7d6848ec2832c8165126 a79b8292f28d3c9cfdc597f5c6f24b1a @@ -27377,6 +27496,7 @@ a7d06bc8685e7414c8c75318d777615c a7d10c004ec1b02f1b893dcc71bdac46 a7d5d64e2fec691f42f38ebb662ae9fa a7d64290e1040499b1c3be7b3ea82daf +a7d71de6b8c80b67e47a3c04f4986c8f a7d96a4e2de89524265f50c68e5e53a3 a7dd2f217fc179f7da39c16868690527 a7dd49820cb00a76f7e9a44ae024f82b @@ -28036,6 +28156,7 @@ abc517fa349c6980454587eaae8a0207 abc5f42d0ae742b0c2ed2067635ee805 abc633b1fae5de5e73a043a20d5b0889 abc89ea022649ff305fa8808316a6f2d +abcb9c28f38de3769aa7951371b32067 abcc382ad915ab93a9f9bdeec8785834 abcc7afeb67a0716942b7f24da60142c abcc9968955473e2e73f9a3ef9a89d1f @@ -28119,6 +28240,7 @@ ac38b0e9d610e1e333db69d36e0ff5fd ac398eeb555992832684664d208811aa ac3cac4aa2567bff61c467e14b7d5f56 ac3dc816873f0b5be6f28566857e2376 +ac3f69481a526897169feda662e21083 ac44b4c8540699fe2c7c6775f2ae7767 ac46a1bb469afd0281fce6b2997b38d2 ac4722d30f2a2b459a8a45b929a70efb @@ -28357,6 +28479,7 @@ adc3d50605bb14334062386419353700 adc460f797783f5377c8d54d19d76170 adc5640b393ab96dc096f4e3b63c22db adc639271b164694a62408f965420367 +adc73520a38a231b32a75d6431fdca49 adc76a0b6602439ffd652bff51bb84ff adc8bee2de8787e64730487c757fa84c adc953fd7ebd31d2eda039bbd209ea15 @@ -28474,6 +28597,7 @@ ae74c4d454025f2b9fb3d2a520927867 ae75d2f13b1c98adcbf0c65741aef2e7 ae78b7ad75363ff10bcdd64241421fec ae7a7c5719d1b9afecfd2ae584dafb6c +ae7ae7e1d305ee5879eb19dc704281ca ae7b59d95a263c81a60677cd305fe30a ae7dba07e46a364dae9f08e45365bffb ae8432be01aabf5271aacfc4e108f0d4 @@ -28596,6 +28720,7 @@ af2aeaa639592c175ce6f368c1f28a6d af2b8f01fdce301f039a784bd8a62948 af2d3d93200af2f1f3b6a57cbff6461b af2dfca6ee8c96dde5e7723b32a17dcb +af339134deaa998bd3657513b36f12b2 af33c04b9f3d17e7bab61102634e3413 af3614e1aa400d42f3fe8e066e117a6d af36f077b05227a111be4ad7108c7efb @@ -28689,6 +28814,7 @@ afb09d641c37bbb8f5a87da6bd0fbdcd afb0e6fd84b0af0c7c92e889aaa0db75 afb1fd3bf12c36ef914643bdf5b8aa79 afb3e9e6da125a5ac56f8b576de4b9c4 +afb48a5403685cef61f16989b26fa04f afb68f0239f4e6bc6b81675d38680b44 afb731fc7719f91be6efc9db877b896b afb87468c6c063885211cec76bfe506f @@ -28850,6 +28976,7 @@ b0b1096dfe76c31d920e4ed312e5e507 b0b33258586f06a67032e71ee86be923 b0b418b2099bd6079426de1c2fd47566 b0b5425d3dfc2e2dd86b5d052bc3f3ac +b0b73c0703a85078aefbc0262716af1e b0b7fa5705a231d485fa74b6174754d1 b0ba458141279b798b7d1335425d8ebd b0baa056e5ec62da32e2828ca4fc60f4 @@ -29073,6 +29200,7 @@ b1fb1204abc0ffc3abd78e2de7e8b57d b1ff28d3d31eb30b44524343fdce14ee b1ff9253d1633dcda10547751d9c47a5 b2019eb6c10d3df138c7a70b35efbce2 +b201a180907f1a7c77c4937f1bc9d247 b2024021ec897ee6211279e37c3af54c b20424819b0fc9826c0a16d5f23e7824 b20514c94020e0fe4e4479fc5ced066a @@ -29092,6 +29220,7 @@ b21e10c4a427ea9a8842b24dc0eb3c26 b21f93fda26d8959c1dce72fc85b9752 b220413d23709124cbcda6490c2c3547 b224edf3d9310ffdb7bba97c502a5278 +b22550d8b361863c57c7cd8467a6e75a b2265930bfa19cec2522297121524bb1 b2281c13c37b3e5a5a469006b86510cb b22c9c1c13f077bd30189e2238b9f9b5 @@ -29526,6 +29655,7 @@ b4c009a1593fa4ec2bc8f787d9c3360c b4c02f044bf4a6003dce93cf1b3d68f2 b4c1dd637e31515dfa2bf49a2ea8ee27 b4c41b63642a4932b0e087319038786d +b4c63b76fd8624f46e0b79fc01339598 b4c70675c3ac86cd3c52652b613bdbbc b4c750b2fdba20efe9fcead42d0effa5 b4c7aaecc573311196e6a0062c6b6d87 @@ -30389,6 +30519,7 @@ ba4a96e5cab91aebb57ffefb364ab2d0 ba4ab21d93f7dd306d290c4737f8e7c3 ba4c229afb3e174bb5207a577cdc3625 ba4d3ab2372594bfcd925886abce5364 +ba4ef52f439b6d40216d0975837ecac0 ba4fee669d2ab885dd1c54cc823bc103 ba52dbcf982d1de137f234aefda10958 ba535f5a42dd323b8c6b7678c272bddf @@ -30568,6 +30699,7 @@ bb63422644902475f7de4504af55e880 bb65d3d91613e4306d96824d54b1f0ea bb66402ec114d8fdef8e5fa787c962f1 bb686f93d71ce0ba7001e838c81b5bb9 +bb69b358d56e22d403a68f831ea43f84 bb6a6c252cab42ab1f755de20ed0b598 bb6bd9430560013235f5ef279f29656b bb6e36681866c8acee06607f54dcec47 @@ -30657,6 +30789,7 @@ bbf2132cb3b3a1fe7c6e495d506c5cef bbf35b2cf6effe8c0a61f796971c6e68 bbf36a23c1b0b951e75944d653cc7ff2 bbf87ed60c18d288810ca5f30facc2d0 +bbfb12b41683dd762557d2e8262ab346 bbfc9540d353a3575bec8de2c7dc29f8 bbfcba680580505c2638bad235614105 bbffa2a426fe281a034e5e58c263a623 @@ -31296,6 +31429,7 @@ c0079174dcc124b78ad5c0b6b45019a0 c00b637b823298deda963bc1cdad07f1 c00e4e3966f00037f62ff5e84dfe22c4 c0118ddb877d0784d8aa420ea532a24d +c012a8934a86376dccd4a6a88cc86db3 c01336f552a7fb5a857f0c30f94a346f c016ccfd70886ef3fd8177d0e4a62c4f c016d21d82486cca930b4d9bf04e9830 @@ -31309,6 +31443,7 @@ c0247bc1d7c8142c993598742a317afa c02574731d6f360c00bddb591e957595 c026e158e332b2d29492d6a5b1791aa0 c02ba6fe48b0c4276febd22f43629072 +c02d8d50dd1c8c19e35fcc94f4b9e38d c02e0fc123a00937be49bf35e6aab80e c031b1d81f840ffaca5397ae8fe5b31b c0321294dcbb1d37444da8d2249fde6d @@ -31486,11 +31621,13 @@ c11aded8b6f784f801e4d784a8345cb2 c11beef2daece4fb84d5177e3092e309 c1222019068dc7131113302cf35c990b c1229e9197d1ecd57b3c1f4d295fa92b +c123658a4fc1cd3727ab99865f0d87f6 c126029bf6b8592f175e6b63ac9f902a c126a9006caaa2b4724e1739300780d2 c1276308cbf68c761ef717e50b5b3620 c1276df5fd974647f35ca41c44f5bbd7 c1289f11645ff12a996d6e2ed2db42b7 +c128a5205ab7cd1380703ce3b87d7c1d c12b0cf43c62d7c7007f887dca028783 c12ba02973b898a30e78e5399adac5c4 c12cdf5b02711369df295c6ef9adf51f @@ -31680,6 +31817,7 @@ c22bded8e5e361498e93f3e142b2389a c22ca079ab884f4e3eff4309c1174ba1 c22d3da08a632bef198df6fa216ff222 c22df3833a9300fb8f6d2f8216b3ba52 +c2307e1972c1bc5974ab1ce03807fc36 c230a58ecbdcfd4bbb04288776813cc7 c23279dc7e02c5f81073173bda444b17 c235344192b8bf35b75f63f7afdddbca @@ -31708,6 +31846,7 @@ c25d15dfb8bdc1a3b6187744717b199d c25da76157de3e65580d70852b7042ef c26485d6e958e67e717feac2d30e69c6 c264d79ab4a8a5285a270a9af437587d +c266596edde43f27da5a1a83e293476f c266df1660c2a3a7c336ce4d82861ef2 c2679d7aa0108967c28c6e04a4787d3e c268236d0c053dff744308e7f0b0fcd6 @@ -31788,6 +31927,7 @@ c2dd5f24d710d88f1935f2a8fae6ceb2 c2df29c14cf1566ca96ff952dabbd773 c2e026dd25462c4e4b426d08a5183c41 c2e057462f4fec0afbf750715cd68bf1 +c2e39e4873a76010b8d9387e8707b227 c2e4b8325e72c19e9e901c0da484e8a2 c2e4fdb8611a8a718a0d9a4530397db3 c2e5a3ff135df1e9b96fa27a9c617621 @@ -32567,6 +32707,7 @@ c7ba88940ce4220948ff3a7538ac73b5 c7bb2f9d656e4f41a99f7e51aeb00bfa c7bc11c907d9b705f22c1eb40f19f24f c7bf3e6d18652e98143c2b640e29bcf1 +c7bfbaed0b59d804993973304bdf6d7a c7c13bf59e25b44470073846d3cf5896 c7c19c4e643262580c8bb713aa92be90 c7c2a24e0d8a067bf6bf5fb999bf2456 @@ -32819,6 +32960,7 @@ c941678c12eac9dc30efdc01d8247886 c941d8df5e394d8b3c914cfe97b373e9 c941f01439b927a37a370ca5be1e1c16 c94209aa64e7b7832d99206757b05b35 +c944615aadc530eb5550222307299572 c944817c9eec77ab2dc24d68d22f06cf c94af86bb168828cd2dcc4f93a606461 c94ea32f99794b18ba1439306cf6fa87 @@ -32831,6 +32973,7 @@ c95848bb3aab166104b1a5118ecfa74d c95853ef708777c3254068b1490a5d6b c958b2edc44fb1090bbf1348c491ba31 c958b9f8eaf21b68d49d4dd31e0a6359 +c959580db0b96d6a6449737f986421b7 c95a6b02adc906ce1351b2f37804be45 c95b6d1dce3fef06c8322ca27f3e841b c95e34af3190254754a8095ca4bca892 @@ -33256,6 +33399,7 @@ cbb333b798e001e7c3fcd1660641cfbc cbb5e5462147032b30e68ee2c4de5b34 cbb6968c720af4f2d80696b6fa9ad3d8 cbb6a1611005d06881ebbdae13957fc7 +cbbb1b6ef1bb8042ab2e7d4276359b7b cbbbc423dbdb59490294669ff1c91a21 cbc10cf0cd55360abae9bf666d336730 cbc4071a1461a6075638ad0aa8a16b47 @@ -33410,7 +33554,9 @@ ccb27659c38ce7213bcaa3ed77215eb1 ccb3daa2f808cabf5ecb968b5373a0fe ccb436df809958b9307ec9d9c6afe09b ccb648ff809caedfae4914175544972b +ccb66c7d87e365254dbfed4212fccac9 ccb6f3efb0da30fa33fc71961595076b +ccb907c15f78292dc5dbf126eed67b95 ccba8ba74dcd336913e6f449fca0a979 ccbaf005a29e52cf99e16cd2cc81e8b2 ccbba170415dbe1dc96ef237424d6297 @@ -33536,6 +33682,7 @@ cd80372f1859800874fd3af5d810c683 cd81130b2859c037f7e670dd7ba32cf8 cd8120c05502dbae6a17491dcdbfab1c cd831a89f8a10841f62ca9cb2b36d837 +cd85715e9cfa81c30bbe8399f6801e73 cd874431d0a0b8b67264b2f2ef42bb9e cd87e5b08137f97c249d92eacc4e5c05 cd89eae7dd0162f9a49c5b4ff3b20e97 @@ -33970,6 +34117,7 @@ d03c780ef951a83f4d8eceb2e2431b9d d03d2f7146bd1863151fc0479d19a93d d03db81090b07e76b9819a5dd92e4de0 d04092e0ddc114bdfb5f7890d1c90210 +d041233ea2dd2bf6ca925bfb85f8bb21 d041ae296ff8cc6d3d32171ffff59c8e d04327ada4685e4a350ad508ed6c8f13 d0448ac5941e2525f64ce8ad8f815841 @@ -34564,6 +34712,7 @@ d3d00f970a56134390d8c3c24f573899 d3d04e87b8eeae93537c53f152068fca d3d1f686cc0ff6b3bf6f782eb420e3cb d3d4b7031fc91b6976174eea2a05082d +d3d708c445890a378782564ce8696728 d3d833fdb311d54e2bad9745e01bbb1d d3d89e660dbdf1d4cd2862dab883158c d3da5f2a15da3b67f324b847b45cb1a8 @@ -35032,6 +35181,7 @@ d6c1f23a730a1c7fffc82f00033c7a3d d6c436a568fef0d0598dad60f5d16d2f d6c720b107d2f21347c9281208e1ce58 d6c7a5b430eb610c683e847b8d042f04 +d6c811cda4c87eecedd7ea3dac000c26 d6caca8e9ed6ebce07b21ff58bd63c6a d6cb6bd7a603210c1bf463a1b6cabd4b d6d056de3f3602e4b5a46dd84eb16b77 @@ -35243,6 +35393,7 @@ d7e417d39eca46491acea4821e16dbc4 d7e457d8f143aaeb9d0d05f6eb9c0f77 d7e4b12de5ae6fb9327e81ce886a0dd4 d7e4ddf2f5510be43d849135977443b0 +d7ebd460fb4e9db394860f189bfe32f5 d7edeceb0022acfb76f64163d0a24fb2 d7ee5ec1064e3d7b37bf6eb15b232d66 d7f052aa6bcfb25571832c695aeb4639 @@ -35308,6 +35459,7 @@ d8344e57467b13f7fde1004c6d354500 d835005e3e126fe7d6fc7a1f2dfb7c17 d8353ce9d56dc4020f1caf0931a41994 d839f4bad46d0a0b690d3d1b6e57891e +d83de92a450886b6a1dfeb7fc7c2b9c2 d83e23906771fce96662b081e78ceb79 d83e2b803b793e4d9e87c159becfcc77 d8416d42dc165c6a41e0dd6cc086f83d @@ -35451,6 +35603,7 @@ d91a5117273f21edd520fe8a967264b8 d91cddc328ed91771baa87597fc7f986 d91d9afb87d3f7eb0e27f0fea4ec4b78 d92065dd8670c51912a76f67d613da43 +d9215dc4516bf3257c03f876c7271e9c d921b53bbb069ace6d0405551ad02bd3 d9220cec9def2b964e1aff436221c335 d922a1351c2afb618f0f853436ee452d @@ -35618,6 +35771,7 @@ da097f8361182d235afa8c5d3f23f71c da09dfb52d5c334fb9b377bab3e5584c da0c184c2f27f31fd76f13c9822edb26 da0fb9302a683cab75e7ec3a9108a4a7 +da10d03db60b56c6ac0c223022e94f62 da113e0c327b20a58c60cbd3d3af6d69 da116a76dd54e8eb0bd559f0aa79085c da117fb3424f02b5902b7c1878be83bd @@ -36216,6 +36370,7 @@ ddb00e1205326857cdc00188b73b5b96 ddb1a23bc42b0d6341a50aaed64a382f ddb1b94826d1258d22cf22aa8d0303a8 ddb2c0657af7ce6099616cdc1770acbf +ddb34c0426ce00617a52c7936630d2f6 ddb3970e49ff603ef31416ede140671d ddb4794b9e9811abb2caa4396c498810 ddb4b90edeb727e102375f108da3a423 @@ -36352,6 +36507,7 @@ de968c1d29ae9d3a568aed6627ebd56a de9a0e43a4fd52abae6862ac1a630d92 de9a25066f54a65fdb62a4cae47bd867 de9bc3035cafb7999344df70068204f1 +dea3ca3e153c1ea00da28e4b3e636dcf dea4fee031794d66d341862df3654022 dea5fbabc840254e8e2ca9ece75950ac dea7fcb6dfb4110ae32d42ba4a77b317 @@ -36439,6 +36595,7 @@ df306668fb369ecbbc0f56d643fa503a df3201462cbc46d3aa65632d1af62448 df33fc7dfe8f57b39e25fcc4ef2cdc77 df35301e4299af26f75735f4193507b5 +df36c652b331929d41def6f2f049a68b df38c130b65e7cd07bb3bb79f39bb157 df38cd1996b96eef48e2192d909f1861 df395a449ffcfd14069e68f8b709dfa0 @@ -36463,6 +36620,7 @@ df5de6031e3bd6e4b673251156df62f9 df5edd196d58f830dc669a6a91373a3c df5fd9144497a43ee399795728f826d9 df62521b57c47841e037a200187bc732 +df62b9bd64d3df737d5356fc8614e038 df643fe59d9ce120f98257ba2ab87785 df656f3a841824d22db04fd90baab1e6 df65a5c1f0fe997623934e7837935f6e @@ -36791,6 +36949,7 @@ e17a84bb92919e37baec4dce75c06d94 e17c40274fd4629fb963dc5e7bb84b81 e17c444ccee49e2c4a803010692dcc89 e17f8f95194d0dc3c779ac314b5cbdd1 +e182d3b357a0dc63f4caee2de63bef68 e184858f440db601b283be97d8933b4f e184e7f92afd31872a3edaa7c891df9e e1864aa9ef0f6f56ea880a9495cdd2a8 @@ -37456,6 +37615,7 @@ e5a3547b16017b78b7fa2d865713c0e8 e5a361d7a330727718c0dd105332849c e5a4352431de876a7981c4f04ff1d477 e5a526708779178ab009e9efbd7b6586 +e5a56607de28026ef38a96c8e77bf010 e5a9ab74bbb74660771264dcab33152a e5aae759aecbc592936875ee3ef65380 e5afcfa23f8e58e7ea5371e9e4b60be6 @@ -37498,6 +37658,7 @@ e5eb42bdeb2c6f5b07de751a22258191 e5ed576b5d9fadea930f5dd107e97956 e5ef385e97161f9bfd00c175995fc957 e5f0226c19b4817c6ad114e7a79d6697 +e5f17654aa7e3cf09ae6f1b7e24a0cf2 e5f61ab0ae1c5ea2a5a7a86e1a23f6db e5f701eb9539be76c29b7f528838dff7 e5f9bbedbff655268a2489031baa3f9f @@ -38006,6 +38167,7 @@ e934f8ac64eaa3ebf4841d1ffe766b56 e9352a6170081c4a64d455e945e7b315 e9362bb8049bc857602091cba51261ab e93754fbe565c22466265c2b705662d1 +e938567ece39f532fe6bfeef1231b368 e938d84767444438e3a3f81ae52a7ed2 e93990bb38c5486d339ffb49afa900c7 e93a0ceda580f9758197064b46893f7d @@ -38961,6 +39123,7 @@ eef87f63404cf6b7e08395a3fbff5002 eefaefe983a5ef75e0d8b3452b627649 eefc46ff4743fd91e43542fa857f3221 eefd52c5795591a10aa68c2d95eaf74d +eefd9d2f5443404ae1b970eda6da4f90 eefe5716a2fb35466fc22f8b4859473a eefebfd32ffc427344d76d5f596ef665 ef004032503be94b4dce5a2df5611c53 @@ -39131,6 +39294,7 @@ eff20b2e494823af7fb24491e0a595b9 eff2b66c8d9e6ab0948e9b25b697f58f eff3376833bca7dc8d127c6b13634e52 eff438f1f1b9bc79ec821289513e31ab +eff493362bd58a127ff63ff6886f0fd0 eff62c8e809c28e3c0161a8c4cf7ad54 eff633da05e7d497ccc1f6d6b9b91646 eff885030a722ba20a93710b2f9d0575 @@ -39489,6 +39653,7 @@ f21459c970c51516d7c82c7380134e31 f217abe75b136cab4166769faf5a3acc f219ab9da36def780475fca9ada16b3e f21da8a8c5b62901a0b164f7ce59a420 +f21dee4683e5cfbcbae87f16146eaaa9 f21ebc18f14e73305a15dc0c6a136a22 f21f633a78f10a8835ed28c9d9a51b01 f21faed640e22363dbf0431dbaf9221b @@ -39574,6 +39739,7 @@ f2a17e0908b8e93fcdbc40dedb0469ac f2a1dca9785982806bd305f0aa4cae2e f2a2befcb4423c85ab3583479f2748ed f2a33711d234d0765453fe0af76d95cf +f2a4a2adadbac51d3514239dbd53caf0 f2ac8cc2deb01d63bf0fb4f82f425376 f2ae5a0e03a17ec8316e15296a4ad025 f2aeb405b149a80fd441d998ca44ae71 @@ -39653,6 +39819,7 @@ f3116eb2a18e29e3d6ac0ab36a9156cd f3186a9e4b66108e04c6aa69a12044bb f31a97fb56ef44a05b99263f1f6d50ae f31ae264507197ba23111edd15ad8f9b +f31cdbcf08c830441aae5704a7f17feb f3225379af9b194b6504bf349691a490 f3244c46100160b7b5ec7f3e45b7e535 f3275bae3ba6a46773ca7aced2921a5f @@ -39928,6 +40095,7 @@ f4c9c9ab54aaf5d40bee3530b589ef17 f4cf6a3b46004ec0c925fee1c4f5ac87 f4cfb04d7983f3260ddab7f2050d91cd f4d19358b3265b40afd3e8fc56029b3f +f4d4214fc1e1c0aa3d4e676e362e20b0 f4d48e1eba78dd4fcf8677045cf0b4e1 f4d5a049d0ea1b165b0938fd77591263 f4d7733e53b3b1f67b932c3b2edf017c @@ -39994,6 +40162,7 @@ f535e5d43e97bf8437ddb0b340946b82 f536882135e737babe9dc5c480b7cd46 f537eb0b469ef7b80de28c48a7bf54e2 f539f020ed7f7876264116da58d58bdf +f53bca366e3e5dfa73296b8494b2bf89 f53f048801962c2a66f79ce981b13370 f53fb3cc822e4d0bd8304b3a4f78d85f f54010850898ae87b732c3e0c4017d54 @@ -40361,6 +40530,7 @@ f7851ae69ac0e0e8f8271f12a5e2c9b2 f785fb83454949cdb131a68248506372 f78709bbac3e57ecdb2be240821b77c6 f7875bb37a19f753422e9764509e6aed +f7888ddbe7c82d7214613ee990eccf8f f78a5b1a14cf49db66c4dac96c92dfa7 f78c7f6918ebccbdb6e889aabb86067f f78cea1093b4d04390ae783bc08125a4 @@ -41350,6 +41520,7 @@ fdb637971aa71ed8bc65f750367bca58 fdb68d18a66772632620d9a9ad353d35 fdb6a7367206e8dade52229154b64334 fdb6bbb5304bddacb32d0f05277369ed +fdb7da49e68419479acc23699cb5ca2b fdba6a77e48c63e92329930f2e29a1d4 fdbab4c3b98950fd881d1f946f638231 fdbdde81b1ffe0c9508dce66afcee279 @@ -41537,6 +41708,7 @@ feec4057405bb45d2f62db1170bdbb1f feed2b93cb932c13dcf3d1c5bb550c05 feed39fe8bba44fd872ffa4446d7927e feed8e016f8bd83b01c75cd6fb744467 +feee3a0309e5b90651021a3fd66a676a feef48612ed29e4112dfbf244002b6ab feef9fd3bfcd6d8171b2b38c234c7a6d fef11d4693ced6c03db6a7e144b0cdf3 @@ -41693,6 +41865,7 @@ ffc739af72e7d42b0987995bd31daaa9 ffc8d8c753026ea34e14d1276bd76b06 ffcb39916ee568957d9560d8efbf199c ffcc56cfee46a62a7594c29b401bf8cf +ffd277d5d926c7a142a77f3f849290ff ffd3d4ffa0adba9e74a360832d361bda ffd3d80bf0be1a7d0603e9be1e6405ac ffdbc1596051d61683bc2b6a86399830 @@ -41715,6 +41888,7 @@ fff434e77d14f446d0f681e30266416b fff736864cf8bb0df27b9e55a1921fb4 fff73caf1fd81343f8608216a9fd77a3 fff94ff56866da3ef6ed22ed8e641759 +fffa329660301210f637f2e643a62550 fffad21ca73569b8c72dd8430b7aac7f fffb4ac56addf8324be3e7e3d9f4a8d9 fffbea5ee863c6c6569805b39a0ae8de \ No newline at end of file diff --git a/searx/data/currencies.json b/searx/data/currencies.json index 5d1ad1072..abfd0ef75 100644 --- a/searx/data/currencies.json +++ b/searx/data/currencies.json @@ -15,6 +15,7 @@ "es": "dírham de los Emiratos Árabes Unidos", "fi": "Yhdistyneiden arabiemiraattien dirhami", "fr": "Dirham des Émirats arabes unis", + "ga": "dirham Aontas na nÉimíríochtaí Arabacha", "gl": "Dirham dos Emiratos Árabes Unidos", "he": "דירהם איחוד האמירויות הערביות", "hr": "Dirham UAE", @@ -55,6 +56,7 @@ "eu": "Afgani", "fi": "Afganistanin afgaani", "fr": "afghani", + "ga": "afghani", "gl": "afgani", "he": "אפגני", "hr": "Afganistanski afgani", @@ -98,6 +100,7 @@ "et": "Albaania lekk", "fi": "Albanian lek", "fr": "lek", + "ga": "lek na hAlbáine", "gl": "Lek albanés", "he": "לק", "hr": "Albanski lek", @@ -142,6 +145,7 @@ "et": "Armeenia dramm", "fi": "Armenian dram", "fr": "dram", + "ga": "dram na hAirméine", "gl": "Dram armenio", "he": "דראם ארמני", "hr": "Armenski dram", @@ -181,6 +185,7 @@ "eu": "Holandarren Antilletako florin", "fi": "Alankomaiden Antillien guldeni", "fr": "florin des Antilles néerlandaises", + "ga": "guilder Aintillí na hÍsiltíre", "gl": "Florín das Antillas Neerlandesas", "he": "גילדן אנטילי", "hr": "Nizozemskoantilski gulden", @@ -219,6 +224,7 @@ "eu": "Angolar kwanza", "fi": "Angolan kwanza", "fr": "Kwanza", + "ga": "kwanza Angóla", "gl": "Kwanza", "he": "קוואנזה", "hr": "Angolska kvanza", @@ -259,6 +265,7 @@ "eu": "Argentinar peso", "fi": "Argentiinan peso", "fr": "peso argentin", + "ga": "peso inmhalartaithe na hAirgintíne", "gl": "Peso arxentino", "he": "פסו ארגנטינאי", "hr": "Argentinski pezo", @@ -303,6 +310,7 @@ "eu": "Australiar dolar", "fi": "Australian dollari", "fr": "dollar australien", + "ga": "Dollar na hAstráile", "gl": "Dólar australiano", "he": "דולר אוסטרלי", "hr": "Australski dolar", @@ -345,6 +353,7 @@ "eu": "Florin arubar", "fi": "Aruban floriini", "fr": "florin arubais", + "ga": "flóirín Arúba", "gl": "Florín arubeño", "he": "פלורין ארובי", "hr": "Arupski gulden", @@ -387,6 +396,7 @@ "eu": "Manat azerbaijandar", "fi": "Azerbaidžanin manat", "fr": "manat azerbaïdjanais", + "ga": "manat na hAsarbaiseáine", "gl": "Manat azerí", "he": "מאנאט אזרבייג'ני", "hr": "Azerbajdžanski manat", @@ -431,6 +441,7 @@ "es": "marco bosnioherzegovino", "fi": "Bosnian ja Hertsegovinan vaihdettava markka", "fr": "mark convertible de Bosnie-Herzégovine", + "ga": "marg inmhalartaithe", "gl": "Marco convertible", "he": "מארק סחיר", "hr": "konvertibilna marka", @@ -470,6 +481,7 @@ "eu": "Dolar barbadostar", "fi": "Barbadoksen dollari", "fr": "dollar barbadien", + "ga": "dollar Bharbadós", "gl": "Dólar de Barbados", "hr": "Barbadoski dolar", "hu": "barbadosi dollár", @@ -505,6 +517,7 @@ "es": "taka bangladesí", "fi": "Bangladeshin taka", "fr": "taka", + "ga": "taka na Banglaidéise", "he": "טאקה", "hr": "Bangladeška taka", "hu": "bangladesi taka", @@ -542,6 +555,7 @@ "eu": "Bulgariar lev", "fi": "Bulgarian leva", "fr": "lev bulgare", + "ga": "lev na Bulgáire", "gl": "Lev búlgaro", "he": "לב", "hr": "Bugarski lev", @@ -583,6 +597,7 @@ "es": "dinar bareiní", "fi": "Bahrainin dinaari", "fr": "dinar bahreïnien", + "ga": "dinar Bhairéin", "he": "דינר בחרייני", "hr": "Bahreinski dinar", "hu": "bahreini dinár", @@ -618,6 +633,7 @@ "es": "franco burundés", "fi": "Burundin frangi", "fr": "Franc burundais", + "ga": "franc na Burúine", "he": "פרנק בורונדי", "hr": "Burundski franak", "hu": "burundi frank", @@ -654,6 +670,7 @@ "eu": "Dolar bermudar", "fi": "Bermudan dollari", "fr": "dollar bermudien", + "ga": "dollar Bheirmiúda", "he": "דולר ברמודה ", "hr": "Bermudski dolar", "hu": "bermudai dollár", @@ -689,6 +706,7 @@ "eu": "Dolar bruneitar", "fi": "Brunein dollari", "fr": "dollar de Brunei", + "ga": "dollar Bhrúiné", "gl": "Dólar de Brunei", "he": "דולר ברוניי", "hr": "Brunejski dolar", @@ -727,6 +745,7 @@ "eu": "Bigarren boliviano", "fi": "Bolivian boliviano", "fr": "boliviano", + "ga": "boliviano", "gl": "Boliviano", "he": "בוליביאנו", "hr": "Bolivijski bolivijano", @@ -770,6 +789,7 @@ "eu": "Brasildar real", "fi": "Brasilian real", "fr": "réal brésilien", + "ga": "real na Brasaíle", "gl": "Real brasileiro", "he": "ריאל ברזילאי", "hr": "Brazilski real", @@ -810,6 +830,7 @@ "eu": "Dolar bahamar", "fi": "Bahaman dollari", "fr": "dollar bahaméen", + "ga": "dollar na mBahámaí", "gl": "Dólar bahamés", "hr": "Bahamski dolar", "hu": "bahamai dollár", @@ -850,6 +871,7 @@ "eu": "Ngultrum", "fi": "Bhutanin ngultrum", "fr": "ngultrum", + "ga": "ngultrum na Bútáine", "gl": "Ngultrum", "he": "נגולטורם", "hr": "Butanski ngultrum", @@ -893,6 +915,7 @@ "eu": "Pula", "fi": "Pula", "fr": "pula", + "ga": "pula na Botsuáine", "gl": "Pula", "he": "פולה", "hr": "Bocvanska pula", @@ -933,6 +956,7 @@ "et": "Valgevene rubla", "fi": "Valko-Venäjän rupla", "fr": "Rouble biélorusse", + "ga": "rúbal na Bealarúise", "gl": "Rublo belaruso", "he": "רובל בלארוסי", "hr": "Bjeloruski rubalj", @@ -973,6 +997,7 @@ "eu": "Dolar belizetar", "fi": "Belizen dollari", "fr": "dollar bélizien", + "ga": "dollar na Beilíse", "gl": "Dólar de Belize", "he": "דולר בליזאי", "hr": "Belizejski dolar", @@ -983,6 +1008,7 @@ "ko": "벨리즈 달러", "lt": "Belizo doleris", "nl": "Belizaanse dollar", + "oc": "dolar de Belize", "pa": "ਬੇਲੀਜ਼ੀ ਡਾਲਰ", "pl": "Dolar Belize", "pt": "Dólar de Belize", @@ -1013,6 +1039,7 @@ "eu": "Kanadar dolar", "fi": "Kanadan dollari", "fr": "dollar canadien", + "ga": "dollar Cheanada", "gl": "Dólar canadense", "he": "דולר קנדי", "hr": "Kanadski dolar", @@ -1057,6 +1084,7 @@ "es": "franco congoleño", "fi": "Kongon frangi", "fr": "franc congolais", + "ga": "franc an Chongó", "gl": "Franco congolés", "he": "פרנק קונגולזי", "hr": "Kongoanski franak", @@ -1100,6 +1128,7 @@ "eu": "Suitzar libera", "fi": "Sveitsin frangi", "fr": "franc suisse", + "ga": "franc na hEilvéise", "gl": "Franco suízo", "he": "פרנק שווייצרי", "hr": "Švicarski franak", @@ -1160,6 +1189,7 @@ "eu": "Peso txiletar", "fi": "Chilen peso", "fr": "peso chilien", + "ga": "peso na Sile", "gl": "Peso chileno", "he": "פסו צ'יליאני", "hr": "Čileanski pezo", @@ -1208,6 +1238,7 @@ "eu": "Renminbi", "fi": "Renminbi", "fr": "renminbi", + "ga": "renminbi", "gl": "Renminbi", "he": "רנמינבי", "hr": "Renminbi", @@ -1251,6 +1282,7 @@ "eu": "Peso kolonbiar", "fi": "Kolumbian peso", "fr": "peso colombien", + "ga": "peso na Colóime", "gl": "Peso colombiano", "he": "פסו קולומביאני", "hr": "Kolumbijski pezo", @@ -1295,6 +1327,7 @@ "eu": "Colón costarricar", "fi": "Costa Rican colón", "fr": "colón", + "ga": "colón Chósta Ríce", "gl": "colón costarriqueño", "hr": "Kostarikanski kolon", "hu": "Costa Rica-i colón", @@ -1329,6 +1362,7 @@ "es": "peso cubano", "fi": "Kuuban peso", "fr": "peso cubain", + "ga": "peso Chúba", "gl": "peso cubano", "he": "פסו קובני", "hr": "Kubanski pezo", @@ -1368,6 +1402,7 @@ "es": "escudo caboverdiano", "fi": "Kap Verden escudo", "fr": "escudo cap-verdien", + "ga": "escudo Rinn Verde", "he": "אשקודו כף ורדי", "hr": "Zelenortski eskudo", "hu": "zöld-foki köztársasági escudo", @@ -1406,6 +1441,7 @@ "eu": "Txekiar koroa", "fi": "Tšekin koruna", "fr": "couronne tchèque", + "ga": "koruna na Seice", "gl": "Coroa checa", "he": "קורונה צ'כית", "hr": "Češka kruna", @@ -1448,6 +1484,7 @@ "es": "franco yibutiano", "fi": "Djiboutin frangi", "fr": "franc Djibouti", + "ga": "franc Djibouti", "he": "פרנק ג'יבוטי", "hr": "Džibutski franak", "hu": "dzsibuti frank", @@ -1485,6 +1522,7 @@ "eu": "Daniar koroa", "fi": "Tanskan kruunu", "fr": "couronne danoise", + "ga": "krone na Danmhairge", "gl": "Coroa dinamarquesa", "he": "כתר דני", "hr": "Danska kruna", @@ -1528,6 +1566,7 @@ "eu": "Peso dominikar", "fi": "Dominikaanisen tasavallan peso", "fr": "peso dominicain", + "ga": "peso na Poblachta Doiminicí", "gl": "peso dominicano", "he": "פסו דומיניקני", "hr": "Dominikanski pezo", @@ -1564,6 +1603,7 @@ "eu": "Aljeriar dinar", "fi": "Algerian dinaari", "fr": "dinar algérien", + "ga": "dinar na hAilgéire", "gl": "Dinar alxeriano", "he": "דינר אלג'ירי", "hr": "Alžirski dinar", @@ -1592,7 +1632,7 @@ "vi": "Dinar Algérie" }, "EGP": { - "ar": "جنيه ليبي", + "ar": "جنيه مصري", "bg": "Египетска лира", "bn": "মিশরীয় পাউন্ড", "ca": "lliura egípcia", @@ -1607,6 +1647,7 @@ "eu": "Egiptoar libera", "fi": "Egyptin punta", "fr": "livre égyptienne", + "ga": "punt na hÉigipte", "gl": "Libra exipcia", "he": "לירה מצרית", "hr": "Egipatska funta", @@ -1645,6 +1686,7 @@ "es": "nakfa", "fi": "Eritrean nakfa", "fr": "nakfa érythréen", + "ga": "nakfa na hEiritré", "gl": "Nakfa", "he": "נאקפה", "hr": "Eritrejska nakfa", @@ -1679,6 +1721,7 @@ "es": "Birr etíope", "fi": "Etiopian birr", "fr": "Birr", + "ga": "birr", "gl": "Birr etíope", "he": "ביר אתיופי", "hr": "Etiopski bir", @@ -1718,6 +1761,7 @@ "eu": "Euro", "fi": "euro", "fr": "euro", + "ga": "Euro", "gl": "euro", "he": "אירו", "hr": "Euro", @@ -1764,6 +1808,7 @@ "es": "dólar fiyiano", "fi": "Fidžin dollari", "fr": "dollar des Fidji", + "ga": "dollar Fhidsí", "gl": "Dólar fidxiano", "he": "דולר פיג'י", "hr": "Fidžijski dolar", @@ -1801,6 +1846,7 @@ "eu": "Libera falklandar", "fi": "Falklandin punta", "fr": "livre des Îles Malouines", + "ga": "punt Oileáin Fháclainne", "gl": "Libra das Illas Malvinas", "he": "לירה שטרלינג של איי פוקלנד", "hr": "Falklandska funta", @@ -1840,6 +1886,7 @@ "eu": "libera esterlina", "fi": "Englannin punta", "fr": "livre sterling", + "ga": "punt steirling", "gl": "libra esterlina", "he": "לירה שטרלינג", "hr": "Britanska funta", @@ -1849,7 +1896,7 @@ "it": "sterlina britannica", "ja": "スターリング・ポンド", "ko": "파운드 스털링", - "lt": "Svaras sterlingų", + "lt": "svaras sterlingų", "lv": "sterliņu mārciņa", "ms": "paun sterling", "nl": "pond sterling", @@ -1883,6 +1930,7 @@ "et": "Lari", "fi": "Georgian lari", "fr": "lari", + "ga": "lari na Seoirsia", "gl": "Lari (moeda)", "he": "לארי גאורגי", "hr": "Gruzijski lari", @@ -1923,6 +1971,7 @@ "es": "cedi", "fi": "Cedi", "fr": "cedi", + "ga": "cedi", "gl": "Cedi", "he": "סדי גאני", "hr": "Ganski cedi", @@ -1960,6 +2009,7 @@ "et": "Gibraltari nael", "fi": "Gibraltarin punta", "fr": "livre de Gibraltar", + "ga": "punt Ghiobráltar", "gl": "Libra de Xibraltar", "he": "לירה גיברלטרית", "hr": "Gibraltarska funta", @@ -1999,6 +2049,8 @@ "eu": "Dalasi", "fi": "Dalasi", "fr": "Dalasi", + "ga": "dalasi na Gaimbia", + "gl": "dalasi", "he": "דלסי", "hr": "Gambijski dalasi", "hu": "gambiai dalasi", @@ -2033,6 +2085,7 @@ "es": "Franco guineano", "fi": "Guinean frangi", "fr": "franc guinéen", + "ga": "franc na Guine", "gl": "franco guineano", "he": "פרנק גינאי", "hr": "Gvinejski franak", @@ -2070,6 +2123,7 @@ "eu": "Quetzal", "fi": "Guatemalan quetzal", "fr": "Quetzal", + "ga": "ceatsal", "gl": "Quetzal", "he": "קצאל", "hr": "Gvatemalski kvecal", @@ -2105,6 +2159,7 @@ "eu": "Dolar guyanar", "fi": "Guyanan dollari", "fr": "Dollar guyanien", + "ga": "dollar na Guáine", "gl": "Dólar güianés", "he": "דולר גיאני", "hr": "Gvajanski dolar", @@ -2146,6 +2201,7 @@ "eu": "Dolar hongkongtar", "fi": "Hongkongin dollari", "fr": "dollar de Hong Kong", + "ga": "dollar Hong Cong", "gl": "Dólar de Hong Kong", "he": "דולר הונג קונגי", "hr": "Honkonški dolar", @@ -2189,6 +2245,7 @@ "eu": "Lempira", "fi": "Hondurasin lempira", "fr": "lempira", + "ga": "lempira Hondúras", "he": "למפירה", "hr": "Honduraška lempira", "hu": "hondurasi lempira", @@ -2224,6 +2281,7 @@ "eu": "Gourde", "fi": "Haitin gourde", "fr": "gourde", + "ga": "gourde", "he": "גורד", "hr": "Haićanski gourd", "hu": "haiti gourde", @@ -2259,6 +2317,7 @@ "eu": "Hungariar forint", "fi": "Unkarin forintti", "fr": "forint", + "ga": "forint na hUngáire", "gl": "Florín húngaro", "he": "פורינט", "hr": "Mađarska forinta", @@ -2301,6 +2360,7 @@ "eu": "Indonesiar errupia", "fi": "Indonesian rupia", "fr": "roupie indonésienne", + "ga": "rupiah na hIndinéise", "gl": "rupia indonesia", "he": "רופיה אינדונזית", "hr": "Indonezijska rupija", @@ -2346,6 +2406,7 @@ "eu": "Shekel berri", "fi": "Uusi Israelin sekeli", "fr": "shekel", + "ga": "seiceal nua", "gl": "Novo sheqel", "he": "שקל חדש", "hr": "Izraelski novi šekel", @@ -2392,6 +2453,7 @@ "eu": "Indiar errupia", "fi": "Intian rupia", "fr": "roupie indienne", + "ga": "rúipí na hIndia", "gl": "rupia india", "he": "רופי הודי", "hr": "Indijska rupija", @@ -2435,6 +2497,7 @@ "es": "dinar iraquí", "fi": "Irakin dinaari", "fr": "dinar irakien", + "ga": "dinar na hIaráice", "he": "דינר עיראקי", "hr": "Irački dinar", "hu": "iraki dinár", @@ -2474,6 +2537,7 @@ "eu": "Irandar rial", "fi": "Iranin rial", "fr": "rial iranien", + "ga": "rial na hIaráine", "he": "ריאל איראני", "hr": "Iranski rijal", "hu": "iráni riál", @@ -2515,6 +2579,7 @@ "eu": "Islandiar koroa", "fi": "Islannin kruunu", "fr": "couronne islandaise", + "ga": "Króna", "gl": "Coroa islandesa", "he": "קרונה איסלנדית", "hr": "Islandska kruna", @@ -2552,6 +2617,7 @@ "eu": "Dolar jamaikar", "fi": "Jamaikan dollari", "fr": "Dollar jamaïcain", + "ga": "dollar na hIamáice", "gl": "Dólar xamaicano", "he": "דולר ג'מייקי", "hr": "Jamajčanski dolar", @@ -2589,6 +2655,7 @@ "eu": "Jordaniako dinar", "fi": "Jordanian dinaari", "fr": "Dinar jordanien", + "ga": "dinar na hIordáine", "gl": "dinar xordano", "he": "דינר ירדני", "hr": "Jordanski dinar", @@ -2631,6 +2698,7 @@ "eu": "Yen", "fi": "Japanin jeni", "fr": "yen", + "ga": "yen", "gl": "Ien", "he": "ין יפני", "hr": "Japanski jen", @@ -2675,6 +2743,7 @@ "et": "Kenya šilling", "fi": "Kenian šillinki", "fr": "Shilling kényan", + "ga": "scilling na Céinia", "gl": "Xilin kenyano", "he": "שילינג קנייתי", "hr": "Kenijski šiling", @@ -2708,6 +2777,7 @@ "es": "som kirguís", "fi": "Kirgisian som", "fr": "som", + "ga": "som na Cirgeastáine", "gl": "som kirguiz", "hr": "Kirgistanski som", "hu": "kirgiz szom", @@ -2743,6 +2813,7 @@ "eu": "Kanbodiar bigarren riel", "fi": "Kambodžan riel", "fr": "Riel", + "ga": "riel na Cambóide", "gl": "riel camboxano", "he": "ריאל קמבודי", "hr": "Kambodžanski rijel", @@ -2782,6 +2853,7 @@ "es": "franco comorense", "fi": "Komorien frangi", "fr": "franc comorien", + "ga": "franc Oileáin Chomóra", "he": "פרנק קומורואי", "hr": "Komorski franak", "hu": "comore-i frank", @@ -2816,6 +2888,7 @@ "et": "Põhja-Korea vonn", "fi": "Pohjois-Korean won", "fr": "won nord-coréen", + "ga": "won na Cóiré Thuaidh", "gl": "Won norcoreano", "he": "וון צפון-קוריאני", "hr": "Sjevernokorejski von", @@ -2858,6 +2931,7 @@ "et": "Lõuna-Korea vonn", "fi": "Etelä-Korean won", "fr": "won sud-coréen", + "ga": "won na Cóiré Theas", "gl": "Won surcoreano", "he": "וון דרום קוריאני", "hr": "Južnokorejski von", @@ -2901,6 +2975,7 @@ "eu": "Kuwaitar dinar", "fi": "Kuwaitin dinaari", "fr": "dinar koweïtien", + "ga": "dinar Chuáit", "gl": "dinar kuwaití", "he": "דינר כוויתי", "hr": "Kuvajtski dinar", @@ -2934,10 +3009,11 @@ "de": "Kaiman-Dollar", "en": "Cayman Islands dollar", "eo": "kajmana dolaro", - "es": "Dólar de las Islas Caimán", + "es": "Dólar caimanés", "eu": "Dolar kaimandar", "fi": "Caymansaarten dollari", "fr": "Dollar des îles Caïmans", + "ga": "dollar Oileáin Cayman", "he": "דולר קיימני", "hr": "Kajmanski dolar", "hu": "kajmán-szigeteki dollár", @@ -2973,6 +3049,7 @@ "eu": "Kazakhstani Tenge", "fi": "Kazakstanin tenge", "fr": "tenge kazakh", + "ga": "tenge na Casacstáine", "gl": "tenge kazakh", "he": "טנגה", "hr": "Kazahstanski tenge", @@ -3018,6 +3095,7 @@ "eu": "Laostar kip berria", "fi": "Laosin kip", "fr": "Kip laotien", + "ga": "kip Laos", "hr": "laoski kip", "hu": "laoszi kip", "id": "Kip", @@ -3054,6 +3132,7 @@ "es": "libra libanesa", "fi": "Libanonin punta", "fr": "livre libanaise", + "ga": "punt na Liobáine", "he": "לירה לבנונית", "hr": "Libanonska funta", "hu": "libanoni font", @@ -3092,6 +3171,7 @@ "eu": "Errupia srilankar", "fi": "Sri Lankan rupia", "fr": "roupie srilankaise", + "ga": "rúipí Shrí Lanca", "gl": "Rupia de Sri Lanka", "he": "רופי סרי לנקי", "hr": "Šrilanska rupija", @@ -3130,6 +3210,7 @@ "es": "dólar liberiano", "fi": "Liberian dollari", "fr": "dollar libérien", + "ga": "dollar na Libéire", "gl": "Dólar liberiano", "he": "דולר ליברי", "hr": "Liberijski dolar", @@ -3166,6 +3247,7 @@ "es": "Loti", "fi": "Lesothon loti", "fr": "Loti", + "ga": "loti Leosóta", "gl": "Loti", "he": "לוטי", "hr": "Lesotski loti", @@ -3199,6 +3281,7 @@ "es": "dinar libio", "fi": "Libyan dinaari", "fr": "dinar libyen", + "ga": "dinar na Libia", "he": "דינר לובי ", "hr": "Libijski dinar", "hu": "líbiai dinár", @@ -3234,6 +3317,7 @@ "eu": "Marokoar dirham", "fi": "Marokon dirhami", "fr": "Dirham marocain", + "ga": "dirham Mharacó", "gl": "Dirham", "he": "דירהם מרוקני", "hr": "Marokanski dirham", @@ -3272,6 +3356,7 @@ "et": "Moldova leu", "fi": "Moldovan leu", "fr": "leu moldave", + "ga": "leu na Moldóive", "gl": "leu moldovo", "he": "לאו מולדובני", "hr": "moldavski lej", @@ -3311,6 +3396,7 @@ "es": "ariary", "fi": "Madagaskarin ariary", "fr": "ariary", + "ga": "ariary Mhadagascar", "he": "אריארי", "hr": "Malgaški arijari", "hu": "madagaszkári ariary", @@ -3346,6 +3432,7 @@ "et": "Makedoonia denaar", "fi": "Makedonian denaari", "fr": "denar macédonien", + "ga": "denar na Macadóine", "gl": "Dinar macedonio", "he": "דינר מקדוני", "hr": "makedonski denar", @@ -3387,6 +3474,7 @@ "es": "Kyat birmano", "fi": "Myanmarin kyat", "fr": "Kyat", + "ga": "kyat Mhaenmar", "hr": "Mijanmarski kjat", "hu": "mianmari kjap", "id": "Kyat", @@ -3423,6 +3511,7 @@ "es": "tugrik mongol", "fi": "Mongolian tugrik", "fr": "tugrik", + "ga": "tögrög", "gl": "Tugrik", "he": "טוגרוג", "hr": "Mongolski tugrik", @@ -3460,6 +3549,7 @@ "eu": "Pataca macautar", "fi": "Macaon pataca", "fr": "pataca", + "ga": "pataca Macao", "gl": "Pataca macaense", "he": "פטקה", "hr": "Makaonska pataka", @@ -3496,6 +3586,7 @@ "es": "uguiya", "fi": "Mauritanian ouguiya", "fr": "ouguiya", + "ga": "ouguiya na Máratáine", "gl": "ouguiya", "hr": "Mauretanska ouguja", "hu": "mauritániai ouguiya", @@ -3531,6 +3622,7 @@ "eu": "Errupia mauriziar", "fi": "Mauritiuksen rupia", "fr": "roupie mauricienne", + "ga": "rúipí Oileán Mhuirís", "gl": "Rupia de Mauricio", "he": "רופי מאוריציני", "hr": "Mauricijska rupija", @@ -3567,6 +3659,7 @@ "eu": "Errupia maldivar", "fi": "Malediivien rufiyaa", "fr": "rufiyaa", + "ga": "rufiyaa Oileáin Mhaildíve", "hr": "Maldivska rufija", "hu": "maldív rúfia", "id": "rufiyaa Maladewa", @@ -3601,6 +3694,7 @@ "et": "Malawi kvatša", "fi": "Malawin kwacha", "fr": "kwacha malawien", + "ga": "kwacha na Maláive", "gl": "Kwacha de Malawi", "hr": "Malavijska kvača", "hu": "malawi kwacha", @@ -3637,6 +3731,7 @@ "eu": "Mexikar peso", "fi": "Meksikon peso", "fr": "peso mexicain", + "ga": "peso Mheicsiceo", "gl": "Peso mexicano", "he": "פסו מקסיקני", "hr": "Meksički pezo", @@ -3684,6 +3779,7 @@ "eu": "Ringgit", "fi": "Malesian ringgit", "fr": "ringgit", + "ga": "ringgit na Malaeisia", "he": "רינגיט מלזי", "hr": "Malezijski ringit", "hu": "maláj ringgit", @@ -3723,6 +3819,7 @@ "es": "Metical mozambiqueño", "fi": "Mosambikin metical", "fr": "Metical", + "ga": "metical Mhósaimbíc", "gl": "Metical", "he": "מטיקל מוזמביני", "hr": "Mozambijski metikal", @@ -3758,6 +3855,7 @@ "es": "Dólar namibio", "fi": "Namibian dollari", "fr": "Dollar namibien", + "ga": "dollar na Namaibe", "gl": "Dólar namibio", "he": "דולר נמיבי", "hr": "Namibijski dolar", @@ -3793,6 +3891,7 @@ "es": "naira", "fi": "Nigerian naira", "fr": "Naira", + "ga": "naira", "gl": "Naira", "he": "נאירה", "hr": "Nigerijska naira", @@ -3830,6 +3929,7 @@ "eu": "Córdoba", "fi": "Nicaraguan córdoba", "fr": "Córdoba", + "ga": "córdoba Nicearagua", "gl": "Córdoba", "he": "קורדובה", "hr": "Nikaragvanska kordoba", @@ -3868,6 +3968,7 @@ "eu": "Norvegiar koroa", "fi": "Norjan kruunu", "fr": "couronne norvégienne", + "ga": "krone na hIorua", "gl": "Coroa norueguesa", "he": "כתר נורווגי", "hr": "Norveška kruna", @@ -3913,6 +4014,7 @@ "eu": "Errupia nepaldar", "fi": "Nepalin rupia", "fr": "roupie népalaise", + "ga": "rúipí Neipeal", "gl": "Rupia nepalesa", "he": "רופי נפאלי", "hr": "Nepalska rupija", @@ -3956,6 +4058,7 @@ "eu": "Zeelandaberritar dolar", "fi": "Uuden-Seelannin dollari", "fr": "dollar néo-zélandais", + "ga": "dollar na Nua-Shéalainne", "gl": "Dólar neozelandés", "he": "דולר ניו זילנדי", "hr": "Novozelandski dolar", @@ -3995,6 +4098,7 @@ "es": "Rial omaní", "fi": "Omanin rial", "fr": "Rial omanais", + "ga": "rial Óman", "he": "ריאל עומאני", "hr": "Omanski rijal", "hu": "ománi riál", @@ -4031,6 +4135,7 @@ "eu": "Balboa", "fi": "Panaman balboa", "fr": "Balboa", + "ga": "balboa Phanama", "gl": "Balboa", "he": "בלבואה", "hr": "Panamska balboa", @@ -4067,6 +4172,7 @@ "eu": "Sol", "fi": "Perun nuevo sol", "fr": "nouveau sol", + "ga": "nuevo sol Pheiriú", "gl": "Nuevo sol", "he": "סול", "hr": "Peruanski novi sol", @@ -4103,6 +4209,7 @@ "es": "kina", "fi": "Papua-Uuden-Guinean kina", "fr": "kina", + "ga": "kina Nua-Ghuine Phapua", "gl": "Kina", "he": "קינה", "hr": "Papuanska kina", @@ -4139,6 +4246,7 @@ "es": "peso filipino", "fi": "Filippiinien peso", "fr": "peso philippin", + "ga": "peso na nOileán Filipíneach", "he": "פסו פיליפיני", "hr": "Filipinski pezo", "hu": "Fülöp-szigeteki peso", @@ -4181,6 +4289,7 @@ "eu": "Errupia pakistandar", "fi": "Pakistanin rupia", "fr": "roupie pakistanaise", + "ga": "rúipí na Pacastáine", "he": "רופי פקיסטני ", "hr": "Pakistanska rupija", "hu": "pakisztáni rúpia", @@ -4222,6 +4331,7 @@ "eu": "Złoty", "fi": "Puolan złoty", "fr": "złoty", + "ga": "złoty", "gl": "Złoty", "he": "זלוטי", "hr": "Poljski zlot", @@ -4267,6 +4377,7 @@ "eu": "Złoty", "fi": "Puolan złoty", "fr": "złoty", + "ga": "złoty", "gl": "Złoty", "he": "זלוטי", "hr": "Poljski zlot", @@ -4309,6 +4420,7 @@ "eu": "Guarani", "fi": "Paraguayn guaraní", "fr": "Guaraní", + "ga": "guaraní Pharagua", "gl": "Guaraní", "hr": "Paragvajski gvarani", "hu": "paraguayi guaraní", @@ -4342,6 +4454,7 @@ "es": "riyal catarí", "fi": "Qatarin rial", "fr": "riyal qatarien", + "ga": "riyal Chatar", "he": "ריאל קטרי", "hr": "Katarski rijal", "hu": "katari riál", @@ -4380,6 +4493,7 @@ "et": "Rumeenia leu", "fi": "Romanian leu", "fr": "leu roumain", + "ga": "leu na Rómáine", "gl": "Leu romanés", "he": "לֵיי רומני", "hr": "Rumunjski lej", @@ -4424,6 +4538,7 @@ "eu": "Serbiar dinar", "fi": "Serbian dinaari", "fr": "dinar serbe", + "ga": "Dinar na Seirbia", "gl": "Dinar serbio", "he": "דינר סרבי", "hr": "srpski dinar", @@ -4470,6 +4585,7 @@ "eu": "Errusiar errublo", "fi": "Venäjän rupla", "fr": "rouble russe", + "ga": "rúbal na Rúise", "gl": "Rublo ruso", "he": "רובל רוסי", "hr": "Ruska rublja", @@ -4514,6 +4630,7 @@ "et": "Rwanda frank", "fi": "Ruandan frangi", "fr": "franc rwandais", + "ga": "franc Ruanda", "gl": "Franco ruandés", "he": "פרנק רואנדי", "hr": "Ruandski franak", @@ -4548,6 +4665,7 @@ "et": "Saudi Araabia riaal", "fi": "Saudi-Arabian rial", "fr": "riyal saoudien", + "ga": "riyal na hAraibe Sádaí", "he": "ריאל סעודי", "hr": "Saudijski rijal", "hu": "szaúdi riál", @@ -4588,6 +4706,7 @@ "es": "dólar de las Islas Salomón", "fi": "Salomonsaarten dollari", "fr": "dollar des îles Salomon", + "ga": "dollar Oileáin Sholaimh", "gl": "Dólar das Illas Salomón", "he": "דולר איי שלמה", "hr": "Salomonskootočni dolar", @@ -4624,6 +4743,7 @@ "eu": "Errupia seychelletar", "fi": "Seychellien rupia", "fr": "roupie seychelloise", + "ga": "rúipí na Séiséal", "hr": "Sejšelska rupija", "hu": "seychelle-i rúpia", "id": "rupee Seychelles", @@ -4657,6 +4777,7 @@ "es": "libra sudanesa", "fi": "Sudanin punta", "fr": "livre soudanaise", + "ga": "punt na Súdáine", "he": "לירה סודאנית", "hr": "Sudanska funta", "hu": "szudáni font", @@ -4695,6 +4816,7 @@ "eu": "Suediar koroa", "fi": "Ruotsin kruunu", "fr": "couronne suédoise", + "ga": "krona na Sualainne", "gl": "Coroa sueca", "he": "קרונה שוודית", "hr": "Švedska kruna", @@ -4739,6 +4861,7 @@ "eu": "Dolar singapurtar", "fi": "Singaporen dollari", "fr": "dollar de Singapour", + "ga": "dollar Shingeapór", "gl": "Dólar de Singapur", "he": "דולר סינגפורי", "hr": "Singapurski dolar", @@ -4806,6 +4929,7 @@ "es": "leone", "fi": "Sierra Leonen leone", "fr": "leone", + "ga": "leone", "gl": "leone", "he": "ליאון", "hr": "Sijeraleonski leone", @@ -4843,6 +4967,7 @@ "es": "chelín somalí", "fi": "Somalian šillinki", "fr": "shilling somalien", + "ga": "scilling na Somáile", "he": "שילינג סומלי", "hr": "Somalijski šiling", "hu": "szomáliai shilling", @@ -4876,6 +5001,7 @@ "eu": "Dolar surinamdar", "fi": "Surinamen dollari", "fr": "Dollar du Surinam", + "ga": "dollar Shuranam", "gl": "Dólar surinamés", "hr": "Surinamski dolar", "hu": "suriname-i dollár", @@ -4911,6 +5037,7 @@ "et": "Lõuna-Sudaani nael", "fi": "Etelä-Sudanin punta", "fr": "livre sud-soudanaise", + "ga": "Punt na Súdáine Theas", "gl": "Libra sursudanesa", "he": "לירה דרום סודאנית", "hr": "Južnosudanska funta", @@ -4948,6 +5075,7 @@ "es": "dobra santotomense", "fi": "São Tomén ja Príncipen dobra", "fr": "dobra", + "ga": "dobra São Tomé agus Príncipe", "gl": "Dobra", "he": "דוברה", "hr": "svetotomska dobra", @@ -4984,6 +5112,7 @@ "es": "Dolar sirio", "fi": "Syyrian punta", "fr": "livre syrienne", + "ga": "punt na Siria", "gl": "libra siria", "he": "לירה סורית", "hr": "Sirijska funta", @@ -5020,6 +5149,7 @@ "es": "lilangeni", "fi": "Lilangeni", "fr": "lilangeni", + "ga": "lilangeni", "gl": "Lilangeni", "he": "לילנגני", "hr": "Svazijski lilangeni", @@ -5059,6 +5189,7 @@ "eu": "Thailandiar baht", "fi": "Baht", "fr": "baht", + "ga": "baht na Téalainne", "gl": "Baht", "he": "באט", "hr": "Tajlandski baht", @@ -5101,6 +5232,7 @@ "et": "Tadžikistani somoni", "fi": "Tadžikistanin somoni", "fr": "somoni", + "ga": "somoni na Táidsíceastáine", "gl": "somoni", "he": "סומוני טג'קיסטני", "hr": "Tadžikistanski somoni", @@ -5137,6 +5269,7 @@ "es": "manat turkmeno", "fi": "Turkmenistanin manat", "fr": "Manat turkmène", + "ga": "manat nua na Tuircméanastáine", "gl": "Manat turcomán", "he": "מנאט טורקמני חדש", "hr": "Turkmenistanski manat", @@ -5176,6 +5309,7 @@ "et": "Tuneesia dinaar", "fi": "Tunisian dinaari", "fr": "dinar tunisien", + "ga": "dinar na Túinéise", "he": "דינר תוניסאי", "hr": "tuniski dinar", "hu": "tunéziai dinár", @@ -5209,6 +5343,7 @@ "es": "pa'anga", "fi": "Tongan paʻanga", "fr": "pa’anga", + "ga": "paʻanga Thonga", "gl": "Paʻanga", "he": "פאנגה טונגאית", "hr": "Tongaška pa’anga", @@ -5249,6 +5384,7 @@ "eu": "Turkiar lira", "fi": "Turkin liira", "fr": "livre turque", + "ga": "lira na Tuirce", "gl": "Lira turca", "he": "לירה טורקית", "hr": "Turska lira", @@ -5293,6 +5429,7 @@ "eu": "Trinidad eta Tobagoko dolar", "fi": "Trinidad ja Tobagon dollari", "fr": "Dollar de Trinité-et-Tobago", + "ga": "dollar Oileán na Tríonóide agus Tobága", "gl": "Dólar de Trinidad e Tobago", "hr": "Trinidadtobaški dolar", "hu": "Trinidad és Tobagó-i dollár", @@ -5328,6 +5465,7 @@ "et": "Uus Taiwani dollar", "fi": "Uusi Taiwanin dollari", "fr": "nouveau dollar de Taïwan", + "ga": "dollar nua na Téaváine", "he": "דולר טאיוואני חדש", "hr": "Novotajvanski dolar", "hu": "tajvani új dollár", @@ -5366,6 +5504,7 @@ "es": "chelín tanzano", "fi": "Tansanian šillinki", "fr": "shilling tanzanien", + "ga": "scilling na Tansáine", "he": "שילינג טנזני", "hr": "Tanzanijski šiling", "hu": "tanzániai shilling", @@ -5400,6 +5539,7 @@ "eu": "hryvnia", "fi": "Ukrainan hryvnia", "fr": "hryvnia", + "ga": "hryvnia na hÚcráine", "gl": "hrivna", "he": "הריבניה", "hr": "grivnja", @@ -5443,6 +5583,7 @@ "es": "chelín ugandés", "fi": "Ugandan šillinki", "fr": "shilling ougandais", + "ga": "scilling Uganda", "he": "שילינג אוגנדי", "hr": "Ugandski šiling", "hu": "ugandai shilling", @@ -5480,6 +5621,7 @@ "eu": "Estatubatuar dolar", "fi": "Yhdysvaltain dollari", "fr": "dollar américain", + "ga": "dollar na Stát Aontaithe", "gl": "dólar estadounidense", "he": "דולר אמריקאי", "hr": "Američki dolar", @@ -5534,6 +5676,7 @@ "eu": "Peso uruguaitar", "fi": "Uruguayn peso", "fr": "peso uruguayen", + "ga": "peso Uragua", "gl": "Peso uruguaio", "he": "פסו של אורוגוואי", "hr": "Urugvajski pezo", @@ -5572,6 +5715,7 @@ "es": "som", "fi": "Uzbekistanin som", "fr": "Sum", + "ga": "som na hÚisbéiceastáine", "gl": "Som uzbeko", "he": "סום אוזבקי", "hr": "Uzbekistanski som", @@ -5630,6 +5774,7 @@ "eu": "Vietnamdar dong", "fi": "Vietnamin đồng", "fr": "dong", + "ga": "đồng Vítneam", "gl": "Dong vietnamita", "he": "דונג וייטנאמי ", "hr": "Vijetnamski dong", @@ -5666,6 +5811,7 @@ "es": "vatu", "fi": "Vanuatun vatu", "fr": "Vatu", + "ga": "Vatu Vanuatú", "gl": "Vatu", "he": "ואטו", "hr": "Vanuatski vatu", @@ -5699,6 +5845,7 @@ "et": "Samoa tala", "fi": "Samoan tala", "fr": "tala", + "ga": "Tālā Shamó", "gl": "Tala samoana", "he": "טלה", "hr": "Samoanska tala", @@ -5732,6 +5879,7 @@ "es": "franco CFA de África Central", "fi": "Keski-Afrikan CFA-frangi", "fr": "franc CFA d'Afrique centrale", + "ga": "franc CFA na hAfraice Láir", "gl": "franco CFA de África Central", "he": "פרנק CFA מרכז אפריקני", "hr": "Srednjoafrički CFA franak", @@ -5813,6 +5961,7 @@ "eu": "Ekialdeko Karibeko dolar", "fi": "Itä-Karibian dollari", "fr": "dollar des Caraïbes orientales", + "ga": "dollar na Cairibe Thoir", "gl": "Dólar Caribe-Leste", "he": "דולר מזרח קריבי", "hr": "Istočnokaripski dolar", @@ -5888,7 +6037,9 @@ "en": "West African CFA franc", "eo": "okcident-afrika franko", "es": "franco CFA de África Occidental", + "fi": "Länsi-Afrikan CFA-frangi", "fr": "franc CFA", + "ga": "franc CFA Iarthar na hAfraice", "gl": "franco CFA de África Occidental", "he": "פרנק CFA מערב אפריקני", "hr": "Zapadnoafrički CFA franak", @@ -5931,6 +6082,7 @@ "eu": "CFP libera", "fi": "CFP-frangi", "fr": "franc Pacifique", + "ga": "franc CFP", "gl": "Franco CFP", "he": "פרנק צרפתי", "hr": "CFP franak", @@ -5999,6 +6151,7 @@ "es": "rial yemení", "fi": "Jemenin rial", "fr": "rial yéménite", + "ga": "rial Éimin", "gl": "Rial iemení", "he": "ריאל תימני", "hr": "Jemenski rijal", @@ -6038,6 +6191,7 @@ "eu": "Hegoafrikar rand", "fi": "Etelä-Afrikan randi", "fr": "rand", + "ga": "rand", "gl": "Rand surafricano", "he": "ראנד דרום אפריקאי", "hr": "Južnoafrički rand", @@ -6077,6 +6231,7 @@ "et": "Sambia kvatša", "fi": "Sambian kwacha", "fr": "kwacha zambien", + "ga": "kwacha na Saimbia", "gl": "Kwacha zambiano", "he": "קוואצ'ה זמבי", "hr": "Zambijska kvača", @@ -6108,6 +6263,7 @@ "en": "Zimbabwe Gold", "eo": "Zimbabva Oro", "es": "Oro de Zimbabue", + "fi": "Zimbabwen kulta", "fr": "or du Zimbabwe", "id": "Zimbabwe Gold", "it": "Zimbabwe Gold", @@ -6450,6 +6606,7 @@ "ariary malgache": "MGA", "ariary malgascio": "MGA", "ariary malgaxe": "MGA", + "ariary mhadagascar": "MGA", "arjantin pesosu": "ARS", "armeenia drahm": "AMD", "armeenia dram": "AMD", @@ -6574,6 +6731,7 @@ "bahreinski dinar": "BHD", "bahreyn dinarı": "BHD", "baht": "THB", + "baht na téalainne": "THB", "baht tailandes": "THB", "baht tailandès": "THB", "baht tailandés": "THB", @@ -6592,6 +6750,7 @@ "balboa panamense": "PAB", "balboa panameño": "PAB", "balboa panaméen": "PAB", + "balboa phanama": "PAB", "balboja": "PAB", "balboo": "PAB", "baltarusijos rublis": "BYN", @@ -6714,6 +6873,7 @@ "birr etíope": "ETB", "birr éthiopien": "ETB", "birr habsyah": "ETB", + "birr na haetóipe": "ETB", "birre da etiópia": "ETB", "birre etíope": "ETB", "bjeloruski rubalj": "BYN", @@ -6889,6 +7049,7 @@ "cdf": "CDF", "cdn": "CAD", "cdn$": "CAD", + "ceatsal": "GTQ", "cebelitarık sterlini": "GIP", "cedi": "GHS", "cedi ghana": "GHS", @@ -6985,6 +7146,7 @@ "colon costarricense": "CRC", "colon kostarykański": "CRC", "colón": "CRC", + "colón chósta ríce": "CRC", "colón costa rica": "CRC", "colón costa ricense": "CRC", "colón costa riquenho": "CRC", @@ -7056,6 +7218,9 @@ "corona txeca": "CZK", "corone ceche": "CZK", "corone norvegesi": "NOK", + "coróin na danmhairge": "DKK", + "coróin na hiorua": "NOK", + "coróin na sualainne": "SEK", "costa rica colon": "CRC", "costa rica colón": "CRC", "costa rica i colón": "CRC", @@ -7083,6 +7248,7 @@ "córdoba nicaragüenc": "NIO", "córdoba nicaragüenca": "NIO", "córdoba nicaragüense": "NIO", + "córdoba nicearagua": "NIO", "córdoba nikaragua": "NIO", "córdoba oro": "NIO", "córdoba ouro": "NIO", @@ -7132,6 +7298,7 @@ "dalasi gambia": "GMD", "dalasi gambiano": "GMD", "dalasi gambien": "GMD", + "dalasi na gaimbia": "GMD", "dalasis": "GMD", "dalassi": "GMD", "dana krono": "DKK", @@ -7190,6 +7357,7 @@ "denar macédonien": "MKD", "denar makedonia": "MKD", "denar makedonia utara": "MKD", + "denar na macadóine": "MKD", "denar normacedoni": "MKD", "denar quaitiano": "KWD", "denar sérvio": "RSD", @@ -7246,6 +7414,8 @@ "dinar baremês": "BHD", "dinar baremita": "BHD", "dinar barenita": "BHD", + "dinar bhairéin": "BHD", + "dinar chuáit": "KWD", "dinar coaitiano": "KWD", "dinar couaitiano": "KWD", "dinar covaitiano": "KWD", @@ -7323,6 +7493,12 @@ "dinar macedonio": "MKD", "dinar macedónio": "MKD", "dinar macedônio": "MKD", + "dinar na hailgéire": "DZD", + "dinar na hiaráice": "IQD", + "dinar na hiordáine": "JOD", + "dinar na libia": "LYD", + "dinar na seirbia": "RSD", + "dinar na túinéise": "TND", "dinar normacedoni": "MKD", "dinar quaitiano": "KWD", "dinar sârb": "RSD", @@ -7377,6 +7553,7 @@ "MAD", "AED" ], + "dirham aontas na néimíríochtaí arabacha": "AED", "dirham arab emirat": "AED", "dirham de emiratos arabes unidos": "AED", "dirham de emiratos árabes unidos": "AED", @@ -7413,6 +7590,7 @@ "dirham marroqui": "MAD", "dirham marroquino": "MAD", "dirham marroquí": "MAD", + "dirham mharacó": "MAD", "dirham moroco": "MAD", "dirham sae": "AED", "dirham spojených arabských emirátov": "AED", @@ -7447,6 +7625,7 @@ "dobra saotomejska": "STN", "dobra são tomense": "STN", "dobra são tomé a príncipe": "STN", + "dobra são tomé agus príncipe": "STN", "dobra são tomé dan príncipe": "STN", "dobra svetog tome i principa": "STN", "dobra svetog tome i prinsipa": "STN", @@ -7656,10 +7835,14 @@ "dollar barbadien": "BBD", "dollar bermudien": "BMD", "dollar bélizien": "BZD", + "dollar bharbadós": "BBD", + "dollar bheirmiúda": "BMD", + "dollar bhrúiné": "BND", "dollar brunei": "BND", "dollar canada": "CAD", "dollar canadian": "CAD", "dollar canadien": "CAD", + "dollar cheanada": "CAD", "dollar de belize": "BZD", "dollar de brunei": "BND", "dollar de brunéi": "BND", @@ -7688,9 +7871,11 @@ "dollar du surinam": "SRD", "dollar du suriname": "SRD", "dollar étatsunien": "USD", + "dollar fhidsí": "FJD", "dollar fidjien": "FJD", "dollar guyanien": "GYD", "dollar haïtien": "HTG", + "dollar hong cong": "HKD", "dollar hong kong": "HKD", "dollar hongkongais": "HKD", "dollar hồng kông": "HKD", @@ -7703,10 +7888,27 @@ "dollar libérien": "LRD", "dollar mericano": "USD", "dollar merikano": "USD", + "dollar na beilíse": "BZD", + "dollar na cairibe thoir": "XCD", + "dollar na guáine": "GYD", + "dollar na hastráile": "AUD", + "dollar na hiamáice": "JMD", + "dollar na libéire": "LRD", + "dollar na mbahámaí": "BSD", + "dollar na namaibe": "NAD", + "dollar na nua shéalainne": "NZD", + "dollar na stát aontaithe": "USD", "dollar namibien": "NAD", "dollar néo zélandais": "NZD", "dollar néozélandais": "NZD", + "dollar nua na téaváine": "TWD", + "dollar oileáin cayman": "KYD", + "dollar oileáin sholaimh": "SBD", + "dollar oileán na tríonóide agus tobága": "TTD", + "dollar sam": "USD", "dollar selandia baru": "NZD", + "dollar shingeapór": "SGD", + "dollar shuranam": "SRD", "dollar singapore": "SGD", "dollar singapourien": "SGD", "dollar statounitese": "USD", @@ -7892,7 +8094,6 @@ "dólar de honguecongue": "HKD", "dólar de las bahamas": "BSD", "dólar de las islas caiman": "KYD", - "dólar de las islas caimán": "KYD", "dólar de las islas salomón": "SBD", "dólar de los estados unidos": "USD", "dólar de namibia": "NAD", @@ -7977,6 +8178,7 @@ "dram da arménia": "AMD", "dram da armênia": "AMD", "dram karabachski": "AMD", + "dram na hairméine": "AMD", "dramas": "AMD", "drame arménio": "AMD", "dramm": "AMD", @@ -8069,6 +8271,7 @@ "escudo capverdien": "CVE", "escudo de cabo verde": "CVE", "escudo di capo verde": "CVE", + "escudo rinn verde": "CVE", "escudo tanjung verde": "CVE", "escudo zielonego przylądka": "CVE", "escudos cabo verdianos": "CVE", @@ -8222,6 +8425,7 @@ "florín de aruba": "AWG", "florín hungaro": "HUF", "florín húngaro": "HUF", + "flóirín arúba": "AWG", "fl£": "FKP", "folklando svaras": "FKP", "font sterling": "GBP", @@ -8232,6 +8436,7 @@ "forint hungaro": "HUF", "forint húngaro": "HUF", "forint maghiar": "HUF", + "forint na hungáire": "HUF", "forint ungar": "HUF", "forint węgierski": "HUF", "forintas": "HUF", @@ -8247,6 +8452,7 @@ "XPF", "CHF" ], + "franc an chongó": "CDF", "franc burundais": "BIF", "franc burundez": "BIF", "franc burundi": "BIF", @@ -8266,6 +8472,8 @@ "franc cfa de l'àfrica central": "XAF", "franc cfa de l'àfrica occidental": "XOF", "franc cfa gorllein affrica": "XOF", + "franc cfa iarthar na hafraice": "XOF", + "franc cfa na hafraice láir": "XAF", "franc cfa tây phi": "XOF", "franc cfa trung phi": "XAF", "franc cfa vest african": "XOF", @@ -8299,8 +8507,13 @@ "franc komoro": "KMF", "franc kongo": "CDF", "franc malgache": "MGA", + "franc na burúine": "BIF", + "franc na guine": "GNF", + "franc na heilvéise": "CHF", + "franc oileáin chomóra": "KMF", "franc pacific": "XPF", "franc pacifique": "XPF", + "franc ruanda": "RWF", "franc ruandès": "RWF", "franc rwanda": "RWF", "franc rwandais": "RWF", @@ -8530,6 +8743,7 @@ "guaraní paraguay": "PYG", "guaraní paraguayen": "PYG", "guaraní paraguayo": "PYG", + "guaraní pharagua": "PYG", "guatemala quetzal": "GTQ", "guatemala quetzalı": "GTQ", "guatemalaanse quetzal": "GTQ", @@ -8538,6 +8752,7 @@ "guatemalský quetzal": "GTQ", "guatemalteekse quetzal": "GTQ", "guatemaltekischer quetzal": "GTQ", + "guilder aintillí na hísiltíre": "ANG", "guilder antillen belanda": "ANG", "guinea franc": "GNF", "guineai frank": "GNF", @@ -8651,6 +8866,7 @@ "hrn": "UAH", "hryvna": "UAH", "hryvnia": "UAH", + "hryvnia na húcráine": "UAH", "hryvnia ucraina": "UAH", "hryvnia ukraina": "UAH", "hryvnia ukraine": "UAH", @@ -8994,6 +9210,7 @@ "kiat": "MMK", "kijatas": "MMK", "kina": "PGK", + "kina nua ghuine phapua": "PGK", "kina papua new guinea": "PGK", "kina papua nugini": "PGK", "kina papuana": "PGK", @@ -9073,6 +9290,7 @@ "kopek": "RUB", "kopeken": "RUB", "kordoba": "NIO", + "koroa danimarkar": "DKK", "korona czeska": "CZK", "korona duńska": "DKK", "korona islandzka": "ISK", @@ -9084,6 +9302,7 @@ "koruna ceská": "CZK", "koruna česka": "CZK", "koruna česká": "CZK", + "koruna na seice": "CZK", "koruna séc": "CZK", "kosta rika colónu": "CRC", "kosta rikos kolonas": "CRC", @@ -9109,6 +9328,7 @@ ], "krona denmark": "DKK", "krona islandia": "ISK", + "krona na sualainne": "SEK", "krona norwegia": "NOK", "krona sweden": "SEK", "krona swedia": "SEK", @@ -9120,6 +9340,8 @@ "krone danaidd": "DKK", "krone denmark": "DKK", "krone in norwegen": "NOK", + "krone na danmhairge": "DKK", + "krone na hiorua": "NOK", "krone na uy": "NOK", "krone norwy": "NOK", "krone đan mạch": "DKK", @@ -9194,6 +9416,8 @@ "kwacha malawien": "MWK", "kwacha malawijska": "MWK", "kwacha malawite": "MWK", + "kwacha na maláive": "MWK", + "kwacha na saimbia": "ZMW", "kwacha sambia": "ZMW", "kwacha zambese": "ZMW", "kwacha zambia": "ZMW", @@ -9209,12 +9433,14 @@ "kwanza angolana": "AOA", "kwanza angolano": "AOA", "kwanza angoleño": "AOA", + "kwanza angóla": "AOA", "kwanza reajustado": "AOA", "kwd": "KWD", "kwt": "KWD", "kyat": "MMK", "kyat birmano": "MMK", "kyat birmà": "MMK", + "kyat mhaenmar": "MMK", "kyat myanma": "MMK", "kyat myanmar": "MMK", "kyd": "KYD", @@ -9260,8 +9486,10 @@ "lari géorgien": "GEL", "lari gruzia": "GEL", "lari gruziński": "GEL", + "lari na seoirsia": "GEL", "lario": "GEL", "laris": "GEL", + "länsi afrikan cfa frangi": "XOF", "lbp": "LBP", "ld": "LYD", "ld$": "LRD", @@ -9289,6 +9517,7 @@ "lek albanés": "ALL", "lek albanês": "ALL", "lek albania": "ALL", + "lek na halbáine": "ALL", "lek novo": "ALL", "lekas": "ALL", "lekă albaneză": "ALL", @@ -9300,6 +9529,7 @@ "lempira hondurenha": "HNL", "lempira hondureña": "HNL", "lempira hondurien": "HNL", + "lempira hondúras": "HNL", "lempira hondwraidd": "HNL", "lempire hondurien": "HNL", "lempiro": "HNL", @@ -9341,6 +9571,8 @@ "leu moldova": "MDL", "leu moldovenesc": "MDL", "leu moldovo": "MDL", + "leu na moldóive": "MDL", + "leu na rómáine": "RON", "leu romanès": "RON", "leu romanés": "RON", "leu romanian": "RON", @@ -9361,6 +9593,7 @@ "lev bulgaro": "BGN", "lev búlgaro": "BGN", "lev da bulgária": "BGN", + "lev na bulgáire": "BGN", "leva": "BGN", "leva bulgară": "BGN", "leva búlgara": "BGN", @@ -9470,6 +9703,7 @@ "lira egiziana": "EGP", "lira libanesa": "LBP", "lira libanese": "LBP", + "lira na tuirce": "TRY", "lira siriana": "SYP", "lira síria": "SYP", "lira thổ nhĩ kỳ": "TRY", @@ -9543,6 +9777,7 @@ "loonie": "CAD", "loti": "LSL", "loti del lesotho": "LSL", + "loti leosóta": "LSL", "loti lesothan": "LSL", "loti lesothiano": "LSL", "loti lesotho": "LSL", @@ -9680,7 +9915,9 @@ "manat de turkmenistán": "TMT", "manat del turkmenistan": "TMT", "manat do azerbaijão": "AZN", + "manat na hasarbaiseáine": "AZN", "manat newydd tyrcmenestan": "TMT", + "manat nua na tuircméanastáine": "TMT", "manat turcman": "TMT", "manat turcmèn": "TMT", "manat turcomano": "TMT", @@ -9710,6 +9947,7 @@ "marco convertibile": "BAM", "marco convertible": "BAM", "marco convertível": "BAM", + "marg inmhalartaithe": "BAM", "mariana montserrat": "NIO", "mark": "BAM", "mark bosnia dan herzegovina": "BAM", @@ -9785,6 +10023,7 @@ "metical da nova família": "MZN", "metical de moçambique": "MZN", "metical del mozambico": "MZN", + "metical mhósaimbíc": "MZN", "metical moçambicano": "MZN", "metical mosambic": "MZN", "metical mozambicain": "MZN", @@ -9917,6 +10156,7 @@ "nakfa eritrea": "ERN", "nakfa eritreo": "ERN", "nakfa érythréen": "ERN", + "nakfa na heiritré": "ERN", "namibia dolaro": "NAD", "namibia dollar": "NAD", "namibian dollar": "NAD", @@ -9977,6 +10217,7 @@ "ngultrum butanes": "BTN", "ngultrum butanés": "BTN", "ngultrum del bhutan": "BTN", + "ngultrum na bútáine": "BTN", "ngultrumas": "BTN", "ngultrumo": "BTN", "ngwee": "ZMW", @@ -10154,6 +10395,7 @@ "nuevo sol peru": "PEN", "nuevo sol peruano": "PEN", "nuevo sol peruviano": "PEN", + "nuevo sol pheiriú": "PEN", "nuevos séqueles": "ILS", "nuovo dollaro taiwanese": "TWD", "nuovo peso argentino": "ARS", @@ -10220,6 +10462,7 @@ "ouguiya mauritana": "MRU", "ouguiya mauritanien": "MRU", "ouguiya mawritania": "MRU", + "ouguiya na máratáine": "MRU", "ouro do zimbábue": "ZWG", "örmény dram": "AMD", "östkaribisk dollar": "XCD", @@ -10300,6 +10543,7 @@ "pataca ma cao": "MOP", "pataca macaense": "MOP", "pataca macaneana": "MOP", + "pataca macao": "MOP", "pataca macau": "MOP", "pataca macautar": "MOP", "pataca makau": "MOP", @@ -10315,6 +10559,7 @@ "paun syria": "SYP", "pazifik franc": "XPF", "paʻanga": "TOP", + "paʻanga thonga": "TOP", "paʻanga tonga": "TOP", "paʻanga tonganesa": "TOP", "paʻanga tongano": "TOP", @@ -10367,6 +10612,7 @@ "peso chilian": "CLP", "peso chilien": "CLP", "peso chilijskie": "CLP", + "peso chúba": "CUP", "peso cileno": "CLP", "peso colombia": "COP", "peso colombian": "COP", @@ -10416,6 +10662,7 @@ "peso filipińskie": "PHP", "peso filipí": "PHP", "peso filippino": "PHP", + "peso inmhalartaithe na hairgintíne": "ARS", "peso kolombia": "COP", "peso kolonbiar": "COP", "peso kolumbijskie": "COP", @@ -10433,7 +10680,12 @@ "peso mexico": "MXN", "peso mexikar": "MXN", "peso méxico": "MXN", + "peso mheicsiceo": "MXN", "peso moneda nacional": "ARS", + "peso na colóime": "COP", + "peso na noileán filipíneach": "PHP", + "peso na poblachta doiminicí": "DOP", + "peso na sile": "CLP", "peso oro": "DOP", "peso oro dominicano": "DOP", "peso philippin": "PHP", @@ -10441,6 +10693,7 @@ "peso rana": "CUP", "peso tsile": "CLP", "peso txiletar": "CLP", + "peso uragua": "UYU", "peso uruguaian": "UYU", "peso uruguaiano": "UYU", "peso uruguaià": "UYU", @@ -10581,12 +10834,21 @@ "pula de botswana": "BWP", "pula del botswana": "BWP", "pula do botsuana": "BWP", + "pula na botsuáine": "BWP", "pula, unitate monetară": "BWP", "pund sterling": "GBP", "punt": "GBP", "punt de swdan": "SSP", + "punt ghiobráltar": "GIP", "punt gibraltar": "GIP", "punt libanus": "LBP", + "punt na héigipte": "EGP", + "punt na liobáine": "LBP", + "punt na siria": "SYP", + "punt na súdáine": "SDG", + "punt na súdáine theas": "SSP", + "punt oileáin fháclainne": "FKP", + "punt steirling": "GBP", "punt sterling": "GBP", "punt swdan": "SDG", "punt syria": "SYP", @@ -10654,6 +10916,7 @@ "real brazilian": "BRL", "real brazylijski": "BRL", "real bresilien": "BRL", + "real na brasaíle": "BRL", "real time gross settlement dollar": "ZWL", "realoj": "BRL", "rends": "ZAR", @@ -10693,6 +10956,7 @@ "rial do irão": "IRR", "rial do omã": "OMR", "rial do omão": "OMR", + "rial éimin": "YER", "rial iemen": "YER", "rial iemenita": "YER", "rial iemení": "YER", @@ -10709,6 +10973,7 @@ "rial jemeński": "YER", "rial katarski": "QAR", "rial kataru": "QAR", + "rial na hiaráine": "IRR", "rial oman": "OMR", "rial omanais": "OMR", "rial omanense": "OMR", @@ -10717,6 +10982,7 @@ "rial omanita": "OMR", "rial omaní": "OMR", "rial omański": "OMR", + "rial óman": "OMR", "rial saoudien": "SAR", "rial saudian": "SAR", "rial saudit": "SAR", @@ -10736,6 +11002,7 @@ "riel campuchia": "KHR", "riel kambodżański": "KHR", "riel kamboja": "KHR", + "riel na cambóide": "KHR", "rietumāfrikas franks": "XOF", "rijalo": "SAR", "ringgit": "MYR", @@ -10746,6 +11013,7 @@ "ringgit malaysiano": "MYR", "ringgit maleisia": "MYR", "ringgit malese": "MYR", + "ringgit na malaeisia": "MYR", "ringgit singapore": "SGD", "ringgit singapura": "SGD", "ringuite": "MYR", @@ -10754,11 +11022,13 @@ "riyal ả rập xê út": "SAR", "riyal catari": "QAR", "riyal catarí": "QAR", + "riyal chatar": "QAR", "riyal da arábia saudita": "SAR", "riyal de qatar": "QAR", "riyal dell'oman": "OMR", "riyal du qatar": "QAR", "riyal iraniano": "IRR", + "riyal na haraibe sádaí": "SAR", "riyal oman": "OMR", "riyal qatar": "QAR", "riyal qatari": "QAR", @@ -10850,6 +11120,7 @@ "rufiyaa": "MVR", "rufiyaa delle maldive": "MVR", "rufiyaa maladewa": "MVR", + "rufiyaa oileáin mhaildíve": "MVR", "rufiyah": "MVR", "rumana leo": "RON", "rumana leŭo": "RON", @@ -10969,6 +11240,7 @@ "rupia tamil": "LKR", "rupiah": "IDR", "rupiah indonesia": "IDR", + "rupiah na hindinéise": "IDR", "rupias": "INR", "rupias indias": "INR", "rupie": [ @@ -11000,6 +11272,14 @@ "russischer rubel": "RUB", "russisk rubel": "RUB", "russiske rubler": "RUB", + "rúbal na bealarúise": "BYN", + "rúbal na rúise": "RUB", + "rúipí na hindia": "INR", + "rúipí na pacastáine": "PKR", + "rúipí na séiséal": "SCR", + "rúipí neipeal": "NPR", + "rúipí oileán mhuirís": "MUR", + "rúipí shrí lanca": "LKR", "rúp": "RUB", "rúp belarus": "BYN", "rúp nga": "RUB", @@ -11113,6 +11393,10 @@ "schweizisk franc": "CHF", "schweiziska franc": "CHF", "schweiziske franc": "CHF", + "scilling na céinia": "KES", + "scilling na somáile": "SOS", + "scilling na tansáine": "TZS", + "scilling uganda": "UGX", "scr": "SCR", "scudo capoverdiano": "CVE", "sdd": "SDG", @@ -11121,6 +11405,7 @@ "sdrs": "XDR", "second boliviano": "BOB", "sedis": "GHS", + "seiceal nua": "ILS", "seišelių rupija": "SCR", "seišelli ruupia": "SCR", "sejŝela rupio": "SCR", @@ -11279,6 +11564,8 @@ "som kirguiz": "KGS", "som kirguís": "KGS", "som kîrgîz": "KGS", + "som na cirgeastáine": "KGS", + "som na húisbéiceastáine": "UZS", "som quirguiz": "KGS", "som usbeco": "UZS", "som usbeque": "UZS", @@ -11305,6 +11592,7 @@ "somálský šilink": "SOS", "some": "KGS", "somoni": "TJS", + "somoni na táidsíceastáine": "TJS", "somoni tadjic": "TJS", "somoni tadjik": "TJS", "somoni tadżycki": "TJS", @@ -11579,6 +11867,7 @@ "taka bengalese": "BDT", "taka bengalí": "BDT", "taka bengalska": "BDT", + "taka na banglaidéise": "BDT", "tala": "WST", "tala samoan": "WST", "tala samoana": "WST", @@ -11614,6 +11903,7 @@ "tālā": "WST", "tālā samoa": "WST", "tālā samoano": "WST", + "tālā shamó": "WST", "tchajvanský dolár": "TWD", "tchajwanský dolar": "TWD", "tchajwanský jüan": "TWD", @@ -11626,6 +11916,7 @@ "tenge kazakhstan": "KZT", "tenge kazako": "KZT", "tenge kazakstan": "KZT", + "tenge na casacstáine": "KZT", "tengė": "KZT", "tengue": "KZT", "tengue cazaque": "KZT", @@ -11948,6 +12239,7 @@ "vatu di vanuatu": "VUV", "vatu do vanuatu": "VUV", "vatu vanuatu": "VUV", + "vatu vanuatú": "VUV", "vatuo": "VUV", "vàng như một kênh đầu tư": "XAU", "ved": "VED", @@ -12002,6 +12294,8 @@ "won hàn quốc": "KRW", "won korea selatan": "KRW", "won korea utara": "KPW", + "won na cóiré theas": "KRW", + "won na cóiré thuaidh": "KPW", "won norcoreano": "KPW", "won nord coreà": "KPW", "won nord coreean": "KPW", @@ -12049,6 +12343,7 @@ "xpd": "XPD", "xpf": "XPF", "xpt": "XPT", + "xsu": "XSU", "xts": "XTS", "xu": "VND", "xua": "XUA", @@ -12118,6 +12413,7 @@ "zimbabwe goud": "ZWG", "zimbabwean dollar": "ZWL", "zimbabwean zig": "ZWG", + "zimbabwen kulta": "ZWG", "zimbabwiansky zlatý": "ZWG", "zimbabwský dolar": "ZWL", "zimbabwský zlatý": "ZWG", @@ -12214,6 +12510,7 @@ "zvláštní práva čerpání": "XDR", "zweedse kronen": "SEK", "zweedse kroon": "SEK", + "zwg": "ZWG", "zwitserse franc": "CHF", "zwitserse frank": "CHF", "zwl": "ZWL", @@ -12311,6 +12608,7 @@ "đồng tiền": "VND", "đồng vietnam": "VND", "đồng vietnamita": "VND", + "đồng vítneam": "VND", "ƒ": [ "AWG", "ANG" @@ -13946,12 +14244,12 @@ "البيزو الكوبي": "CUP", "البيزو المكسيكي": "MXN", "الجنية البريطاني": "GBP", - "الجنية الليبي": "EGP", + "الجنية المصري": "EGP", "الجنيه الاسترليني": "GBP", "الجنيه الأسترليني": "GBP", "الجنيه الإسترليني": "GBP", "الجنيه السودانى": "SDG", - "الجنيه الليبي": "EGP", + "الجنيه المصري": "EGP", "الدولار البربادوسي": "BBD", "الدولار البهامي": "BSD", "الدولار الكندي": "CAD", @@ -14025,10 +14323,8 @@ "توغروغ منغولي": "MNT", "ج.س": "SDG", "ج.س.": "SDG", - "ج.ل": "EGP", "ج.م": "EGP", - "جنية الليبي": "EGP", - "جنية ليبي": "EGP", + "جنية مصري": "EGP", "جنيه استرليني": "GBP", "جنيه أسترليني": "GBP", "جنيه إسترليني": "GBP", @@ -14040,7 +14336,6 @@ "جنيه سانت هيليني": "SHP", "جنيه سترليني": "GBP", "جنيه سوداني": "SDG", - "جنيه ليبي": "EGP", "جنيه مصري": "EGP", "جوردة هايتية": "HTG", "حقوق السحب الخاصة": "XDR", @@ -14701,6 +14996,7 @@ "ด่องเวียดนาม": "VND", "ทูกรีก": "MNT", "บาท": "THB", + "บาทไทย": "THB", "ปอนด์ซูดานใต้": "SSP", "ปอนด์สเตอร์ลิง": "GBP", "ปอนด์อียิปต์": "EGP", diff --git a/searx/data/engine_descriptions.json b/searx/data/engine_descriptions.json index fabd14dc8..dad5e6fbc 100644 --- a/searx/data/engine_descriptions.json +++ b/searx/data/engine_descriptions.json @@ -7,7 +7,7 @@ "ref" ], "bing videos":[ - "Intelligente soektog van Bing maak dit makliker om vinnig te kry waarna jy soek en beloon jou.", + "Soek met Microsoft Bing en gebruik die krag van AI om inligting te vind, webbladsye, beelde, video's, kaarte en meer te verken. ’n Slimsoekenjin vir die ewig nuuskieriges.", "https://www.bing.com/videos" ], "currency":"DuckDuckGo is ’n soekenjin op die Internet. Een van hulle grootste trekpleisters is dat hulle meer privaatheidsbewus is en nie op gebruikers spioeneer nie. Die gebruiker se gedrag en profiel beïnvloed dus nie die resultate nie. As gevolg hiervan sal elke gebruiker presies dieselfde resultate vir dieselfde soektog kry.", @@ -45,6 +45,10 @@ "Google Images. Die omvattendste prentesoektog op die web.", "https://images.google.com" ], + "google news":[ + "Voor jy voortgaan", + "https://news.google.com" + ], "hackernews":"Hacker News is 'n sosiale nuus webwerf wat fokus op rekenaarwetenskap en entrepreneurskap. Dit word gelei deur Paul Graham se belegging fonds en opstart broeikas, Y Combinator. In die algemeen, is inhoud wat ingedien kan word, gedefinieer as \"enigiets wat jou intellektuele nuuskierigheid bevredig\".", "imdb":"Die Internet-rolprentdatabasis is 'n aanlyn databasis met rolprente, televisiereekse, akteurs en rekenaarspeletjies. IMDb behoort sedert 1998 aan Amazon.com.", "library genesis":"Library Genesis of LibGen is 'n soektog vir artikels en boeke oor verskeie onderwerpe, wat toegang bied aan inhoud wat anders agter 'n betaalmuur is, of andersins nie digitaal beskikbaar is nie. Onder andere, dra dit PDFs van Elsevier se ScienceDirect web-portaal.", @@ -85,6 +89,10 @@ "alpine linux packages":"ألباين لينكس ‏ هي توزيعة لينكس مستقلة صممت لتكون صغيرة وبسيطة وآمنة. تستخدم التوزيعة مسل، وبيزي بوكس، وأوبن آر سي بدلًا من مكتبة جنو لسي، وأدوات جنو الأساسية، وسيستم دي الاعتياديين الموجودين في أغلب التوزيعات، مما يجعلها أحد التوزيعات القليلة التي لا تعتمد على جنو.", "apple app store":"متجر التطبيقات ‏ هي خدمة أنتجت لجهازي آي فون وآي بود تاتش وآي باد. صممته وتملكه شركة أبل والتي تمكن المستخدمين من تحميل التطبيقات المختلفة من خلال البرنامج نفسه على الجهاز دون الحاجة لبرنامج آي تيونز ستور بعد تحديث نظام التشغيل iOS 10. بلغ متوسط القيمة التقديرية لحجم المتجر 6 مليارات و200 مليون في عام 2010.", "apple maps":"خرائط أبل ‏ هي خدمة خرائط ويب طورتها شركة أبل وهو نظام الخرائط الافتراضي الخاص بالأجهزة المستخدمة لأنظمة آي أو إس وماك أوس وووتش أو إس. توفر الخدمة معلومات الاتجاهات والزمن التقديري لوصول السيارات والمشاة وملاحة النقل العام. كما تُقدم خرائط أبل ميزة خاصة تُمكن المستخدم من استكشاف بعض المراكز الحضرية المكتظة بالسكان وغيرها من الأماكن الهامة بمشاهد ثلاثية الأبعاد تُظهر الأبنية.", + "arch linux wiki":[ + "توثيق آرتش لينكس على الوِب", + "wikidata" + ], "artic":"معهد الفن في شيكاغو متحف عام للفن، ومركز ثقافي وتعليمي في الولايات المتحدة. تأسس معهد الفن عام 1866 باسم أكاديمية شيكاغو للتصميم، تضم المجموعات المعروضة في المعهد اللوحات والمنحوتات، والمطبوعات والرسومات والفنون الزخرفية الأوروبية والأمريكية والفن الشرقي والكلاسيكي وفن التصوير الضوئي والمنسوجات وفنون وحرف أفريقيا وأمريكا اللاتينية وجزر المحيط الهادئ وأمريكا ما قبل كولمبوس.", "arxiv":"أرخايف ‏ بحيث تُنطق في النهاية «أركايف» أو «أرخايف». أرخايف هو أرشيف لمسودات أوراق علمية إلكترونية مكتوبة في مجالات الفيزياء، الرياضيات، الفلك، علم الحاسوب، والإحصاء التي يمكن الوصول إليها عبر الإنترنت. هذه الأرشيفات موجودة على موقع arXiv.org.", "ask":"أسك دوت كوم ‏ هو باحوث ‏ يركز على الرد على الأسئلة. تأسس الموقع في العام 1996 من قبل غاريت جرونر وديفيد وارثن في بيركلي، كاليفورنيا.", @@ -103,7 +111,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "يُسهّل البحث الذكي من Bing من العثور بسرعة على ما تبحث عنه كما يمنحك مكافآت.", + "ابحث باستخدام Microsoft Bing واستخدم قوة الذكاء الاصطناعي للعثور على المعلومات، واستكشاف صفحات الويب، والصور، ومقاطع الفيديو، والخرائط، والمزيد. محرك بحث ذكي للأشخاص دائمي الفضول.", "https://www.bing.com/videos" ], "bitbucket":[ @@ -259,7 +267,7 @@ "wiktionary":"ويكاموس هو مشروع مُتعدد اللغات، أحد مشاريع مؤسسة ويكيميديا على شبكة الإنترنت يهدف إلى إيجاد قاموس حر بلغة الويكي لكل اللغات. يتم تحريرها بشكل تعاوني عن طريق ويكي، وهو متاح في 172 لغة من بينها العربية. مُعظم مفردات اللغة في ويكاموس توفر تعريفات وترجمات للكلمات إلى لغات عديدة، وبعض المفردات متصلة بمعلومات إضافية موجودة عادة في المكنز أو المعجم اللغوي، كما تضم مرادفات الكلمة.", "wolframalpha":"ولفرام ألفا ‏، هو محرك بحث أطلق عند الساعة الثالثة من صباح 16 مايو 2009. على خلاف محركات البحث التقليدية، فإن ولفرام يقوم بالإجابة عن الأسئلة التي تطرح عليه في حين تقوم البواحيث التقليدية بمجرد عرض قائمة من مواقع الإنترنت ذات العلاقة بالكلمات المفتاحية التي يتم البحث عبرها.", "wttr.in":[ - "not found تقرير حالة ألطقس", + "Worpswede, Germany تقرير حالة ألطقس", "https://wttr.in" ], "yacy":"ياسي ‏ – هو محرك بحثي موزع يستخدم بالمجان، مبني علي مبادئ شبكة النظير للنظير. محتوى المحرك عبار عن برنامج مكتوب بلغة الجافا موزع على العديد من الحواسب الالية في شهر سبتمبر 2006 وكان يسمى ب «نظراء الياسي» كل نظير بمفرده يبحث في شبكة الإنترنت، يحلل ويسجل الصفحات التي وجدت ويخزن التسجيلات في قاعدة بيانات مشتركة بين الاخرون طبقا لمبادئ شبكة النظير للنظير. هو محرك بحث لأي شخص ويمكنه بناء مدخل بحثي لشبكته الداخلية ومساعدته في البحث على الإنترنت العام.", @@ -295,7 +303,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Интелигентното търсене на Bing ви помага бързо да намирате това, което търсите, и ви предоставя награди.", + "Търсете с Microsoft Bing и използвайте мощта на ИИ, за да намирате информация, да разглеждате уеб страници, изображения, видеоклипове, карти и др. Интелигентна търсачка за вечно любопитните.", "https://www.bing.com/videos" ], "brave":[ @@ -364,7 +372,7 @@ "https://images.google.com" ], "google news":[ - "Изчерпателни и актуални новинарски материали, обобщени от източници по целия свят от Google Новини.", + "Преди да продължите", "https://news.google.com" ], "google play apps":"Google Play, първоначално Android Market, е онлайн магазин за софтуер, разработен от Google. Tой служи като официален магазин за приложения за операционната система Android, позволявайки на потребителите да преглеждат и свалят приложения, разработени под Android и публикувани през Google. Google Play също така служи като дигитален магазин, който предлага музика, списания, книги, филми и тв сериали. Потребителите също така може и да закупуват хардуерни устройства през услугата, като Chromebook, Google Nexus-брандирани телефони, Chromecast и аксесоари.", @@ -448,7 +456,7 @@ "wiktionary":"Уикиречник е многоезичен, уеб-базиран проект, стремящ се да създаде свободен по своето съдържание речник на над 150 езика. За разлика от традиционните речници, Уикиречникът се изгражда съвместно на доброволни начала посредством МедияУики, който позволява речниковите записи да се променят практически от всеки човек с достъп до Интернет.", "wolframalpha":"WolframAlpha е отговаряща машина, разработена от компанията Wolfram Research, чийто основател и главен изпълнителен директор е Стивън Волфрам.", "wttr.in":[ - "Прогноза за времето в: not found", + "Прогноза за времето в: Worpswede, Germany", "https://wttr.in" ], "youtube":"Ютюб е видео хостинг услуга, притежавана от Google Inc. Тя предоставя уебсайт за видеосподеляне, на който потребителите могат да качват, споделят и гледат видеоклипове. След нова актуализация е предоставена възможността за споделяне на снимки, както и „истории“, видими за 12-часов период.", @@ -471,7 +479,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bing-এর বোধশক্তিসম্পন্ন সন্ধান বৈশিষ্ট্যটি আপনি যা খুঁজছেন তা সহজেই দ্রুত পেতে সাহায্য করে এবং আপনাকে পুরস্কার দেয়।", + "Microsoft Bing-এর সাথে সন্ধান করুন এবং তথ্য খুঁজতে, ওয়েব পৃষ্ঠা, চিত্র, ভিডিও, মানচিত্র এবং আরও অনেক কিছু এক্সপ্লোর করতে AI এর শক্তি ব্যবহার করুন। যারা সবসময় কৌতূহলী থাকেন জন্য একটি স্মার্ট সন্ধানকারী ইঞ্জিন।", "https://www.bing.com/videos" ], "bitbucket":"বিটবাকেট হল একটি গিট - ভিত্তিক সোর্স কোড রিপোজিটরি হোস্টিং পরিষেবা যা আটলাসিয়ানের মালিকানাধীন । গিটহাব এবং গিটল্যাব এর প্রতিদ্বন্দ্বী । Bitbucket সীমাহীন সংখ্যক ব্যক্তিগত সংগ্রহস্থল সহ বাণিজ্যিক পরিকল্পনা এবং বিনামূল্যে অ্যাকাউন্ট উভয়ই অফার করে।", @@ -583,7 +591,7 @@ "wikivoyage":"উইকিভ্রমণ হলো স্বেচ্ছাসেবক লেখকদের দ্বারা লিখিত ভ্রমণের গন্তব্য ও বিষয়গুলোর জন্য একটি বিনামূল্যের ওয়েবভিত্তিক ভ্রমণ নির্দেশিকা। এটি উইকিপিডিয়ার একটি সহপ্রকল্প এবং অলাভজনক উইকিমিডিয়া ফাউন্ডেশন দ্বারা সমর্থিত ও হোস্ট করা হয়। উইকিভ্রমণকে \"ভ্রমণ নির্দেশনার উইকিপিডিয়া\" বলা হয়েছে।", "wiktionary":"উইকিঅভিধান বা উইকশনারি উন্মুক্ত অভিধান তৈরির একটি বহুভাষিক, ওয়েব-ভিত্তিক প্রকল্প, যা ১৫১ টি ভাষায় রয়েছে। অন্যান্য আদর্শ অভিধানের মত করে এটি করা হয়নি, এটি করা হয়েছে স্বেচ্ছাসেবকদের সহযোগীতায় উইকি সফটওয়্যার ব্যবহার করে, যেখানে ইন্টারনেটে এ ওয়েব সাইট ব্যবহার করে এমন প্রায় সবাইকে তা পরিবর্তন করার সুযোগ করে দেয়। এর সহপ্রকল্প উইকিপিডিয়ার মত উইকিঅভিধানও উইকিমিডিয়া ফাউন্ডেশন দ্বারা পরিচালিত হয়।", "wttr.in":[ - "আবহাওয়া সঙ্ক্রান্ত তথ্য not found", + "আবহাওয়া সঙ্ক্রান্ত তথ্য Worpswede, Germany", "https://wttr.in" ], "yahoo news":"ইয়াহু! নিউজ হল একটি সংবাদ ওয়েবসাইট যা ইয়াহু! দ্বারা একটি ইন্টারনেট-ভিত্তিক সংবাদ সমষ্টিকারী হিসাবে উদ্ভূত হয়েছে। সাইটটি ইয়াহু! সফ্টওয়্যার প্রকৌশলী ব্র্যাড ক্লোসি আগস্ট ১৯৯৬ সালে তৈরি করেছিল। নিবন্ধগুলি মূলত অ্যাসোসিয়েটেড প্রেস, রয়টার্স, ফক্স নিউজ, আল জাজিরা, এবিসি নিউজ, ইউএসএ টুডে, সিএনএন এবং বিবিসি নিউজের মতো সংবাদ পরিষেবাগুলি থেকে এসেছে।", @@ -624,7 +632,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "La cerca intel·ligent del Bing t'ajuda a trobar el que cerques més ràpidament i et recompensa.", + "Cerqueu amb el Microsoft Bing i utilitzeu el poder de la IA per cercar informació, explorar pàgines web, imatges, vídeos, mapes i molt més. Un motor de cerca intel·ligent per a la curiositat infinita.", "https://www.bing.com/videos" ], "brave":"Brave és un navegador web de codi obert basat en Chromium, creat per la companyia Brave Software l'any 2016, fundada pel cofundador del Projecte Mozilla i creador de JavaScript, Brendan Eich. Està disponible en català.", @@ -785,7 +793,7 @@ "wiktionary":"El Viccionari és un projecte col·laboratiu per produir un diccionari multilingüe lliure, amb significats, etimologies i pronunciacions, en totes aquelles llengües en què sigui possible. El Viccionari és l'acompanyant lèxic al contingut obert de l'enciclopèdia Viquipèdia.", "wolframalpha":"WolframAlpha ( WUULf-rəm-) és un motor de respostes desenvolupat per Wolfram Research. Respon a les consultes de fets calculant respostes a partir de dades d'origen extern.", "wttr.in":[ - "Informe del temps per a: not found", + "Informe del temps per a: Worpswede, Germany", "https://wttr.in" ], "yacy":"Yacy és un cercador lliure que fa servir una xarxa peer-to-peer com a infraestructura.", @@ -824,7 +832,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "S inteligentním vyhledáváním od Bingu najdete, co hledáte, snadno a rychle a ještě získáte odměnu.", + "Hledejte pomocí Microsoft Bingu a využijte sílu AI k hledání informací, zkoumání webových stránek, obrázků, videí, map a dalších informací. Chytrý vyhledávací web pro navždy zvídavé.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket je produkt a služba společnosti Atlassian pro webhosting repozitářů zdrojových kódů s verzovacím systémem Git. Nabízí jak komerční služby tak volné účty s neomezeným počtem soukromých repozitářů.", @@ -969,7 +977,7 @@ "wiktionary":"Wikislovník je sesterský internetový projekt Wikipedie, který má za cíl vytvořit svobodný wiki mnohojazyčný slovník ve všech a o všech jazycích s definicemi, výslovností, překlady, etymologií a dalšími slovníkovými sekcemi. Vychází z myšlenky Daniela Alstona a byl spuštěn 12. prosince 2002.", "wolframalpha":"Wolfram Alpha je odpovídací stroj, vytvořený firmou Wolfram Research. Jde o službu, která se snaží přímo odpovídat na dotazy uživatele, na rozdíl od vyhledávacích služeb, které poskytnou pouze seznam stránek, pravděpodobně obsahujících odpověď. Wolfram Alpha je vytvořen na základě výpočetního softwaru Mathematica, který je využíván pro řešení algebraických úloh, numerických a statistických výpočtů, ale i vizualizaci výsledků. Odpověď na dotaz se zobrazí v člověku čitelné a přehledné formě. Často je přiložen i postup vedoucí k výsledku.", "wttr.in":[ - "Předpověď počasí pro: not found", + "Předpověď počasí pro: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy je svobodný P2P vyhledávač. Na rozdíl od jiných známých vyhledávačů, YaCy nefunguje prostřednictvím několika málo datacenter. Místo toho využívá Peer-to-peer komunikaci a sdílení dat, kde jsou disková úložiště jeho uživatelů používána k uchování dat o zaindexovaných webových stránkách a jiných dokumentech. V důsledku toho je velmi těžké cenzurovat nebo arbitrárně seřazovat výsledky vyhledávání jiných uživatelů a stejně tak nebude vyhledávač poškozen v případě poruchy několika jeho serverů.", @@ -1002,8 +1010,8 @@ "https://www.bing.com/news" ], "bing videos":[ - "Mae chwilio deallus gan Bing yn ei gwneud yn haws i chi canfod yr hyn rydych chi'n chwilio amdano ac yn eich gwobrwyo.", - "https://www.bing.com/videos" + "bing:cy", + "ref" ], "flickr":"Gwefan sy'n cynnal lluniau a fideos gan gymuned ar y we yw Flickr.", "gentoo":[ @@ -1055,7 +1063,7 @@ "wikispecies":"Prosiect gan Sefydliad Wicimedia yw Wicirywogaeth (Wikispecies) a lansiwyd ar 5 Medi 2004. Mae'n brosiect amlieithog, ac yn debycach i Comin Wicimedia nag i Wicipedia o ran ffurf.", "wiktionary":"Un o brosiectau Sefydliad Wicifryngau gyda'r nod o greu geiriadur wici rhydd ym mhob iaith yw Wiciadur sy'n eiriadur Cymraeg - Saesneg. Erbyn Medi 2012 roedd gan y Wiciadur dros 17,000 o gofnodion mewn 65 o ieithoedd gwahanol. Gyda'r Wiciadur Cymraeg, darperir diffiniadau o ystyron geiriau ac ymadroddion Cymraeg eu hiaith tra bod cyfieithiadau o eiriau mewn ieithoedd eraill yn cael eu darparu.", "wttr.in":[ - "Adroddiad tywydd ar gyfer: not found", + "Adroddiad tywydd ar gyfer: Worpswede, Germany", "https://wttr.in" ], "youtube":"Cwmni cynnal a rhannu fideos ar-lein ydy YouTube a grëwyd gan dri cynweithwyr cwmni bancio digidol PayPal yn Chwefror 2005. Gall defnyddwyr uwchlwytho a lawrlwytho fideos. Yn San Bruno, California, y lleolwyd pencadlys y cwmni a defnyddia Adobe Flash Video a thechnoleg HTML5 i arddangos ystod eang iawn o fideos a gynhyrchwyd gan y defnyddwyr neu wylwyr gan gynnwys clipiau byr, tameidiau o raglenni teledu a cherddoriaeth yn ogystal â ffilmiau a chlipiau amtaur a blogiau fideo." @@ -1075,7 +1083,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Med intelligent søgning med Bing kan du nemmere og hurtigere finde, hvad du leder efter, og du modtager også belønninger.", + "Søg med Microsoft Bing, og brug styrken ved kunstig intelligens til at finde oplysninger, udforske websider, billeder, videoer, kort og meget mere. En smart søgemaskine til de nysgerrige, der altid er nysgerrige.", "https://www.bing.com/videos" ], "brave":[ @@ -1140,7 +1148,7 @@ "https://images.google.com" ], "google news":[ - "Omfattende og oppdatert nyhetsdekning, samlet inn av Google News fra nyhetskilder i hele verden.", + "Inden du fortsætter", "https://news.google.com" ], "google play apps":"Google Play – tidligere Android Market – er en applikation, der er udviklet af Google til systemet Android. Det giver brugeren mulighed for at finde og downloade applikationer fra tredjepartsudviklere.", @@ -1199,7 +1207,7 @@ "wiktionary":"Wiktionary er en ordbog med åbent indhold fra Wikimedia Foundation. Den engelsksprogede version blev etableret i december 2002 og rummer mere end 3.500.000 artikler.", "wolframalpha":"Wolfram Alpha er en beregningsmæssig vidensmotor eller svarmaskine, som er udviklet af Wolfram Research. Wolfram Alpha er en online søgemaskine som kan svare på faktuelle forespørgsler direkte ved at behandle disse vha. eksterne kilder. Dermed undlader Wolfram Alpha at oplyse en liste med links, som en normal søgemaskine måske ville.", "wttr.in":[ - "Vejret i: not found", + "Vejret i: Worpswede, Germany", "https://wttr.in" ], "youtube":"YouTube er en online video platform og socialt medie med hovedsæde i San Bruno i Californien, USA. Tjenesten blev udviklet af de tidligere PayPal-medarbejdere Steve Chen, Chad Hurley og Jawed Karim og åbnede den 14. februar 2005. Tjenesten blev i november 2006 købt af Google for 1,65 mia. $." @@ -1230,10 +1238,10 @@ "https://www.bing.com/news" ], "bing videos":[ - "Mit der intelligenten Bing-Suche können Sie die gewünschten Informationen schneller und einfacher finden und dabei Punkte sammeln.", + "Suchen Sie mit Microsoft Bing und nutzen Sie die Leistungsfähigkeit der KI, um Informationen zu finden, Webseiten, Bilder, Videos, Karten und mehr zu erkunden. Eine intelligente Suchmaschine für immer neugierige Menschen.", "https://www.bing.com/videos" ], - "bitbucket":"Bitbucket ist ein webbasierter Onlinedienst zur Versionsverwaltung für Software-Entwicklungsprojekte. Der Dienst wurde ursprünglich als reines Mercurial-System entwickelt, jedoch am 3. Oktober 2011 um Unterstützung für Git erweitert. Bitbucket wurde 2007 durch den Dänen Jesper Nøhr entwickelt und 2010 von Atlassian gekauft. Seit dem 1. Juli 2020 wird Mercurial nicht mehr unterstützt.", + "bitbucket":"Bitbucket ist eine webbasierte Versionsverwaltung für Software-Entwicklungsprojekte. Der Dienst wurde ursprünglich als reines Mercurial-System entwickelt, jedoch am 3. Oktober 2011 um Unterstützung für Git erweitert. Bitbucket wurde 2007 durch den Dänen Jesper Nøhr entwickelt und 2010 von Atlassian gekauft. Seit dem 1. Juli 2020 wird Mercurial nicht mehr unterstützt.", "bpb":[ "Die Bundeszentrale für politische Bildung unterstützt Bürgerinnen und Bürger dabei, sich mit Politik zu befassen.", "https://www.bpb.de" @@ -1317,9 +1325,9 @@ "gentoo:en", "ref" ], - "github":"GitHub ist ein Onlinedienst zur Softwareentwicklung und Versionsverwaltung für Softwareprojekte auf Git-Basis. Das Unternehmen GitHub, Inc. hat seinen Sitz in San Francisco in den USA. Seit dem 26. Dezember 2018 gehört das Unternehmen zu Microsoft.", + "github":"GitHub ist ein Onlinedienst zur gemeinschaftlichen (kollaborativ) Softwareentwicklung und Versionsverwaltung für Softwareprojekte. Grundlage ist die Versionsverwaltungs-Software Git. Das Unternehmen GitHub, Inc. hat seinen Sitz in San Francisco in den USA. Seit dem 26. Dezember 2018 gehört das Unternehmen zu Microsoft.", "gitlab":"GitLab ist ein Onlinedienst zur Softwareentwicklung und Versionsverwaltung für Softwareprojekte auf Git-Basis. GitLab bietet ein Issue-Tracking-System mit Kanban-Board, ein System für Continuous Integration und Continuous Delivery (CI/CD), ein Wiki, eine Container-Registry, einen Sicherheitsscanner für Container und Sourcecode sowie Multi-Cluster-Verwaltung und -Überwachung. GitLab ist in Produkte für Entwickler, wie zum Beispiel AWS oder Google Cloud, integrierbar und über eine API fernsteuerbar. GitLab ist in den Programmiersprachen Ruby und Go geschrieben.", - "goodreads":"Goodreads ist die größte englischsprachige Website für Buchrezensionen durch nichtprofessionelle Leser in Amerika.", + "goodreads":"Goodreads ist die größte englischsprachige Social-Reading-Plattform.", "google":"Google ist eine Internet-Suchmaschine des US-amerikanischen Unternehmens Google LLC. Google steht in direkter Konkurrenz zu anderen Suchmaschinen wie zum Beispiel Microsoft Bing, Yandex in Russland, Baidu in China und Qwant in Europa, hat aber einen dominanten Anteil am globalen Suchmaschinenmarkt.", "google images":[ "Google Bilder, die umfassendste Bildersuche im Web", @@ -1459,7 +1467,7 @@ "https://www.woxikon.de/" ], "wttr.in":[ - "Wetterbericht für: not found", + "Wetterbericht für: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy ist eine Suchmaschine, die nach dem Peer-to-Peer-Prinzip – kurz P2P – arbeitet. Dabei gibt es keinen zentralen Server, sondern alle Teilnehmer sind gleichwertig.", @@ -1467,7 +1475,11 @@ "yacy:de", "ref" ], - "yahoo news":"Die Altaba Inc. war eine US-amerikanische Beteiligungsgesellschaft, die unter anderem Anteile an Alibaba und Yahoo! Japan hielt. Gegründet wurde das Unternehmen als Internetunternehmen von David Filo und Jerry Yang im Januar 1994 unter dem Namen Yahoo.", + "yahoo":[ + "Yahooist Teil der Yahoo Markenfamilie", + "https://search.yahoo.com/" + ], + "yahoo news":"Die Altaba Inc. war eine US-amerikanische Beteiligungsgesellschaft, die unter anderem Anteile an Alibaba und Yahoo! Japan hielt. Als Yahoo wurde das Internetunternehmen von David Filo und Jerry Yang im Januar 1994 gegründet. 1996 ging Yahoo mit 46 Angestellten an die Börse. 2009 arbeiteten insgesamt rund 13.500 Mitarbeiter für Yahoo.", "youtube":"YouTube ist ein 2005 gegründetes Videoportal des US-amerikanischen Unternehmens YouTube, LLC mit Sitz im kalifornischen San Bruno, welches seit 2006 eine Tochtergesellschaft von Google LLC ist. Benutzer können auf dem Portal kostenlos Videoclips ansehen, bewerten, kommentieren und selbst hochladen. 2019 erzielte YouTube einen Jahresumsatz von 15 Milliarden Dollar.", "z-library":"Z-Library, kurz z-lib, ist eine sogenannte Schattenbibliothek, die freien Zugang zu üblicherweise kostenpflichtigen Büchern und wissenschaftlichen Zeitschriften ermöglicht. Nach eigenen Angaben stehen mehr als 90 Millionen Dokumente online zum Abruf zur Verfügung. Diese können heruntergeladen oder per Volltextrecherche durchsucht werden. Nach Betreiberangaben nutzen über 600.000 Studenten und Lehrer weltweit den Dienst, besonders beliebt sei er in Schwellenländern. In Europa fänden sich die meisten Nutzer in Großbritannien." }, @@ -1493,7 +1505,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Η έξυπνη αναζήτηση του Bing σάς διευκολύνει να βρίσκετε γρήγορα αυτό που ψάχνετε και σας ανταμείβει.", + "Προβείτε σε αναζήτηση μέσω του Microsoft Bing και χρησιμοποιήστε τη δύναμη της AI για να βρείτε πληροφορίες, να εξερευνήσετε ιστοσελίδες, εικόνες, βίντεο, χάρτες και πολλά άλλα. Μια έξυπνη μηχανή αναζήτησης για τους αιωνίως περίεργους.", "https://www.bing.com/videos" ], "brave":"Ο Brave είναι ελεύθερος και ανοικτού κώδικα περιηγητής ιστού, τον οποίο διαχειρίζεται η Brave Software Inc. Ιδρύθηκε στις 28 Μαϊου 2015. Ως φυλλομετρητής δίνει έμφαση στην ιδιωτικότητα των χρηστών και στο μπλοκάρισμα των διαδικτυακών διαφημίσεων. Επίσης δίνει την δυνατότητα στους χρήστες να ανταλλάσσουν κρυπτονομίσματα. Είναι διαθέσιμος σε διάφορες πλατφόρμες, όπως Android, Linux, Windows, IoS, κ.λπ.", @@ -1613,7 +1625,7 @@ "wikivoyage":"Τα Βικιταξίδια είναι ένας ελεύθερος διαδικτυακός ταξιδιωτικός οδηγός, για ταξιδιωτικούς προορισμούς και θέματα ευρύτερου ταξιδιωτικού ενδιαφέροντος, ο οποίος συντάσσεται από εθελοντές. Το όνομα αποτελεί συνδυασμό της λέξης \"Wiki\" και \"Ταξίδια\".", "wiktionary":"Το Βικιλεξικό είναι πολύγλωσσο λεξικογραφικό διαδικτυακό εγχείρημα του ιδρύματος Wikimedia. Βασίζεται σε σύστημα wiki και το περιεχόμενό του μπορεί να χρησιμοποιηθεί ελεύθερα.", "wttr.in":[ - "Πρόγνωση καιρού για: not found", + "Πρόγνωση καιρού για: Worpswede, Germany", "https://wttr.in" ], "youtube":"To YouTube είναι ιστότοπος κοινοποίησης, αποθήκευσης, αναζήτησης και αναπαραγωγής ψηφιακών βίντεο και ψηφιακών ταινιών. Δημιουργήθηκε στις 14 Φεβρουαρίου 2005. Τον Νοέμβριο του 2005 ονομάστηκε από το περιοδικό Time «Η Εφεύρεση του 2005». Τον Οκτώβριο του 2006, η εταιρεία αγοράστηκε από την Google με ανταλλαγή μετοχών αξίας 1,65 δισεκατομμυρίων δολαρίων ΗΠΑ και σήμερα λειτουργεί ως θυγατρική της Google. Η εταιρία εδρεύει στο Σαν Μπρούνο της Καλιφόρνια, και χρησιμοποιεί την τεχνολογία Adobe Flash Video για να εμφανιστεί μια μεγάλη ποικιλία από το περιεχόμενο φτιαγμένο από χρήστες, συμπεριλαμβανομένων των κλιπ ταινιών, κλιπ τηλεόρασης, βίντεο και μουσικής, καθώς και ερασιτεχνικό περιεχόμενο, όπως το βιντεοϊστολόγιο και σύντομα πρωτότυπα βίντεο. Το μεγαλύτερο μέρος του περιεχομένου στο YouTube επιφορτώνεται από ιδιώτες, ωστόσο μέσα μαζικής ενημέρωσης και επιχειρήσεις παρέχουν ορισμένο από το υλικό τους μέσω της ιστοσελίδας συμπεριλαμβανομένων των CBS, BBC, Vevo και άλλων οργανώσεων, ως μέρος του προγράμματος εταιρικής σχέσης YouTube." @@ -1639,7 +1651,7 @@ "https://alexandria.org/" ], "alpine linux packages":"Alpine Linux is a Linux distribution designed to be small, simple, and secure. It uses musl, BusyBox, and OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd. This makes Alpine one of few Linux distributions not to be based on the GNU Core Utilities or glibc.", - "annas archive":"Anna's Archive is a search engine for shadow libraries created by the pseudonymous Anna. It was founded in direct response to law enforcement efforts to close down Z-Library in 2022. It describes itself as aiming to \"catalog all the books in existence\" and to \"track humanity's progress toward making all these books easily available in digital form\".", + "annas archive":"Anna's Archive is a search engine for shadow libraries created by the pseudonymous Anna. It was founded in direct response to law enforcement efforts to close down Z-Library in 2022. It has described itself as aiming to \"catalog all the books in existence\" and to \"track humanity's progress toward making all these books easily available in digital form\".", "apk mirror":[ "Free and safe Android APK downloads", "https://www.apkmirror.com" @@ -1657,9 +1669,9 @@ "stackoverflow:en", "ref" ], - "bandcamp":"Bandcamp is an American online audio distribution platform founded in 2007 by Oddpost co-founder Ethan Diamond and programmers Shawn Grunberger, Joe Holt and Neal Tucker, with headquarters in Oakland, California. Acquired by Epic Games in March 2022, the company was sold to Songtradr in 2023.", + "bandcamp":"Bandcamp is an online music distribution platform founded in 2008 by Oddpost co-founder Ethan Diamond and programmers Shawn Grunberger, Joe Holt and Neal Tucker, with an office and record store in Oakland, California. Acquired by Epic Games in March 2022, the company was sold to Songtradr in 2023.", "bilibili":"Bilibili, nicknamed B Site, is a Chinese video-sharing website based in Shanghai where users can submit, view, and add overlaid commentary on videos. Bilibili hosts videos on various themes, including anime, music, dance, science and technology, movies, drama, fashion, and video games, but it is also known for its extensive kuso-style parodies by subcultural content creators. Since the mid-2010s, Bilibili began to expand to a broader audience from its original niche market that focused on animation, comics, and games (ACG), and it has become a major Chinese over-the-top streaming platform serving videos on demand such as documentaries, variety shows, and other original programming. Bilibili is known for its scrolling danmu commenting system. Bilibili also provides a live streaming service where the audience can interact with streamers. Bilibili also offers games, mostly ACG-themed mobile games, such as the Chinese version of Fate/Grand Order and the Chinese game Azur Lane. In the third quarter of 2022, the number of average monthly active users reached about 332.6 million, including 28.5 million paying users.", - "bing":"Microsoft Bing, commonly referred to as Bing, is a search engine owned and operated by Microsoft. The service traces its roots back to Microsoft's earlier search engines, including MSN Search, Windows Live Search, and Live Search. Bing offers a broad spectrum of search services, encompassing web, video, image, and map search products, all developed using ASP.NET.", + "bing":"Microsoft Bing is a search engine owned and operated by Microsoft. The service traces its roots back to Microsoft's earlier search engines, including MSN Search, Windows Live Search, and Live Search. Bing offers a broad spectrum of search services, encompassing web, video, image, and map search products, all developed using ASP.NET.", "bing images":[ "bing:en", "ref" @@ -1713,7 +1725,7 @@ "ref" ], "deezer":"Deezer is a French music streaming service founded in 2007 that provides users with access to a vast library of music tracks, podcasts, and radio stations. The company has been a subsidiary of Access Industries since 2016. It offers streaming services in over 180 countries and features a catalog of more than 90 million licensed tracks, making it one of the largest streaming platforms available. Deezer is available on various devices, including Android, iOS, macOS and others.", - "deviantart":"DeviantArt, historically stylized as deviantART, is an American online community that features artwork, videography, and photography, launched on August 7, 2000, by Angelo Sotira, Scott Jarkoff, and Matthew Stephens, among others.", + "deviantart":"DeviantArt, historically stylized as deviantART, is an American online community that features artwork, videography, photography, and literature, launched on August 7, 2000, by Angelo Sotira, Scott Jarkoff, and Matthew Stephens, among others.", "dictzone":[ "Online dictionaries: English, Spanish, German, French, Italian, Hungarian... Select your favorite dictionary!", "https://dictzone.com/" @@ -1748,6 +1760,10 @@ "wikidata" ], "emojipedia":"Emojipedia is an emoji reference website which documents the meaning and common usage of emoji characters in the Unicode Standard. Most commonly described as an emoji encyclopedia or emoji dictionary, Emojipedia also publishes articles and provides tools for tracking new emoji characters, design changes and usage trends. It has been owned by Zedge since 2021.", + "encyclosearch":[ + "Search over two dozen encyclopedias at once with EncycloSearch! EncycloSearch is an ad-free, open-source encyclopedia search engine and reader. Supported by the Knowledge Standards Foundation.", + "https://encyclosearch.org" + ], "erowid":"Erowid, also called Erowid Center, is a non-profit educational organization that provides information about psychoactive plants and chemicals.", "etymonline":"The Online Etymology Dictionary or Etymonline, sometimes abbreviated as OED, is a free online dictionary that describes the origins of English words, written and compiled by Douglas R. Harper.", "fdroid":"F-Droid is a free and open source app store and software repository for Android, serving a similar function to the Google Play store. The main repository, hosted by the project, contains only free and open source apps. Applications can be browsed, downloaded and installed from the F-Droid website or client app without the need to register an account. \"Anti-features\" such as advertising, user tracking, or dependence on non-free software are flagged in app descriptions.", @@ -1772,7 +1788,7 @@ "codeberg:en", "ref" ], - "github":"GitHub is a proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and Github itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.", + "github":"GitHub is a proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.", "gitlab":"GitLab Inc. is a company that operates and develops GitLab, a open-core DevOps software package that can develop, secure, and operate software. GitLab includes a distributed version control system based on Git, including features such as access control, bug tracking, software feature requests, task management, and wikis for every project, as well as snippets.", "goo":"Goo is an Internet search engine and web portal based in Japan, which is used to crawl and index primarily Japanese language websites. Goo is operated by the Japanese NTT Resonant, a subsidiary of NTT Communications. The name is derived from the phrase, \"global network continues to expand to infinity ∞\". The site's mascot is a goat named Megu-tan.", "goodreads":"Goodreads is an American social cataloging website and a subsidiary of Amazon that allows individuals to search its database of books, annotations, quotes, and reviews. Users can sign up and register books to generate library catalogs and reading lists. They can also create their own groups of book suggestions, surveys, polls, blogs, and discussions. The website's offices are located in San Francisco.", @@ -1828,6 +1844,10 @@ "Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. Run your own API server in just a few minutes.Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. Run your own API server in just a few minutes.", "https://libretranslate.com" ], + "lingva":[ + "Alternative front-end for Google Translate, serving as a Free and Open Source translator with over a hundred languages available", + "https://lingva.ml" + ], "lobste.rs":[ "social news website focused on computer engineering", "wikidata" @@ -1874,7 +1894,7 @@ "MyMemory is the world largest collaborative translation archive.", "https://mymemory.translated.net/" ], - "naver":"Naver is a South Korean online platform operated by the Naver Corporation. The Naver provides community services including blogs and cafes, other convenient services such as knowledge, shopping, maps, books, e-mail and naver tool bar.", + "naver":"Naver is a South Korean online platform operated by the Naver Corporation. The company's products include a search engine, email hosting, blogs, maps, and mobile payment. It was founded in 1999 and was the first Korean company to develop their own search engine. Naver also created the world's first online Q&A platform, Knowledge iN.", "npm":"npm is a package manager for the JavaScript programming language maintained by npm, Inc., a subsidiary of GitHub. npm is the default package manager for the JavaScript runtime environment Node.js and is included as a recommended feature in the Node.js installer.", "nyaa":[ "A BitTorrent community focused on Eastern Asian media including anime, manga, music, and more", @@ -1895,7 +1915,7 @@ "OpenRepos.net — Community Repository System", "https://openrepos.net/" ], - "openstreetmap":"OpenStreetMap is an online map that uses an open geographic database, updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial photo imagery or satellite imagery, and import from other freely licensed geodata sources. OpenStreetMap is freely licensed under the Open Database License and is commonly used to make electronic maps, inform turn-by-turn navigation, and assist in humanitarian aid and data visualisation. OpenStreetMap uses its own topology to store geographical features which can then be exported into other GIS file formats. The OpenStreetMap website itself is an online map, geodata search engine, and editor.", + "openstreetmap":"OpenStreetMap is a free, open map database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial photo imagery or satellite imagery, and import from other freely licensed geodata sources. OpenStreetMap is freely licensed under the Open Database License and is commonly used to make electronic maps, inform turn-by-turn navigation, and assist in humanitarian aid and data visualisation. OpenStreetMap uses its own topology to store geographical features which can then be exported into other GIS file formats. The OpenStreetMap website itself is an online map, geodata search engine, and editor.", "packagist":[ "The main Composer repository, aggregating public PHP packages installable with Composer", "wikidata" @@ -1984,17 +2004,25 @@ "https://sepiasearch.org" ], "seznam":"Seznam.cz is a web portal and search engine in the Czech Republic. Founded in 1996 by Ivo Lukačovič in Prague as the first web portal in the Czech Republic. Seznam started with a search engine and an internet version of yellow pages. Today, Seznam runs almost 30 different web services and associated brands. Seznam had more than 6 million real users per month at the end of 2014. Among the most popular services, according to NetMonitor, are its homepage seznam.cz, email.cz, search.seznam.cz and its yellow pages firmy.cz.", + "solidtorrents":[ + "SolidTorrents is #1 Torrent Index ever.", + "https://www.solidtorrents.to/" + ], "soundcloud":"SoundCloud is a German audio streaming service owned and operated by SoundCloud Global Limited & Co. KG. The service enables its users to upload, promote, and share audio. Founded in 2007 by Alexander Ljung and Eric Wahlforss, SoundCloud is one of the largest music streaming services in the world and is available in 190 countries and territories. The service has more than 76 million active monthly users and over 200 million audio tracks as of November 2021. SoundCloud offers both free and paid memberships on the platform, available for mobile, desktop and Xbox devices. SoundCloud has evolved from a traditional online streaming platform to an entertainment company.", "sourcehut":[ "software development repository and forge", "wikidata" ], "stackoverflow":"Stack Exchange is a network of question-and-answer (Q&A) websites on topics in diverse fields, each site covering a specific topic, where questions, answers, and users are subject to a reputation award process. The reputation system allows the sites to be self-moderating. As of March 2023, the three most actively viewed sites in the network are Stack Overflow, Unix & Linux, and Mathematics.", - "startpage":"Startpage is a Dutch search engine company that highlights privacy as its distinguishing feature. The website advertises that it allows users to obtain Google Search results while protecting users' privacy by not storing personal information or search data and removing all trackers. Startpage.com also includes an Anonymous View browsing feature that allows users the option to open search results via proxy for increased anonymity.", + "startpage":"Startpage is a Dutch search engine company that highlights privacy as its distinguishing feature. The website advertises that it allows users to obtain Bing Search and Google Search results while protecting users' privacy by not storing personal information or search data and removing all trackers. Startpage.com also includes an Anonymous View browsing feature that allows users the option to open search results via proxy for increased anonymity.", "superuser":[ "stackoverflow:en", "ref" ], + "svgrepo":[ + "Free Vectors and Icons in SVG format. ✅ Download free mono or multi color vectors for commercial use. Search in 500.000+ Free SVG Vectors and Icons.", + "https://www.svgrepo.com" + ], "tagesschau":"Tagesschau is a German national and international television news service produced by the editorial staff of ARD-aktuell on behalf of the German public-service television network ARD.", "tineye":"TinEye is a reverse image search engine developed and offered by Idée, Inc., a company based in Toronto, Ontario, Canada. It is the first image search engine on the web to use image identification technology rather than keywords, metadata or watermarks. TinEye allows users to search not using keywords but with images. Upon submitting an image, TinEye creates a \"unique and compact digital signature or fingerprint\" of the image and matches it with other indexed images. This procedure is able to match even heavily edited versions of the submitted image, but will not usually return similar images in the results.", "tmdb":[ @@ -2054,12 +2082,8 @@ "yacy:en", "ref" ], - "yahoo":[ - "The search engine that helps you find exactly what you're looking for. Find the most relevant information, video, images, and answers from all across the Web.", - "https://search.yahoo.com/" - ], "yahoo news":"Yahoo! News is a news website that originated as an internet-based news aggregator by Yahoo!. The site was created by Yahoo! software engineer Brad Clawsie in August 1996. Articles originally came from news services such as the Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN and BBC News.", - "youtube":"YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim, three former employees of PayPal. Headquartered in San Bruno, California, United States, it is the second-most-visited website in the world, after Google Search. In January 2024, YouTube had more than 2.7 billion monthly active users, who collectively watched more than one billion hours of videos every day. As of May 2019, videos were being uploaded to the platform at a rate of more than 500 hours of content per minute, and as of 2023, there were approximately 14 billion videos in total.", + "youtube":"YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim, three former employees of PayPal. Headquartered in San Bruno, California, it is the second-most-visited website in the world, after Google Search. In January 2024, YouTube had more than 2.7 billion monthly active users, who collectively watched more than one billion hours of videos every day. As of May 2019, videos were being uploaded to the platform at a rate of more than 500 hours of content per minute, and as of 2023, there were approximately 14 billion videos in total.", "yummly":"Yummly was an American website and mobile app that provided users recipes via recommendations and a search engine. Yummly used a knowledge graph to offer a semantic web search engine for food, cooking and recipes.", "z-library":"Z-Library is a shadow library project for file-sharing access to scholarly journal articles, academic texts and general-interest books. It began as a mirror of Library Genesis, but has expanded dramatically." }, @@ -2132,6 +2156,11 @@ "Google Bildoj. La plej efika bildoserĉilo en Interreto.", "https://images.google.com" ], + "google play apps":"Google Play estas platformo de Google. Ĝi estas vendejo por libroj kaj Androidaj apoj. Google kreis ĝin en marto 2012 kiel kombinaĵo de kvar malsamajn antaŭajn vendejojn:Android Market, la malnova apa vendejo por androido el oktobro 2008 Google Music (muziko) Google Books (libroj) Google Movies (filmoj)", + "google play movies":[ + "google play apps:eo", + "ref" + ], "hoogle":"Haskell estas komputillingvo kreita de Paul Hudak, Simon Peyton Jones, kaj Philip Wadler en 1987. Pli specife, ĝi estas himonimige tipizema, nestrikta, pure funkcia lingvo. La lingvo estas nomita por Haskell Brooks Curry, kies esploro pri matematika logiko estas la fundamento de funkciaj lingvoj. Haskell baziĝas de la lambdokalkulo.", "imdb":"Interreta filma datumbazo estas datumbazo kun informoj pri filmoj, televidaj programoj, aktoroj, reĝisoroj kaj ĉio cetera, kio rilatas al la filma kreado.", "ina":[ @@ -2340,7 +2369,7 @@ "hoogle":"Haskell es un lenguaje de programación estandarizado multi-propósito, funcionalmente puro, con evaluación no estricta y memorizada, y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry, debido a su aporte al cálculo lambda, el cual tiene gran influencia en el lenguaje. En Haskell, «una función es un ciudadano de primera clase» del lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus descendientes intelectuales.", "imdb":"Internet Movie Database es una base de datos en línea que en un principio almacena información relacionada con películas, y con el tiempo se transforma en la base de datos más grande del mundo donde se encuentran programas de televisión, eventos en vivo y difundidos en televisión o en la web, entrega de premios, especiales y videojuegos. Se encuentra el personal de equipo de producción, actores, series y programas de televisión, videojuegos, actores de doblaje y personajes ficticios que aparecen en los medios de entretenimiento visual. Recibe más de 100 millones de usuarios únicos al mes y cuenta con una versión móvil. IMDb fue inaugurada el 17 de octubre de 1990, y en 1998 fue adquirida por Amazon.com.", "imgur":"Imgur es un sitio web para alojar imágenes en línea, fundado por Alan Schaaf en el 2009 en Ohio, Estados Unidos, como un regalo para la comunidad de Reddit. Imgur es, actualmente, una de las mayores webs de contenido de imágenes de Internet donde son juzgadas en tiempo real por una comunidad de usuarios a través de comentarios y votos.", - "ina":"El Instituto nacional del audiovisual (INA) es una dependencia pública francesa dedicada a archivar las producciones audiovisuales, de producir, de editar, de ceder contenidos audiovisuales y multimedia a destino de todos los públicos, profesionales o particulares, para todas las pantallas. El INA también es un centro de formación y de investigación que pretende desarrollar y transmitir los saberes de los medios de comunicación audiovisuales.", + "ina":"El Instituto nacional del audiovisual (INA) es un organismo público francés cuya misión principal es archivar las producciones audiovisuales y producir, editar, publicar, comercializar y distribuir contenidos audiovisuales y multimedia para todos los públicos, ya sean profesionales, empresas o particulares, para todas las pantallas o plataformas de difusión, incluido el audio. El INA también incluye un centro de formación e investigación destinado a desarrollar y transmitir conocimientos y experiencia en los campos audiovisual, mediático y digital.", "kickass":"KickassTorrents es un sitio web que proporciona un directorio de archivos torrent y enlaces magnéticos para facilitar el intercambio de archivos peer-to-peer mediante el protocolo BitTorrent. Fue fundada en 2008 y fue puesto fuera de línea el 20 de julio de 2016, cuando el dominio fue capturado por el gobierno de Estados Unidos. Los servidores proxy del sitio fueron cerrados por su personal, al mismo tiempo.", "lemmy comments":[ "lemmy communities:es", @@ -2447,7 +2476,7 @@ "wiktionary":"El Wikcionario es un proyecto de diccionario libre de la Fundación Wikimedia, que contiene definiciones, traducciones, etimologías, sinónimos y pronunciaciones de palabras en múltiples idiomas. Está basado en la tecnología wiki, en particular mediante la utilización del software MediaWiki, y su contenido está protegido por las licencias libres GFDL y CC BY-SA.", "wolframalpha":"Wolfram|Alpha es un buscador de respuestas desarrollado por la compañía Wolfram Research. Es un servicio en línea que responde a las preguntas directamente, mediante el procesamiento de la respuesta extraída de una base de datos estructurados, en lugar de proporcionar una lista de los documentos o páginas web que podrían contener la respuesta, tal y como lo hace Google. Fue anunciado en marzo de 2009 por el físico británico Stephen Wolfram y está en funcionamiento desde el 15 de mayo de 2009. Fue lanzado en español en 2022.", "wttr.in":[ - "El tiempo en: not found", + "El tiempo en: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy es un motor de búsqueda distribuido y libre que utiliza una red peer-to-peer (P2P) como infraestructura. En 2011 el motor tenía 1400 millones de documentos en su índice, y gestionaba unas 130.000 peticiones de búsquedas al día.", @@ -2477,7 +2506,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bingi intelligentne otsing võimaldab teil otsitavat kiiremini leida ja pakub teile preemiaid.", + "Saate otsida Microsoft Bingiga ja kasutada tehisintellekti võimsust, et leida teavet, uurida veebilehti, pilte, videoid, kaarte ja palju muud. Nutikas otsimootor igavesti uudishimulikele.", "https://www.bing.com/videos" ], "brave":"Brave on veebibrauser, mille looja ja haldaja on Brave Software Inc.. See on avatud lähtekoodiga veebibrauser, mis põhineb Google Chrome'i operatsioonisüsteemil.", @@ -2539,7 +2568,7 @@ "https://images.google.com" ], "google news":[ - "Põhjalikud ja ajakohased uudised, mis Google News koondab kogu maailma uudisteallikatest.", + "Enne kui jätkate", "https://news.google.com" ], "google play apps":[ @@ -2583,7 +2612,7 @@ ], "wikidata":"Wikidata on vabatahtlike kaastööliste koostöös toimetatav teadmusbaas, mis on mõeldud olema Vikipeedia ja selle sõsarprojektide ühiselt jagatud andmeallikas. Kuna baasis olevad andmed litsentsitakse avalikku omandisse, siis on Wikidata piiramatult kasutatavad ka kolmandatele osapooltele. Teadmusbaas kasutab Wikibase tarkvara ning teadmusbaasi haldab Wikimedia Foundation.", "wikipedia":"Vikipeedia on paljukeelne veebipõhine vaba sisuga entsüklopeedia, mida kirjutab ühiselt suur hulk vabatahtlikke.", - "wikiquote":"Vikitsitaadid on Wikimedia projektiperre kuuluv tsitaate koondav vikiprojekt, mida koostavad vabatahtlikud kaastöölised. Projekti haldab ja selle omanik on Wikimedia Foundation, projekt töötab MediaWiki tarkvaral ning asub aadressil http://www.wikiquote.org.", + "wikiquote":"Vikitsitaadid on Wikimedia projektiperre kuuluv tsitaate koondav vikiprojekt, mida koostavad vabatahtlikud kaastöölised. Projekti haldab ja selle omanik on Wikimedia Foundation, projekt töötab MediaWiki tarkvaral ning asub aadressil wikiquote.org.", "wikisource":"Vikitekstid on Vikipeedia sõsarprojekt, milles on vabad alliktekstid.", "wikiversity":"Vikiülikool on vaba ja avatud veebipõhine õpikeskkond, üks Wikimedia Foundationi projekte.", "wikivoyage":"Wikivoyage on vaba ja tasuta veebipõhine reisijuht, kus sihtkohtadest ja reisiteemadest kirjutavad vabatahtlikud kaastöölised. Portaali nimi koosneb ingliskeelsest sõnast wiki ning prantsuse sõnast voyage ('reis').", @@ -2606,7 +2635,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bing bilaketa adimendunei esker, bizkorrago aurkituko duzu bilatzen ari zarena; gainera, sariak jasoko dituzu.", + "Bilatu Microsoft Bing-ekin eta erabili AAren indarra informazioa bilatzeko, web-orriak, irudiak, bideoak, mapak eta abar arakatzeko. Bilatzaile adimenduna jakin-mina dutenentzat.", "https://www.bing.com/videos" ], "brave":[ @@ -2752,6 +2781,7 @@ "1337x":"۱۳۳۷اکس یک وب‌سایت است که فهرستی از فایل‌های تورنت را برای اشتراک‌گذاری فایل‌های همتا به همتا که از طریق پروتکل بیت‌تورنت استفاده می‌شود را ارائه می‌کند. به نوشته وبلاگ خبری تورنت‌فریک، ۱۳۳۷اکس سومین وب سایت محبوب تورنت تا سال ۲۰۲۱ است.", "9gag":"۹گگ تارنمای طنز از کشور هنگ کنگ و به میزبانیِ وب ایالات متحده یکی از بهترین و شناخته شده‌ترین وب گاه‌های میم و کمیک می‌باشد.", "alpine linux packages":"الپاین لینوکس یک توزیع لینوکس بر پایهٔ musl و بیزی‌باکس است که بیشتر برای «کاربران حرفه‌ای که به امنیت، سادگی و بهینگی منابع توجه دارند» طراحی شده است.", + "annas archive":"آرشیو آنا یا آناز آرکایْو یک موتور جستجو برای دسترسی کلی به کتابخانه‌های در سایه است که با نام مستعار آنا ایجاد شده است. این وبسایت در پاسخ مستقیم به تلاش‌های مختلف قانونی برای تعطیل کردن Z-Library در سال 2022 تأسیس شد. هدف خود را «فهرست‌نویسی همه کتاب‌های موجود» و «ردیابی پیشرفت بشریت در جهت دسترسی آسان همه این کتاب‌ها به صورت دیجیتالی» توصیف کرده است.", "apple app store":"اپ استور یک سکوی رایانش توزیع نرم‌افزار دیجیتال برای آی‌اواس است که توسعه و نگه‌داری آن توسط شرکت اپل انجام می‌شود. این سرویس به کاربران اجازه می‌دهد که نرم‌افزار مورد نظر را جستجو و بارگیری کنند. و برروی آیفون ها و آی‌پد قرار دارد", "apple maps":"اپل مپس یا نقشه اپل یک سرویس نقشه‌برداری وب توسعه یافته توسط شرکت اپل است. این سرویس به‌طور پیش فرض بر روی آی‌اواس، مک اواس و واچ اواس در دسترس است. اپل مپس اطلاعاتی از قبیل جهت و زمان تخمینی رسیدن به مقصد برای خودرو، عابر پیاده و ناوبری حمل و نقل عمومی را برای کاربر فراهم می‌کند. همچنین اپل مپس دارای یک نمای منحصر به فرد به نام نمای بالا است که کاربر را قادر می‌سازد تا در یک نمای سه‌بعدی (3D) از بالا در مکان‌های مختلف به کاوش بپردازد که در این نما می‌توان ساختمانها و سازهها را تماشا کرد.", "artic":"مؤسسه هنر شیکاگو در سال ۱۸۷۹ میلادی تأسیس شد. این مرکز از معتبرترین موزه‌های هنری در ایالات متحده آمریکا محسوب می‌شود.", @@ -2773,7 +2803,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "جستجوی هوشمند Bing یافتن آنچه را که به دنبالش هستید آسان‌تر می‌کند و به شما پاداش می‌دهد.", + "با Microsoft Bing جستجو کنید و از قدرت هوش مصنوعی برای یافتن اطلاعات، کاوش در صفحات وب، تصاویر، ویدیوها، نقشه‌ها و موارد دیگر استفاده کنید. موتور جستجوی هوشمند برای افراد همیشه کنجکاو.", "https://www.bing.com/videos" ], "brave":"بریو یک مرورگر وب رایگان و متن‌باز است. با سیستم پرداخت به گشت‌وگذار و بر پایهٔ مرورگر کرومیوم و موتور چیدمان بلینک ساخته شده‌است. ساخت این مرورگر را یکی از بنیان‌گذاران پروژه موزیلا و خالق جاوااسکریپت یعنی برندان آیک اعلام کرد.", @@ -2845,7 +2875,7 @@ "imgur":"ایمجر یک وبگاه اشتراک‌گذاری عکس و سرویس میزبانی عکس است که در سال ۲۰۰۹ توسط آلن شاف بنیان‌گذاری شد.", "kickass":"کیک‌اس‌تورنتس همچنین شناخته‌شده با نام‌های کی‌ای‌تی ، یک فهرست وب شامل پیوندهای تورنت بود که امکان اشتراک فایل همتا به همتا را فراهم می‌نمود. کیک‌اس‌تورنتس در سال ۲۰۰۸ ساخته‌شد و در طول سال‌های مختلف در کنار پایرت بی جزو پربازدیدترین وبگاه های اشتراک پرونده به‌صورت همتابه‌همتا بود. این وبگاه در ژوئن ۲۰۱۶ به تور نیز پیوست و وارد دارک‌وب شد.", "library genesis":"لایبراری جینیسیس لیبجن کتابخانه جنسیس یک موتور جستجو برای یافتن کتاب و مقالات علمی است که به کاربر اجازه دسترسی به محتوای پولی منتشر شده توسط ناشران و ژورنال‌های مختلف را می‌دهد. این موتور جستجو، امکان دسترسی به فایل پی.دی. اف پورتال ساینس دیرکت را برای کاربران خود فراهم می‌سازد. در سال ۲۰۱۵، مؤسسه الزویر، علیه این پایگاه اینترنتی به دادگاهی در ایالات متحده شکایت و آن را به دسترسی غیرمجاز به مقالات و کتاب‌های خود محکوم کرد. از آنجا که لایبجن در روسیه و نیز شهر آمستردام (هلند) ثبت شده است، بررسی وضعیت دقیق حقوقی آن کار دشواری است. همچنین مشخص نیست که آیا متهمان حاضرند در دادگاه ایالات متحده حضور یابند یا خیر. هم‌اکنون برخی آی.اس. پی‌ها در بریتانیا، دسترسی به این پایگاه را محدود کرده‌اند. در اکتبر سال ۲۰۱۵، دادگاهی در منطقهٔ نیویورک، دستور تعلیق دامنهٔ این پایگاه (libgen.org) را داد، اما این تارنما همچنان از طریق دامنه‌های جایگزین در دسترس کاربران قرار دارد. لینک جدیدی که این وبگاه از آن استفاده می‌کند (gen.lib.rus.ec) می‌باشد.", - "library of congress":"کتابخانه کنگره ، کتابخانه تحقیقاتی است که به‌طور رسمی به کنگره ایالات متحده خدمات ارائه کرده و کتابخانه ملی دفاکتوی ایالات متحده است. این کتابخانه، قدیمی‌ترین مؤسسه فرهنگی فدرال در این کشور است. کتابخانه کنگره در سه ساختمان کپیتال هیل در واشینگتن دی. سی. مستقر بوده و همچنین از یک مرکز حفاظت در کالپپرِ ویرجینیا نگهداری می‌کند. کتابداران کنگره بر عملکردهای کتابخانه نظارت داشته و ساختمان‌هایش توسط «معمار کپیتال» نگهداری می‌شود. کتابخانه کنگره یکی از بزرگ‌ترین کتابخانه‌های جهان است. «مجموعه‌هایش جهانیست و موضوعات، قالب یا مرزهای ملی آن محدودیت نداشته و شامل مواد تحقیقاتی از تمامی بخش‌های جهان با بیش از ۴۷۰ زبان است».", + "library of congress":"کتابخانه کنگره ، کتابخانه تحقیقاتی است که به‌طور رسمی به کنگره ایالات متحده خدمات ارائه کرده و کتابخانه ملی دفاکتوی ایالات متحده است. این کتابخانه، قدیمی‌ترین مؤسسه فرهنگی فدرال در این کشور است. کتابخانه کنگره در سه ساختمان کپیتال هیل در واشینگتن دی. سی. مستقر بوده و همچنین از یک مرکز حفاظت در کالپپرِ ویرجینیا نگهداری می‌کند. کتابداران کنگره بر عملکردهای کتابخانه نظارت داشته و ساختمان‌هایش توسط «معمار کپیتال» نگهداری می‌شود. کتابخانه کنگره یکی از بزرگ‌ترین کتابخانه‌های جهان است. «مجموعه‌هایش جهانیست و موضوعات، قالب یا مرزهای ملی آن محدودیت نداشته و شامل مواد تحقیقاتی از تمامی بخش‌های جهان با بیش از ۴۷۰ زبان می باشد».", "mastodon hashtags":[ "mastodon users:fa-IR", "ref" @@ -2905,7 +2935,7 @@ "wiktionary":"ویکی‌واژه ، یک فرهنگ لغت اینترنتی با محتوای آزاد برپایهٔ همکاری باز است که واژگان بسیاری از زبانهای جهان را دربردارد و معنا، ریشه‌شناسی و تلفظ (آوایِش) واژه‌ها گنجانده می‌شود. ویکی‌واژه بُن‌مایهٔ واژگانیِ دانشنامهٔ آزاد ویکی‌پدیا است.", "wolframalpha":"ولفرم آلفا یک موتور محاسباتی دانش است که توسط ولفرم ریسرچ ایجاد شده‌است. این موتور جستجو حاصل تلاش فیزیکدانی بنام استفان ولفرام و تیم تحقیقاتی او است. هستهٔ اصلی ولفرام‌آلفا نرم‌افزار محاسباتی متمتیکا است. برخلاف دیگر موتورهای جستجو که معمولاً گزیده‌ای از وب را در اختیار شما می‌گذارند، ولفرام‌آلفا، این اطلاعات را پردازش کرده و سپس در اختیار کاربر می‌گذارد. ولفرام آلفا قادر است به بسیاری از سؤالاتی که دیگر موتورهای جستجو قادر به جوابگویی به آن‌ها نیستند پاسخ دهد؛ برای نمونه سؤالی مثل: «ملکه الیزابت دوم در سال ۱۹۴۷ چند ساله بوده است؟» یا «پنجاه و چهارمین کشور کوچک از لحاظ سرانه تولید ناخالص ملی کدام کشور است؟» با این وجود نمی‌توان انتظار هر نوع محاسبه‌ای را از این وب‌گاه داشت.", "wttr.in":[ - "not found اوه و بآ تیعضو شرازگ", + "Worpswede, Germany اوه و بآ تیعضو شرازگ", "https://wttr.in" ], "yacy":"YaCy یک موتور جستجو توزیع شده رایگان می‌باشد که از شبکه peer-to-peer (P2P).استفاده می‌کند هستهٔ اصلی توسط زبان برنامه‌نویسی جاوا نوشته شده است که یک برنامه کامپیوتری در چند صد کامپیوتر توزیع شده است. ‍‍‍‍‍ تا تاریخ سپتامبر ۲۰۰۶به اصطلاح YaCy-peers نامیده شد، هر YaCy به طور مستقل در اینترنت می‌خزد، و صفحات وب را جستجو، تجزیه و تحلیل می‌کند نتایج جستجو در یک پایگاه داده مشترک ذخیره می‌شود؛ که این صفحات با سایر YaCy-peers با استفاده از اصول شبکه‌های P2P در اشتراک قرار می‌گیرند. این یک موتور جستجورایگان است که هر کس می‌تواند از آن برای ساخت یک پورتال جستجو استفاده کند؛ و کمک کند تا جستجو در اینترنت به صورت واضح صورت گیرد.", @@ -2938,7 +2968,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bingin älykäs haku auttaa sinua löytämään etsimäsi nopeammin ja palkitsee sinut.", + "Hae Microsoft Bingillä ja hyödynnä tekoälyä tietojen etsimiseen, verkkosivujen, kuvien, videoiden, karttojen ja muiden toimintojen tutkimiseen. Älykäs hakukone, joka on aina utelias.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket on lähdekoodin hallinnointiin ja versiohallintaan tarkoitettu sivusto.", @@ -3070,7 +3100,7 @@ "wiktionary":"Wikisanakirja on Wikipedian sisarhanke, jonka tavoitteena on luoda wikipohjainen kaikkien kielten välinen vapaa sanakirja.", "wolframalpha":"Wolfram Alpha on Wolfram Researchin kehittelemä haku- ja vastauskone, joka julkaistiin 15.5.2009. Wolfram Alphan toiminta pohjautuu Wolfram Researchin kehittelemään Mathematica-laskentaohjelmaan tiedon etsimisessä ja käsittelyssä.", "wttr.in":[ - "Säätiedotus: not found", + "Säätiedotus: Worpswede, Germany", "https://wttr.in" ], "youtube":"Youtube on Googlen omistama Internetissä toimiva videopalvelu, jonka perustivat helmikuussa 2005 kolme PayPalin työntekijää: Chad Hurley, Steve Chen ja Jawed Karim. Käyttäjät voivat lisätä sivustolle omia videoitaan ja katsoa sekä kommentoida muiden käyttäjien videoita." @@ -3090,8 +3120,8 @@ "https://www.bing.com/news" ], "bing videos":[ - "Pinapadali ng matalinong paghahanap mula sa Bing na mabilis na mahanap ang iyong hinahanap at binibigyan ka ng reward.", - "https://www.bing.com/videos" + "bing:fil", + "ref" ], "gentoo":[ "gentoo:en", @@ -3118,6 +3148,10 @@ "wikidata" ], "pinterest":"Ang Pinterest ay isang portal at websayt na nagsisilbing lagusan papunta at nagserbisyo sa websayt sa tahanang pahina (homepage), Dito ay may iba't ibang larawan na makikita, katulad sa Instagram akawnt na inilabas noong 2010. Ang Pinterest ay inilathala nina Ben Silbermann, Paul Sciarra at Evan Sharp noong Disyembre 2009 sa San Francisco, California, Estados Unidos na may higit na 1,600 na empleyado..", + "reddit":[ + "Ang Reddit ay network ng mga community kung saan mae-explore ng mga tao ang mga interes, libangan, at hilig nila. May community para sa anumang interes mo sa Reddit.", + "https://www.reddit.com/" + ], "vimeo":"Ang Vimeo ay isang Amerikan portal na websayt na bidyo punong abala at namamahagi ang himpilan nito ay matatagpuan sa Lungsod ng Bagong York, Bagong York noong Nobyembre 2004 na inilathala nina Zach Klein, Jake Lodwick katuwang si Anjali Sud (Indian-American), ang (CEO) ng Vimeo.", "wikibooks":"Ang Wikibooks ay isang base ng wiki sa Wikimedia project na pag-aari ng Wikimedia Foundation, para sa lumikha ng malayang nilalaman na textbooks o aklat na pwedeng sa lahat na pagbabago.", "wikicommons.audio":[ @@ -3173,7 +3207,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "La recherche intelligente de Bing facilite la recherche rapide et vous récompense.", + "Effectuez des recherches avec Microsoft Bing et utilisez la puissance de l’IA pour rechercher des informations, explorer des pages web, des images, des vidéos, des cartes, etc. Un moteur de recherche intelligent pour les éternels curieux.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket est un service web d'hébergement et de gestion de développement logiciel utilisant le logiciel de gestion de versions Git.", @@ -3197,7 +3231,7 @@ "crossref":"Crossref est une organisation à but non lucratif de droit américain jouant le rôle d'agence d'enregistrement et de registre des Digital Object Identifier.", "curlie":"L’Open Directory Project (ODP), aussi appelé Dmoz, est un ancien annuaire de sites web actif de 1998 à 2017, sous licence libre Open Directory.", "currency":"DuckDuckGo est un moteur de recherche américain qui vise à préserver la vie privée de ses utilisateurs et à leur éviter la bulle de filtres.", - "dailymotion":"Dailymotion est une entreprise française, filiale du groupe Canal+, proposant, sur le site web du même nom, un service d'hébergement, de partage et de visionnage de vidéo en ligne.", + "dailymotion":"Dailymotion est une entreprise française, filiale de Canal+, proposant, sur le site web du même nom, un service d'hébergement, de partage et de visionnage de vidéo en ligne.", "ddg definitions":[ "currency:fr", "ref" @@ -3376,7 +3410,7 @@ "wiktionary":"Le Wiktionnaire est un projet lexicographique de la Wikimedia Foundation dont l’objectif est de définir tous les mots de toutes les langues, dans toutes les langues. En 2024, il existe plus de 170 langues de rédaction. Au sens strict, le terme « Wiktionnaire » désigne souvent la version en français de ce projet, Wiktionary étant le nom officiel en anglais. Il est géré en wiki dans le site web wiktionary.org et son contenu est librement réutilisable.", "wolframalpha":"WolframAlpha est un moteur de réponse développé par Wolfram Research. Il répond aux questions factuelles en calculant les réponses à partir de données externes.", "wttr.in":[ - "Prévisions météo pour: not found", + "Prévisions météo pour: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy est un moteur de recherche libre fonctionnant selon le principe d'un réseau pair à pair. Ce logiciel est développé en Java et était installé, fin 2006, sur des centaines d'ordinateurs appelés YaCy-peers ou postes-YaCy. YaCy est par exemple utilisé par l'Université Johannes Gutenberg de Mayence.", @@ -3388,6 +3422,83 @@ "youtube":"YouTube est un site web d'hébergement de vidéos et média social sur lequel les utilisateurs peuvent envoyer, regarder, commenter, évaluer et partager des vidéos en streaming.", "z-library":"Z-Library est un miroir de Library Genesis, une bibliothèque virtuelle permettant l'accès par partage de fichiers à des articles de revues scientifiques, des textes universitaires et des livres d'intérêt général. La plupart de ses ouvrages proviennent de Library Genesis, tandis que certains sont mis en ligne directement sur son site par des particuliers. Les utilisateurs peuvent également contribuer au dépôt du site." }, + "ga":{ + "artic":[ + "músaem agus scoil ealaíne in Chicago, SAM", + "wikidata" + ], + "arxiv":[ + "cartlann dhigiteach", + "wikidata" + ], + "bing":[ + "Cuardaigh le Microsoft Bing agus úsáid cumhacht AI chun faisnéis a aimsiú, leathanaigh ghréasáin, íomhánna, físeáin, mapaí agus tuilleadh. Inneall cuardaigh cliste don duine atá fiosrach go deo.", + "https://www.bing.com" + ], + "bing images":[ + "Is é Íomhá Bing an t-inneall cuardaigh íomhá is fearr, a chuireann ar cumas d'úsáideoirí na híomhánna is ábhartha agus den chaighdeán is airde atá saincheaptha le do riachtanais féin a chuardach agus a thaiscéaladh", + "https://www.bing.com/images" + ], + "bing news":[ + "Nuacht ó fhoinsí nuachta domhanda, náisiúnta agus áitiúla, eagraithe chun grinnchuardach nuachta a thabhairt ar an spórt, siamsaíocht, gnó, polaitíocht, aimsir agus tuilleadh.", + "https://www.bing.com/news" + ], + "bing videos":[ + "bing:ga", + "ref" + ], + "duden":[ + "ciclipéid ar líne", + "wikidata" + ], + "gentoo":[ + "gentoo:en", + "ref" + ], + "google images":[ + "Íomhánna Google. An cuardach íomhánna is cuimsithí ar an ngréasán.", + "https://images.google.com" + ], + "google news":[ + "Sula leanfaidh tú ar aghaidh", + "https://news.google.com" + ], + "hoogle":[ + "teanga ríomhchlárúcháin feidhme", + "wikidata" + ], + "imdb":"Is bunachar sonraí ar líne é IMDb a bhaineann leis na scannáin, cláir theilifíse, cláir físeáin, agus físchluichí. Tá foireann aisteoirí agus foireann scannáin, carachtair fhicseanúla, snáithí scéil, beathaisnéisí, plotaí scéil, mioneolas agus fíricí fánacha faoi na scannáin san áireamh ar an suíomh seo. Is é fochuideachta an chomhlachta Amazon. Ó mhí na Samhna 2017, tá thart ar 4.6 milliún teideal ag IMDb, 8.2 milliún duine sa bhunachar sonraí, chomh maith le 80 milliún úsáideoir cláraithe.", + "library of congress":"Is í Leabharlann na Comhdhála an leabharlann is mó ar domhan, agus í suite in Washington, D.C., sna Stáit Aontaithe. Leabharlann taighde atá ann a bunaíodh ar 24 Aibreán 1800, an chéad institiúid chultúrtha fheidearálach sa tír úd. Freastalaíonn an leabharlann ar riachtanais Chomhdháil na Stát Aontaithe, agus is ag baill agus fostaithe na Comhdhála amháin a bhfuil cead acu ábhar ón leabharlann a fháil ar iasacht. Tá teacht ar bhailiúcháin na leabharlainne ag taighdeoirí seachtracha, áfach. I ndáiríre, is í Leabharlann na Comhdhála leabharlann náisiúnta na Stát Aontaithe.", + "mastodon hashtags":[ + "mastodon users:ga", + "ref" + ], + "mastodon users":"Bogearraí foinse oscailte agus saor in aisce is ea Mastodon. Óstálann Mastodon líonraí sóisialta.", + "mixcloud":"Is suíomh greásáin é Mixcloud inar féidir podchraoltaí, idir cainte agus go háirithe ceoil a uaslodáil, agus éisteacht leis na rudaí a uaslódálann daoine eile.", + "soundcloud":"Is éard atá i SoundCloud ná ardán láithreán gréasáin fuaime idir cainte agus ceoil le roinnt idir úsáideoirí timpeall na cruinne trí uaslódáil a dhéanamh ar chomhaid nó podchraoltaí cainte agus/nó ceoil. Tá an comhlacht lonnaithe i mBeirlín sa Ghearmáin. Bunaíodh iad in 2007 agus seoladh suíomh gréasáin Soundcloud in 2008.", + "wikicommons.audio":[ + "wikicommons.images:ga", + "ref" + ], + "wikicommons.files":[ + "wikicommons.images:ga", + "ref" + ], + "wikicommons.images":"Stór íomhánna, fuaimeanna agus áiseanna eile is ea an Chómhaoin Wikimedia agus é ar fáil saor in aisce. Óstálaíonn an fhondúireacht neamhbhrabúis Wikimedia é.", + "wikicommons.videos":[ + "wikicommons.images:ga", + "ref" + ], + "wikidata":"Is graf eolais ilteangach arna chur in eagar go comhoibríoch é Wikidata arna óstáil ag an Fondúireacht Wikimedia. Is foinse coiteann sonraí saoire é ar féidir le tionscadail Wikimedia ar nós Vicipéid, agus aon duine eile, a úsáid faoin gceadúnas fearainn poiblí CC0. Is vicí é Wikidata atá faoi thiomáint ag na bogearraí MediaWiki, agus tá sé faoi thiomáint freisin ag an tacar de shíntí graf eolais MediaWiki ar a dtugtar Wikibase.", + "wikipedia":"Is ciclipéid ar líne é an Vicipéid atá scríofa agus á chothabháil ag pobal oibrithe deonacha, ar a dtugtar Vicipéideoirí, trí chomhoibriú oscailte agus trí úsáid a bhaint as córas eagarthóireachta vicí-bhunaithe ar a dtugtar MediaWiki. Is í an Vicipéid an saothar tagartha is mó agus is mó léite sa stair, agus i rith an ama bhí sí ar cheann de na 10 suíomhanna gréasáin is mó tóir. Cruthaithe ag Jimmy Wales agus Larry Sanger ar 15 Eanáir, 2001, tá sé á óstáil ag an bhFondúireacht Wikimedia, eagraíocht neamhbhrabúis Mheiriceá.", + "wikiquote":"Is suíomh é Vicíshliocht a chruinníonn agus a roinneann bailiúcháin de sleachta cáiliúla ó dhaoine, leabhair, scannáin, agus foinsí cultúrtha eile. Is tionscadal de chuid Wikimedia Foundation é, cosúil le Vicipéid, agus tá sé oscailte don phobal chun ábhar a chur leis agus a chur in eagar. Tá sé mar sprioc ag Vicíshliocht eolas a thabhairt ar smaointe, inspioráid, agus greann trí sleachta a roinnt i gcomhthéacsanna éagsúla. Tá leaganacha ilteangacha ann cé go bhfuil gá le tuilleadh rannpháirtíochta ann chun ábhar a mhéadú.", + "wikisource":[ + "Viciméid catagóir", + "wikidata" + ], + "wiktionary":"Is tionscnamh é an Vicífhoclóir atá á reáchtáil ag an eagraíocht Wikimedia chun foclóir iomlán agus saor in aisce a chruthú i ngach aon teanga.", + "youtube":"Is suíomh gréasáin comhroinnte físeán é YouTube. Is féidir le húsáideoirí físeáin a uaslódáil agus a chomhroinnt, chomh maith le féachaint ar na físeáin chéanna." + }, "gl":{ "apple app store":"A App Store é un servizo para o iPhone, iPod Touch, e o iPad, creado por Apple Inc, que permite aos usuarios buscar e descargar aplicacións, desenvolvidas co iOS SDK e publicadas por Apple. Estas aplicacións están dispoñibles para ser compradas ou gratuítas, dependendo de cada unha. As aplicacións poden ser descargadas directamente ao iPhone o ao iPod Touch por medio dunha aplicación do mesmo nome.", "artic":"O Art Institute of Chicago é un museo e escola de arte situado en Grant Park, ao redor da costa do lago Michigan en Chicago. É un dos museos de arte máis importantes do mundo.", @@ -3407,7 +3518,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "A busca intelixente de Bing fai que sexa máis rápido e sinxelo atopar o que estás a buscar e concédeche premios.", + "Busca con Microsoft Bing e usa o poder da IA para atopar información, explorar páxinas web, imaxes, vídeos, mapas e moito máis. Un motor de busca intelixente para os máis curiosos.", "https://www.bing.com/videos" ], "curlie":"O Open Directory Project (ODP), tamén coñecido como DMoz (por directory.mozilla.org o seu nome de dominio orixinal) é un proxecto colaborativo multilingüe, no que editores voluntarios listan e categorizan ligazóns a páxinas web.", @@ -3539,7 +3650,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "עם החיפוש החכם של Bing תוכל למצוא את מה שאתה מחפש ביתר קלות ומהירות ולקבל פרסים.", + "חפש באמצעות Microsoft Bing והשתמש בעוצמה של בינה מלאכותית כדי למצוא מידע, לחקור דפי אינטרנט, תמונות, סרטוני וידאו, מפות ועוד. מנוע חיפוש חכם לסקרנים שלא מפסיקים לחקור.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket הוא שירות ניהול גרסאות של מאגר קוד מקור מבוסס git בבעלות אטלסיאן.", @@ -3610,7 +3721,7 @@ "ref" ], "google scholar":"גוגל סְקוֹלַר הוא מנוע חיפוש מקוון מבית היוצר של גוגל, הממפתח את הטקסט המלא של מאמרים, דוחות טכניים, דו\"חות לפני הדפסה, תזות, ספרים, ומסמכים אחרים ממגוון רחב של הוצאות ובמקצועות שונים.", - "google videos":"גוגל וידאו הוא מנוע חיפוש מבית גוגל, לחיפוש סרטון וידאו באינטרנט. המנוע משולב עם מנוע החיפוש העיקרי של החברה. השירות הושק ב-25 בינואר 2005. ב-9 באוקטובר 2006 גוגל רכשה את המתחרה Youtube", + "google videos":"גוגל וידאו הוא מנוע חיפוש מבית גוגל, לחיפוש סרטון וידאו באינטרנט. המנוע משולב עם מנוע החיפוש העיקרי של החברה. השירות הושק ב-25 בינואר 2005 ובתחילתו היה ניתן להעלות אליו קטעי וידאו.", "hoogle":"Haskell (הסקל) היא שפת תכנות פונקציונלית טהורה, ובעלת טיפוסיות חזקה. היא אחת משפות התכנות הפונקציונליות הפופולריות ביותר, והשפה הפונקציונלית העצלה בה מרבית המחקר בתחום מדעי המחשב מתבצע[דרוש מקור]. השפה קרויה על שם הלוגיקן הסקל קורי.", "imdb":"Internet Movie Database הוא אתר אינטרנט המכיל בסיס נתונים מקוון של מידע על סרטים, שחקני קולנוע, תוכניות טלוויזיה, צוות הפקה ומשחקי וידאו. האתר נמצא בבעלות חברת אמזון.", "imgur":"Imgur (אימג'ר) הוא אתר אינטרנט חינמי לאירוח קובצי תמונות שהושק ב-23 בפברואר 2009. ניתן להעלות תמונות לאתר ולשתף אותן במגוון של רשתות חברתיות, לערוך את קובצי התמונות, להגיב על תמונות שמשתמשים אחרים העלו, וליצור בקלות יתרה תמונות Image macro (ממים).", @@ -3657,7 +3768,7 @@ "wiktionary":"ויקימילון הוא מיזם מקוון רב־לשוני ובין־לאומי המנוהל על ידי קרן ויקימדיה. מטרתו היא יצירת מילון חופשי, שיתופי, מהימן ופתוח אשר יכיל את כל המילים מכל שפות העולם. כיום, הוא זמין בכ־183 שפות ומכיל מילים מכ־3,800 שפות שונות. המהדורה הראשונה של המילון החלה את דרכה ב-12 בדצמבר 2002, ואילו המהדורה העברית הושקה ב-29 ביוני 2004.", "wolframalpha":"וולפרַם אַלפַא הוא מנוע חיפוש חישובי, שפותח על ידי מעבדות וולפרם והושק במאי 2009. ייחודו הוא בביצוע שאילתות בשפה טבעית, בשילוב עם חישובים והחזיית מידע (ויזואליזציה) נרחבת.", "wttr.in":[ - "not found :ריוואה גזמ תיזחת", + "Worpswede, Germany :ריוואה גזמ תיזחת", "https://wttr.in" ], "youtube":"יוּטְיוּבּ הוא אתר אינטרנט לאחסון ושיתוף סרטוני וידאו שהוקם על ידי חברה אמריקאית באותו שם. יוטיוב הוקמה בפברואר 2005, על ידי צ'אד הארלי, סטיב צ'ן וג'אווד כרים, שלושתם עובדים לשעבר של חברת PayPal. בנובמבר 2006, רכשה גוגל את החברה תמורת 1.65 מיליארד דולר, ויוטיוב הפכה לחברת בת של גוגל.", @@ -3676,7 +3787,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Pametno pretraživanje u tražilici Bing olakšava brzo pretraživanje onog što tražite i nagrađuje vas.", + "Pretražujte uz Microsoft Bing i koristite moć umjetne inteligencije kako biste pronašli informacije, istražili web-stranice, slike, videozapise, karte i još mnogo toga. Pametna tražilica za vječno znatiželjne.", "https://www.bing.com/videos" ], "brave":[ @@ -3737,6 +3848,10 @@ "Google Slike. Najpotpunije pretraživanja slika na webu.", "https://images.google.com" ], + "google news":[ + "Prije nego što nastavite", + "https://news.google.com" + ], "google play apps":"Google Play Googleova je mrežna trgovina aplikacija, glazbe, filmova i ostalih digitalnih sadržaja. Predstavljen je u kolovozu 2008. godine, a njegovo korištenje počinje od listopada 2008. godine. Pojava prvih komercijalnih aplikacija započinje od strane britanskih i američkih programera od veljače 2009.", "google play movies":[ "google play apps:hr", @@ -3805,7 +3920,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "A Bing intelligens keresésével gyorsan megtalálhat bármit, amit keres, és még jutalmakban is részesülhet.", + "Keressen a Microsoft Binggel, és használja az AI erejét információk kereséséhez, weblapok, képek, videók, térképek és egyebek felfedezéséhez. Intelligens keresőmotor az örökre kíváncsiak számára.", "https://www.bing.com/videos" ], "brave":[ @@ -3856,10 +3971,6 @@ "currency:hu", "ref" ], - "fdroid":[ - "Az F-Droid szabad és nyílt forráskódú alkalmazások telepíthető katalógusa az Android platformhoz. A kliens egyszerűvé teszi a böngészést, a telepítést és a frissítések nyomon követését az eszközén.", - "https://f-droid.org/" - ], "flickr":"A Flickr egy ingyenes fényképmegosztó weboldal, web 2.0-s web szolgáltatás és online közösségi platform.", "gentoo":[ "gentoo:en", @@ -3887,10 +3998,6 @@ "imdb":"Az Internet Movie Database (IMDb), melynek tulajdonosa az Amazon.com, egy online információs adatbázis filmszínészekről, filmekről, filmsorozatokról, egyéb televíziós műsorokról, reklámokról és videójátékokról. A regisztrált felhasználók értékelhetik a filmeket és szerkeszthetik az adatlapokat, a változtatásokat az IMDb személyzete tartja nyílván. Az IMDb a legismertebb és legnagyobb méretű filmes internetes adatbázis.", "imgur":"Az Imgur egy képmegosztó webhely, melyet Alan Schaaf hozott létre, és sok millió felhasználó veszi igénybe az egyszerű regisztráció után ingyenesen is elérhető szolgáltatást.", "library of congress":"A Kongresszusi Könyvtár az Amerikai Egyesült Államok nemzeti könyvtára, mely Washingtonban található négy épületben. Ez a világ legnagyobb könyvtára mind fizikai méretei, mind tárolt könyveinek, dokumentumainak száma szerint.", - "libretranslate":[ - "Ingyenes és nyílt forráskódú gépi fordító API. Helyileg telepített, offline működő és könnyen telepíthető. Futtassa saját API kiszolgálóját néhány perc alatt.Ingyenes és nyílt forráskódú gépi fordító API. Helyileg telepített, offline működő és könnyen telepíthető. Futtassa saját API kiszolgálóját néhány perc alatt.", - "https://libretranslate.com" - ], "metacpan":"A CPAN a Comprehensive Perl Archive Network rövidítése. Több mint 100 000 Perl-ben írt programmodult és ezek dokumentációját tartalmazza. Ezek megtalálhatók a CPAN hivatalos weboldalán, továbbá világszerte több mint 200 helyen vannak tükrözések. A CPAN kifejezés vagy magára az archívum hálózatra utal, vagy arra a Perl programra, amely interfészként viselkedik a hálózathoz, valamint automatikus szoftver telepítő is egyben. A CPAN-on található legtöbb program ingyenes és nyílt forrású.", "mixcloud":"A Mixcloud egy freemium zenemegosztó streamingszolgáltató weboldal, ami rádióműsorok, zenei mixek és podcastok megosztását teszi lehetővé. Az oldal crowdsourcing alapján működik, a regisztrált felhasználók által feltöltött munkák biztosítják a tartalmat. A felhasználók korlátlanul tölthetnek fel az oldalra, de a feltöltött munkákat letölteni nem lehet, csak streamelni. A Mixcloud alkalmazása megjelent Androidra és iOS-re.", "naver":"A Naver dél-koreai internetes portál és keresőmotor, melyet 1999-ben hozott létre egy korábbi Samsung-alkalmazott. A Naver saját keresőmotort fejlesztett, ami kifejezetten koreai nyelvű tartalomra specializálódik. 2009-ben a keresőmotorok között az ötödik helyen szerepelt a világon, a Google, a Yahoo!, a Baidu és a Microsoft után. A Naver a koreai piac domináns keresője, a keresések mintegy 70%-át itt bonyolítják és mintegy 25 millió felhasználónak ez a kezdőoldala a böngészőben. A Woori Investment and Securities elemzése szerint a Google-nek azért nem sikerült megvetnie a lábát a koreai piacon a Naverrel szemben, mert túl kevés koreai nyelvű tartalmat szolgáltat.", @@ -3930,7 +4037,7 @@ "wikivoyage":"A Wikivoyage a Wikimédia Alapítvány ingyenes internetes útikönyve. A neve a Wiki és a francia voyage szóból áll. Az új wikiprojekt 2013. január 15-én, a Wikipédia alapításának 12. évfordulója évében, napra a születésnapján startolt. 24 nyelven érhető el: angolul, németül, hollandul, oroszul, svédül, olaszul, portugálul, franciául, spanyolul, kínaiul, finnül, görögül, héberül, perzsául, lengyelül, románul, ukránul, vietnámiul, törökül, japánul, hindiül, pastuul, bengáliul és eszperantóul.", "wiktionary":"A Wikiszótár a Wikipédia testvéroldala, melynek célja szabad szótár készítése minden nyelvre. Ötletgazdája Daniel Alston. 2002. december 12-én indult. A Wikiszótár magyar változata, a magyar Wikiszótár 2004. május 2-án indult.", "wttr.in":[ - "Időjárás előrejelzés: not found", + "Időjárás előrejelzés: Worpswede, Germany", "https://wttr.in" ], "youtube":"A YouTube nyilvános videómegosztó webhely, ahol a felhasználók videókat tölthetnek fel és nézhetnek meg. Székhelye a kaliforniai San Brunóban található. A Time magazin a 2006-os év találmányának választotta a honlapot." @@ -4006,7 +4113,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Pencarian cerdas dari Bing mempermudah Anda menemukan apa yang Anda cari dengan cepat dan memberikan hadiah.", + "Cari dengan Microsoft Bing dan gunakan kemampuan AI untuk menemukan informasi, menjelajahi halaman web, gambar, video, peta, dan banyak lagi. Mesin pencarian cerdas bagi yang penuh rasa ingin tahu.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket adalah sebuah layanan hosting yang berbasis web untuk kode sumber dan pembangunan proyek yang menggunakan Mercurial ataupun sistem kendali versi Git yang dimiliki oleh Atlassian. Bitbucket menawarkan paket akun komersial dan gratis. Akun gratis tersebut menawarkan sebuah layanan repositori dengan jumlah yang tidak terbatas sejak bulan September 2010. Bitbucket terintegrasi dengan perangkat lunak Atlassian lain seperti Jira, HipChat, Confluence dan Bamboo.", @@ -4054,10 +4161,6 @@ "ref" ], "etymonline":"Kamus Etimologi Daring adalah sebuah kamus gratis daring yang menjelaskan tentang asal-usul (etimologi) kata-kata bahasa Inggris.", - "fdroid":[ - "F-Droid adalah katalog aplikasi FOSS (Perangkat Lunak Bebas dan Sumber Terbuka) yang dapat diinstal untuk platform Android. Klien F-Droid memudahkan untuk menelusuri, menginstal, dan melacak pembaruan pada perangkat Anda.", - "https://f-droid.org/" - ], "flickr":"Flickr adalah situs web untuk berbagi foto dan situs komunitas daring yang merupakan contoh dari aplikasi Web 2.0. Sebagai situs web yang populer untuk berbagi foto pribadi, layanan ini dimanfaatkan oleh banyak blogger sebagai tempat penyimpanan foto. Popularitasnya bertambah seiring peralatan komunitas online yang inovatif yang memperbolehkan foto-foto diberi tanda dan dicari secara folksonomi.", "free software directory":[ "katalog Perangkat Lunak Bebas, proyek dari Yayasan Perangkat Lunak Bebas", @@ -4273,10 +4376,6 @@ "kickass":"KickassTorrents è stato un sito web, fondato nel 2008, che ospitava file torrent e magnet link per facilitare il file sharing peer-to-peer con il protocollo BitTorrent. All'agosto 2015, secondo Alexa, KAT è l'indice di file torrent più visitato al mondo e si stima riceva ogni mese più di 319 milioni di accessi. Il 20 luglio 2016 il sito è stato sequestrato dal governo degli Stati Uniti, successivamente chiuso e l'autore del sito è stato arrestato.", "library genesis":"Library Genesis o LibGen è un motore di ricerca di articoli e libri su vari argomenti, che consente l'accesso gratuito a contenuti normalmente a pagamento o non digitalizzati altrove. Tra gli altri, veicola contenuti in formato PDF dal portale web di Elsevier di ScienceDirect.", "library of congress":"La Biblioteca del Congresso, nota con gli acronimi LOC o Loc, è di fatto la biblioteca nazionale degli Stati Uniti d'America. Grazie ai 173 milioni di documenti in essa custoditi è la più grande biblioteca al mondo.", - "libretranslate":[ - "API di traduzione automatica libera e open source. Self-hosted, funziona anche offline e facile da configurare. Fai girare il tuo server API in pochi minuti.API di traduzione automatica libera e open source. Self-hosted, funziona anche offline e facile da configurare. Fai girare il tuo server API in pochi minuti.", - "https://libretranslate.com" - ], "mastodon hashtags":[ "mastodon users:it", "ref" @@ -4306,7 +4405,7 @@ ], "openstreetmap":"OpenStreetMap (OSM) è un progetto collaborativo finalizzato a creare mappe del mondo a contenuto libero. Il progetto punta ad una raccolta mondiale di dati geografici, con scopo principale la creazione di mappe e cartografie.", "peertube":"PeerTube è un software libero decentralizzato e federato che utilizza la tecnologia di rete paritaria (P2P) per ridurre il carico sui singoli server. È rilasciato sotto licenza GNU Affero General Public License. Il progetto è nato nel 2015 da un singolo programmatore. Lo sviluppo di PeerTube fu successivamente supportato da un'organizzazione non a scopo di lucro francese, la Framasoft.", - "pinterest":"Pinterest è un servizio di rete sociale basato sulla condivisione di fotografie, video e immagini. Il nome deriva dall'unione delle parole inglesi \"pin\" e \"interest\" (interesse). Pinterest permette agli utenti di creare bacheche in cui catalogare le immagini presenti nelle pagine web in base a temi predefiniti oppure da loro scelti.", + "pinterest":"Pinterest è un motore di ricerca che permette di condividere fotografie, video e immagini. Il nome deriva dall'unione delle parole inglesi \"pin\" e \"interest\" (interesse). Pinterest permette agli utenti di creare bacheche in cui catalogare le immagini presenti nelle pagine web in base a temi predefiniti oppure da loro scelti.", "piratebay":"The Pirate Bay (TPB) è un sito di file sharing basato sul protocollo di condivisione BitTorrent. È nato in Svezia ed è stato creato da Gottfrid Svartholm, Fredrik Neij e Peter Sunde.", "pubmed":"MEDLINE è un database bibliografico di scienze della vita e discipline biomediche. Copre i campi della medicina, dell'infermieristica, della farmacologia, dell'odontoiatria, della medicina veterinaria e dell'assistenza sanitaria in generale.", "pypi":"Python Package Index, spesso abbreviato in PyPI e noto anche come Cheese Shop, è un repository di pacchetti software scritti in Python. Una sorta di \"libreria online\" dove gli sviluppatori possono cercare, scaricare e condividere pacchetti Python. È analogo al repository CPAN per Perl e al CRAN per R.", @@ -4413,7 +4512,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bing のインテリジェント検索機能により、探しているものをより簡単にすばやく見つけられるようになり、リワードも得られます。", + "Microsoft Bing を使用して検索し、AI の機能を使用して情報を検索したり、Web ページ、画像、ビデオ、マップなどを探索したりすることができます。いつまでも好奇心旺盛な人のためのスマート検索エンジンです。", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket は、Mercurial(2020年6月1日までのリリース)またはGit(2011年10月以降)リビジョン管理システムを使用するソースコードおよび開発プロジェクト向けに、アトラシアンが運営するWeb ベースのバージョン管理リポジトリホスティングサービスである。商用プランと無料アカウントの両方を提供している。2019年2月現在、プライベートリポジトリを無制限に持てる無料アカウントを提供している。ユーザーがプライベートリポジトリしか持っていない場合でも、プライベートリポジトリはプロファイルページに表示されず、ウェブサイト上には\"このユーザーはリポジトリを持っていません\"と表示される。このサービスはDjangoフレームワークを用いてPythonで書かれている。", @@ -4430,8 +4529,33 @@ "brave:ja", "ref" ], + "currency":"DuckDuckGo(ダックダックゴー)は、インターネット検索エンジンである。利用者のプライバシーの保護と利用履歴等を記録保存しないことを運営方針としている。VivaldiやTor Browserの標準検索エンジンにも採用されている。また、DuckDuckGoは検索結果のパーソナライズを行わないため「フィルターバブル」に陥らない(DuckDuckGoはGoogleのフィルターバブル問題についてブログで指摘している)。", "dailymotion":"Dailymotion(デイリーモーション)は、Canal+傘下のDAILYMOTION SAが運営する、フランスの動画共有サービス。", + "ddg definitions":[ + "currency:ja", + "ref" + ], "deezer":"Deezer (ディーザー) は、フランスの音楽配信サービスである。", + "duckduckgo":[ + "currency:ja", + "ref" + ], + "duckduckgo images":[ + "currency:ja", + "ref" + ], + "duckduckgo news":[ + "currency:ja", + "ref" + ], + "duckduckgo videos":[ + "currency:ja", + "ref" + ], + "duckduckgo weather":[ + "currency:ja", + "ref" + ], "erowid":"エロウィド (Erowid) または、エロウィド・センター は、アメリカ歳入法の501(c)(3)に基づく非営利の教育団体であり、向精神性の植物や化学物質や、同様に、瞑想、明晰夢、経頭蓋磁気刺激法、電気刺激のような、変性意識状態をもたらす技法についての情報を提供している。", "etymonline":"オンライン・エティモロジー・ディクショナリー またはエティモンライン とは、英単語の語源についてのオンライン語源辞典。", "fdroid":"F-DroidはAndroidに対応したソフトウェアリポジトリおよびアプリケーションストアである。Google Playと機能は類似するが、扱っているのはフリーかつオープンソースのソフトウェアのみである。配信アプリケーションはF-Droidのウェブサイトで見ながらインストールできるが、クライアントアプリケーション から直接インストールする方法もある。クライアントアプリケーションはインストールしたF-Droid配信アプリケーションを自動的に更新することも出来る。また、ウェブサイトでは全配信アプリケーションのソースコードがダウンロードできるようになっている。ユーザーは登録や、広告、ユーザー追跡といった嫌われる機能があるアプリケーションに悩まされることもフリーでないソフトウェアに依存する必要もない。F-Droidサーバーを動かしているソフトウェアはフリーソフトウェアなので、誰でも自身のAndroidアプリケーションリポジトリをセットアップすることができる。", @@ -4513,7 +4637,7 @@ "yacy:ja", "ref" ], - "youtube":"YouTube(ユーチューブ)は、アメリカ合衆国カリフォルニア州サンブルーノに本社を置くオンライン動画共有プラットフォーム。アクティブユーザー数は、2022年1月時点では25億6,200万人(うち定額制サービス契約者数は8000万人以上)であり、ソーシャルメディアとしては世界第2位。2005年2月にPayPalの元従業員であるチャド・ハーリー、スティーブ・チェン、ジョード・カリムの3人によって設立された。その後、2006年11月に16.5億米ドルでGoogleに買収され、現在は同社の子会社の1つとして運営されている。アレクサ・インターネットランキングによると、Google 検索に次いで2番目にアクセス数の多いウェブサイトである。" + "youtube":"YouTube(ユーチューブ)は、アメリカ合衆国カリフォルニア州サンブルーノに本社を置くオンライン動画共有プラットフォーム。アクティブユーザー数は、2022年1月時点では25億6,200万人(うち定額制サービス契約者数は8000万人以上)であり、ソーシャルメディアとしては世界第2位。2005年2月にPayPalの元従業員であるチャド・ハーリー、スティーブ・チェン、ジョード・カリムの3人によって設立された。その後、2006年11月に16.5億米ドルでGoogleに買収され、現在は同社の子会社の1つとして運営されている。アレクサ・インターネットランキングによると、Google 検索に次いで2番目にアクセス数の多いウェブサイトである" }, "ko":{ "9gag":"9GAG는 홍콩의 이미지 기반 소셜 미디어 사이트이다. 2011년 12월 기준 월 페이지뷰가 10억 건을 넘었다. 인터넷에 유행하는 이미지가 주로 올라오는 것으로 알려져 있다. 레딧과 같은 다른 비슷한 사이트와 마찬가지로 게시글에 덧글과 추천을 할 수 있다.", @@ -4540,7 +4664,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bing은 지능적인 검색 기능은 사용자가 원하는 정보를 빠르게 검색하고 보상을 제공합니다.", + "Microsoft Bing으로 검색하고 AI의 강력한 기능을 사용하여 정보를 찾고, 웹 페이지, 이미지, 동영상, 지도 등을 탐색할 수 있습니다. 호기심 많은 사람들을 위한 스마트한 검색 엔진입니다.", "https://www.bing.com/videos" ], "bitbucket":"빗버킷(Bitbucket)은 아틀라시안 소유의 웹 기반 버전 관리 저장소 호스팅 서비스로서, 깃(2011년 10월 이후) 버전 관리 시스템을 사용하는 소스 코드 및 개발 프로젝트를 대상으로 한다. 빗버킷은 상용 플랜과 무료 계정을 동시에 제공한다. 2010년 9월 기준으로 무료 계정의 경우 무제한 수의 개인 저장소(무료 계정의 경우 최대 5명의 사용자 보유 가능)를 제공한다. 빗버킷은 지라, 힙챗, 컨플루언스, 밤부 등의 기타 아틀라시안 소프트웨어와 연동된다.", @@ -4610,7 +4734,7 @@ "google":"구글 검색(영어: Google Search)은 구글이 소유한 웹 검색 엔진이다. 구글 검색은 월드 와이드 웹에서 가장 많이 쓰이는 검색 엔진으로, 다양한 서비스를 통해 날마다 수 억 번의 쿼리를 수신한다.", "google images":"구글 이미지(Google Images)는 구글이 제작하여 2001년 7월에 선보인 검색 서비스로, 이미지 콘텐츠를 찾기 위해 웹을 검색하도록 도와준다. 그림을 검색할 때 일치하는 각 그림의 섬네일이 나타난다. 사용자가 섬네일을 클릭하면 그림은 웹사이트 위의 상자로 표시된다. 이 때 사용자는 상자를 닫고 웹사이트를 검색하거나 완전한 크기의 그림을 볼 수 있다.", "google news":"구글 뉴스(Google News)는 구글이 제공하고 운영하는 무료 뉴스 애그리게이터이다. 자동 집계 알고리즘에 의해 수천 곳의 발행사로부터 최신의 정보를 선별한다. 현 총괄자는 리처드 징그러스이다.", - "google play apps":"구글 플레이(영어: Google Play), 또는 Play 스토어는 음악, 동영상, 책, 안드로이드 응용 프로그램, 게임을 포함한 온라인 스토어와 클라우드 미디어 플레이어를 아우르는 구글의 디지털 콘텐츠 서비스이다. 구글 플레이는 구글이 기존의 안드로이드 마켓과 구글 뮤직 서비스의 상표를 새로 변경하면서 2012년 3월에 도입되었다. 구글 플레이를 통해 안드로이드 응용 프로그램을 받을 경우, 애플의 앱 스토어와는 달리 구글의 정책에 따라 사용자가 구입한 지 2시간 이내에 다운로드한 응용 프로그램의 환불을 요구하면 구매 금액을 모두 환불해 주어야 한다.", + "google play apps":"구글 플레이(영어: Google Play) 또는 Play 스토어는 음악, 동영상, 책, 안드로이드 응용 프로그램, 게임을 포함한 온라인 스토어와 클라우드 미디어 플레이어를 아우르는 구글의 디지털 콘텐츠 서비스이다. 구글 플레이는 구글이 기존의 안드로이드 마켓과 구글 뮤직 서비스의 상표를 새로 변경하면서 2012년 3월에 도입되었다. 구글 플레이를 통해 안드로이드 응용 프로그램을 받을 경우, 애플의 앱 스토어와는 달리 구글의 정책에 따라 사용자가 구입한 지 2시간 이내에 다운로드한 응용 프로그램의 환불을 요구하면 구매 금액을 모두 환불해 주어야 한다.", "google play movies":[ "google play apps:ko", "ref" @@ -4624,10 +4748,6 @@ "kickass":"킥애스 토렌트(KickassTorrents, KAT)는 2008년에 개설된 비트토렌트 웹사이트로, 2014년 11월까지 킥애스 토렌트는 파이러트 베이를 제치고 세계에서 가장 많이 방문했던 비트토렌트 디렉토리가 되었다. KAT는 2016년 7월 20일 미국 정부에 의해 도메인이 붙잡히면서 오프라인 상태가 되었다. 이와 동시에 사이트의 프록시 서버는 직원들에 의해 작동이 중단되었다.", "library genesis":"라이브러리 제네시스(영어: Library Genesis), 약칭 립겐(LibGen)은 학술논문 및 단행본 검색엔진이다. 대개 학술줄판사에 과금을 해야 열람할 수 있는 온갖 학술자료의 pdf 파일에 접근, 다운로드할 수 있다.", "library of congress":"미국 의회도서관(美國議會圖書館, The Library of Congress)는 미국의 사실상의 국립 도서관이다. 워싱턴 D.C.에 있으며, 서재 공간으로는 세계에서 가장 크며 중요도에서도 으뜸이다. 3천만권의 대장에 정리된 도서가 있으며 470개 언어로 되어 있는 인쇄물들이 있다. 5천 8백만개의 문서들이 있으며, 구텐베르크 성서(현재 완전한 벨룸 형태의 책은 세계에 3권이 있는 것으로 알려져 있다)를 포함해서 고서를 가지고 있기로도 북아메리카에서 최고이다. 백만권의 미 정부 출판물과 백만편의 세계 신문은 3세기에 걸쳐 있고, 철된 신문도 3만 3천권, 50만개의 마이크로필름, 6천권의 만화책과 세계 최대의 법학책, 4백 80만점의 지도, 악보, 2백 7십만의 음반, 베츠 스트라디바리우스, 카사베티 스트라디바리우스도 소장하고 있다.", - "libretranslate":[ - "자유 오픈 소스 기계 번역 API. 셀프 호스팅, 오프라인에서 사용이 가능하며, 설치가 쉽습니다. 단 몇 분 만 투자하여 자신의 API 서버를 돌려보세요.자유 오픈 소스 기계 번역 API. 셀프 호스팅, 오프라인에서 사용이 가능하며, 설치가 쉽습니다. 단 몇 분 만 투자하여 자신의 API 서버를 돌려보세요.", - "https://libretranslate.com" - ], "mastodon hashtags":[ "mastodon users:ko", "ref" @@ -4647,7 +4767,7 @@ "pinterest":"핀터레스트(Pinterest)는 이용자가 스크랩하고자 하는 이미지를 포스팅하고 다른 이용자와 공유하는 소셜 네트워크 서비스이며, 명칭은 핀(Pin)과 인터레스트(Interest)의 합성어이다.", "piratebay":"파이러트베이(영어: The Pirate Bay)는 스웨덴에 있는 비트토렌트 파일을 공유하는 웹사이트다. 스웨덴의 안티 카피라이트 단체인 웹사이트에 의해 설립되었다. 2004년 10월부터 운영되어 왔고 광고를 주 수입원으로 하고 있다. 2008년 11월을 기준으로 360만 사용자를 회원으로 확보하고 있다. 알렉사 인터넷의 집계에 의하면 웹사이트 트래픽 등급이 110번째다.", "pypi":"파이썬 패키지 인덱스(Python Package Index, PyPI, /ˌpaaəpiˈaɆ/) 또는 치즈 숍(Cheese Shop)은 파이썬용 공식 타사 소프트웨어 저장소이다. 이는 펄용 CPAN 저장소 및 R용 CRAN 저장소와 유사하다. PyPI는 자선단체인 파이썬 소프트웨어 재단에서 운영한다. pip를 포함한 일부 패키지 관리자는 PyPI를 패키지 및 해당 종속성의 기본 소스로 사용한다.", - "qwant":"Qwant는 프랑스 본사를 둔, 검색 엔진이다.", + "qwant":"Qwant(프랑스어: Qwant /kwɑ̃t/[*])는 프랑스 본사를 둔 검색 엔진이다.", "qwant images":[ "qwant:ko", "ref" @@ -4700,7 +4820,7 @@ "wiktionary":"위키낱말사전(영어: Wiktionary)은 위키백과의 자매 프로젝트로, 공개된 위키 형식으로 다언어 사전을 만드는 것을 목표로 한다. 최종 목표는 \"모든 언어의 모든 낱말을 정의하는 것\"이다.", "wolframalpha":"울프럼 알파(Wolfram Alpha)는 계산용 프로그램인 매스매티카의 개발자인 물리학자 스티븐 울프럼이 만든 검색엔진으로서 슈퍼컴퓨터를 통한 인공지능을 통해 웹 상의 지식을 재구성하여 사용자에게 제공하며 간단한 연산을 직접 수행하고 그 그래픽 결과도 시뮬레이팅한다.", "wttr.in":[ - "일기 예보: not found", + "일기 예보: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy(\"야시\"로 발음)는 마이클 크리스틴(Michael Christen)이 2003년에 만든 P2P 네트워크 원칙을 기반으로 구축된 자유 분산 검색 엔진이다. 엔진은 자바 로 작성되었으며 다음과 같이 수백 대의 컴퓨터에 배포된다. 2006년 9월 소위 YaCy-peers. 각 YaCy-peer는 인터넷을 통해 독립적으로 크롤링하고, 발견된 웹 페이지를 분석 및 색인화하며, P2P 원칙을 사용하여 다른 YaCy-Peer와 공유되는 공통 데이터베이스(소위 색인)에 색인 결과를 저장한다. 이는 모든 사람이 인트라넷용 검색 포털을 구축하고 공용 인터넷 검색을 돕는 데 사용할 수 있는 검색 엔진이다.", @@ -4728,7 +4848,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Intelektualioji „Bing“ ieška leidžia lengvai ir greitai rasti tai, ko ieškote, ir apdovanoja jus.", + "Ieškokite su „Microsoft Bing“ ir naudodamiesi dirbtinio intelekto galia raskite informaciją, naršykite tinklalapius, vaizdus, vaizdo įrašus, žemėlapius ir kt. Išmanus ieškos modulis amžinai smalsiems.", "https://www.bing.com/videos" ], "brave":[ @@ -4785,7 +4905,7 @@ "https://images.google.com" ], "google news":[ - "Išsamios naujausios žinios, kurias iš viso pasaulio naujienų šaltinių surinko „Google“ naujienos.", + "Prieš tęsdami", "https://news.google.com" ], "google play apps":"Google Play – „Android“ operacinės sistemos mobiliųjų programų, knygų, žaidimų, muzikos ir filmų parduotuvė. Prieinama beveik visose šalyse.", @@ -4830,7 +4950,7 @@ "wikivoyage":"Vikikelionės – internetinis projektas, kuriamas vikitechnologija bei pagrįstas MediaWiki programine įranga. Vikikelionės nuo 2013 m. sausio 15 d. yra oficialus Vikimedijos projektas.", "wiktionary":"Vikižodynas – universalaus internetinio žodyno kūrimo projektas, Vikipedijai bei kitiems Vikimedijos projektams giminingas projektas, besiremiantis mediawiki programine įranga ir yra laisvai prieinamas internete.", "wttr.in":[ - "Orų prognozė: not found", + "Orų prognozė: Worpswede, Germany", "https://wttr.in" ], "youtube":"„YouTube“ – „Google“ bendrovės socialinis tinklas. Jame daugiausia peržiūrų sulaukia muzikiniai vaizdo klipai, pramoginiai ir mokomieji vaizdo įrašai, įvairūs vlogai, tinklalaidės, neilgi vaizdo įrašai, televizinis turinys ir kt." @@ -4852,7 +4972,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Viedā Bing meklēšana palīdz ātri atrast nepieciešamo un atalgo jūs.", + "Meklējiet, izmantojot Microsoft Bing, un lietojiet AI iespējas, lai atrastu informāciju, pārlūkotu tīmekļa lapas, attēlus, videoklipus, kartes un daudz ko citu. Vieda meklētājprogramma vienmēr zinātkārajiem.", "https://www.bing.com/videos" ], "brave":[ @@ -4956,7 +5076,7 @@ "wikivoyage":"Wikivoyage ir viens no Wikimedia Foundation projektiem, kas ir balstīts uz wiki programmatūru. Tas ir tiešsaistes brīva satura portāls ar tūrisma materiāliem. Dibināts 2006. gadā, Wikimedia Foundation to pārņēma 2012. gadā. Pašlaik šis projekts pieejams angliski un vēl vairāk nekā 10 citās valodās.", "wiktionary":"Vikivārdnīca ir brīva papildināma daudzvalodu vārdnīca, kura izveidota uz wiki bāzes. Tas ir viens no Wikimedia Foundation projektiem.", "wttr.in":[ - "Laika ziņas: not found", + "Laika ziņas: Worpswede, Germany", "https://wttr.in" ], "youtube":"YouTube ir video koplietošanas tiešsaistes sociālā tīkla tīmekļa vietne, kurā tās apmeklētāji var ievietot, skatīties un izmantot dažādus video failus. Šos failus lietotāji var novērtēt, pie katra faila norādīts tā skatījumu skaits. Aktīvo lietotāju skaits 2023. gada beigās sasniedza vairāk nekā 2 miljardus." @@ -4978,7 +5098,7 @@ "ref" ], "bing videos":[ - "Bing-ൽ നിന്നുള്ള ഇന്റലിജന്റ് തിരയൽ നിങ്ങൾ തിരയുന്നത് അതിവേഗം കണ്ടെത്തുന്നത് എളുപ്പമാക്കുന്നു, നിങ്ങൾക്ക് റിവാർഡ് നൽകുകയും ചെയ്യുന്നു.", + "Microsoft Bing ഉപയോഗിച്ച് തിരയുക, വിവരങ്ങൾ കണ്ടെത്തുന്നതിനും വെബ്‌പേജുകൾ, ചിത്രങ്ങൾ, വീഡിയോകൾ, മാപ്പുകൾ എന്നിവയും മറ്റും പര്യവേക്ഷണം ചെയ്യാനും ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസിന്റെ ശക്തി ഉപയോഗിക്കുക. എക്കാലവും ജിജ്ഞാസയുള്ളവർക്കായി ഒരു മികച്ച സെർച്ച് എഞ്ചിൻ.", "https://www.bing.com/videos" ], "brave":"ക്രോമിയം വെബ് ബ്രൗസറിനെ അടിസ്ഥാനമാക്കി ബ്രേവ് സോഫ്റ്റ്‍വെയർ.inc വികസിപ്പിച്ചെടുത്ത സൗജന്യവും ഓപ്പൺ സോഴ്‌സുമായ വെബ് ബ്രൗസറുമാണ് ബ്രേവ്. സ്വകാര്യത കേന്ദ്രീകരിച്ച ബ്രൗസറാണിത്. ഇത് സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങളിൽ ഓൺലൈൻ പരസ്യങ്ങളെയും വെബ്‌സൈറ്റ് ട്രാക്കറുകളെയും യാന്ത്രികമായി തടയുന്നതിലൂടെ മറ്റ് ബ്രൗസറുകളിൽ നിന്ന് വ്യത്യസ്ഥമാണ്. ബേസിക് അറ്റൻഷൻ ടോക്കണുകൾ (BAT) ക്രിപ്‌റ്റോകറൻസി രൂപത്തിൽ ഉപയോക്താക്കളുടെ ശ്രദ്ധയ്ക്ക് പണം നൽകുന്ന ഓപ്‌ഷണൽ പരസ്യങ്ങൾ ഓണാക്കാനുള്ള കഴിവ് ഇത് ഉപയോക്താക്കൾക്ക് നൽകുന്നു. ഉപയോക്താക്കൾക്ക് വെബ്‌സൈറ്റുകളിലേക്കും ഉള്ളടക്ക സ്രഷ്‌ടാക്കൾക്കും അവർ സമ്പാദിച്ച ക്രിപ്‌റ്റോകറൻസി നിലനിർത്താനുള്ള കഴിവിനൊപ്പം സംഭാവനകൾ അയയ്‌ക്കാൻ കഴിയും. ബ്രേവ് സോഫ്റ്റ്‍വെയറിന്റെ ആസ്ഥാനം സാൻ ഫ്രാൻസിസ്കോയിലാണ്.", @@ -5087,7 +5207,7 @@ "wikivoyage":"ഒരു വിക്കിമീഡിയ സംരംഭമാണ് വിക്കിപര്യടനം(en:wikivoyage). സ്വതന്ത്ര യാത്രാപുസ്തകമാണിത്. ലോകത്തെമ്പാടുമുള്ള പ്രധാന ടൂറിസ്റ്റ് കേന്ദ്രങ്ങളിൽ എത്തിപ്പെടുന്ന ഒരാൾക്ക് ആവശ്യമായ എല്ലാ സംഗതികളും ഉൾക്കൊള്ളിച്ചുകൊണ്ട് വെബ് അടിസ്ഥാനത്തിൽ സേവനം ലഭ്യമാക്കുക എന്നതാണ് ഇതിന്റെ ലക്ഷ്യം.", "wiktionary":"സ്വതന്ത്ര ഉള്ളടക്കമുള്ള ഒരു നിഘണ്ടു നിർമ്മിക്കുന്നതിനുള്ള ഒരു വെബ് അധിഷ്ഠിത ബഹുഭാഷാ പദ്ധതിയാണ് വിക്ഷണറി. 150-ലധികം ഭാഷകളിൽ ഇത് ലഭ്യമാണ്. സാധാരണ നിഘണ്ടുക്കളിൽ നിന്ന് വ്യത്യസ്തമായി വോളണ്ടിയർമാരുടെ ഒരു സമൂഹമാണ് വിക്ഷണറിക്ക് പിന്നിൽ പ്രവർത്തിക്കുന്നത്. വിക്കി സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കുന്ന ഇതിലെ ലേഖനങ്ങൾ വെബ്സൈറ്റിലേക്ക് പ്രവേശിക്കുവാൻ സൗകര്യമുള്ള മിക്കവാറും എല്ലാവർക്കും തിരുത്താവുന്നതാണ്.", "wttr.in":[ - "കാലാവസ്ഥ റിപ്പോർട്ട്: not found", + "കാലാവസ്ഥ റിപ്പോർട്ട്: Worpswede, Germany", "https://wttr.in" ], "youtube":"ഗൂഗിൾ ഉടമസ്ഥതയിലുള്ള ഇന്റർനെറ്റ് വീഡിയോ ഷെയറിംഗ് വെബ്‌സൈറ്റാണ്‌ യൂട്യൂബ്. ഈ സംവിധാനത്തിലൂടെ ലോകത്തെവിടെനിന്നും ഉപഭോക്താക്കൾക്ക് വീഡിയോ ഖണ്ഡങ്ങൾ മറ്റുള്ളവരുമായി പങ്കുവയ്ക്കുവാൻ കഴിയുന്നു. 2005 ഫെബ്രുവരിയിൽ പേയ്പാൽ എന്ന ഇ-വ്യാപാര കമ്പനിയിൽ ജോലി ചെയ്തിരുന്ന സ്റ്റീവ് ചെൻ, ചാഡ് ഹർലി, ജാവേദ് കരീം എന്നിവരാണ് യൂട്യൂബ് സ്ഥാപിച്ചത്. കാലിഫോർണിയയിലെ സാൻ ബ്രൂണൊ അസ്ഥാനമാക്കി പ്രവർത്തനമാരംഭിച്ച ഈ വെബ് സേവന കമ്പനി അഡോബ് ഫ്ലാഷ് സാങ്കേതിക വിദ്യ അടിസ്ഥാനമാക്കിയാണു പ്രവർത്തിക്കുന്നത്. വീഡിയോ ഖണ്ഡങ്ങൾ, സംഗീതം, ടെലിവിഷൻ പരിപാടികൾ തുടങ്ങിയവയെല്ലാം ഈ വെബ് സൈറ്റ് വഴി പങ്കുവയ്ക്കപ്പെടുന്നുണ്ട്. യുട്യൂബിൽ അംഗമായാൽ ആർക്കും വീഡിയോകൾ അപ്‌ലോഡ് ചെയ്യാവുന്നതാണ്. ശ്ലീലമായ വീഡിയോകൾ മാത്രമാണ് അനുവദിക്കുക. പുതിയ ഉപഭോക്താക്കൾക്ക് 10 മിനുട്ടിൽ കൂടുതൽ വീഡിയോ കയറ്റാൻ അനുമതി നൽകുന്നില്ല. ഓർക്കുട്ട് പോലെ തന്നെ എല്ലാ രാജ്യങ്ങളിലും യുട്യൂബിനു അനുമതി നൽകിയിട്ടില്ല. ഉപഭോക്താക്കൾക്ക് യൂട്യൂബിൽ നിന്ന് വീഡിയോ ഖണ്ഡങ്ങൾ ഡൗൺലോഡ് ചെയ്യാനും സാധിക്കും.വെബ്‌സൈറ്റ്, മൊബൈൽ അപ്ലിക്കേഷനുകൾ എന്നിവ ഉൾപ്പെടെ വീഡിയോകൾ കാണാനും മറ്റ് വെബ്‌സൈറ്റുകൾ കൂട്ടിച്ചേർക്കാനായി യൂട്യൂബ് നിരവധി മാർഗങ്ങൾ നൽകുന്നു. ലഭ്യമായ ഉള്ളടക്കത്തിൽ സംഗീത വീഡിയോകൾ, വീഡിയോ ക്ലിപ്പുകൾ, ഹ്രസ്വ, ഡോക്യുമെന്ററി ഫിലിമുകൾ, ഓഡിയോ റെക്കോർഡിംഗുകൾ, മൂവി ട്രെയിലറുകൾ, തത്സമയ സ്ട്രീമുകൾ, വീഡിയോ ബ്ലോഗുകൾ എന്നിവ ഉൾപ്പെടുന്നു. മിക്ക ഉള്ളടക്കവും സൃഷ്ടിക്കുന്നത് വ്യക്തികളാണ്, പക്ഷേ മീഡിയ കോർപ്പറേഷനുകളും വീഡിയോകൾ പ്രസിദ്ധീകരിക്കുന്നു. കാണുന്നതിനും അപ്‌ലോഡുചെയ്യുന്നതിനും പുറമെ, രജിസ്റ്റർ ചെയ്ത ഉപയോക്താക്കൾക്ക് വീഡിയോകളിൽ അഭിപ്രായമിടാനും റേറ്റുചെയ്യാനും പ്ലേലിസ്റ്റുകൾ സൃഷ്ടിക്കാനും മറ്റ് ഉപയോക്താക്കൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യാനും കഴിയും. 2005 ൽ സ്ഥാപിതമായ യുട്യൂബ് തൊട്ടടുത്ത വർഷം ഗൂഗിൾ 1.65 ബില്യൺ യുഎസ് ഡോളറിന് സ്വന്തമാക്കി. 2020 ൽ 19.8 ബില്യൺ ഡോളർ സമ്പാദിച്ച യൂട്യൂബ് ഗൂഗിളിന്റെ ഏറ്റവും ലാഭകരമായ അനുബന്ധ സ്ഥാപനങ്ങളിലൊന്നായി ഇത് മാറി. ഗൂഗിളിന്റെ ആഡ്സെൻസ്(AdSense) പ്രോഗ്രാമിൽ നിന്ന് യൂട്യൂബും തിരഞ്ഞെടുത്ത സ്രഷ്‌ടാക്കളും പരസ്യ വരുമാനം നേടുന്നു. ഭൂരിഭാഗം വീഡിയോകളും കാണാൻ സൗജന്യമാണ്, പക്ഷേ ചിലതിന് സംഗീതമോ പ്രീമിയം സബ്സ്ക്രിപ്ഷനോ ആവശ്യമാണ്." @@ -5237,8 +5357,8 @@ "https://www.bing.com/news" ], "bing videos":[ - "Intelligente søk fra Bing gjør det enklere å finne det du søker etter raskt, og belønner deg.", - "https://www.bing.com/videos" + "bing:nb-NO", + "ref" ], "brave":[ "Søk på internett – privat. Genuint nyttige resultater, KI-baserte svar med mer – fra en uavhengig indeks. Ingen profilering, ingen biaser, ingen Big Tech.", @@ -5296,10 +5416,6 @@ "Google Foto. Det mest omfattende bildesøket på Internett.", "https://images.google.com" ], - "google news":[ - "google news:da", - "ref" - ], "google play apps":[ "Få tilgang til millioner av det nyeste innen Android-apper og -spill, musikk, filmer, TV-serier, bøker, blader og mye annet. Når som helst, hvor som helst og på alle enhetene dine.", "https://play.google.com/" @@ -5348,7 +5464,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Met de intelligente zoekmachine van Bing kunt u gemakkelijker snel vinden waar u naar op zoek bent en wordt u beloond.", + "Zoek met Microsoft Bing en gebruik de kracht van AI om informatie te zoeken, webpagina's, afbeeldingen, video's, kaarten en meer te verkennen. Een slimme zoekmachine voor altijd nieuwsgierige mensen.", "https://www.bing.com/videos" ], "bitbucket":[ @@ -5508,7 +5624,7 @@ "wiktionary":"Wiktionary is een project van de Wikimedia Foundation om een gratis meertalig woordenboek van alle woorden in alle talen te maken.", "wolframalpha":"Wolfram|Alpha is een antwoordmachine op het web, die niet zoekt naar pagina's zoals een zoekmachine doet, maar naar antwoorden op vragen, dat doet hij door te zoeken in een database van informatie. Om de antwoorden te berekenen maakt het gebruik van de software Mathematica. In maart 2009 is de antwoordmachine aangekondigd door de Britse natuurkundige Stephen Wolfram. De website is voor het publiek geopend op 15 mei 2009 en is officieel geopend op 18 mei 2009.", "wttr.in":[ - "Weerbericht voor: not found", + "Weerbericht voor: Worpswede, Germany", "https://wttr.in" ], "youtube":"YouTube is een website van YouTube LLC, een dochteronderneming van Google LLC. Het is een website waar gebruikers kosteloos en soms tegen betaling video's kunnen publiceren en kunnen bekijken. De video's om gratis te bekijken worden door advertenties onderbroken." @@ -5930,8 +6046,8 @@ "https://www.bing.com/images" ], "bing videos":[ - "Bing ਦੀ ਹੁਸ਼ਿਆਰ ਖੋਜ ਉਸ ਚੀਜ਼ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਲੱਭਣਾ ਸੌਖਾ ਬਣਾਉਂਦੀ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਤਲਾਸ਼ ਰਹੇ ਹੋ ਅਤੇ ਤੁਹਾਨੂੰ ਇਨਾਮ ਦਿੰਦੀ ਹੈ।", - "https://www.bing.com/videos" + "bing:pa", + "ref" ], "gentoo":[ "gentoo:en", @@ -5942,6 +6058,10 @@ "Google Images. ਵੈੱਬ 'ਤੇ ਸਭ ਤੋਂ ਵਿਆਪਕ ਚਿੱਤਰ ਖੋਜ।", "https://images.google.com" ], + "google news":[ + "ਤੁਹਾਡੇ ਵੱਲੋਂ ਜਾਰੀ ਰੱਖਣ ਤੋਂ ਪਹਿਲਾਂ", + "https://news.google.com" + ], "google play apps":"ਗੂਗਲ ਪਲੇ ਇੱਕ ਡਿਜੀਟਲ ਵਿਤਰਣ ਸੇਵਾ ਹੈ ਜੋ ਗੂਗਲ ਦੁਆਰਾ ਚਲਾਇਆ ਅਤੇ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਐਂਡਰੋਇਡ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ ਅਧਿਕਾਰਕ ਐਪ ਸਟੋਰ ਦੇ ਤੌਰ ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਯੂਜ਼ਰਸ ਐਂਡਰਾਇਡ ਸਾਫਟਵੇਅਰ ਡਿਵੈਲਪਮੈਂਟ ਕਿੱਟ (ਐਸ.ਡੀ.ਕੇ.) ਨਾਲ ਵਿਕਸਿਤ ਕੀਤੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਅਤੇ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਗੂਗਲ ਰਾਹੀਂ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋ ਸਕਦੇ ਹਨ। ਗੂਗਲ ਪਲੇ ਡਿਜ਼ੀਟਲ ਮੀਡੀਆ ਸਟੋਰ ਦੇ ਤੌਰ ਤੇ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਸੰਗੀਤ, ਰਸਾਲੇ, ਕਿਤਾਬਾਂ, ਫਿਲਮਾਂ ਅਤੇ ਟੀਵੀ ਪ੍ਰੋਗਰਾਮਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ। ਇਸ ਨੇ ਪਹਿਲਾਂ 11 ਮਾਰਚ, 2015 ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਔਨਲਾਈਨ ਹਾਰਡਵੇਅਰ ਰਿਟੇਲਰ, ਗੂਗਲ ਸਟੋਰ ਦੀ ਸ਼ੁਰੂਆਤ ਤਕ ਖਰੀਦਣ ਲਈ ਗੂਗਲ ਹਾਰਡਵੇਅਰ ਡਵਇਸ ਨੂੰ ਖਰੀਦਿਆ ਸੀ।", "google play movies":[ "google play apps:pa", @@ -5982,7 +6102,7 @@ "youtube":"ਯੂਟਿਊਬ ਪੇਪਾਲ (PayPal) ਦੇ ਤਿੰਨ ਸਾਬਕਾ ਮੁਲਾਜਮਾਂ ਦੁਆਰਾ ਬਣਾਈ ਇੱਕ ਵੀਡੀਓ ਸਾਂਝੀ ਕਰਨ ਵਾਲੀ ਵੈੱਬਸਾਈਟ ਹੈ ਜਿਸ ’ਤੇ ਵਰਤੋਂਕਾਰ ਵੀਡੀਓ ਵੇਖ ਅਤੇ ਖ਼ੁਦ ਆਪਣੀ ਵੀਡੀਓ ਚੜ੍ਹਾ ਸਕਦੇ ਹਨ। ਨਵੰਬਰ 2006 ਵਿੱਚ ਗੂਗਲ ਨੇ ਇਸਨੂੰ 1.65 ਬਿਲੀਅਨ ਅਮਰੀਕੀ ਡਾਲਰਾਂ ਵਿੱਚ ਖਰੀਦ ਲਿਆ ਅਤੇ ਹੁਣ ਇਹ ਗੂਗਲ ਦੀ ਇੱਕ ਸਹਾਇਕ ਕੰਪਨੀ ਹੈ। ਆਨਲਾਈਨ ਵੀਡੀਓ ਦੇਖਣ ਲਈ ਦੁਨੀਆਂ ਭਰ 'ਚ ਯੂਟਿਊਬ ਦਾ ਇਸਤੇਮਾਲ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਹੁੰਦਾ ਹੈ। ਯੂਟਿਊਬ 'ਤੇ ਜਿਹੜੀਆ ਵੀਡੀਓਜ਼ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਵੇਖਦੇ ਹੋ ਉਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਆਫਲਾਈਨ ਸੇਵ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ। ਇੰਟਰਨੈੱਟ ਤੇ ਯੂ ਟਿਯੂਬ ਰਾਂਹੀ ਪਹਿਲੀ ਵੀਡੀਉ Me at the zoo ਚੜਾਉਣ ਦੀ ਸ਼ੁਰਆਤ 23 ਅਪਰੈਲ, 2005 ਨੂੰ ਹੋਈ।" }, "pap":{ - "currency":"DuckDuckGo ta un mashin di buskeda cu ta uza informacion for di crowdsourcing cu e meta pa hisa e resultadonan tradicional y mehora e relevancia. E filosofia di e mashin di buskeda ta enfatisa privacidad y no ta warda informacion di e uzadonan. E compania internet ta funda pa Gabriel Weinberg y ta estableci na Pauli, Pennsylvania, Merca.", + "currency":"DuckDuckGo ta un mashin di buskeda cu ta uza informacion for di crowdsourcing cu e meta pa hisa e resultadonan tradicional y mehora e relevancia. E filosofia di e mashin di buskeda ta enfatisa privacidad y no ta warda informacion di e uzadonan.", "ddg definitions":[ "currency:pap", "ref" @@ -6020,7 +6140,7 @@ "wikicommons.images:pap", "ref" ], - "wikicommons.images":"Wikimedia Commons ta un proyekto di Fundashon Wikimedia, kreá dia 7 di sèptèmber 2005 ku e meta di sirbi komo archivo pa imagen i otro tipo di multimedia prosedente di e sobrá proyektonan di e fundashon. Tur file den archivo mester ta den dominio publiko òf poni na disposishon bou di lisensia liber. Aktualmente tin mas di 70 mion file multimedia ku ta wordu warda gratis.", + "wikicommons.images":"Wikimedia Commons ta un proyekto di Fundashon Wikimedia, kreá dia 7 di sèptèmber 2005 ku e meta di sirbi komo archivo pa imagen i otro tipo di multimedia prosedente di e sobrá proyektonan di e fundashon. Tur file den archivo mester ta den dominio públiko òf poni na disposishon bou di lisensia liber. Aktualmente tin mas di 70 mion file multimedia ku ta wordu warda gratis.", "wikicommons.videos":[ "wikicommons.images:pap", "ref" @@ -6058,7 +6178,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Inteligentne wyszukiwanie przez Bing ułatwia szybkie odnalezienie wartościowych wyników... i nie tylko.", + "Wyszukuj za pomocą usługi Microsoft Bing i wykorzystuj moc sztucznej inteligencji do znajdowania informacji, przeglądania stron internetowych, obrazów, wideo, map i nie tylko. Inteligentna wyszukiwarka dla zawsze ciekawych osób.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket – hostingowy serwis internetowy przeznaczony dla projektów programistycznych wykorzystujących system kontroli wersji Git oraz Mercurial, którego obecnym właścicielem jest firma Atlassian. Serwis umożliwia bezpłatne wykorzystanie usługi wraz z dodatkowymi płatnymi planami. Jest obecnie jednym z najpopularniejszych tego typu serwisów, z którego korzystają m.in. firmy Ford, PayPal, czy Starbucks. W kwietniu 2019 r. Atlassian ogłosił, że Bitbucket dotarł do 10 milionów zarejestrowanych użytkowników i ponad 28 milionów repozytoriów.", @@ -6228,10 +6348,6 @@ "wikivoyage":"Wikipodróże – portal internetowy Wikimedia Foundation poświęcony tematyce turystycznej, oparty na technologii wiki i tworzony na wolnej licencji przez zaangażowanych w ten projekt wolontariuszy.", "wiktionary":"Wiktionary – projekt Wikimedia Foundation, którego założeniem jest stworzenie wolnego słownika w każdym języku opartego na mechanizmie wiki. Wiktionary jest jednym z siostrzanych projektów Wikipedii. Polska wersja Wiktionary nosi nazwę Wikisłownik. Serwis był notowany w rankingu Alexa na miejscu 641.", "wolframalpha":"Wolfram|Alpha, Wolfram Alpha – strona internetowa, stworzona przez amerykańskie przedsiębiorstwo Wolfram Alpha LLC. Formułuje ona odpowiedź na pytanie zadane w języku naturalnym, wykonuje obliczenia, przedstawia dane statystyczne, rozwiązuje równania itp.", - "wttr.in":[ - "Pogoda w: not found", - "https://wttr.in" - ], "yacy":"YaCy – rozproszona wyszukiwarka zbudowana na zasadzie sieci peer-to-peer (P2P). Podstawą jest program napisany w Javie, funkcjonujący na kilku tysiącach komputerów, tak zwanych YaCy-peers. Każde YaCy-peer niezależnie przeszukuje internet, analizuje oraz indeksuje znalezione strony i gromadzi rezultaty indeksowania we wspólnej bazie danych, który jest współdzielony z innymi użytkownikami YaCy tak, jak w sieciach P2P.", "yacy images":[ "yacy:pl", @@ -6429,7 +6545,7 @@ "wiktionary":"Wikcionário é um projeto web multílingue pertencente à Fundação Wikimedia com a finalidade de criar um dicionário eletrônico de conteúdo livre, disponível em mais de 172 línguas diferentes. Ao contrário do padrão normal de dicionários, este é escrito colaborativamente por voluntários que usam o software wiki, permitindo que os artigos possam ser alterados e modificados por quase todas as pessoas de acesso ao site.", "wolframalpha":"Wolfram|Alpha é um mecanismo de conhecimento computacional desenvolvido pela Wolfram Research. É um serviço on-line que responde às perguntas diretamente, mediante o processamento da resposta extraída de base de dados estruturados, em vez de proporcionar uma lista dos documentos ou páginas web que poderiam conter a resposta, tal como faziam os mecanismos de busca.", "wttr.in":[ - "Previsão do tempo para: not found", + "Previsão do tempo para: Worpswede, Germany", "https://wttr.in" ], "yahoo news":"O Yahoo! News é um site de notícias que se originou como um agregador de notícias baseado na internet pelo Yahoo!. O site foi criado pelo engenheiro de software do Yahoo! Brad Clawsie em agosto de 1996. Os artigos vieram originalmente de serviços de notícias como Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN e BBC News.", @@ -6885,7 +7001,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Căutarea inteligentă de la Bing facilitează găsirea rapidă a lucrurilor pe care le căutați și vă premiază.", + "Căutați cu Microsoft Bing și utilizați puterea inteligenței artificiale pentru a găsi informații, a explora pagini web, imagini, videoclipuri, hărți și altele. Un motor de căutare inteligent pentru cei mereu curioși.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket este un serviciu de găzduire a unui depozit de control al versiunilor web, deținut de Atlassian, pentru proiecte de cod sursă și dezvoltare care utilizează sisteme de control de revizuire Mercurial sau Git. Bitbucket oferă atât planuri comerciale, cât și conturi gratuite.", @@ -7028,7 +7144,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Интеллектуальный поиск Bing позволяет быстро найти нужную информацию, получая при этом вознаграждение.", + "Выполняйте поиск с помощью Microsoft Bing и используйте мощь ИИ для обнаружения информации, просмотра веб-страниц, изображений, видео, карт и т. д. Интеллектуальная поисковая система для вечно любознательных.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket — веб-сервис для хостинга проектов и их совместной разработки, основанный на системах контроля версий Mercurial и Git. По назначению и основным предлагаемым функциям аналогичен GitHub, от которого отличается с одной стороны меньшей пользовательской базой, а с другой, имеет определённые преимущества в плане размещения непубличных репозиториев — возможностью их бесплатного хостинга с ограничением на размер команды не более пяти человек и меньшей арендной платой при большем размере команды, а также управление правами доступа на уровне отдельных ветвей проекта. Если основные преимущества GitHub лежат в области социализации программирования, Bitbucket больше ориентирован на небольшие закрытые команды разработчиков. Слоган сервиса — «Bitbucket is the Git solution for professional teams».", @@ -7211,7 +7327,7 @@ "wolframalpha":"Wolfram|Alpha — база знаний и набор вычислительных алгоритмов, вопросно-ответная система. Запущена 15 мая 2009 года.", "wordnik":"Wordnik (wordnik.com) — интернет-сайт, разрабатываемый одноименной некоммерческой организацией, представляющий собой онлайн-словарь английского языка и языковой ресурс для словарей и тезауруса. Часть контента, представленного Wordnik, основывается на известных печатных словарях английского языка, таких как Century Dictionary, American Heritage Dictionary, WordNet и GCIDE. Wordnik собрал корпус из миллиардов слов, которые используются на сайте для отображения примеров предложений, что позволяет ему предоставлять информацию о гораздо большем наборе слов, чем в обычном словаре. Wordnik использует как можно больше реальных примеров при определении слова.", "wttr.in":[ - "Прогноз погоды: not found", + "Прогноз погоды: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy — свободно распространяемая децентрализованная поисковая система, построенная по принципу одноранговой сети (P2P). Есть версии для Windows, Linux, MacOSX. Основной программный модуль, написанный на Java, функционирует на нескольких тысячах компьютеров участников сети YaCy. Каждый участник проекта независимо исследует Интернет, анализируя и индексируя найденные страницы и складывает результаты индексирования в общую базу данных, который совместно используется всеми пользователями YaCy по принципу P2P.", @@ -7323,7 +7439,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Inteligentné vyhľadávanie v službe Bing umožňuje rýchle nájdenie toho, čo hľadáte, a odmeňuje vás.", + "Vyhľadávajte pomocou Microsoft Bingu a využite silu umelej inteligencie na vyhľadanie informácií, preskúmanie webových lokalít, obrázkov, videí, máp a ďalších informácií. Inteligentný vyhľadávací nástroj pre večne zvedavých.", "https://www.bing.com/videos" ], "brave":[ @@ -7377,7 +7493,7 @@ "github":"GitHub, Inc. je poskytovateľom internetového hostingu na vývoj softvéru a správu verzií s použitím verziovacieho nástroja Git. Ponúka distribuované verziovanie a správu zdrojového kódu systémom Git, ale aj ďalšie vlastné funkcie. Umožňuje regulovať prístup a má niekoľko funkcií zameraných na spoluprácu, ako napríklad sledovanie hlásených chýb, požiadavky na nové funkcie, správa úloh, priebežná integrácia a wiki stránka pre každý projekt.", "google images":"Google Image Search je vyhľadávacia služba, pomocou ktorej Google umožňuje užívateľom vyhľadávať na internete obrázky. Bola zverejnená v roku 2001 a existuje vo všetkých jazykových verziách, v ktorých je samotný vyhľadávač. Kľúčové slová pri hľadaní obrázkov sú založené na názve súboru, slovami, ktoré na daný obrázok odkazujú a textom, ktorý je na danej stránke pri obrázku. Pri vyhľadávaní sú zobrazené miniatúry obrázkov. Keď na niektorú kliknete, obrázok je zobrazený hore a nižšie je obsah stránky na ktorej sa obrázok nachádza. Je to jednoduchšie pretože takto môžete ľahšie zistiť z akej stránky daný obrázok pochádza.", "google news":[ - "Vyčerpávajúce a aktuálne spravodajstvo zozbierané službou Google News zo zdrojov správ z celého sveta.", + "Skôr ako budete pokračovať", "https://news.google.com" ], "google play apps":"Google Play je digitálna distribučná platforma od spoločnosti Google, ktorá vznikla 6. marca 2012. Slúži tiež ako oficiálny app store pre operačný systém Android, ktorý umožňuje používateľom prehliadať a sťahovať aplikácie vytvorené pomocou Android SDK.", @@ -7460,8 +7576,8 @@ "https://www.bing.com/news" ], "bing videos":[ - "Pametno iskanje v Bingu vam omogoča, da hitro najdete, kar iščete, in vas nagradi.", - "https://www.bing.com/videos" + "bing:sl", + "ref" ], "bitbucket":[ "spletna gostiteljska storitev za projekte razvoja programske opreme", @@ -7668,7 +7784,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Паметна претрага услуге Bing помаже вам да брже пронађете оно што тражите и награђује вас.", + "Претражујте уз Microsoft Bing и користите моћ вештачке интелигенције за проналажење информација, истраживање веб страница, слика, видео записа, мапа и још много тога. Паметан претраживач за вечно радознале.", "https://www.bing.com/videos" ], "brave":"Брејв је бесплатан веб прегледач отвореног кода, који је заснован на Хромијум веб прегледачу. Брејв веб прегледач онемогућава приказивање реклама и омогућава да корисници доприносе раду креатора садржаја на интернету у виду криптовалуте БАТ.", @@ -7701,7 +7817,7 @@ "https://images.google.com" ], "google news":[ - "Свеобухватно, ажурно извештавање о вестима које Google вести прикупља из извора широм света.", + "Пре него што наставите", "https://news.google.com" ], "google play apps":", првобитно, је дигитална дистрибутивна платформа за Андроид апликације и онлајн продавница за мултимедијални садржај у власништву Гугла. Сервис дозвољава проналажење и преузимање Андроид апликација направљених уз помоћ Андроид СДК-а, као и куповину музике, часописа, књига, филмова и телевизијског програма. Корисници могу да купују и уређаје, као што су Гугл Нексус мобилни телефони и таблети.", @@ -7779,7 +7895,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Med intelligent sökning från Bing hittar du snabbt och enkelt det du söker, och du får belöningar.", + "Sök med Microsoft Bing och använd kraften i AI för att hitta information, utforska webbsidor, bilder, videor, kartor med mera. En smart sökmotor för den som alltid är nyfiken.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket är en webbaserad lagringstjänst för kodprojekt som använder Mercurial eller Git. Tjänsten startades 2008 av Jesper Nøhr och köptes upp av det australiensiska företaget Atlassian i september 2010.", @@ -7917,7 +8033,7 @@ "wiktionary":"Wiktionary är ett flerspråkigt webbaserat projekt vars syfte är att skapa en fri ordbok. Projektet finns på över 170 olika språk. Till skillnad från traditionella ordböcker är Wiktionary kollektivt skriven av volontärer. Ordboken använder sig av wikiprogramvara, som tillåter besökare och användare att redigera nästan alla artiklar. Projektets slogan är den fria ordboken. Wiktionary använder även samma wikimotor, MediaWiki, som alla andra Wikimediaprojekt.", "wolframalpha":"Wolfram Alpha är ett sökmotorliknande internetverktyg som utvecklats av Wolfram Research.", "wttr.in":[ - "Väderleksprognos för: not found", + "Väderleksprognos för: Worpswede, Germany", "https://wttr.in" ], "youtube":"Youtube är en videogemenskap, det vill säga en webbplats med videoklipp som laddas upp av dess användare, med tillhörande diskussioner och sociala medier-funktioner. Webbplatsen öppnades den 14 februari 2005." @@ -7940,7 +8056,7 @@ "ref" ], "bing videos":[ - "Bing-இன் அறிவார்ந்த தேடலானது, நீங்கள் தேடுவதை விரைவாக கண்டறிவதை எளிதாக்கி உங்களுக்கு வெகுமதிகளையும் வழங்குகிறது.", + "தகவல்களைக் கண்டறிய, வலைப்பக்கங்கள், படங்கள், வீடியோக்கள், வரைபடங்கள் மற்றும் பலவற்றை ஆராய, Microsoft Bing மூலம் தேடுங்கள் மற்றும் AI இன் சக்தியைப் பயன்படுத்துங்கள். எப்போதும் ஆர்வமுள்ளவர்களுக்கான ஒரு ஸ்மார்ட் தேடு பொறி.", "https://www.bing.com/videos" ], "brave":"பிரேவ் (Brave) என்பது கட்டற்ற, திறமூல உலாவிகளில் ஒன்றாகும். இதனை பிரேவ் மென்பொருளகம் தயாரித்துள்ளது. இந்த உலாவிக்கு அடிப்படையாக குரோமியம் உலாவி திகழ்கிறது. தனிநபர் உரிமையை மிக அதிகமாகக் காக்கும் உலாவிகளில் தலையானது. அதாவது விளம்பரங்களை அனுமதிக்காத, நீங்கள் உலாவும் வலைப்பக்கங்களை மறைமுகாமாகக் கூட குறிப்பெடுக்காத உலாவியாகும். மேலும், உலாவும் இணையப்பக்கப் பங்களிப்பாளர்களுக்கு, ஆல்ட்காயின்களை அனுப்பும் திறன் கொண்டது. 2019 ஆம் ஆண்டு, மைக்ரோசாப்ட் விண்டோசு, மேக் இயக்குதளம், லினக்சு, ஆண்ட்ராய்டு இயங்குதளம், ஐஓஎஸ் ஆகியவைகளுக்கு இதன் பதிப்பு வெளியிடப்பட்டுள்ளது. தற்போதுள்ள பதிப்பின் சிறப்பியல்பாக இயல்புநிலை வலை தேடு பொறி, டக்டக்கோ (தேடுபொறி) என்பதைக் கூறலாம். லினக்சு வகை இயக்குதளங்களில் நிறுவிக் கொள்ளவும் விரிவானக் குறிப்புகள் தரப்பட்டுள்ளன.", @@ -7988,6 +8104,10 @@ ], "github":"கிட்ஹப் இன்க் ஒரு இணைய வழி கிட் திருத்தக் கட்டுப்பாடு ஆகும். இது பெரும்பாலும் கணினி நிரல்களுக்காகப் பயன்படுகிறது. இது நிரல் திருத்தக்கட்டுப்பாடும், நிரல் மேலான்மையயும், இன்னும் பிற சேவைகளையும் அளிக்கிறது. இது பயனர் நுழைவுக் கட்டுப்பாடு, பிழை கண்காணிப்பு, திட்ட மேலான்மை, புதிய வேண்டுகோள், மற்றும் திட்டத்திற்கான விக்கி சேவையையும் வழங்குகின்றது.", "google":"கூகிள் தேடல் கூகிள் நிறுவனத்தின் உலகின் மிகப் பெரும் தேடற்பொறியாகும். கூகிள் தேடுபொறி இணையத்தில் உள்ள அனைத்து பக்கங்களில் பயனர்களின் தேடலுக்கு ஒத்த உள்ளடக்கத்தை உள்ளவையாக கருதப்படும் பக்கங்களை பட்டியலிடுகின்றது. கூகிள் தேடுபொறி பல்வேறு சேவைகள் மூலமாக பல நூறு மில்லியன் தேடல்களை மேற்கொள்கின்றது. சமீபத்தில் வெளியான கூகிள் தேடுபொறி பற்றிய வீடியோ விளம்பரம் ஒன்று பிரபலங்களை கண்கலங்க வைத்துள்ளது.", + "google images":[ + "Google Images. வலையில் கிடைக்கக்கூடிய மிக விரிவான படத் தேடல்.", + "https://images.google.com" + ], "google news":"கூகிள் செய்திகள், கூகிள் நிறுவனத்தால் வழங்கப்படும் இலவச செய்தி திரட்டி ஆகும். ஒரு தானியங்கி திரட்டல் வழிமுறை மூலம் ஆயிரக்கணக்கான பிரசுரங்களின் சமீபத்திய செய்திகளை இது தேர்ந்தெடுக்கிறது.", "google play apps":"கூகுள்பிளே என்பது இலக்கமுறை தகவல்களை வழங்கும் ஒரு சேவையாகும். இது கூகிள் நிறுவனத்தால் வழங்கப்படுகிறது. இது ஆன்டிராய்டு பயன்பாடுகள், இசைக்கோப்புகள், புத்தகங்கள், திரைப்படங்கள், விளையாட்டுகள் போன்றவற்றை கொண்ட ஓர் இணையக் கடை ஆகும். மார்ச் 2012ல் கூகுள்தனது ஆன்டிராய்டு அங்காடியையும், இசைச் சேவையையும் இணைத்து கூகுள்பிளேவை ஆரம்பித்தது. 2017 ஆம் ஆண்டு புள்ளிவிவரப்படி, 35 இலட்சம் பதிவிறக்கங்கள், இத்தளத்தில் நடந்துள்ளன.", "google play movies":[ @@ -8022,7 +8142,7 @@ ], "wikidata":"விக்கித்தரவு (Wikidata) என்பது விக்கிமீடியா நிறுவனத்தால் இயக்கப்படும் பன்மொழி விக்கி அறிவுத் தளம் ஆகும். விக்கிப்பீடியா போன்ற விக்கிமீடியத் திட்டங்களில் பயன்படுத்துவதற்கான தரவுகளை வழங்கும் பொதுமூலமாக இது தொழிற்படுகின்றது. விக்கிபேசு என்ற மென்பொருளில் இது கட்டமைக்கப்பட்டுள்ளது.", "wikinews":"விக்கிசெய்தி, விக்கிமீடியா நிறுவனத்திரால் நடத்தப்படும் கட்டற்ற செய்திக் களமாகும். இது உலகளாவிய தன்னார்வலர்கள் தாமாகவே செய்திகளை உடனுக்குடன் மேலேற்றம் செய்யும் முறையாகும்.", - "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,70,243 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. திசம்பர் 2024 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", + "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,70,552 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. சனவரி 2025 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", "wikiquote":"விக்கி மேற்கோள் (Wikiquote), விக்கிப்பீடியாவை நடத்தும் விக்கிமீடியா நிறுவனத்தின் இன்னொரு திட்டமாகும். இத்திட்டமும் விக்கி மென்பொருளை பயன்படுத்துகிறது. அனைத்து மொழிகளில் உள்ள மேற்கோள்களின் கட்டற்ற இணையத் தொகுப்பை உருவாக்குவது இத்திட்டத்தின் நோக்கமாகும். மேலும் இது புகழ்பெற்ற மக்கள், திரைப்படங்கள், புத்தகங்கள் மற்றும் பழமொழி ஆகியவற்றின் மேற்கோள்களை உள்ளடக்கிய ஒரு மேற்கோள் களஞ்சியமாகும்.", "wikisource":"விக்கிமூலம் (Wikisource) ஓர் இலவச இணைய நூலகம் ஆகும். விக்கிமீடியா அறக்கட்டளை நடத்தும் விக்கித் திட்டங்களுள் இதுவும் ஒன்று. இது கட்டற்ற உள்ளடக்கம் (பகிர்வுரிமம்) கொண்ட மூல நூல்களின் இணையத் தொகுப்பாகும்.", "wikispecies":"விக்கியினங்கள் விக்கி‎யை அடிப்படையாகக் கொண்ட விக்கிமீடியா நிறுவனத்தின் ஒரு இணையத் திட்டமாகும். இத்திட்டம் உலகிலுள்ள உயிரினங்களின் பெயர் அட்டவணையை தயாரிப்பதற்காக ஆகத்து 2004ம் வருடம் உருவாக்கப்பட்ட திட்டம் ஆகும்.", @@ -8031,7 +8151,7 @@ "wiktionary":"விக்சனரி (Wiktionary) என்பது சொற்களுக்கான பொருள், அவற்றின் மூலம், உச்சரிப்பு முதலியவற்றை உள்ளடக்கிய, கட்டற்ற பன்மொழி அகரமுதலி ஒன்றைக் கூட்டு முயற்சியில் உருவாக்கும் ஒரு திட்டமாகும். இத்திட்டம் விக்கிமீடியா நிறுவனத்தினால் வழிநடத்தப்படுகிறது. வணிக நோக்கற்ற இந்த அகரமுதலியை இலவசமாக எவரும் பயன்படுத்திக் கொள்ள முடியும்; பங்கேற்கவும் முடியும்.", "wolframalpha":"வொல்பிராம் அல்பா (Wolfram|Alpha) என்பது ஒரு கேள்விகளுக்குப் பதிலளிக்கும் இயந்திரம். இது மதமட்டிக்கா மென்பொருளை உருவாக்கிய வொல்பிராம் ஆய்வு நிறுவனத்தால் உருவாக்கப்பட்டது. கேள்விகள் இலக்கணப் பகுப்பாய்வு செய்யப்பட்டு, கணிக்கூடியவாறு ஒழுங்கமைக்கப்பட்ட தரவுகளைக் கொண்டு விடைகள் தருவிக்கப்படுகின்றன. துறைசார் கேள்விகளுக்கு இது துல்லியமான பதில்களைத் தரக்கூடியது.", "wttr.in":[ - "வானிலை அறிக்கை not found", + "வானிலை அறிக்கை Worpswede, Germany", "https://wttr.in" ], "yahoo news":"யாஹூ! செய்திகள் யாஹூ! இன் செய்திச் சேவையாகும். இதன் ஆங்கிலச் செய்திகள் CNN, USA Today போன்றவற்றில் இருந்து வருவதாகும். தமிழ்ச் செய்திகள் பெரும்பாலும் வெப்தூனியாவில் இருந்து வருவதாகும்.", @@ -8048,8 +8168,8 @@ "https://www.bing.com/images" ], "bing videos":[ - "Bingలోని మేధావి శోధన ద్వారా మీరు వెతుకుతున్నది క్షణాల్లో కనుగొనగలరు మరియు రివార్డ్‌లను పొందగలరు.", - "https://www.bing.com/videos" + "bing:te", + "ref" ], "currency":"డక్‌డక్‌గో అనేది ఒక అంతర్జాల శోధనా యంత్రం, ఇది ఫలితాలను పొందడానికి సమూహమూలాలతో కూడిన వికీపీడియా వంటి జాళగూళ్ళ నుండి సమాచారాన్ని సేకరిస్తుంది. వినియోగదారుల సమాచారాన్ని నమోదుచేసుకోకుండా, గోప్యతను కల్పిస్తుందని విధివిధానాలు తెలుపుతున్నాయి.ఈ సెర్చ్ ఇంజిన్ ఇంటర్నెట్‌లో వెతుకుతున్న దాని గురించి ఎటువంటి జాడను తీసుకోదు, ఒకరి వ్యక్తిగత సమాచారం గురించి ట్రాక్‌లను అనుసరించదు.ఈ సెర్చ్ ఇంజిన్ యొక్క నిర్వాహకులు వారు వినియోగదారుని (ట్రాకింగ్) అనుసరించరని లేదా శోధన చరిత్రను ఇతరులతో పంచుకోరని పేర్కొన్నారు. శోధన ఫలితాల్లో 'మరింత ఆధారపడే మూలాల' కంటే 'మంచి మూలం నుండి సమాచారాన్ని' అందించడానికి డక్‌డక్‌గో ప్రయత్నిస్తుంది. యాండెక్స్, యాహూ, బింగ్, యమ్లీవికీపీడియా వంటి సెర్చ్ ఇంజన్లతో సహకరించడం ద్వారా, వికీపీడియా వంటి సోషల్ నెట్‌వర్కింగ్ సైట్ల నుండి సమాచారాన్ని సేకరించడం ద్వారా వారు దీన్ని చేస్తారు.కంపెనీ నమోదు చేసిన డొమైన్ పేరులో గూగుల్-ట్రాన్స్‌ఫరబుల్ చేత DDG .gg, ddg.co, duck.com కూడా ఉన్నాయి, అవన్నీ డక్‌డక్‌గో యొక్క చిన్న URL. ఇది క్రౌడ్ సోర్స్ వెబ్‌సైట్ల నుండి డేటాను ఉపయోగిస్తుంది, సంక్షిప్త పరిచయాలు, ఇతర సంబంధిత అంశాల ప్రదర్శన కోసం పేజీ ఎగువన ఉన్న సమాచార పెట్టెలో వాటిని నింపుతుంది.", "ddg definitions":[ @@ -8082,7 +8202,7 @@ ], "google":"గూగుల్ శోధన, ఇది గూగుల్ అందించిన సెర్చ్ ఇంజిన్.2021లో రోజుకు 2 ట్రిలియన్ల కంటే ఎక్కువ అంతర్జాల శోధనలు దీని ద్వారా జరుగుతాయి, ఇది ప్రపంచ శోధన ఇంజిన్ మార్కెట్లో 92% వాటాను కలిగి ఉంది. ఇది ప్రపంచంలో అత్యధికంగా సందర్శించే వెబ్ సైట్ కూడా. ఇందులో వెతికిన విషయానికి గూగుల్ ద్వారా తిరిగి ఇవ్వబడ్డ శోధన ఫలితాల క్రమం, పాక్షికంగా, \"పేజ్ ర్యాంక్\"అని పిలువబడే ప్రాధాన్యతా ర్యాంక్ వ్యవస్థపై ఆధారపడి ఉంటుంది, అంతర్జాలంలో బహిరంగంగా అందుబాటులో ఉన్న పత్రాలలో వచనం (టెక్స్ట్) మాత్రమే కాక అనేక ప్రత్యేక సేవలు అందిస్తుంది. వీటిలో పర్యాయపదాలు, వాతావరణ అంచనాలు, సమయ మండలాలు, స్టాక్ కోట్స్, మ్యాప్ లు, భూకంప డేటా, మూవీ షోటైమ్స్, విమానాశ్రయాలు, గృహ జాబితాలు,, క్రీడా ఫలితాలు ఉన్నాయి. దీనిని మొదట 1997లో లారీ పేజ్, సెర్జీ బ్రిన్,, స్కాట్ హసన్ అభివృద్ధి చేశారు. దీనిపేరు అసలు ప్రణాళికాబద్ధమైన పేరు గూగోల్ googol తప్పుగా వ్రాయడం నుండి తీసుకోబడింది. 1999 మధ్యనాటికి, గూగుల్ $25 మిలియన్ రౌండ్ వెంచర్ క్యాపిటల్ ఫండింగ్ అందుకున్నప్పుడు, ఇది రోజుకు 500,000 శోధనలను ప్రాసెస్ చేస్తోంది", "google news":[ - "Google News ద్వారా సమగ్ర తాజా వార్తల కవరేజ్, ప్రపంచవ్యాప్తంగా అన్ని వార్తల వనరుల నుండి సేకరించబడుతుంది.", + "మీరు కొనసాగబోయే ముందు", "https://news.google.com" ], "google play apps":"గూగుల్ ప్లే అనునది గూగుల్ చే అభివృద్ధి చేయబడి నిర్వహింపబడుతున్న ఒక సాఫ్ట్‌వేర్ వేదిక. ఇక్కడ ముఖ్యంగా ఆండ్రాయిడ్, గూగుల్ క్రోమ్ ఆధారిత సాఫ్ట్‌వేర్లు ఉచితముగానూ, వ్యాపారాత్మకంగానూ లభిస్తాయి. 2014 నాటికి గూగుల్ ప్లేలో దాదాపు 7 లక్షలకు పైగా సాఫ్ట్‌వేర్ ఆప్స్ లభిస్తున్నట్లు మాషబుల్ ప్రకటించింది.", @@ -8119,7 +8239,7 @@ "wikisource":"వికీసోర్స్ స్వేచ్ఛా నకలు హక్కుల రచనలను ప్రచురించుటకు సముదాయసభ్యులు సేకరించి, నిర్వహించుచున్న ఒక స్వేచ్ఛాయుత గ్రంథాలయము. ఇది 2005 ఆగస్టు 19 న ప్రారంభమైంది. ప్రారంభంలో విశేషంగా కృషిచేసిన వాడుకరులు అన్వేషి, రాజ్, రాజశేఖర్ (Rajasekhar1961), మల్లిన నరసింహారావు, తాడేపల్లి (Tadepally), వైఙాసత్య, రాకేశ్వర, సురేష్ (Sureshkvolam), సుజాత. అన్వేషి 2007 ఏప్రిల్ నుండి డిసెంబరు మధ్య శతకాలు, భగవద్గీత, వాల్మీకి రామాయణం మొదలగునవి వికీసోర్స్ లో చేర్చాడు. తరువాత వికీసోర్స్ కి కావలసిన మూసలు తెలుగుసేత, డాక్యుమెంటేషన్ పేజీలు తయారుచేయడం, రచనలు చేర్చడం మొదలగు మెరుగులుచేశాడు. ఫ్రూఫ్ రీడ్ ఎక్స్టెన్షన్ వాడుటకు చేసిన ప్రయత్నం మధ్యలో ఆగిపోయింది. 2012 లో అది పూర్తి కావించబడింది. వైఙాసత్య దీనిలో తెలుగు నేరుగా టైపు చేసేసౌకర్యం కలిగించాడు, మొల్ల రామాయణం చేర్చటానికి కృషి చేసాడు.", "wiktionary":"విక్షనరీ, వికీపీడియా సోదర వెబ్ సైట్. ఈ పదం వికి, డిక్షనరి పదాలను కలుపగా తయారయింది. ఇది తెలుగు పదాలను వివిధమైన వ్యాకరణ, వాడుక, నానార్ధ, వ్యతిరేఖార్థ లాంటి వివరణలతో నిక్షిప్తం చేసే మాధ్యమం (నిఘంటువు). అయితే పుస్తక రూపంలో వుండే నిఘంటువులు మహా అయితే మూడు భాషలలో వుంటాయి. దీనిలో తెలుగు-తెలుగు, ఇంగ్లీషు-తెలుగుతో పాటు ఇతర విక్షనరీలోని సమాన అర్థం గల పదాలకు లింకులుండటంవలన, మీకు ప్రపంచంలోని వికీ భాషలన్నిటిలో సమాన అర్థంగల పదాలను తెలుసుకునే వీలుండటంతో, దీనిని బహుభాష నిఘంటువుగా పేర్కొనవచ్చు. తెలుగు వికీపీడియాలో లాగా, ఇందులో ఎవరైనా తెలుగు పదాలకు పేజీలను సృష్టించవచ్చు లేక మార్పులు చేయవచ్చు.", "wttr.in":[ - "వాతావరణ సమాచారము: not found", + "వాతావరణ సమాచారము: Worpswede, Germany", "https://wttr.in" ], "youtube":"యూట్యూబ్ అనేది అంతర్జాలంలో వీడియోలను ఇతరులతో పంచుకోవడాని వీలుకల్పించే ఒక అంతర్జాతీయ సేవ. దీని ప్రధాన కార్యాలయం అమెరికాలోని, కాలిఫోర్నియా రాష్ట్రం, శాన్ బ్రూనో అనే నగరంలో ఉంది." @@ -8141,7 +8261,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "การค้นหาอัจฉริยะของ Bing ช่วยให้การค้นหาสิ่งที่คุณต้องการอย่างรวดเร็วทำได้ง่ายขึ้น และคุณยังได้รับรางวัลอีกด้วย", + "ค้นหาด้วย Microsoft Bing และใช้พลังของ AI เพื่อค้นหาข้อมูล สํารวจเว็บเพจ รูปภาพ วิดีโอ แผนที่ และอื่นๆ โปรแกรมค้นหาอัจฉริยะสําหรับความอยากรู้อยากเห็นตลอดไป", "https://www.bing.com/videos" ], "brave":"เบรฟ เป็นเว็บเบราว์เซอร์ ฟรีและโอเพนซอร์สที่พัฒนาโดย Brave Software, Inc. โดยมีพืนฐานมาจากเว็บเบราว์เซอร์โครเมียม ตัวเบราว์เซอร์มีการปิดกั้นโฆษณาและเครื่องมือติดตามเว็บไซต์ และมีช่องทางให้ผู้ใช้สนับสนุนโดยการส่งคริปโทเคอร์เรนซีในรูปแบบ Basic Attention Tokens ไปยังเว็บไซต์และผู้สร้างเนื้อหา", @@ -8190,10 +8310,6 @@ ], "github":"กิตฮับ เป็นเว็บบริการพื้นที่ทางอินเทอร์เน็ต สำหรับเก็บการควบคุมการปรับปรุงแก้ไข โดยใช้กิต (Git) โดยมากจะใช้จัดเก็บรหัสต้นฉบับ แต่ยังคงคุณสมบัติเดิมของกิตไว้ อย่างการให้สิทธิ์ควบคุมและปรับปรุงแก้ไข และระบบการจัดการรหัสต้นฉบับรวมถึงทางกิตฮับได้เพิ่มเติมคุณสมบัติอื่นๆผนวกไว้ด้วย เช่น การควบคุมการเข้าถึงรหัสต้นฉบับ และ คุณสมบัติด้านความร่วมมือเช่น ติดตามข้อบกพร่อง, การร้องขอให้เพิ่มคุณสมบัติอื่นๆ, ระบบจัดการงาน และวิกิสำหรับทุกโครงการ", "google":"กูเกิล เสิร์ช เป็นเสิร์ชเอนจินจากกูเกิล และเป็นเสิร์ชเอนจินที่มีคนใช้งานมากที่สุดในโลก โดยมีการค้นหามากกว่าหนึ่งร้อยล้านครั้งต่อวัน โดยมีผู้ใช้งานกว่า 1.643 พันล้านคนต่อปี จากผลการสำรวจในปี 2551", - "google news":[ - "รายงานข่าวครอบคลุมทันเหตุการณ์ รวบรวมจากแหล่งข่าวทั่วโลกโดย Google News", - "https://news.google.com" - ], "google play apps":"กูเกิล เพลย์ เป็นบริการซื้อขายสื่อดิจิทัลจากกูเกิล รวมไปถึงร้านค้าออนไลน์ที่มีเพลง ภาพยนตร์ หนังสือ เกม และแอนดรอยด์แอปพลิเคชัน ซึ่งในมือถือที่ใช้ระบบปฏิบัติการแอนดรอยด์จะมีชื่อแอปพลิเคชันว่า Play สโตร์ โดยการซื้อ-ขายก็เปิดบริการทางมือถือด้วยเช่นกัน", "google play movies":[ "google play apps:th", @@ -8237,7 +8353,7 @@ ], "wikidata":"วิกิสนเทศ เป็นหนึ่งในโครงการของมูลนิธิวิกิมีเดีย ออกแบบมาเพื่อทำหน้าที่เป็นแหล่งข้อมูลร่วมกันสำหรับข้อมูลบางประเภท เช่น วันเกิด เป็นข้อมูลที่ตรวจสอบแล้ว และสามารถใช้ได้ในโครงการอื่น ๆ ของมูลนิธิวิกิมีเดีย เช่น วิกิพีเดีย การใช้ข้อมูลร่วมกันเช่นนี้คล้ายกับการที่วิกิมีเดียคอมมอนส์เป็นที่รวมไฟล์สื่อสำหรับโครงการอื่นในวิกิมีเดีย", "wikinews":"วิกิข่าว เป็นแหล่งข้อมูลข่าวแบบเนื้อหาเสรี และเป็นโครงการของมูลนิธิวิกิมีเดีย มูลนิธิเดียวกับที่ดูแลสารานุกรมวิกิพีเดีย ใช้ซอฟต์แวร์มีเดียวิกิ โดยสัญญาอนุญาตที่ใช้ในวิกิข่าว จะเป็นครีเอทีฟคอมมอนส์ 2.5 แตกต่างจาก GFDL และ CC-BY-SA 3.0", - "wikipedia":"วิกิพีเดีย เป็นสารานุกรมเนื้อหาเสรีหลายภาษาบนเว็บไซต์ ซึ่งได้รับการสนับสนุนจากมูลนิธิวิกิมีเดีย องค์กรไม่แสวงผลกำไร เนื้อหากว่า 35 ล้านบทความ เกิดขึ้นจากการร่วมเขียนของอาสาสมัครทั่วโลก ทุกคนที่สามารถเข้าถึงวิกิพีเดียสามารถร่วมแก้ไขได้แทบทุกบทความได้อย่างเสรี โดยมีผู้เขียนประจำราว 100,000 คน จนถึงเดือนเมษายน พ.ศ. 2556 วิกิพีเดียมี 286 รุ่นภาษา และได้กลายมาเป็นงานอ้างอิงทั่วไปที่ใหญ่ที่สุดและได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต จนถูกจัดเป็นเว็บที่มีผู้เข้าชมมากที่สุดในโลกอันดับที่ 6 ตามการจัดอันดับของอเล็กซา ด้วยจำนวนผู้อ่านกว่า 365 ล้านคน มีการประเมินว่าวิกิพีเดียมีการเรียกดูหน้าถึง 2,700 ล้านครั้งต่อเดือนในสหรัฐประเทศเดียว", + "wikipedia":"วิกิพีเดีย เป็นสารานุกรมออนไลน์เนื้อหาเสรีที่เขียนและดูแลโดยชุมชนอาสาสมัครที่รู้จักกันในชื่อ ชาววิกิพีเดีย ผ่านความร่วมมือแบบเปิดและมีเดียวิกิ ซอฟต์แวร์วิกิ วิกิพีเดียเป็นงานอ้างอิงที่ใหญ่ที่สุดและมีผู้อ่านมากที่สุดในประวัติศาสตร์ และได้รับการจัดอันดับในเว็บไซต์ที่มีผู้เข้าชมมากที่สุดสิบอันดับแรกอย่างต่อเนื่อง ข้อมูลเมื่อ สิงหาคม 2024 เซมรัชจัดให้วิกิพีเดียอยู่ในอันดับ 4 และซิมิลาร์เว็บจัดให้อยู่ในอันดับ 7 วิกิพีเดียที่ก่อตั้งโดยจิมมี เวลส์กับแลร์รี แซงเงอร์เมื่อวันที่ 15 มกราคม พ.ศ. 2544 และได้รับการโฮสต์ตั้งแต่ พ.ศ. 2546 ผ่านมูลนิธิวิกิมีเดีย องค์กรไม่แสวงหาผลกำไรสัญชาติอเมริกันที่ได้ทุนส่วนใหญ่ผ่านการบริจาคจากผู้อ่าน", "wikiquote":"วิกิคำคม เป็นหนึ่งในโครงการของมูลนิธิวิกิมีเดีย โดยมีเป้าหมายรวบรวมคำคมจากบุคคลสำคัญ คำสุภาษิตและคำพังเพยจากทั่วมุมโลก โดยในวิกิคำคมจะมีการใช้งานทั้งหมดเป็นภาษาไทย ซึ่งข้อความบางส่วนดัดแปลง หรือแปลความมาจากวิกิคำคมในภาษาอื่น วิกิคำคมใช้ซอฟต์แวร์มีเดียวิกิ ซึ่งเป็นซอฟต์แวร์เดียวกันกับวิกิพีเดีย", "wikisource":"วิกิซอร์ซ เป็นหนึ่งในโครงการของมูลนิธิวิกิมีเดีย และเป็นโครงการพี่น้องกับ วิกิพีเดีย และเปิดเสรี เป็นห้องสมุดดิจิทัลออนไลน์ที่รวบรวมเอกสารต้นทาง ในทุกๆ ภาษา ที่เป็นสาธารณสมบัติ หรืออนุญาตให้ใช้ได้ ภายใต้สัญญาอนุญาตเสรี", "wikispecies":"วิกิสปีชีส์ เป็นโครงการที่ได้รับการสนับสนุนจากมูลนิธิวิกิมีเดีย ที่ให้โอกาสผู้เขียน เข้ามาแก้ไขเพิ่มเติม เป็นสารบบของสปีชีส์ที่เปิดกว้างและใช้ได้", @@ -8245,7 +8361,7 @@ "wikivoyage":"วิกิท่องเที่ยว เป็นคู่มือท่องเที่ยวออนไลน์สำหรับแหล่งท่องเที่ยวและหัวข้อท่องเที่ยวที่เขียนโดยอาสาสมัคร ชื่อของโครงการนี้ในภาษาอังกฤษประกอบด้วย \"Wiki\" และ \"Voyage\" คำภาษาฝรังเศสที่หมายถึงการท่องเที่ยว การเดินทาง", "wiktionary":"วิกิพจนานุกรม เป็นโครงการหนึ่งของมูลนิธิวิกิมีเดียที่มีเป้าหมายรวบรวมคำศัพท์ วลี หรือประโยค พร้อมคำอ่าน ความหมาย คำที่เกี่ยวข้อง และคำแปลในภาษาอื่น เปรียบเสมือนพจนานุกรมทุกภาษาในที่เดียวกัน โดยมีให้ใช้งานถึง 182 ภาษา การทำงานของเว็บไซต์คล้ายกับวิกิพีเดียที่เปิดให้ใครก็ได้สามารถเพิ่มและแก้ไขเนื้อหา โดยรับรองตัวอักษรของทุกภาษาที่รหัสยูนิโคดรองรับ วิกิพจนานุกรมใช้ซอฟต์แวร์มีเดียวิกิเช่นเดียวกับวิกิพีเดีย", "wttr.in":[ - "รายงานสภาพอากาศ: not found", + "รายงานสภาพอากาศ: Worpswede, Germany", "https://wttr.in" ], "youtube":"ยูทูบ ตามสำเนียงอเมริกัน หรือ ยูทิวบ์ ตามสำเนียงบริเตน เป็นเว็บไซต์เผยแพร่วิดีโอโดยมีสำนักงานอยู่ที่แซนบรูโน แคลิฟอร์เนีย สหรัฐอเมริกา ผู้สร้างเว็บไซต์ดังกล่าว คือ อดีตพนักงาน 3 คนในบริษัทเพย์แพล อันประกอบด้วยแชด เฮอร์ลีย์ สตีฟ เชน และยาวีด คาริม โดยสร้างในเดือนกุมภาพันธ์ 2548 ในเดือนพฤศจิกายน 2549 กูเกิลซื้อยูทูบซื้อไปในราคา 1.65 พันล้านดอลลาร์สหรัฐ ยูทูบเป็นหนึ่งในบริษัทย่อยของกูเกิล เว็บไซต์ยังสามารถให้ผู้ใช้งานสามารถอัปโหลด ดู หรือแบ่งปันวิดีโอได้เลย" @@ -8349,7 +8465,7 @@ "hoogle":"Haskell, isim babası matematikçi Haskell Curry olan arı işlevsel programlama dilidir. Haskell'i birçok programlama dilinden ayıran özellikleri tembel değerlendirme, monadlar ve tür sınıflarıdır. Haskell, Miranda dilinin semantikleri üzerine kuruludur. Akademide ve endüstride yoğun olarak kullanılmaktadır.", "imdb":"IMDb ; filmler, diziler, televizyon programları, video oyunları ve internet içerikleri hakkında bilgiler barındıran çevrimiçi bir bilgi bankasıdır. Sinema ve televizyon yapımları hakkında oyuncu kadrosu, yapım ekibi, biyografiler, özetler, ilginç bilgiler, puanlar ve eleştiriler gibi bilgileri içerir. İlk kurulduğunda amatör sinemaseverler tarafından yönetilen IMDb, günümüzde Amazon'un alt kuruluşu IMDb.com Inc. tarafından yönetilmektedir.", "imgur":"Imgur Alan Schaaf tarafından 2009 yılında kurulan Amerikan çevrimiçi görüntü paylaşım topluluğu ve görüntü barındırma sitesi.", - "kickass":"KickassTorrents bir dizin için torrent dosyaları ve magnet bağlantıları kullanarak kullanıcıdan kullanıcıya dosya paylaşımı yöntemini sunan ve BitTorrent protokolünü kullanan bir web sitesi idi. Site 2008'de kuruldu ve 20 Temmuz 2016'da Amerika Birleşik Devletleri Hükümeti tarafından alan adına el konularak kullanıma kapatıldı. Sitenin vekil sunucuları da çalışanlar tarafından yayından kaldırıldı.", + "kickass":"KickassTorrents bir dizin için torrent dosyaları ve magnet bağlantıları kullanarak kullanıcıdan kullanıcıya dosya paylaşımı yöntemini sunan ve BitTorrent protokolünü kullanan bir web sitesi idi. Site 2008'de kuruldu ve 20 Temmuz 2016'da Amerika Birleşik Devletleri Hükûmeti tarafından alan adına el konularak kullanıma kapatıldı. Sitenin vekil sunucuları da çalışanlar tarafından yayından kaldırıldı.", "library genesis":"Library Genesis (Libgen), bilimsel dergi makaleleri, akademik ve genel ilgi kitapları, resimler, çizgi romanlar ve dergiler için bir dosya paylaşım web sitesidir. Kısmen, site başka türlü ödeme duvarı olan veya başka bir yerde dijitalleştirilmeyen içeriğe ücretsiz erişim sağlar. Libgen kendisini \"kamuya açık internet kaynaklarından toplanan\" ve kullanıcılar tarafından yüklenen araştırılabilir makale, kitap ve resim veritabanı sağlayan bir \"link toplayıcı\" olarak tanımlamaktadır.", "library of congress":"Amerika Birleşik Devletleri Kongre Kütüphanesi, ABD'nin ulusal kütüphanesidir. Dünyanın en büyük ve en önemli kütüphanelerinden olan kongre kütüphanesi Washington'da bulunmaktadır. Ayrıca ABD'de yer alan en eski federal kültür yapısıdır.", "mastodon hashtags":[ @@ -8434,10 +8550,6 @@ "wikivoyage":"Wikivoyage, gezi yerleri ve seyahat konularının gönüllüler tarafından yazıldığı ücretsiz web tabanlı seyahat rehberidir.", "wiktionary":"Vikisözlük (Wiktionary), Wikimedia Vakfı'nın projelerinden olup her dilde özgür birer sözlük oluşturma amacıyla 12 Aralık 2002 tarihinde başlatılmıştır. Vikipedi'nin kardeş projelerindendir. Türkçe Vikisözlük ise 2 Mayıs 2004 tarihinde başlatılmıştır.", "wolframalpha":"Wolfram Alpha, Matematiksel hesaplar yapan bilim insanlarının tercihlerinden biri olan Mathematica yazılımının geliştiricisi Stephen Wolfram'ın sahibi olduğu Wolfram Research tarafından geliştirilen bir bilgi motorudur.", - "wttr.in":[ - "Hava beklentisi: not found", - "https://wttr.in" - ], "yahoo news":"Yahoo! News, Yahoo!'ya bağlı olarak İnternet tabanlı bir RSS okuyucu olarak faaliyet gösteren bir web sitesidir. Ağustos 1996'da kurulan sitedeki haberler Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN ve BBC News gibi haber kaynaklarından gelir. 19 Aralık 2006'ya kadar haberlerde yorum yapılmasına izin veren site, 2 Mart 2010'da bu özelliği geri getirmiştir.", "youtube":"YouTube, Google'a ait bir Amerikan çevrimiçi video paylaşım ve sosyal medya platformudur. Merkezi San Bruno, Kaliforniya'da olan platform; 15 Şubat 2005'te üç eski PayPal çalışanı tarafından kuruldu. Platform; kullanıcılarına video yükleme, izleme ve paylaşma imkânı sunmakta olup medya şirketleri ve kullanıcı üretimi videoların gösterimi için WebM, H.264 ve Adobe Flash Video teknolojilerini kullanır. Genel olarak video klipler, televizyon klipleri, müzik videoları, video bloglar, kısa özgün videolar ve eğitim videoları gibi içerikler yayınlanmaktadır." }, @@ -8459,8 +8571,8 @@ "https://www.bing.com/news" ], "bing videos":[ - "Bing’тан акыллы эзләү сез эзләгән әйберләрнең тиз табуны җиңеләйтә һәм сезне бүләкли.", - "https://www.bing.com/videos" + "bing:tt", + "ref" ], "gentoo":[ "gentoo:en", @@ -8527,7 +8639,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Інтелектуальний пошук у Bing дає змогу швидко знаходити потрібне й отримувати винагороди.", + "Виконуйте пошук за допомогою Microsoft Bing і використовуйте можливості ШІ, щоб знаходити інформацію, переглядати веб-сторінки, зображення, відео, карти тощо. Інтелектуальний засіб пошуку для тих, кому завжди цікаво.", "https://www.bing.com/videos" ], "bitbucket":"Bitbucket — вебсервіс для хостингу проєктів на базі систем керування версіями: Mercurial та Git. Bitbucket надає як безкоштовні так і платні послуги. Є аналогом GitHub, однак, на відміну від GitHub, який до січня 2019 року зберігав файли безкоштовних профілів лише у відкритому доступі, Bitbucket від самого початку дозволяв безкоштовно створювати приватні репозиторії з можливістю спільної роботи з файлами до 5-ти користувачів. Bitbucket інтегрований з іншими програмними продуктами Atlassian, такими як, JIRA, Confluence, Bamboo та HipChat.", @@ -8695,7 +8807,7 @@ "wiktionary":"Вікісловни́к — багатомовний онлайн-словник довільного наповнення — україномовний розділ проєкту Wiktionary. Тут зібрали й повсякчас поповнюють тлумачення й переклади українських слів, а ще переклади слів і висловів з інших мов.", "wolframalpha":"Wolfram|Alpha — база знань і набір обчислювальних алгоритмів. Не є пошуковою системою. Запущено 15 травня 2009.", "wttr.in":[ - "Прогноз погоди для: not found", + "Прогноз погоди для: Worpswede, Germany", "https://wttr.in" ], "yacy":"YaCy вільна пошукова машина та пошукова система, побудована на принципах однорангової (P2P) мережі. Пошукова система складається з окремих вузлів — примірників програмного забезпечення, написаного на Java, яке користувачі встановлюють на свої комп'ютери з доступом до Інтернет. Кожен вузол самостійно збирає, аналізує та індексує сторінки Інтернет та обмінюється результатами індексації в мережі, формуючи загальну базу даних, яка зберігається розподілено та використовується разом з іншими вузлами. За допомогою YaCY також можна створити пошуковий портал для внутрішньої мережі або пошуковий портал для власних вебсторінок.", @@ -8728,7 +8840,7 @@ "https://www.bing.com/news" ], "bing videos":[ - "Tìm kiếm thông minh từ Bing giúp bạn dễ dàng tìm thấy những gì bạn đang tìm kiếm hơn và trao thưởng cho bạn.", + "Tìm kiếm bằng Microsoft Bing và sử dụng sức mạnh của AI để tìm thông tin, khám phá các trang web, hình ảnh, video, bản đồ, v.v. Một công cụ tìm kiếm thông minh dành cho những người luôn tò mò.", "https://www.bing.com/videos" ], "brave":"Brave là một trình duyệt web tự do nguồn mở được phát triển bởi Brave Software Inc. dựa trên trình duyệt web Chromium. Trình duyệt này có tính năng chặn quảng cáo và theo dõi trang web. Trong phiên bản tương lai của trình duyệt, công ty dự định sẽ áp dụng một mô hình kinh doanh pay-to-surf.", @@ -8780,7 +8892,10 @@ "gentoo:en", "ref" ], - "github":"GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm. GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản. Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí. Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới.", + "github":[ + "dịch vụ lưu trữ dành cho các dự án phần mềm sử dụng Git", + "wikidata" + ], "google":"Google Tìm kiếm, cũng được gọi với tên tiếng Anh phổ biến là Google Search hay đơn giản là Google, là dịch vụ cung cấp chính và quan trọng nhất của công ty Google. Dịch vụ này cho phép người truy cập tìm kiếm thông tin về trên Internet bằng cách sử dụng công cụ tìm kiếm Google, bao gồm các trang Web, hình ảnh & nhiều thông tin khác.", "google news":"Google News là một trang web tổng hợp tin tức tự động được cung cấp bởi Google. Ý tưởng ban đầu được hình thành từ việc xếp hạng trang web của Google, được phát triển bởi Krishna Bharat vào năm 2001, trưởng bộ phận Nghiên cứu của Google. Không ai được thay thế trang chủ hoặc nội dung của nó. Tất cả đều được thực hiện bằng các giải thuật tổng hợp tin. Google News trở thành bản chính thức vào tháng 1 năm 2006. Hiện trang đã có phiên bản tiếng Việt tại địa chỉ http://news.google.com.vn.", "google play apps":"Google Play trước đây là Android Market, là một nền tảng phân phối kỹ thuật số các ứng dụng cho hệ điều hành Android và cửa hàng truyền thông kỹ thuật số, điều hành bởi Google. Dịch vụ cho phép người dùng duyệt và tải về các ứng dụng phát triển bởi Android SDK và được đăng tải thông qua Google, như nhạc, tạp chí, sách, phim, chương trình truyền hình. Người dùng có thể mua phần cứng như Chromebook, Google Nexus, Chromecast, phụ kiện, thông qua Google Play.", @@ -8855,7 +8970,7 @@ "wiktionary":"Wiktionary là một trong những dự án trực thuộc Quỹ Hỗ trợ Wikimedia, cùng với Wikipedia, để biên soạn một bộ từ điển nội dung mở dùng hệ thống wiki, bao gồm nhiều ngôn ngữ. Dựa vào ý tưởng của ông Daniel Alston, nó được thành lập vào ngày 12 tháng 12 năm 2002. Vào ngày 29 tháng 3 năm 2004, hai phiên bản ngôn ngữ đầu tiên của Wiktionary được mở cửa, tiếng Pháp và tiếng Ba Lan. Sau đó, nhiều phiên bản ngôn ngữ khác được bắt đầu và đang được phát triển. Wiktionary đã ở một địa chỉ tạm đến ngày 1 tháng 5 năm 2004, khi nó được di chuyển đến địa chỉ chính của nó. Wiktionary tiếng Anh đã có hơn 896.000 mục từ và Wiktionary tiếng Việt là phiên bản ngôn ngữ lớn thứ năm có hơn 228.000 mục từ.", "wolframalpha":"WolframAlpha là một máy trả lời do Wolfram Research phát triển. Đây là một dịch vụ trực tuyến có nhiệm vụ trả lời các câu hỏi nhập vào trực tiếp bằng cách tính toán câu trả lời từ các dữ liệu có cấu trúc, chứ không chỉ cung cấp một danh sách các tài liệu hoặc trang có web có thể chứa câu trả lời như cách máy tìm kiếm thường làm. Website này được Stephen Wolfram công bố vào tháng 3 năm 2009, và được phát hành cho công chúng ngày 15 tháng 5 năm 2009.", "wttr.in":[ - "Báo cáo thời tiết: not found", + "Báo cáo thời tiết: Worpswede, Germany", "https://wttr.in" ], "youtube":"YouTube là một nền tảng chia sẻ video trực tuyến của Mỹ có trụ sở chính tại San Bruno, California. Nền tảng này được tạo ra vào tháng 2 năm 2005 bởi ba nhân viên cũ của PayPal — Chad Hurley, Steve Chen và Jawed Karim — đã được Google mua lại vào tháng 11 năm 2006 với giá 1,65 tỷ đô la Mỹ và hiện hoạt động như một trong những công ty con của Google. YouTube là trang web được truy cập nhiều thứ hai sau Google Tìm kiếm, theo xếp hạng của Alexa Internet." @@ -8870,11 +8985,6 @@ "ref" ], "bandcamp":"Bandcamp是一家美国線上音乐公司, 由前Oddpost联合创始人Ethan Diamond与程序员Shawn Grunberger、Joe Holt和Neal Tucker于2008年创立,总部位于加利福尼亚。", - "bing":"()是一款由微软公司推出的網路搜尋引擎。该服务起源于微软以前的搜索引擎:MSN Search,Windows Live Search和后来的Live Search。Bing提供各种搜索服务,包括Web、视频、图像、学术、词典、新闻、地图、旅游等搜索产品,以及翻译和人工智能产品Bing Chat。", - "bing images":[ - "bing:zh-HK", - "ref" - ], "caddy.community":[ "discuss.python:zh-HK", "ref" @@ -8888,7 +8998,7 @@ "free software directory":"自由软件目录是一个自由软件基金会(FSF)和联合国教育、科学及文化组织( UNESCO )的项目。自由软件目录包含自由操作系统下运行的有用自由软件。", "genius":"Genius 是一家北美数字媒体公司,於2009年8月由湯姆·雷曼、伊兰·泽科里和马胡德·莫哈代姆建立。該網站允許使用者對歌曲歌词、新闻故事、诗歌和文件等提供注釋和解释。", "github":"GitHub是一个在线软件源代码托管服务平台,用于公开程序或软件的代码。使用Git作为版本控制软件,由开发者克里斯·汪斯崔斯、P·J·海特和汤姆·普雷斯顿·沃纳使用Ruby on Rails编写而成。在2018年,GitHub被微软公司收购。", - "goo":"Goo是一个日本的网络搜索引擎(技術由Google搜索提供)和门户网站,該網站會抓取和索引其他日语网站並呈現給用戶。Goo由日本NTT Communications的子公司NTT Resonant运营。", + "goo":"goo是由日本NTT Communications的子公司NTT Resonant运营的网络搜索引擎(技術由Google搜索提供)和门户网站。該網站會抓取和索引其他日语网站並呈現給用戶。", "google images":"Google图片搜索是Google公司於2001年7月推出的图片搜索服務。Google Chrome及Firefox提供擴充功能搜索網絡圖像。", "google news":"Google新闻(英語:)是Google开发的一款Web新闻聚合器,由Google首席工程師克里希纳·巴拉特 創造與領導開發。", "google play apps":"又稱Play 商店,前身为Android Market。是由Google为Android作業系統所開發的流動應用程式數位發行平台,同时也是数字娱乐品牌。它作為Android作業系統的官方應用商店,允許用戶瀏覽和下載使用Android SDK開發並透過Google發布的應用程式。 Google Play也是數位媒體商店,提供音樂,雜誌,書籍,電影和電視節目。它之前提供了Google硬件裝置,直到2015年3月11日推出一個單獨的線上硬件零售商Google Store。", @@ -8973,16 +9083,16 @@ "ref" ], "bing":[ - "bing:zh-HK", - "ref" + "使用 Microsoft Bing 搜尋,並使用 AI 的功能來尋找資訊、探索網頁、影像、影片、地圖等等。適合永遠感到好奇的人員的智慧型搜尋引擎。", + "https://www.bing.com" ], "bing images":[ - "bing:zh-HK", - "ref" + "Bing 影像是最佳的影像搜尋引擎,可讓使用者根據您的需求搜尋及探索最相關、高品質的影像", + "https://www.bing.com/images" ], "bing videos":[ - "Bing 的智慧型搜尋可讓您更輕而易舉找到想找的資訊,同時還因此獲得獎勵。", - "https://www.bing.com/videos" + "bing:zh-Hans-CN", + "ref" ], "caddy.community":[ "discuss.python:zh-HK", @@ -9189,7 +9299,7 @@ "ref" ], "wttr.in":[ - "天気予報: not found", + "天気予報: Worpswede, Germany", "https://wttr.in" ], "youtube":[ @@ -9226,14 +9336,6 @@ "bandcamp:zh-HK", "ref" ], - "bing":[ - "bing:zh-HK", - "ref" - ], - "bing images":[ - "bing:zh-HK", - "ref" - ], "caddy.community":[ "discuss.python:zh-HK", "ref" diff --git a/searx/data/engine_traits.json b/searx/data/engine_traits.json index e4d8ef933..13f080f09 100644 --- a/searx/data/engine_traits.json +++ b/searx/data/engine_traits.json @@ -18,11 +18,22 @@ "cbr", "cbz", "djvu", + "doc", "epub", "fb2", + "htm", + "html", + "jpg", + "lit", + "lrf", + "mht", "mobi", + "opf", "pdf", - "txt" + "rar", + "rtf", + "txt", + "zip" ], "sort": [ "", @@ -6900,6 +6911,7 @@ "GH", "GI", "GL", + "GM", "GN", "GP", "GQ", @@ -7054,6 +7066,7 @@ "am": "amharic", "ar": "arabic", "as": "assamese", + "ast": "asturian", "az": "azerbaijani", "ba": "bashkir", "be": "belarusian", diff --git a/searx/data/osm_keys_tags.json b/searx/data/osm_keys_tags.json index 82c72b0fb..15ee2d18e 100644 --- a/searx/data/osm_keys_tags.json +++ b/searx/data/osm_keys_tags.json @@ -7,6 +7,7 @@ "bg": "адрес", "ca": "adreça", "cs": "poštovní adresa", + "cy": "cyfeiriad", "da": "adresse", "de": "postanschrift", "el": "ταχυδρομική διεύθυνση", @@ -16,6 +17,8 @@ "fa": "نشانی", "fi": "postiosoite", "fr": "adresse postale", + "ga": "seoladh poist", + "gl": "enderezo postal", "he": "כתובת", "hr": "poštanska adresa", "hu": "postacím", @@ -25,7 +28,6 @@ "kn": "ವಿಳಾಸ", "ko": "주소", "lv": "pasta adrese", - "ms": "alamat", "nb": "adresse", "nl": "postadres", "pl": "adres pocztowy", @@ -34,8 +36,10 @@ "ru": "почтовый адрес", "sk": "adresa (pošta)", "sl": "naslov", + "sq": "adresa", "sv": "postadress", "ta": "முகவரி", + "te": "చిరునామా", "tr": "adres", "uk": "поштова адреса", "ur": "پتہ", @@ -51,6 +55,7 @@ "bg": "пейка", "ca": "banc", "cs": "lavice", + "cy": "mainc", "da": "bænk", "de": "sitzbank", "el": "παγκάκι", @@ -60,6 +65,9 @@ "fa": "نیمکت", "fi": "penkki", "fr": "banc", + "ga": "binse", + "gd": "being", + "gl": "banco", "he": "ספסל", "hr": "klupa", "hu": "pad", @@ -69,7 +77,6 @@ "kn": "ಬೆಂಚು", "ko": "벤치", "lt": "suolas", - "ms": "bangku", "nb": "benk", "nl": "bank", "pl": "ławka", @@ -78,8 +85,10 @@ "ru": "скамья", "sl": "klop", "sv": "bänk", + "te": "బెంచి", "tr": "bank", "uk": "лава", + "ur": "بینچ (فرنیچر)", "vi": "băng ghế", "zh": "長椅", "zh-cn": "长椅" @@ -91,7 +100,8 @@ "fr": "bac", "it": "bidone", "sl": "koš", - "sv": "kärl" + "sv": "kärl", + "zh": "桶" } }, "brand": { @@ -110,6 +120,8 @@ "fa": "برند", "fi": "brändi", "fr": "marque", + "ga": "branda", + "gl": "marca", "he": "מותג", "hr": "zaštitni znak", "hu": "márkanév", @@ -143,6 +155,7 @@ "bg": "етажи", "ca": "pisos per sobre el terra", "cs": "nadzemní podlaží", + "cy": "lloriau sy'n uwch na lefel y llawr", "da": "etager over jorden", "de": "oberirdische stockwerke", "de-at": "geschoß", @@ -150,11 +163,14 @@ "el": "αριθμός ορόφων", "en": "floors above ground", "en-ca": "storey", + "en-us": "story", "es": "pisos sobre el suelo", "et": "korrus", "fa": "طبقات بالای زمین", "fi": "maanpäällisiä kerroksia", "fr": "nombre de niveaux au-dessus du sol", + "ga": "stórtha os cionn talún", + "gl": "andares sobre o solo", "he": "מספר קומות מעל הקרקע", "hu": "felszín feletti szintek száma", "id": "lantai atas permukaan", @@ -162,9 +178,9 @@ "ja": "地上階数", "kn": "ಮಹಡಿ", "ko": "지상의 층수", + "lt": "aukštas", "lv": "stāvi virs zemes", "mr": "जमिनीवरचे मजले", - "ms": "tingkat di atas tanah", "nb": "etasjer over bakken", "nl": "verdiepingen boven de grond", "pl": "liczba kondygnacji nad ziemią", @@ -172,7 +188,9 @@ "ru": "количество этажей", "sk": "nadzemné poschodia", "sl": "nadstropja nad pritličjem", + "sq": "katet mbi tokë", "sv": "våningar", + "te": "అంతస్థులు", "th": "ชั้น", "tr": "zemin üzerindeki katlar", "uk": "кількість поверхів", @@ -239,6 +257,11 @@ "en": "telegram" } }, + "tiktok": { + "*": { + "en": "tiktok" + } + }, "tripadvisor": { "*": { "en": "tripadvisor" @@ -277,6 +300,7 @@ "bg": "кухня", "ca": "cuina", "cs": "kuchyně", + "cy": "math o fwyd", "da": "køkken", "de": "küche", "el": "κουζίνα", @@ -286,8 +310,10 @@ "fa": "خوان", "fi": "ruokakulttuuri", "fr": "cuisine servie", + "gl": "cociña", "he": "מטבח", "hi": "पाकशैली", + "hr": "kulinarstvo", "hu": "konyha", "id": "hidangan", "it": "cucina", @@ -296,14 +322,14 @@ "lt": "pasaulio virtuvės", "lv": "virtuve", "mr": "पाककला", - "ms": "masakan", "nb": "kjøkken", "nl": "keuken", "pl": "kuchnia", "pt": "cozinha", "ru": "кухня", - "sk": "kuchárske umenie", + "sk": "kuchyňa", "sl": "kuhinja", + "sq": "kuzhinë", "sv": "kök", "ta": "சமையல் பாணி", "th": "การปรุงอาหาร", @@ -321,6 +347,7 @@ "bg": "валута", "ca": "moneda", "cs": "měna", + "cy": "arian cyfred", "da": "valuta", "de": "währung", "el": "νομισματική μονάδα", @@ -330,6 +357,9 @@ "fa": "یکای پول", "fi": "valuutta", "fr": "monnaie", + "ga": "airgeadra", + "gd": "ruith-airgid", + "gl": "moeda", "he": "מטבע", "hi": "मुद्रा", "hr": "valuta", @@ -343,7 +373,6 @@ "lv": "valūta", "ml": "നാണയം", "mr": "चलन", - "ms": "mata wang", "nb": "valuta", "nl": "valuta", "pl": "waluta", @@ -353,8 +382,10 @@ "ru": "валюта", "sk": "mena", "sl": "valuta", + "sq": "deviza", "sv": "valuta", "ta": "நாணயம்", + "te": "ద్రవ్యం", "th": "เงินตรา", "tr": "para birimi", "uk": "валюта", @@ -367,6 +398,7 @@ }, "delivery": { "*": { + "ar": "توصيل", "be": "дастаўка", "ca": "repartiment", "cs": "dodávka", @@ -379,7 +411,7 @@ "fr": "livraison", "he": "משלוח", "hi": "होम डिलीवरी", - "hu": "kézbesítés", + "hu": "házhoz szállítás", "it": "consegna a domicilio", "ja": "デリバリー", "ko": "택배", @@ -397,6 +429,7 @@ }, "covid19": { "*": { + "ar": "توصيل (COVID19)", "be": "дастаўка (COVID19)", "ca": "repartiment (COVID19)", "cs": "dodávka (COVID19)", @@ -409,7 +442,7 @@ "fr": "livraison (COVID19)", "he": "משלוח (COVID19)", "hi": "होम डिलीवरी (COVID19)", - "hu": "kézbesítés (COVID19)", + "hu": "házhoz szállítás (COVID19)", "it": "consegna a domicilio (COVID19)", "ja": "デリバリー (COVID19)", "ko": "택배 (COVID19)", @@ -449,6 +482,7 @@ "bg": "плата", "ca": "tarifa", "cs": "poplatek", + "cy": "taliad", "da": "afgift", "de": "gebühr", "en": "fee", @@ -456,6 +490,8 @@ "fa": "دستمزد", "fi": "maksu", "fr": "prix d'accès", + "ga": "táille", + "gl": "prezo de acceso", "he": "דמי שימוש", "hi": "फ़ीस", "hr": "pristojba", @@ -465,7 +501,6 @@ "ja": "料金", "ko": "요금", "lt": "rinkliava", - "ms": "bayaran", "nb": "avgift", "nl": "tarief", "pl": "opłata", @@ -475,6 +510,7 @@ "ru": "плата", "sk": "poplatok", "sl": "vstopnina", + "sq": "taksa", "sv": "avgift", "tr": "ücret", "uk": "оплата", @@ -503,12 +539,15 @@ "es": "número de piso", "fi": "kerrosnumero", "fr": "numéro d'étage", + "ga": "uimhir úrláir", + "gl": "número do andar", "he": "מספר קומה", "hu": "emelet", "id": "lantai", "it": "numero del piano", "ja": "階数", "ko": "층 번호", + "lt": "aukštas", "lv": "stāva numurs", "nb": "etasjenummer", "nl": "etagenummer", @@ -529,7 +568,7 @@ "bg": "работно време", "ca": "dies oberts", "cs": "otevírací doba", - "da": "åbnet på", + "da": "åbent på", "de": "geöffnet an/am", "el": "ημέρες λειτουργίας", "en": "open days", @@ -538,6 +577,8 @@ "fa": "روزهای باز", "fi": "avoinna", "fr": "jours d'ouverture", + "ga": "laethanta oscail", + "gl": "días abertos", "he": "פתוח בימים", "hi": "खुलने का समय", "hr": "radno vrijeme", @@ -549,23 +590,24 @@ "lt": "darbo valandos", "lv": "darba laiks", "mr": "उघडण्याची वेळ", - "ms": "hari buka", "nb": "åpningsdager", "nl": "geopend op", "pl": "otwarte w dniach", "pt": "dias de abertura", - "pt-br": "hora de abertura", + "pt-br": "hora de encerramento", "ro": "zile deschis", "ru": "дни работы", "sk": "otvárací čas", "sl": "odpiralni dnevi", "sv": "öppetdagar", "ta": "தொடக்க நேரம்", + "te": "తెరచు వేళలు", "th": "เวลาให้บริการ", "tr": "açık olduğu günler", "uk": "дні роботи", "ur": "ابتدائی گھنٹے", - "vi": "ngày mở cửa trong tuần" + "vi": "ngày mở cửa trong tuần", + "zh": "開放日" }, "covid19": { "*": { @@ -574,7 +616,7 @@ "bg": "работно време (COVID19)", "ca": "dies oberts (COVID19)", "cs": "otevírací doba (COVID19)", - "da": "åbnet på (COVID19)", + "da": "åbent på (COVID19)", "de": "geöffnet an/am (COVID19)", "el": "ημέρες λειτουργίας (COVID19)", "en": "open days (COVID19)", @@ -583,6 +625,8 @@ "fa": "روزهای باز (COVID19)", "fi": "avoinna (COVID19)", "fr": "jours d'ouverture (COVID19)", + "ga": "laethanta oscail (COVID19)", + "gl": "días abertos (COVID19)", "he": "פתוח בימים (COVID19)", "hi": "खुलने का समय (COVID19)", "hr": "radno vrijeme (COVID19)", @@ -594,23 +638,24 @@ "lt": "darbo valandos (COVID19)", "lv": "darba laiks (COVID19)", "mr": "उघडण्याची वेळ (COVID19)", - "ms": "hari buka (COVID19)", "nb": "åpningsdager (COVID19)", "nl": "geopend op (COVID19)", "pl": "otwarte w dniach (COVID19)", "pt": "dias de abertura (COVID19)", - "pt-br": "hora de abertura (COVID19)", + "pt-br": "hora de encerramento (COVID19)", "ro": "zile deschis (COVID19)", "ru": "дни работы (COVID19)", "sk": "otvárací čas (COVID19)", "sl": "odpiralni dnevi (COVID19)", "sv": "öppetdagar (COVID19)", "ta": "தொடக்க நேரம் (COVID19)", + "te": "తెరచు వేళలు (COVID19)", "th": "เวลาให้บริการ (COVID19)", "tr": "açık olduğu günler (COVID19)", "uk": "дні роботи (COVID19)", "ur": "ابتدائی گھنٹے (COVID19)", - "vi": "ngày mở cửa trong tuần (COVID19)" + "vi": "ngày mở cửa trong tuần (COVID19)", + "zh": "開放日 (COVID19)" } } }, @@ -626,6 +671,7 @@ "pt-br": "produto natural", "sl": "organski izdelek", "sv": "ekologiska produkter", + "tr": "organik ürün", "zh": "有機產品" } }, @@ -639,14 +685,15 @@ "payment": { "*": { "cs": "forma úhrady", + "de": "zahlungsmethode", "el": "μέθοδος πληρωμής", "en": "payment method", "es": "método de pago", "fi": "maksutapa", + "ga": "modh íocaíochta", "hu": "fizetőeszköz", "it": "metodo di pagamento", "ja": "支払方法", - "ms": "kaedah pembayaran", "nl": "betaalwijze", "pt": "método de pagamento", "sl": "način plačila", @@ -728,6 +775,7 @@ "mr": "बिटकॉईन", "ru": "биткойн", "ta": "பிட்காயின்", + "te": "బిట్ కాయిన్", "th": "บิตคอยน์", "uk": "біткоїн", "ur": "تثم سکّہ", @@ -749,6 +797,7 @@ "fa": "وجه نقد", "fi": "käteinen", "fr": "argent liquide", + "ga": "airgead tirim", "he": "מזומנים", "hi": "रोकड़", "hu": "készpénz", @@ -764,6 +813,7 @@ "ru": "наличные деньги", "sl": "gotovina", "sv": "kontanter", + "te": "డబ్బు", "th": "เงินสด", "tr": "nakit", "uk": "готівка", @@ -801,11 +851,11 @@ "fi": "lähimaksaminen", "fr": "paiement sans contact", "he": "תשלום ללא מגע", + "hu": "érintésmentes fizetés", "id": "pembayaran nirkontak", "it": "pagamento contactless", "ja": "非接触型決済", "ko": "비접촉 결제", - "ms": "pembayaran tanpa sentuh", "nb": "kontaktløs betaling", "nl": "contactloos betalen", "pl": "płatność zbliżeniowa", @@ -823,11 +873,12 @@ "cryptocurrencies": { "*": { "af": "kriptogeld", - "ar": "عملة مشفرة", + "ar": "عملة معماة", "be": "крыптавалюта", "bg": "криптовалута", "ca": "criptomoneda", "cs": "kryptoměna", + "cy": "crypto-cyfred", "da": "kryptovaluta", "de": "kryptowährung", "el": "κρυπτονόμισμα", @@ -837,6 +888,8 @@ "fa": "ارز رمزنگاری شده", "fi": "kryptovaluutta", "fr": "cryptomonnaie", + "ga": "criptea-airgeadra", + "gl": "criptomoeda", "he": "מטבע מבוזר", "hi": "आभासी मुद्रा", "hr": "kriptovaluta", @@ -850,17 +903,18 @@ "lv": "kriptonauda", "ml": "ക്രിപ്റ്റോകറൻസികൾ", "mr": "क्रिप्टोकरन्सी", - "ms": "mata wang kripto", "nb": "kryptovaluta", - "nl": "cryptogeld", + "nl": "cryptovaluta", "pl": "kryptowaluta", "pt": "criptomoeda", "ro": "criptomonedă", "ru": "криптовалюта", "sk": "kryptomena", "sl": "kriptovaluta", + "sq": "kriptovaluta", "sv": "kryptovaluta", "ta": "ஆல்ட்காயின்", + "te": "క్రిప్టోకరెన్సీ", "th": "คริปโทเคอร์เรนซี", "tr": "kripto para birimi", "uk": "криптовалюта", @@ -876,6 +930,7 @@ "bg": "дебитна карта", "ca": "targeta de dèbit", "cs": "debetní karta", + "cy": "cerdyn credyd", "da": "debetkort", "de": "debitkarte", "el": "χρεωστική κάρτα", @@ -897,7 +952,6 @@ "lt": "debeto kortelė", "lv": "debetkarte", "ml": "ഡെബിറ്റ് കാർഡ്", - "ms": "kad debit", "nb": "debetkort", "nl": "debetkaart", "pl": "karta debetowa", @@ -906,6 +960,7 @@ "ru": "дебетовая карта", "sk": "debetná karta", "sl": "debetna kartica", + "sq": "pagesa elektronike", "sv": "kontokort", "ta": "பற்று அட்டை", "th": "บัตรเดบิต", @@ -914,6 +969,7 @@ "ur": "ڈیبٹ کارڈ", "vi": "thẻ ghi nợ", "zh": "借记卡", + "zh-hk": "扣賬卡", "zh-tw": "簽帳金融卡" } }, @@ -948,7 +1004,7 @@ "ja": "ドージコイン", "ko": "도지코인", "ml": "ഡോഗ്കോയിന്", - "mr": "डोजकोइन", + "mr": "डोजकॉइन", "ur": "ڈوجی کوائن", "zh": "多吉币", "zh-hk": "狗狗幣", @@ -1012,6 +1068,7 @@ "de": "geschenkkarte", "en": "gift card", "es": "tarjeta regalo", + "et": "kinkekaart", "fa": "گیفت کارت", "fi": "lahjakortti", "fr": "carte cadeau", @@ -1025,8 +1082,10 @@ "nl": "cadeaubon", "pt": "vale presente", "ru": "подарочный сертификат", + "sl": "darilna kartica", "sv": "presentkort", "ta": "பரிசு அட்டை", + "uk": "подарунковий сертифікат", "vi": "thẻ quà tặng", "zh": "礼物卡" } @@ -1048,9 +1107,12 @@ "en": "google pay", "he": "גוגל פיי", "hi": "गूगल पे", + "kn": "ಗೂಗಲ್ ಪೇ", "ko": "구글 페이", "ml": "ഗൂഗിൾ പേ", + "ro": "google pay (metodă de plată)", "ta": "கூகுள் பே", + "te": "గూగుల్ పే", "ur": "گوگل پے" } }, @@ -1065,8 +1127,12 @@ "en": "public transport proximity card", "es": "tarjeta de proximidad para el transporte público", "ja": "公共交通機関の近接型icカード", + "pl": "zbliżeniowa karta transportu publicznego", "ru": "бесконтактная карта для общественного транспорта", - "zh": "公共交通感应卡" + "sl": "brezstična kartica javnega prevoza", + "zh": "公共交通感应卡", + "zh-hk": "公共運輸感應卡", + "zh-tw": "大眾運輸感應卡" } }, "ipass": { @@ -1116,14 +1182,16 @@ "es": "mastercard maestro", "fa": "مائسترو", "fr": "mastercard maestro", + "gl": "mastercard maestro", + "id": "maestro (kartu debit)", "it": "mastercard maestro", "ja": "マスターカード・マエストロ", "ko": "마에스트로", "mr": "माएस्ट्रो", - "ms": "maestro", "nl": "mastercard maestro", "pt": "mastercard maestro", "ru": "mastercard maestro", + "sl": "mastercard maestro", "sv": "mastercard maestro", "uk": "maestro", "zh": "万事顺卡" @@ -1144,6 +1212,11 @@ "zh": "萬事達信用卡" } }, + "mbway": { + "*": { + "en": "mb way" + } + }, "meal_voucher": { "*": { "cs": "stravenka", @@ -1182,8 +1255,8 @@ "id": "kartu oyster", "ja": "オイスターカード", "ko": "오이스터 카드", - "ms": "kad oyster", "nb": "oyster", + "sl": "kartica oyster", "ta": "ஒய்ஸ்டர் அட்டை", "zh": "蠔卡", "zh-cn": "牡蛎卡", @@ -1201,6 +1274,7 @@ "ml": "പേയ്പാൽ", "mr": "पेपॅल", "ta": "பேபால்", + "te": "పేపాల్", "th": "เพย์แพล", "ur": "پے پال" } @@ -1258,6 +1332,7 @@ "sms": { "*": { "ar": "خدمة الرسالة القصيرة", + "cy": "neges destun", "de": "short message service", "en": "sms", "es": "servicio de mensajes cortos", @@ -1273,16 +1348,17 @@ "lt": "trumpoji žinutė", "lv": "īsziņa", "ml": "എസ്.എം.എസ്.", - "ms": "sistem pesanan ringkas", "nb": "short message service", "pt": "serviço de mensagens curtas", "ro": "short message service", "sk": "krátka textová správa", "ta": "குறுஞ் செய்திகள்", + "te": "సంక్షిప్త సందేశ సేవ", "th": "บริการข้อความสั้น", "uk": "служба коротких повідомлень", "ur": "مختصر پیغام خدمت", - "zh": "簡訊" + "zh": "簡訊", + "zh-cn": "短信" } }, "snap": { @@ -1292,6 +1368,7 @@ "fa": "کالابرگ", "he": "תוכנית הסיוע לתזונה משלימה", "ja": "フードスタンプ", + "ko": "영양 보충 지원 프로그램", "ru": "американская программа льготной покупки продуктов", "ta": "கூடுதல் சத்துணவு உதவித் திட்டம்", "tr": "ek beslenme yardımı programı", @@ -1352,6 +1429,7 @@ "bg": "жетон", "ca": "téssera", "cs": "žeton", + "cy": "darn arian tocyn", "da": "polet", "de": "jeton", "en": "token coin", @@ -1370,6 +1448,7 @@ "ru": "жетон", "sk": "žetón", "sl": "žeton", + "sq": "zhetoni", "sv": "pollett", "tr": "jeton", "uk": "марка", @@ -1446,7 +1525,6 @@ "wic": { "*": { "en": "wic", - "es": "u.s. federal government program providing food assistance for low-income women and children [edit]", "he": "חברת הודו המערבית ההולנדית", "ja": "女性・乳児・児童栄養補助プログラム", "ru": "специальная дополнительная программа питания для женщин, младенцев и детей в сша (wic)", @@ -1463,15 +1541,18 @@ "es": "transferencia bancaria", "fa": "انتقال وجه", "fr": "virement bancaire", + "ga": "aistriú de dhroim sreinge", "he": "העברה בנקאית", "hu": "banki átutalás", "it": "bonifico", "ja": "振込", + "ko": "전신 송금", "nl": "bankoverschrijving", "pl": "polecenie przelewu", "pt": "transferência bancária", "ru": "денежный перевод", "sk": "bankový prevod", + "sq": "transferi bankar", "tr": "virman", "uk": "грошовий переказ", "vi": "điện chuyển khoản ngân hàng", @@ -1487,6 +1568,7 @@ "bg": "телефонен номер", "ca": "número de telèfon", "cs": "telefonní číslo", + "cy": "rhif ffôn", "da": "telefonnummer", "de": "telefonnummer", "el": "αριθμός τηλεφώνου", @@ -1496,6 +1578,9 @@ "fa": "شماره تلفن", "fi": "puhelinnumero", "fr": "numéro de téléphone", + "ga": "uimhir teileafón", + "gd": "àireamh fóin", + "gl": "número de teléfono", "he": "מספר טלפון", "hi": "फ़ोन नंबर", "hr": "telefonski broj", @@ -1507,7 +1592,6 @@ "lt": "telefono numeris", "lv": "telefona numurs", "mr": "दूरध्वनी क्रमांक", - "ms": "nombor telefon", "nb": "telefonnummer", "nl": "telefoonnummer", "pl": "numer telefonu", @@ -1516,8 +1600,10 @@ "ru": "номер телефона", "sk": "telefónne číslo", "sl": "telefonska številka", + "sq": "numri i telefonit", "sv": "telefonnummer", "ta": "தொலைபேசி எண்", + "te": "ఫోను నంబరు", "th": "หมายเลขโทรศัพท์", "tr": "telefon numarası", "uk": "номер телефону", @@ -1543,6 +1629,8 @@ "fa": "حمل و نقل عمومی", "fi": "julkinen liikenne", "fr": "transport en commun", + "ga": "iompar poiblí", + "gl": "transporte público", "he": "תחבורה ציבורית", "hr": "javni prijevoz", "hu": "tömegközlekedés", @@ -1552,7 +1640,6 @@ "ko": "대중교통", "lt": "viešasis transportas", "lv": "sabiedriskais transports", - "ms": "pengangkutan awam", "nb": "kollektivtransport", "nl": "openbaar vervoer", "pl": "publiczny transport zbiorowy", @@ -1561,14 +1648,16 @@ "ro": "transport public", "ru": "общественный транспорт", "sk": "verejná doprava", - "sl": "javni prevoz", + "sl": "javni potniški prevoz", + "sq": "transporti publik", "sv": "kollektivtrafik", "th": "การขนส่งสาธารณะ", "tr": "toplu taşımacılık", "uk": "громадський транспорт", "vi": "giao thông công cộng", "zh": "公共交通", - "zh-tw": "公共運輸" + "zh-hk": "公共運輸", + "zh-tw": "大眾運輸" } }, "website": { @@ -1579,6 +1668,7 @@ "bg": "официален уебсайт", "ca": "lloc web oficial", "cs": "oficiální web", + "cy": "gwefan swyddogol", "da": "officiel hjemmeside", "de": "offizielle website", "de-at": "offizielle homepage", @@ -1590,6 +1680,9 @@ "fa": "وبگاه رسمی", "fi": "viralliset kotisivut", "fr": "site officiel", + "ga": "suíomh gréasáin oifigiúil", + "gd": "làrach-lìn", + "gl": "páxina web oficial", "he": "אתר רשמי", "hi": "आधिकारिक वेबसाइट", "hr": "službena mrežna stranica", @@ -1603,18 +1696,19 @@ "lv": "oficiālā tīmekļa vietne", "ml": "ഔദ്യോഗിക വെബ്സൈറ്റ്", "mr": "अधिकृत संकेतस्थळ", - "ms": "tapak web rasmi", "nb": "offisielt nettsted", "nl": "officiële website", "pl": "oficjalna strona internetowa", - "pt": "sítio web oficial", + "pt": "sítio oficial", "pt-br": "página web oficial", "ro": "site oficial", "ru": "официальный сайт", "sk": "oficiálny web", "sl": "uradno spletišče", + "sq": "webfaqja zyrtare", "sv": "officiell webbplats", "ta": "அதிகாரபூர்வ இணையம்", + "te": "అధికారిక వెబ్ సైటు", "th": "เว็บไซต์ทางการ", "tr": "resmî sitesi", "uk": "офіційний сайт", @@ -1684,28 +1778,19 @@ "de": "privatstraße", "de-ch": "privatstrasse", "el": "ιδιωτική οδός", - "en": "private swimming pool", + "en": "private road", "es": "calle prividad", "fa": "جاده اختصاصی", "fi": "yksityistie", - "fr": "piscine privée", + "fr": "route privée", + "hu": "magánút", "ja": "私道", "ko": "사도", "nb": "privat vei", "nl": "eigen weg", - "ru": "частный бассейн", "sl": "zasebna cesta", "sv": "enskild väg", - "uk": "приватний басейн", "zh": "私家路" - }, - "public": { - "ca": "piscina pública", - "de": "öffentliches schwimmbad", - "en": "public swimming pool", - "fr": "piscine publique", - "ru": "общественный бассейн", - "zh-tw": "公共游泳池" } }, "activity": { @@ -1718,19 +1803,21 @@ "es": "noviazgo", "fa": "قرار گذاشتن", "fi": "seurustelu", + "ga": "geandáil", + "gl": "noivado", "he": "דייטינג", "hi": "डेटिंग", "hu": "randevúzás", "id": "kencan", "ja": "デート", "ko": "데이트", - "ms": "berpacaran", "nb": "stevnemøte", "pt": "namoro", "ru": "поиск партнёра", "sl": "obiskovanje zmenkov", "sv": "dejtning", "ta": "பொருத்தம் பார்த்தல்", + "te": "డేటింగ్", "tr": "çıkma", "uk": "період побачень", "ur": "ڈیٹنگ", @@ -1738,56 +1825,6 @@ "zh": "約會" } }, - "addr": { - "": { - "af": "duitsland", - "ar": "ألمانيا", - "be": "германія", - "bg": "германия", - "ca": "alemanya", - "cs": "německo", - "da": "tyskland", - "de": "deutschland", - "el": "γερμανία", - "en": "germany", - "es": "alemania", - "et": "saksamaa", - "fa": "آلمان", - "fi": "saksa", - "fr": "allemagne", - "he": "גרמניה", - "hi": "जर्मनी", - "hr": "njemačka", - "hu": "németország", - "id": "jerman", - "it": "germania", - "ja": "ドイツ", - "kn": "ಜರ್ಮನಿ", - "ko": "독일", - "lt": "vokietija", - "lv": "vācija", - "ml": "ജർമ്മനി", - "mr": "जर्मनी", - "ms": "jerman", - "nb": "tyskland", - "nl": "duitsland", - "pl": "niemcy", - "pt": "alemanha", - "ro": "germania", - "ru": "германия", - "sk": "nemecko", - "sl": "nemčija", - "sv": "tyskland", - "ta": "செருமனி", - "th": "ประเทศเยอรมนี", - "tr": "almanya", - "uk": "німеччина", - "ur": "جرمنی", - "vi": "đức", - "zh": "德國", - "zh-cn": "德国" - } - }, "admin_level": { "2": { "af": "land", @@ -1795,7 +1832,8 @@ "be": "краіна", "bg": "страна", "ca": "país", - "cs": "státní útvar", + "cs": "státní území", + "cy": "gwlad", "da": "land", "de": "land", "el": "χώρα", @@ -1805,6 +1843,9 @@ "fa": "کشور", "fi": "maa", "fr": "pays", + "ga": "tír", + "gd": "dùthaich", + "gl": "país", "he": "ארץ", "hi": "देश", "hr": "zemlja (država)", @@ -1818,7 +1859,6 @@ "lv": "zeme", "ml": "ദേശം", "mr": "देश", - "ms": "negara", "nb": "land", "nl": "land", "pl": "kraj", @@ -1827,8 +1867,10 @@ "ru": "страна", "sk": "krajina", "sl": "država", + "sq": "shtet", "sv": "land", "ta": "நாடு", + "te": "దేశం", "th": "ประเทศ", "tr": "ülke", "uk": "країна", @@ -1842,14 +1884,16 @@ "be": "адміністрацыйная адзінка першага ўзроўню", "ca": "subdivisió administrativa de primer nivell", "cs": "nejvyšší administrativní jednotka", + "cy": "is-adran weinyddol gwlad lefel gyntaf", "da": "administrativ enhed på første niveau", - "de": "verwaltungseinheit 1. ebene", + "de": "verwaltungseinheit erster ebene", "el": "πρώτου επιπέδου διοικητική διαίρεση", "en": "first-level administrative division", "es": "división administrativa de primer nivel", "et": "1. järgu haldusüksus", "fi": "maan ensimmäisen tason hallinnollinen osa-alue", "fr": "division administrative de premier niveau", + "gl": "subdivisión administrativa de primeiro nivel", "he": "יחידת מנהל אזורי מרמה ראשונה", "hu": "első szintű közigazgatási egység", "id": "daerah tingkat i", @@ -1857,7 +1901,6 @@ "ja": "第一級行政区画", "ko": "최상위 행정 구역", "lv": "valsts pirmā līmeņa administratīvais iedalījums", - "ms": "bahagian pentadbiran peringkat pertama", "nb": "administrativ enhet på første nivå", "nl": "bestuurlijke indeling op het eerste niveau", "pl": "pierwszy poziom podziału administracyjnego kraju", @@ -1878,6 +1921,7 @@ "be": "мандалам", "ca": "comtat no metropolità", "cs": "anglické nemetropolitní hrabství", + "cy": "sir an-fetropolitan", "da": "tehsil", "de": "nicht-metropolen-landkreis", "el": "μη-μητροπολιτική κομητεία", @@ -1887,6 +1931,8 @@ "fa": "تحصیل", "fi": "shire-kreivikunta", "fr": "comté non métropolitain", + "ga": "contae neamhchathrach", + "gl": "condado non metropolitano", "he": "מחוז לא-מטרופוליטני", "hi": "तहसील", "hr": "nemetropolitanske grofovije", @@ -1895,9 +1941,9 @@ "ja": "シャイア・カウンティ", "kn": "ತಾಲ್ಲೂಕು", "ko": "비도시주", + "lv": "anglijas nemetropoles grāfistes", "ml": "താലൂക്ക്", "mr": "तालुका", - "ms": "tehsil", "nb": "taluk", "nl": "tehsil", "pl": "hrabstwo niemetropolitalne", @@ -1908,6 +1954,7 @@ "sl": "nemetropolitanska grofija", "sv": "grevskap", "ta": "வட்டம்", + "te": "మండలం", "th": "เทศมณฑลที่ไม่ใช่มหานคร", "tr": "metropol olmayan şehir", "uk": "неметропольне графство в англії", @@ -1924,6 +1971,7 @@ "be": "рэкламны шчыт", "bg": "билборд", "ca": "tanca publicitària", + "cy": "bwrdd biliau", "de": "plakatwand", "el": "διαφημιστική πινακίδα", "en": "billboard", @@ -1936,18 +1984,19 @@ "it": "poster", "ja": "看板", "ko": "간판", - "lt": "plakatas", + "lt": "reklaminis skydas", "lv": "ziņojumu dēlis", - "ms": "papan iklan", "nl": "reclamebord", "pt": "outdoor", "ru": "рекламный щит", "sk": "bilbord", + "sl": "oglasni pano", "sv": "annonstavla", "ta": "சுவரணை விளம்பரப் பலகை", "th": "ป้ายโฆษณา", "tr": "reklam panosu", "uk": "білборд", + "ur": "بل بورڈ", "zh": "看板" }, "column": { @@ -1992,6 +2041,7 @@ "bg": "лифт", "ca": "telefèric", "cs": "kabinová lanovka", + "cy": "car cebl", "da": "kabinebane", "de": "pendelseilbahn", "el": "τελεφερίκ", @@ -2006,7 +2056,6 @@ "it": "funivia a va' e vieni", "ja": "エリアルトラム", "kn": "ಅಂತರಿಕ್ಷೀಯ ಟ್ರಾಂ ವೇ", - "ko": "삭도", "nb": "taubane", "nl": "cabinebaan", "pl": "kolej kabinowa", @@ -2022,7 +2071,7 @@ "zh-hk": "吊車" }, "chair_lift": { - "ar": "مصعد الكراسي", + "ar": "مصعد مقعدي", "bg": "лифт", "ca": "telecadira", "cs": "sedačková lanová dráha", @@ -2033,6 +2082,7 @@ "es": "telesilla", "fa": "تلهسییژ", "fr": "télésiège", + "gl": "telecadeira", "id": "lift kursi", "it": "seggiovia", "ja": "チェアリフト", @@ -2045,6 +2095,7 @@ "sl": "sedežnica", "sv": "stollift", "tr": "telesiyej", + "uk": "крісельний підйомник", "zh": "吊椅式索道" }, "gondola": { @@ -2057,6 +2108,7 @@ "fa": "تلهکابین", "fi": "gondolihissi", "fr": "télécabine", + "gl": "telecabina", "he": "מעלית גונדולה", "hr": "gondola", "hu": "gondolalift", @@ -2096,6 +2148,8 @@ "cs": "magický koberec", "en": "magic carpet", "fr": "tapis roulant", + "gl": "tapete rolante", + "it": "tappeto mobile", "sv": "rullband (skidlift)" }, "mixed_lift": { @@ -2120,6 +2174,7 @@ "de": "seillift", "en": "rope tow", "fr": "téléski à câble bas", + "gl": "telecorda", "it": "manovia", "nb": "skitrekk", "nl": "touwlift", @@ -2139,6 +2194,7 @@ "ar": "الانزلاق الحر", "ca": "tirolina", "cs": "zip line dráha", + "cy": "weiren wib", "de": "seilrutsche", "de-ch": "seilbrücke", "en": "zip-line", @@ -2168,7 +2224,8 @@ "aerodrome": { "": { "en": "balloonport", - "fr": "tour d'amarrage pour dirigeable ou montgolfière" + "fr": "tour d'amarrage pour dirigeable ou montgolfière", + "sl": "balonarsko vzletišče" } }, "aeroway": { @@ -2178,6 +2235,7 @@ "bg": "летателна площадка", "ca": "aeròdrom", "cs": "aerodrom", + "cy": "erodrom", "da": "flyveplads", "de": "flugplatz", "el": "αεροδρόμιο", @@ -2187,6 +2245,9 @@ "fa": "پروازگاه", "fi": "lentopaikka", "fr": "aérodrome", + "ga": "aeradróm", + "gd": "raon-adhair", + "gl": "aeródromo", "he": "שדה תעופה", "hr": "zračna luka", "hu": "légikikötő", @@ -2196,7 +2257,6 @@ "ko": "비행장", "lt": "aerodromas", "lv": "lidlauks", - "ms": "aerodrom", "nb": "flyplass", "nl": "vliegveld", "pl": "lotnisko", @@ -2204,7 +2264,9 @@ "ro": "aerodrom", "ru": "аэродром", "sl": "letališče", + "sq": "aerodromi", "sv": "aerodrom", + "th": "สนามบิน", "tr": "havaalanı", "uk": "аеродром", "ur": "ايئرو ڈروم", @@ -2244,6 +2306,7 @@ "cs": "odletová brána", "de": "flugsteig", "en": "gate", + "es": "puerta de embarque", "fa": "دروازه", "fr": "porte d'embarquement", "he": "שער עלייה למטוס", @@ -2252,7 +2315,6 @@ "it": "gate aeroportuale", "ja": "搭乗ゲート", "ko": "게이트", - "ms": "pintu (lapangan terbang)", "ru": "выход", "sl": "vhod za vkrcanje", "uk": "вихід", @@ -2274,6 +2336,7 @@ "lt": "angaras", "ru": "ангар", "sk": "hangár", + "sq": "hangari", "uk": "ангар", "vi": "xưởng cất máy bay", "zh": "飞机库" @@ -2286,6 +2349,7 @@ "fa": "بالگردنشین", "fi": "helikopterikenttä", "fr": "hélisurface", + "ga": "héileapad", "he": "מנחת", "hu": "helikopter-leszállóhely", "it": "elisuperficie", @@ -2311,6 +2375,7 @@ "et": "kopteriväljak", "fa": "بالگردگاه", "fr": "héliport", + "gl": "heliporto", "he": "נמל מסוקים", "hr": "helidrom", "id": "pangkalan helikopter", @@ -2321,17 +2386,18 @@ "nl": "helikopterhaven", "pt": "heliporto", "ru": "вертодром", + "sq": "heliporti", "sv": "helikopterflygplats", "ta": "உலங்கு வானூர்தி நிலையம்", "th": "สนามบินเฮลิคอปเตอร์", "uk": "вертодром", "ur": "ہیلی اڈا", "vi": "bãi đáp máy bay trực thăng", - "zh": "直升飞机场" + "zh": "直升机场" }, "highway_strip": { "de": "autobahn-behelfsflugplatz", - "en": "highway strip", + "en": "road runway", "fa": "باند فرود جادهای", "fi": "lentokoneiden varalaskupaikka", "fr": "autoroute à aéronefs", @@ -2342,6 +2408,7 @@ "nl": "snelweg-noodvliegveld", "pl": "drogowy odcinek lotniskowy", "ru": "аэродромный участок дороги", + "sl": "avtocestni pristajalni pas", "sv": "vägbas", "zh": "戰備跑道" }, @@ -2359,7 +2426,7 @@ "fr": "aire de lancement", "he": "כן שיגור", "hr": "lansirna rampa", - "hu": "indítóállás", + "hu": "indítóállvány", "it": "rampa di lancio", "ja": "発射台", "ko": "발사대", @@ -2406,6 +2473,8 @@ "fa": "باند فرودگاه", "fi": "kiitotie", "fr": "piste d'aérodrome", + "ga": "rúidbhealach", + "gd": "raon-laighe", "he": "מסלול טיסה", "hi": "उड़ानपट्टी", "hu": "futópálya", @@ -2423,6 +2492,7 @@ "ru": "взлётно-посадочная полоса", "sk": "vzletová a pristávacia dráha", "sl": "vzletno-pristajalna steza", + "sq": "pista", "sv": "landningsbana", "ta": "ஓடுபாதை", "th": "ทางวิ่งเครื่องบิน", @@ -2438,6 +2508,7 @@ "bg": "космодрум", "ca": "cosmòdrom", "cs": "kosmodrom", + "cy": "maes rocedi", "da": "rumhavn", "de": "weltraumbahnhof", "el": "διαστημοδρόμιο", @@ -2447,6 +2518,8 @@ "fa": "پایگاه فضایی", "fi": "laukaisukeskus", "fr": "base de lancement", + "ga": "spásfort", + "gl": "cosmódromo", "he": "נמל חלל", "hr": "svemirska luka", "hu": "űrközpont", @@ -2458,13 +2531,14 @@ "lv": "kosmodroms", "nb": "rakettoppskytingsbase", "nl": "ruimtehaven", - "pl": "kosmodrom", + "pl": "port kosmiczny", "pt": "base de lançamento espacial", "ro": "cosmodrom", "ru": "космодром", "sk": "kozmodróm", "sl": "vesoljsko izstrelišče", "sv": "rymdbas", + "te": "అంతరిక్ష కేంద్రం", "th": "ท่าอวกาศยาน", "tr": "uzay i̇stasyonu", "uk": "космодром", @@ -2474,7 +2548,8 @@ "stopway": { "de": "stopbahn", "en": "stopway", - "he": "משטח עצירה" + "he": "משטח עצירה", + "sl": "zavorna pot" }, "taxiway": { "ar": "ممر تدريج", @@ -2499,7 +2574,7 @@ "pl": "droga kołowania", "ru": "рулёжная дорожка", "sl": "vozna steza", - "uk": "руліжна доріжка", + "uk": "рульова доріжка", "vi": "đường lăn", "zh": "滑行道" }, @@ -2518,6 +2593,7 @@ "fi": "lentoterminaali", "fr": "terminal aéroportuaire", "he": "טרמינל", + "hu": "repülőtér-terminál", "id": "terminal bandar udara", "it": "terminal aeroportuale", "ja": "空港ターミナルビル", @@ -2536,8 +2612,10 @@ "zh-tw": "航廈" }, "windsock": { + "af": "windkous", "ar": "كم الريح", "be": "ветрапаказчык", + "bg": "ветропоказателен ръкав", "ca": "anemoscopi", "cs": "větrný rukáv", "da": "vindpose", @@ -2549,11 +2627,11 @@ "fi": "tuulipussi", "fr": "manche à air", "he": "שרוול רוח", + "hu": "szélzsák", "id": "gada gada", "it": "manica a vento", "ja": "吹流し", "ko": "바람자루", - "ms": "kon angin", "nb": "vindpølse", "nl": "windzak", "pl": "rękaw", @@ -2596,9 +2674,8 @@ "id": "tempat perlindungan hewan", "it": "rifugio per cani", "ja": "動物保護施設", - "ko": "동물보호소", + "ko": "동물 보호소", "lv": "dzīvnieku patversme", - "ms": "tempat perlindungan haiwan", "nl": "dierenasiel", "pl": "schronisko dla zwierząt", "pt": "abrigo para animais", @@ -2606,6 +2683,7 @@ "sk": "zvierací útulok", "sl": "zavetišče za živali", "sv": "katthem", + "ta": "பவுண்டு", "tr": "hayvan sığınağı", "uk": "притулок для бездомних тварин", "zh": "動物收容所" @@ -2616,6 +2694,7 @@ "bg": "архив", "ca": "arxiu", "cs": "archiv", + "cy": "archif", "da": "arkiv", "de": "archiv", "el": "αρχείο", @@ -2625,6 +2704,8 @@ "fa": "بایگانی", "fi": "arkisto", "fr": "archives", + "ga": "cartlann", + "gl": "arquivo", "he": "ארכיון", "hi": "पुरालेख", "hr": "arhiv", @@ -2638,7 +2719,6 @@ "lv": "arhīvs", "ml": "ആർക്കൈവ്", "mr": "पुराभिलेखागार", - "ms": "arkib", "nb": "arkiv", "nl": "archiefinstelling", "pl": "archiwum", @@ -2646,10 +2726,12 @@ "ru": "архив", "sk": "archív", "sl": "arhiv", + "sq": "arkiv", "sv": "arkiv", "ta": "ஆவணக் காப்பகம்", + "te": "ఆర్కైవ్", "th": "จดหมายเหตุ", - "tr": "belgelik", + "tr": "arşiv", "uk": "архів", "ur": "وثق", "vi": "kho lưu trữ", @@ -2660,15 +2742,20 @@ "ar": "مركز فنون", "be": "арт-цэнтр", "ca": "centre artístic", + "cy": "canolfan y celfyddydau", "de": "kunstzentrum", "el": "κέντρο τεχνών", - "en": "arts centre", + "en": "arts center", + "en-gb": "arts centre", "es": "centro artístico", "et": "kunstikeskus", "fi": "taidekeskus", "fr": "centre des arts", + "ga": "ionad ealaíon", + "gl": "centro artístico", "he": "מרכז אומנויות", "hu": "művészeti központ", + "id": "pusat kesenian", "it": "centro artistico", "ja": "芸術センター", "ko": "예술 회관", @@ -2676,7 +2763,7 @@ "pl": "centrum sztuki", "pt": "centro de artes", "ru": "арт-центр", - "sl": "umetnostni center", + "sl": "umetnostno središče", "uk": "артцентр", "vi": "trung tâm nghệ thuật", "zh": "艺术中心" @@ -2688,6 +2775,7 @@ "bg": "банкомат", "ca": "caixer automàtic", "cs": "bankomat", + "cy": "peiriant arian parod", "da": "pengeautomat", "de": "geldautomat", "de-at": "bankomat", @@ -2701,6 +2789,9 @@ "fa": "خودپرداز", "fi": "pankkiautomaatti", "fr": "guichet automatique bancaire", + "ga": "uathmheaisín bainc", + "gd": "bancomat", + "gl": "caixeiro automático", "he": "כספומט", "hi": "स्वचालित गणक मशीन", "hr": "bankomat", @@ -2714,7 +2805,6 @@ "lv": "bankas automāts", "ml": "ഓട്ടോമേറ്റഡ് ടെല്ലർ മെഷീൻ", "mr": "एटीएम", - "ms": "mesin juruwang automatik", "nb": "minibank", "nl": "geldautomaat", "pl": "bankomat", @@ -2724,8 +2814,10 @@ "ru": "банкомат", "sk": "bankomat", "sl": "bankomat", + "sq": "automated teller machines", "sv": "uttagsautomat", "ta": "தன்னியக்க வங்கி இயந்திரம்", + "te": "ఆటోమేటెడ్ టెల్లర్ మెషీన్", "th": "เอทีเอ็ม", "tr": "bankamatik", "uk": "банкомат", @@ -2738,6 +2830,7 @@ "ca": "audiòleg", "cs": "audiolog", "de": "audiologe", + "el": "ακοολόγος", "en": "audiologist", "es": "audiólogo", "fi": "audiologi", @@ -2745,6 +2838,7 @@ "he": "אודיולוג", "hu": "audiológus", "it": "audiologo", + "ja": "聴能学", "nl": "audioloog", "pl": "audiolog", "pt": "audiologista", @@ -2788,6 +2882,7 @@ "bg": "фурна", "ca": "forn", "cs": "pec", + "cy": "popty", "da": "ovn", "de": "backofen", "el": "φούρνος", @@ -2797,6 +2892,9 @@ "fa": "فر آشپزی", "fi": "uuni", "fr": "four", + "ga": "oigheann", + "gd": "àbhainn", + "gl": "forno", "he": "תנור אפייה", "hr": "peć", "hu": "sütő / kemence", @@ -2805,7 +2903,6 @@ "ko": "오븐", "lt": "krosnis", "lv": "krāsns", - "ms": "ketuhar", "nb": "ovn", "pl": "piekarnik", "pt": "forno", @@ -2813,16 +2910,20 @@ "ru": "печь", "sk": "pec", "sl": "pečica", + "sq": "furra", "sv": "ugn", + "te": "పొయ్యి", "tr": "fırın", "uk": "піч", "vi": "lò", "zh": "烤爐" }, "bank": { + "ar": "بناية مصرف", "be": "будынак банка", "ca": "edifici bancari", "cs": "budova banky", + "cy": "adeilad banc", "da": "bankbygning", "de": "bankgebäude", "el": "κτήριο τράπεζας", @@ -2832,7 +2933,10 @@ "fa": "ساختمان بانک", "fi": "pankkikiinteistö", "fr": "édifice bancaire", + "gl": "edificio bancario", "he": "בניין בנק", + "hu": "banképület", + "id": "bank (bangunan)", "ja": "銀行建築", "ko": "은행 지점", "nb": "bankbygning", @@ -2858,6 +2962,8 @@ "et": "baar", "fa": "بار", "fi": "baari", + "ga": "beár", + "gd": "bàr", "he": "בר", "hu": "bár", "ja": "バー", @@ -2871,28 +2977,35 @@ "zh": "酒吧" }, "bbq": { + "ar": "منطقة الشواء", "bg": "скара", "ca": "graella", "cs": "grilovací místo", - "da": "grill", + "da": "grillplads", "de": "grillplatz", - "en": "barbecue", - "es": "asador", + "el": "χώρο μπάρμπεκιου", + "en": "barbecue area", + "es": "barbacoa", "fa": "کبابپز", "fi": "grilli", - "hu": "barbecue-sütés", + "fr": "barbecue", + "gl": "grella", + "hu": "grillsütő", "id": "pemanggang barbekyu", - "it": "griglia", - "ja": "グリル", + "it": "barbecue", + "ja": "バーベキュー場", "ko": "그릴", "nb": "grill", - "nl": "grill", - "pl": "grill", + "nl": "barbecueplek", + "pl": "churrasco", "pt": "grelhador", "ru": "гриль", - "sv": "grill", + "sk": "gril", + "sl": "žar", + "sq": "skarë", + "sv": "grillplats", "tr": "mangal alanı", - "uk": "гриль", + "uk": "грилярня", "vi": "vỉ nướng", "zh": "燒烤架" }, @@ -2903,6 +3016,7 @@ "bg": "пейка", "ca": "banc", "cs": "lavice", + "cy": "mainc", "da": "bænk", "de": "sitzbank", "el": "παγκάκι", @@ -2912,6 +3026,9 @@ "fa": "نیمکت", "fi": "penkki", "fr": "banc", + "ga": "binse", + "gd": "being", + "gl": "banco", "he": "ספסל", "hr": "klupa", "hu": "pad", @@ -2921,7 +3038,6 @@ "kn": "ಬೆಂಚು", "ko": "벤치", "lt": "suolas", - "ms": "bangku", "nb": "benk", "nl": "bank", "pl": "ławka", @@ -2930,8 +3046,10 @@ "ru": "скамья", "sl": "klop", "sv": "bänk", + "te": "బెంచి", "tr": "bank", "uk": "лава", + "ur": "بینچ (فرنیچر)", "vi": "băng ghế", "zh": "長椅", "zh-cn": "长椅" @@ -2939,14 +3057,15 @@ "bicycle_parking": { "be": "веласіпедная паркоўка", "ca": "aparcament de bicicletes", - "cs": "parkování kol", + "cs": "parkoviště jízdních kol", "de": "fahrradabstellplatz", "en": "bicycle parking", "es": "estacionamiento de bicicletas", "fr": "stationnement cyclable", - "he": "חניה לאופניים", + "he": "מגרש חניה לאופניים", "it": "parcheggio per biciclette", - "ja": "駐輪", + "ja": "駐輪場", + "nb": "sykkelparkering", "nl": "fietsparkeerplaats", "pl": "parking rowerowy", "pt": "estacionamento de bicicletas", @@ -2967,13 +3086,18 @@ "pl": "stacja roweru miejskiego" }, "bicycle_repair_station": { + "cs": "stanice na opravu kola", "da": "cykelreparationsstation", "de": "fahrrad-reparaturstation", "en": "bicycle repair station", - "pl": "samoobsługowa stacja naprawy rowerów" + "nb": "sykkelverktøystasjon", + "pl": "samoobsługowa stacja naprawy rowerów", + "sk": "stanica na opravu bicykla", + "zh": "自行车修理站" }, "biergarten": { "ca": "biergarten", + "cy": "gardd gwrw", "da": "traktørsted", "de": "biergarten", "en": "beer garden", @@ -2991,6 +3115,7 @@ "pl": "biergarten", "pt": "biergarten", "ru": "пивной сад", + "sl": "pivski vrt", "sv": "biergarten", "tr": "bira bahçesi", "uk": "пивний садок", @@ -2998,9 +3123,11 @@ "zh-cn": "啤酒花园" }, "boat_rental": { + "da": "bådudlejning", "de": "bootsverleih", "en": "boat rental", - "ja": "貸しボート" + "ja": "貸しボート", + "nl": "bootverhuur" }, "boat_sharing": { "en": "boat sharing" @@ -3011,6 +3138,7 @@ "bg": "публичен дом", "ca": "bordell", "cs": "nevěstinec", + "cy": "puteindy", "da": "bordel", "de": "bordell", "el": "οίκος ανοχής", @@ -3020,6 +3148,7 @@ "fa": "فاحشهخانه", "fi": "bordelli", "fr": "bordel", + "gl": "prostíbulo", "he": "בית בושת", "hi": "वेश्यालय", "hr": "javna kuća", @@ -3031,7 +3160,6 @@ "lt": "viešnamis", "lv": "bordelis", "mr": "कुंटणखाना", - "ms": "rumah pelacuran", "nb": "bordell", "nl": "bordeel", "pl": "dom publiczny", @@ -3040,6 +3168,7 @@ "ru": "публичный дом", "sk": "verejný dom", "sl": "javna hiša", + "sq": "bordel", "sv": "bordell", "th": "ซ่องโสเภณี", "tr": "genelev", @@ -3079,6 +3208,7 @@ "en": "bureau de change", "es": "casa de cambio", "fa": "صرافی", + "he": "חלפנות כספים", "hr": "mjenjačnica", "hu": "pénzváltó", "ja": "両替", @@ -3103,9 +3233,10 @@ "da": "busgarage", "de": "busdepot", "el": "αμαξοστάσιο λεωφορείων", - "en": "bus depot", + "en": "bus garage", "es": "cocheras", "fr": "dépôt d'autobus", + "ga": "garáiste bus", "he": "חניון אוטובוסים", "hu": "autóbuszgarázs", "id": "depo bus", @@ -3128,6 +3259,7 @@ "bg": "автогара", "ca": "estació d'autobusos", "cs": "autobusové nádraží", + "cy": "gorsaf fysiau", "da": "busstation", "de": "busbahnhof", "el": "σταθμός λεωφορείων", @@ -3137,6 +3269,8 @@ "fa": "پایانه اتوبوس رانی", "fi": "linja-autoasema", "fr": "gare routière", + "ga": "stáisiún bus", + "gl": "estación de autobuses", "he": "מסוף אוטובוסים", "hr": "autobusni kolodvor", "hu": "autóbusz-állomás", @@ -3147,7 +3281,6 @@ "lt": "autobusų stotis", "lv": "autoosta", "ml": "ബസ് സ്റ്റേഷൻ", - "ms": "stesen bas", "nb": "busstasjon", "nl": "busstation", "pl": "dworzec autobusowy", @@ -3157,8 +3290,10 @@ "ru": "автостанция", "sk": "autobusová stanica", "sl": "avtobusna postaja", + "sq": "stacion autobusi", "sv": "busstation", "ta": "பேருந்து நிலையம்", + "te": "బస్ స్టేషన్", "th": "สถานีรถโดยสารประจำทาง", "tr": "otogar", "uk": "автовокзал", @@ -3175,6 +3310,7 @@ "bg": "кафене", "ca": "cafeteria", "cs": "kavárna", + "cy": "tŷ coffi", "da": "café", "de": "café", "el": "καφετέρια", @@ -3186,17 +3322,19 @@ "fa": "کافه", "fi": "kahvila", "fr": "café", + "ga": "caifé", + "gd": "cafaidh", + "gl": "cafetaría", "he": "בית קפה", "hi": "कॉफ़ीख़ाना", "hr": "kafić", "hu": "kávéház", - "id": "warung kopi", + "id": "kafe", "it": "caffetteria", "ja": "カフェ", "ko": "커피집", "lt": "kavinė", "lv": "kafejnīca", - "ms": "kedai kopi", "nb": "kafé", "nl": "koffiehuis", "pl": "kawiarnia", @@ -3206,11 +3344,14 @@ "ru": "кафе", "sk": "kaviareň", "sl": "kavarna", + "sq": "kafeneja", "sv": "kafé", "ta": "குளம்பியகம்", + "te": "కాఫీహౌస్", "th": "ร้านกาแฟ", "tr": "kafe", "uk": "кав'ярня", + "ur": "کیفے", "vi": "quán cà phê", "zh": "咖啡店" }, @@ -3230,12 +3371,13 @@ "fa": "اجاره خودرو", "fi": "autonvuokraamo", "fr": "location de voiture", + "gl": "compañía de alugamento de automóbiles", "he": "השכרת רכב", + "hu": "autókölcsönző cég", "id": "persewaan mobil", "it": "noleggio auto", "ja": "レンタカー", "ko": "렌터카", - "ms": "kereta sewa", "nb": "bilutleie", "nl": "autoverhuur", "pl": "wypożyczalnia samochodów", @@ -3293,15 +3435,16 @@ "it": "autolavaggio", "ja": "洗車機", "ko": "세차장", + "lt": "automobilių plovykla", "lv": "automazgātava", "ml": "കാർ വാഷ്", - "ms": "cuci kereta", "nb": "bilvask", "nl": "wasstraat", "pl": "myjnia samochodowa", "pt": "lava-jato", "ru": "автомойка", "sl": "avtopralnica", + "sq": "autolarja", "sv": "biltvätt", "uk": "автомийка", "vi": "máy rửa xe", @@ -3330,9 +3473,9 @@ "ko": "카지노", "lt": "kazino", "lv": "kazino", - "ms": "kasino", "nb": "kasino", "pl": "kasyno", + "pt-br": "cassino", "ro": "cazinou", "ru": "казино", "sl": "igralnica", @@ -3352,6 +3495,7 @@ "bg": "стол", "ca": "cadira", "cs": "židle", + "cy": "cadair", "da": "stol", "de": "stuhl", "de-at": "sessel", @@ -3362,6 +3506,8 @@ "fa": "صندلی", "fi": "tuoli", "fr": "chaise", + "ga": "cathaoir", + "gl": "cadeira", "he": "כיסא", "hi": "कुर्सी", "hr": "stolica", @@ -3375,7 +3521,6 @@ "lv": "krēsls", "ml": "കസേര", "mr": "खुर्ची", - "ms": "kerusi", "nb": "stol", "nl": "stoel", "pl": "krzesło", @@ -3384,8 +3529,10 @@ "ru": "стул", "sk": "stolička", "sl": "stol", + "sq": "karrige", "sv": "stol", "ta": "நாற்காலி", + "te": "కుర్చీ", "th": "เก้าอี้", "tr": "sandalye", "uk": "стілець", @@ -3400,18 +3547,19 @@ "cs": "dobíjecí stanice", "da": "ladestation", "de": "stromtankstelle", - "en": "electric vehicle charging station", + "en": "charging station", + "en-gb": "electric vehicle charging station", "es": "estación de carga", "fa": "جایگاه شارژ خودروی برقی", "fi": "latausasema", "fr": "station de recharge", + "gl": "estación de recarga", "he": "תחנת טעינה", "hr": "punionica za električne automobile", "id": "stasiun pengisian kendaraan listrik", "it": "stazione di ricarica", "ja": "充電スタンド", "ko": "충전소", - "ms": "stesen cas", "nb": "ladestasjon for el-kjøretøy", "nl": "oplaadpunt", "pl": "stacja ładowania", @@ -3440,6 +3588,7 @@ "fa": "مراقبت از نوزاد", "fi": "lastenkasvatus", "fr": "mode de garde d'enfant", + "ga": "cúram leanaí", "he": "טיפול בילדים", "hi": "शिशु देखभाल", "hu": "gyermekgondozás", @@ -3452,11 +3601,12 @@ "nl": "kinderopvang", "pl": "opieka nad dzieckiem", "pt": "guarda de crianças", - "ru": "забота о детях", + "ru": "уход за детьми", "sl": "varstvo otrok", + "sq": "çerdhe fëmijësh", "sv": "barnomsorg", "tr": "çocuk bakımı", - "uk": "ясла", + "uk": "догляд за дітьми", "ur": "بچوں کی دیکھ ریکھ", "vi": "chăm sóc trẻ em", "zh": "兒童照顧" @@ -3468,6 +3618,7 @@ "bg": "киносалон", "ca": "sala de cinema", "cs": "kino", + "cy": "sinema", "da": "biograf", "de": "kino", "el": "κινηματογράφος", @@ -3478,6 +3629,8 @@ "fa": "سینما", "fi": "elokuvateatteri", "fr": "salle de cinéma", + "ga": "pictiúrlann", + "gl": "sala de cinema", "he": "בית קולנוע", "hr": "kino", "hu": "mozi", @@ -3488,18 +3641,18 @@ "lt": "kino teatras", "lv": "kinoteātris", "mr": "चित्रपटगृह", - "ms": "pawagam", "nb": "kino", "nl": "bioscoop", "pl": "kino", "pt": "sala de cinema", - "pt-br": "complexo cinematográfico", "ro": "cinematograf", "ru": "кинотеатр", "sk": "kino", "sl": "kino", + "sq": "kino", "sv": "biograf", "ta": "திரையரங்கு", + "te": "సినిమా హాలు", "th": "โรงภาพยนตร์", "tr": "sinema salonu", "uk": "кінотеатр", @@ -3509,6 +3662,7 @@ "zh-cn": "电影院" }, "clinic": { + "ar": "عيادة خارجية", "be": "паліклініка", "bg": "поликлиника", "ca": "clínica externa", @@ -3523,7 +3677,6 @@ "hi": "बाह्य रोगी विभाग", "hr": "poliklinika", "lt": "poliklinika", - "ms": "poliklinik", "nb": "poliklinikk", "nl": "polikliniek", "pl": "poliklinika", @@ -3531,6 +3684,7 @@ "ru": "поликлиника", "sk": "poliklinika", "sl": "poliklinika", + "sq": "poliklinika", "sv": "öppenvård", "tr": "poliklinik", "uk": "поліклініка", @@ -3543,18 +3697,21 @@ "bg": "часовникова кула", "ca": "rellotge de torre", "cs": "věžní hodiny", + "cy": "tŵr cloc", "da": "tårnur", "de": "turmuhr", "el": "πύργος ρολογιού", "en": "turret clock", "en-ca": "clock", "en-gb": "clock", - "es": "reloj público", + "es": "reloj de torre", "et": "tornikell", "fa": "برج ساعت", "fi": "kellotorni", "fr": "tour horloge", - "he": "מגדל שעון", + "ga": "clog", + "gl": "reloxo", + "he": "שעון צריח", "hi": "घडी", "hr": "sat", "hu": "óratorony", @@ -3564,21 +3721,21 @@ "kn": "ಗಡಿಯಾರ", "ko": "시계탑", "lt": "kurantai", - "lv": "pulkstenis", + "lv": "pulksteān tornis", "ml": "ഘടികാരം", "mr": "घड्याळ", - "ms": "menara jam", - "nb": "klokke", + "nb": "klokketårn", "nl": "torenuurwerk", "pl": "zegar wieżowy", "pt": "torre do relógio", - "pt-br": "relógio", "ro": "ceas", "ru": "башенные часы", "sk": "hodiny", "sl": "stolpna ura", + "sq": "kulla e sahatit", "sv": "tornur", "ta": "மணிக்கூட்டுக் கோபுரம்", + "te": "గడియార స్తంభం", "th": "หอนาฬิกา", "tr": "saat kulesi", "uk": "годинникова вежа", @@ -3595,13 +3752,16 @@ "be": "каледж", "bg": "колеж", "cs": "kolej", + "cy": "coleg", "el": "κολέγιο", "en": "college", "et": "kolledž", "fa": "کالج", "fr": "collège", + "ga": "coláiste", "he": "מכללה", "hi": "महाविद्यालय", + "hr": "visoka škola", "hu": "főiskola", "id": "kolese", "ja": "カレッジ", @@ -3611,24 +3771,25 @@ "lv": "koledža", "ml": "കോളേജ്", "mr": "महाविद्यालय", - "ms": "kolej", "pt": "colégio", "ro": "colegiu", "ru": "колледж", "sl": "kolidž", + "sq": "kolegji", "ta": "கல்லூரி", + "te": "కళాశాల", "th": "วิทยาลัย", "tr": "kolej", "uk": "коледж", "ur": "کالج", "vi": "trường cao đẳng", - "zh": "學院", - "zh-cn": "学院" + "zh": "学院" }, "community_centre": { "ar": "المراكز المجتمعية", "ca": "centre cívic", "cs": "komunitní centrum", + "cy": "canolfan gymunedol", "da": "medborgerhus", "de": "gemeinschaftszentrum", "el": "κοινοτικό κέντρο", @@ -3637,14 +3798,16 @@ "es": "centro comunitario", "et": "kogukonnakeskus", "fa": "مرکز اجتماعات محلی", - "fi": "monitoimitalo", + "fi": "yhteistötalo", "fr": "centre communautaire", + "ga": "ionad pobail", "he": "מתנ\"ס", "hu": "közösségi központ", + "id": "pusat komunitas", "it": "centro comunitario", "ja": "コミュニティセンター", + "ko": "커뮤니티 센터", "lv": "kopienas centrs", - "ms": "pusat masyarakat", "nb": "samfunnshus", "nl": "buurtcentrum", "pt": "centro comunitário", @@ -3684,14 +3847,17 @@ "sl": "stisnjeni zrak", "sv": "tryckluft", "ta": "அமுக்கக் காற்று", + "te": "సంపీడన వాయువు", "uk": "стиснене повітря", "zh": "压缩空气" }, "concert_hall": { + "ar": "قاعة حفلات موسيقية", "be": "канцэртная зала", "bg": "концертна зала", "ca": "sala de concerts", "cs": "koncertní sál", + "cy": "neuadd gyngerdd", "da": "koncerthus", "de": "konzerthaus", "el": "μέγαρο μουσικής", @@ -3700,6 +3866,8 @@ "et": "kontserdimaja", "fi": "konserttitalo", "fr": "bâtiment de salle de concert", + "ga": "ceoláras", + "gl": "sala de concertos", "he": "אולם קונצרטים", "hr": "koncertna dvorana", "hu": "hangversenyterem", @@ -3717,6 +3885,7 @@ "ru": "концертный зал", "sl": "koncertna dvorana", "sv": "konserthus", + "th": "โถงคอนเสิร์ต", "tr": "konser salonu", "uk": "концертна зала", "zh": "音樂廳" @@ -3725,6 +3894,7 @@ "ar": "مركز مؤتمرات", "ca": "centre de convencions", "cs": "kongresové centrum", + "cy": "canolfan gynadledda", "da": "messecenter", "de": "kongresszentrum", "el": "συνεδριακό κέντρο", @@ -3734,12 +3904,13 @@ "fa": "مرکز همایشها", "fi": "kongressikeskus", "fr": "palais des congrès", + "ga": "ionad tionóil", + "gl": "centro de convencións", "he": "מרכז כנסים", "id": "pusat konvensi", "it": "centro congressi", "ja": "コンベンション・センター", "ko": "컨벤션 센터", - "ms": "pusat konvensyen", "nb": "konferansesenter", "nl": "congrescentrum", "pl": "centrum kongresowe", @@ -3764,16 +3935,19 @@ "he": "בית ספר לבישול", "hu": "főzőiskola", "ja": "調理師養成施設", + "sl": "kuharska šola", "ur": "طباخی تعلیمی ادارہ", "vi": "trường dạy nấu ăn", "zh": "廚藝學校" }, "courthouse": { + "af": "geregshuis", "ar": "مبنى محكمة", "be": "будынак суда", "bg": "съдебна палата", "ca": "palau de justícia", "cs": "budova soudu", + "cy": "llys barn", "da": "domhus", "de": "gerichtsgebäude", "el": "δικαστικό μέγαρο", @@ -3782,12 +3956,12 @@ "et": "kohtuhoone", "fi": "oikeustalo", "fr": "palais de justice", + "gd": "taigh-cùirte", "he": "בית משפט", "hi": "न्यायभवन", "id": "gedung pengadilan", "it": "palazzo di giustizia", "ja": "裁判所庁舎", - "ms": "bangunan mahkamah", "nb": "tinghus", "nl": "gerechtsgebouw", "pl": "budynek sądu", @@ -3800,7 +3974,10 @@ "tr": "adliye", "uk": "будівля суду", "ur": "عدالت", - "zh": "法院" + "zh": "法院 (建筑物)", + "zh-cn": "法院", + "zh-hk": "法院", + "zh-tw": "法院" }, "coworking_space": { "ar": "مساحة عمل مشتركه", @@ -3812,10 +3989,10 @@ "es": "cotrabajo", "fa": "فضای کار مشترک", "fi": "ryhmätyötila", + "ga": "obair chomhionaid", "he": "חלל עבודה משותף", "id": "kerja bersama", "ja": "コワーキング", - "ms": "kerja bersama", "nb": "kontorfellesskap", "nl": "deelkantoor", "ru": "коворкинг", @@ -3832,6 +4009,7 @@ "bg": "крематориум", "ca": "crematori", "cs": "krematorium", + "cy": "amlosgfa", "da": "krematorie", "de": "krematorium", "el": "κρεματόριο", @@ -3841,9 +4019,13 @@ "fa": "مردهسوزخانه", "fi": "krematorio", "fr": "crématorium", + "ga": "créamatóiriam", + "gl": "crematorio", "he": "משרפה", + "hi": "शवदाहगृह", "hr": "krematorij", "hu": "krematórium", + "it": "crematorio", "ja": "火葬場", "ko": "화장장", "nb": "krematorium", @@ -3854,6 +4036,7 @@ "sk": "krematórium", "sl": "krematorij", "sv": "krematorium", + "te": "శ్మశానం", "th": "ฌาปนสถาน", "tr": "krematoryum", "uk": "крематорій", @@ -3862,11 +4045,12 @@ }, "crypt": { "af": "kripte", - "ar": "السرداب", + "ar": "سرداب كنيسة", "be": "крыпта", "bg": "крипта", "ca": "cripta", "cs": "krypta", + "cy": "claddgell", "da": "krypt", "de": "krypta", "el": "κρύπτη", @@ -3876,6 +4060,8 @@ "fa": "گورابه", "fi": "krypta", "fr": "crypte", + "ga": "uaimh", + "gl": "cripta", "he": "קריפטה", "hr": "kripta", "hu": "kripta", @@ -3888,6 +4074,7 @@ "nl": "crypte", "pl": "krypta", "pt": "cripta", + "ro": "criptă", "ru": "крипта", "sk": "krypta", "sl": "kripta", @@ -3902,6 +4089,7 @@ "bg": "стоматолог", "ca": "odontòleg", "cs": "stomatologická klinika", + "cy": "deintydd", "da": "tandlægeklinik", "de": "zahnarztpraxis", "de-ch": "zahnarzt", @@ -3914,6 +4102,9 @@ "fa": "دندانپزشک", "fi": "hammaslääkäri", "fr": "clinique dentaire", + "ga": "fiaclóir", + "gd": "fiaclair", + "gl": "odontólogo", "he": "רופא שיניים", "hr": "zubar", "hu": "fogorvos", @@ -3921,8 +4112,8 @@ "it": "dentista", "ja": "歯科医院", "ko": "치과의사", + "lt": "odontologas", "lv": "zobārsts", - "ms": "doktor gigi", "nb": "tannlege", "nl": "tandarts", "pl": "lekarz stomatolog", @@ -3932,6 +4123,7 @@ "ru": "стоматологическая клиника", "sk": "zubný lekár", "sl": "zobozdravnik", + "sq": "dentist", "sv": "tandläkare", "th": "ทันตแพทย์", "tr": "diş hekimi", @@ -3951,11 +4143,6 @@ "it": "centro immersioni", "ja": "ダイビングセンター" }, - "doctors": { - "ca": "consultori mèdic", - "en": "doctor's office", - "es": "consultorio médico" - }, "dojo": { "ar": "دوجو", "bg": "доджо", @@ -3966,6 +4153,7 @@ "en": "dōjō", "fa": "دوجو (ژاپن)", "fr": "dojo", + "gl": "dojo", "he": "דוג'ו", "hr": "dođo", "hu": "dódzsó", @@ -3974,7 +4162,6 @@ "ja": "道場", "ko": "도장", "lt": "dodžo", - "ms": "dojo", "nb": "dojo", "nl": "dojo", "pl": "dojo", @@ -3983,6 +4170,7 @@ "ru": "додзё", "sk": "dódžó", "sl": "dodžo", + "sq": "dojo", "sv": "dojo", "th": "โดโจ", "tr": "dojo", @@ -3993,8 +4181,10 @@ }, "drinking_water": { "ar": "مبقبق", + "bg": "чешма", "ca": "font d'aigua", "cs": "pítko", + "cy": "pistyll", "de": "trinkbrunnen", "el": "κρήνη πόσιμου νερού", "en": "drinking fountain", @@ -4006,6 +4196,7 @@ "it": "fontanella", "ja": "水飲み場", "ko": "음수대", + "nb": "drikkefontene", "nl": "drinkfontein", "pl": "pitnik", "pt": "fontanário", @@ -4027,10 +4218,12 @@ "fa": "آموزشگاه های تعلیم رانندگی", "fi": "autokoulu", "fr": "auto-école", + "gl": "autoescola", "he": "לימוד נהיגה", + "hu": "autósiskola", "it": "autoscuola", "ja": "自動車教習所", - "ko": "운전학원", + "ko": "운전자 교육", "lv": "autoskola", "nb": "føreropplæring", "nl": "rijles", @@ -4039,6 +4232,7 @@ "ro": "școală de șoferi", "ru": "автошкола", "sl": "avtošola", + "sq": "edukimi i shoferit", "sv": "trafikutbildning", "tr": "otomobil sürücüsü eğitimi", "uk": "автомобільна школа", @@ -4058,6 +4252,8 @@ "fa": "سالن سرپوشیده", "fi": "areena", "fr": "aréna", + "ga": "airéine", + "gl": "pavillón deportivo", "he": "זירה", "hu": "aréna", "it": "impianto sportivo al chiuso", @@ -4077,12 +4273,15 @@ "ar": "موقع لاستضافة أحداث", "be": "месца правядзення мерапрыемстваў", "ca": "sala d'espectacles", + "cs": "dějiště událostí", + "cy": "adeilad digwyddiadau", "de": "veranstaltungsort", "el": "χώρος εκδηλώσεων", "en": "event venue", "es": "lugar para eventos", "fi": "tapahtumapaikka", "fr": "lieu pour des événements", + "ga": "ionad imeachtaí", "he": "היכל הופעות", "hu": "rendezvényhelyszín", "it": "luogo per eventi", @@ -4090,7 +4289,7 @@ "ko": "행사 장소", "nb": "eventarena", "nl": "evenementenlocatie", - "pl": "hala widowiskowo-sportowa", + "pl": "miejsce imprez", "pt": "casa de shows", "ro": "sală de spectacol", "ru": "место проведения мероприятий", @@ -4115,6 +4314,8 @@ "fa": "نمایشگاه بازرگانی", "fi": "messut", "fr": "salon", + "ga": "aonach trádála", + "gl": "feira de mostras", "he": "יריד מסחרי", "hi": "व्यापार मेला", "hr": "gospodarska izložba", @@ -4124,13 +4325,13 @@ "ja": "見本市", "ko": "견본시", "lt": "mugė", - "ms": "ekspo perdagangan", "nb": "varemesse", "nl": "handelsbeurs", "pl": "targi", "pt": "feira profissional", "ru": "промышленная ярмарка", "sl": "sejem", + "sq": "panairi", "sv": "handelsmässa", "tr": "ticaret fuarı", "uk": "промислові виставки", @@ -4144,15 +4345,18 @@ "bg": "бързо хранене", "ca": "restaurant de menjar ràpid", "cs": "restaurace rychlého občerstvení", + "cy": "lle bwyta bwyd parod", "da": "fastfoodrestaurant", "de": "schnellrestaurant", "el": "εστιατόριο γρήγορης εξυπηρέτησης", - "en": "lola nena's", + "en": "fast food restaurant", "es": "restaurante de comida rápida", "et": "kiirtoidurestoran", "fa": "رستوران فست فود", "fi": "pikaruokaravintola", "fr": "restaurant rapide", + "ga": "mearbhia", + "gl": "comida rápida", "he": "מסעדת מזון מהיר", "hi": "fast food of usa hindi", "hr": "restoran brze hrane", @@ -4165,7 +4369,6 @@ "lt": "greitas maistas", "lv": "ātrās ēdināšanas restorāns", "mr": "झटपट खाऊ", - "ms": "restoran makanan segera", "nb": "gatekjøkken", "nl": "fastfoodrestaurant", "pl": "fast food", @@ -4174,8 +4377,10 @@ "ru": "ресторан фастфуда", "sk": "rýchle občerstvenie", "sl": "restavracija s hitro prehrano", + "sq": "sofra e shpejtë", "sv": "snabbmatsrestaurang", "ta": "thurida unawu", + "te": "ఫాస్ట్ ఫుడ్", "th": "อาหารจานด่วน", "tr": "fast food restoranı", "uk": "ресторан швидкого харчування", @@ -4188,6 +4393,7 @@ "ar": "مذود", "ca": "menjadora", "cs": "koryto", + "cy": "cafn bwyd", "da": "krybbe", "de": "futterbehälter", "el": "φάντη", @@ -4196,6 +4402,7 @@ "es": "pesebre", "et": "küna", "fr": "mangeoire", + "gl": "presebe", "he": "אבוס", "hu": "etető", "id": "palungan", @@ -4216,6 +4423,7 @@ }, "ferry_terminal": { "ca": "port de ferri", + "cy": "terfynfa fferïau", "da": "færgehavn", "de": "fährhafen", "en": "ferry port", @@ -4246,6 +4454,7 @@ "es": "gestión de activos", "fa": "مدیریت دارایی", "fr": "gestion d'actifs", + "ga": "bainistíocht sócmhainní", "he": "ניהול נכסים", "hi": "निवेश प्रबंधन", "hu": "eszközmenedzsment", @@ -4254,7 +4463,6 @@ "ja": "アセット・マネジメント", "ko": "자산운용", "lt": "investicijų valdymas", - "ms": "pengurusan aset", "nb": "kapitalforvaltning", "nl": "vermogensbeheer", "pl": "zarządzanie aktywami", @@ -4264,30 +4472,36 @@ "sk": "správcovská spoločnosť", "sl": "upravljanje premoženja", "sv": "kapitalförvaltning", + "te": "పెట్టుబడి నిర్వహణ", "uk": "управління активами", "vi": "quản lý tài sản", "zh": "资产管理", - "zh-hk": "投資管理" + "zh-hk": "投資管理", + "zh-tw": "資產管理" }, "fire_station": { - "ar": "محطة إطفاء الحرائق", + "ar": "مركز إطفاء", "be": "пажарная станцыя", "ca": "parc de bombers", - "cs": "hasičská zbrojnice", + "cs": "hasičská stanice", + "cy": "gorsaf dân", "da": "brandstation", "de": "feuerwehrhaus", "el": "πυροσβεστικός σταθμός", "en": "fire station", "es": "estación de bomberos", "et": "tuletõrjedepoo", + "fa": "ایستگاه آتشنشانی", "fi": "paloasema", "fr": "caserne de pompiers", + "ga": "stáisiún dóiteáin", + "gl": "parque de bombeiros", "he": "תחנת כיבוי אש", + "id": "stasiun pemadam kebakaran", "it": "caserma dei vigili del fuoco", "ja": "消防署", "ko": "소방서", "lt": "gaisrinė", - "ms": "balai bomba", "nb": "brannstasjon", "nl": "brandweerkazerne", "pl": "remiza strażacka", @@ -4313,10 +4527,13 @@ "en": "flowerpot", "es": "maceta", "et": "lillepott", + "fa": "گلدان گل", "fi": "kukkaruukku", "fr": "pot de fleurs", + "ga": "pota bláthanna", "he": "עציץ", "hi": "गमला", + "hu": "virágcserép", "id": "pot bunga", "it": "vaso per fiori", "ja": "植木鉢", @@ -4329,7 +4546,9 @@ "ru": "цветочный горшок", "sl": "cvetlični lonec", "sv": "blomkruka", + "te": "కుండీ", "tr": "saksı", + "uk": "вазонок", "zh": "花盆" }, "food_court": { @@ -4341,7 +4560,6 @@ "fr": "aire de restauration", "ja": "フードコート", "ko": "푸드코트", - "ms": "medan selera", "nb": "mathall", "pt": "praça de alimentação", "ru": "фудкорт", @@ -4357,6 +4575,7 @@ "bg": "фонтан", "ca": "font", "cs": "fontána", + "cy": "ffynnon", "da": "springvand", "de": "zierbrunnen", "de-ch": "springbrunnen", @@ -4367,6 +4586,8 @@ "fa": "فواره", "fi": "suihkulähde", "fr": "fontaine", + "ga": "scairdeán", + "gl": "fonte", "he": "מזרקה", "hr": "fontana", "hu": "szökőkút", @@ -4379,7 +4600,6 @@ "lv": "strūklaka", "ml": "ജലധാര", "mr": "कारंजे", - "ms": "air pancut", "nb": "fontene", "nl": "fontein", "pl": "fontanna", @@ -4389,8 +4609,10 @@ "ru": "фонтан", "sk": "fontána", "sl": "fontana", + "sq": "çezma", "sv": "fontän", "ta": "நீர்த்தாரைகள்", + "te": "ఫౌంటైన్", "tr": "çeşme", "uk": "фонтан", "vi": "đài phun nước", @@ -4402,6 +4624,7 @@ "bg": "бензиностанция", "ca": "benzinera", "cs": "čerpací stanice pohonných hmot", + "cy": "gorsaf betrol", "da": "tankstation", "de": "tankstelle", "el": "πρατήριο καυσίμων", @@ -4419,8 +4642,8 @@ "it": "stazione di servizio", "ja": "ガソリンスタンド", "ko": "주유소", + "lt": "degalinė", "lv": "degvielas uzpildes stacija", - "ms": "stesen minyak", "nb": "bensinstasjon", "nl": "tankstation", "pl": "stacja paliw", @@ -4439,8 +4662,10 @@ "cs": "obřadní síň", "de": "trauerhalle", "en": "funeral hall", + "es": "sala de funerales", "fr": "salle de recueillement", "hu": "ravatalozó", + "it": "chiesa cimiteriale", "ja": "斎場", "nl": "rouwaula", "pl": "dom przedpogrzebowy", @@ -4460,45 +4685,15 @@ }, "grit_bin": { "de": "streugutbehälter", - "en": "baltimore salt box", + "en": "grit bin", "fr": "bac à sel", "ja": "砂箱", "nl": "zoutbak", "sv": "vägsandlåda" }, - "gym": { - "ar": "نادٍ صحي", - "bg": "фитнес зала", - "ca": "centre de fitness", - "cs": "posilovna", - "da": "motionscenter", - "de": "fitnessstudio", - "en": "health club", - "es": "club de salud", - "et": "jõusaal", - "fa": "باشگاه ورزشی", - "fi": "kuntosali", - "fr": "salle de sport", - "hr": "teretana", - "hu": "edzőterem", - "id": "pusat kebugaran", - "ja": "フィットネスクラブ", - "ko": "헬스클럽", - "lv": "fitnesa klubs", - "nb": "helsestudio", - "nl": "sportschool", - "pl": "siłownia", - "pt": "academia desportiva", - "ru": "фитнес-клуб", - "sl": "fitnes center", - "sv": "motionssal", - "tr": "fitness merkezi", - "uk": "фітнес-клуб", - "vi": "phòng tập gym", - "zh": "健身房" - }, "harbourmaster": { "ca": "capitania de port", + "cy": "harbwrfeistr", "da": "havnefoged", "de": "hafenkapitän", "el": "λιμενάρχης", @@ -4527,6 +4722,7 @@ "ar": "مركز صحي", "ca": "centre d'atenció primària", "cs": "zdravotnické středisko", + "cy": "canolfan iechyd cymunedol", "de": "medizinisches versorgungszentrum", "el": "κέντρο υγείας", "en": "community health center", @@ -4537,7 +4733,6 @@ "hr": "dom zdravlja", "ja": "保健センター", "ml": "athrasevanam", - "ms": "pusat kesihatan komuniti", "nb": "helsesenter", "nl": "wijkgezondheidscentrum", "pl": "ośrodek zdrowia", @@ -4554,6 +4749,7 @@ "be": "бальніца", "bg": "болница", "cs": "nemocnice", + "cy": "ysbyty", "da": "sygehus", "de": "krankenhaus", "de-ch": "spital", @@ -4563,6 +4759,7 @@ "fa": "بیمارستان", "fi": "sairaala", "fr": "hôpital", + "ga": "ospidéal", "he": "בית חולים", "hi": "चिकित्सालय", "hr": "bolnica", @@ -4583,8 +4780,10 @@ "ru": "больница", "sk": "nemocnica", "sl": "bolnišnica", + "sq": "spital", "sv": "sjukhus", "ta": "மருத்துவமனை", + "te": "వైద్యశాల", "th": "โรงพยาบาล", "tr": "hastane", "uk": "лікарня", @@ -4596,21 +4795,24 @@ "hunting_stand": { "cs": "posed", "da": "skydetårn", - "de": "ansitz", + "de": "hochsitz", "en": "shooting stand", "fa": "پایه درختی", "fi": "hirvitorni", "fr": "mirador", "hr": "čeka", + "it": "postazione di caccia", "nb": "jakttårn", "pl": "ambona", "ru": "охотничья вышка", + "sk": "poľovnícky posed", "sl": "lovska preža", "sv": "jakttorn" }, "ice_cream": { "ar": "محل الآيس كريم", "ca": "gelateria", + "cy": "parlwr hufen iâ", "da": "isbutik", "de": "eisdiele", "en": "ice cream parlor", @@ -4625,7 +4827,8 @@ "ko": "아이스크림 가게", "nl": "ijssalon", "pl": "lodziarnia", - "pt": "sorveteria", + "pt": "gelataria", + "pt-br": "sorveteria", "ru": "кафе-мороженое", "sv": "glasskafé", "tr": "dondurma salonu", @@ -4650,14 +4853,14 @@ "it": "internet point", "ja": "インターネットカフェ", "ko": "인터넷 카페", - "ms": "kafe siber", "nb": "internettkafé", "nl": "internetcafé", "pl": "kafejka internetowa", - "pt": "cyber café", + "pt": "cibercafé", "ru": "интернет-кафе", "sk": "internetová kaviareň", "sv": "internetkafé", + "te": "ఇంటర్నెట్ కేఫ్", "tr": "i̇nternet kafe", "uk": "інтернет-кафе", "vi": "cà phê internet", @@ -4683,13 +4886,13 @@ "ja": "職業紹介事業", "ko": "노동거래소", "lt": "įdarbinimo agentūra", - "ms": "agensi pekerjaan", "nb": "arbeidsformindling", "nl": "arbeidsbureau", "pl": "agencja zatrudnienia", "pt": "agência de emprego", "ru": "кадровое агентство", "sl": "najem delovne sile", + "sq": "agjencia e punësimit", "sv": "arbetsförmedling", "uk": "кадрова агенція", "ur": "ملازمتی وکالہ", @@ -4729,6 +4932,8 @@ "fa": "کودکستان", "fi": "esikoulu", "fr": "école maternelle", + "ga": "ciondargairdín", + "gl": "escola infantil", "he": "גן ילדים", "hi": "किंडरगार्टन", "hr": "dječji vrtić", @@ -4742,7 +4947,6 @@ "lv": "bērnudārzs", "ml": "കിൻഡർഗാർട്ടൻ", "mr": "अंगणवाडी", - "ms": "tadika", "nb": "barnehage", "nl": "kleuterschool", "pl": "przedszkole", @@ -4751,8 +4955,10 @@ "ru": "детский сад", "sk": "materská škola", "sl": "vrtec", + "sq": "kopsht fëmijësh", "sv": "barnträdgård", "ta": "கின்டர்கார்ட்டின்", + "te": "కిండర్ గార్టెన్", "th": "โรงเรียนอนุบาล", "tr": "anaokulu", "uk": "дитячий садок", @@ -4768,11 +4974,12 @@ "kneipp_water_cure": { "da": "kneippkur", "de": "kneippen – traditionelles wissen und praxis nach der lehre sebastian kneipps", - "en": "kneippism – traditional knowledge and practice according to sebastian kneipp", + "en": "kneippism", "fr": "kneippisme - connaissances et pratiques traditionnelles selon sebastian kneipp", "ja": "クナイプ式水浴療法", "nl": "kneippkuur", - "pt": "terapia de kneipp" + "pt": "terapia de kneipp", + "sl": "knajpanje" }, "language_school": { "bg": "езикова гимназия", @@ -4784,6 +4991,8 @@ "es": "escuela de idiomas", "fi": "kielikoulu", "fr": "école de langue", + "ga": "scoil teanga", + "gl": "escola de idiomas", "he": "בית ספר לשפות", "hr": "jezična škola", "hu": "nyelviskola", @@ -4796,10 +5005,23 @@ "sl": "jezikovna šola", "tr": "dil okulu", "zh": "语言学校", - "zh-cn": "英国剑桥语言学校", "zh-hk": "語言學校", "zh-tw": "語言學校" }, + "lavoir": { + "ca": "safareig", + "de": "waschhaus", + "el": "δημόσιο πλυσταριό", + "en": "lavoir", + "es": "lavadero", + "gl": "lavadoiro", + "it": "lavatoio", + "ja": "ラヴォアール", + "nl": "openbare wasplaats", + "pt": "lavadouro", + "sl": "odprta pralnica", + "zh": "欧洲旧式公共洗衣处" + }, "letter_box": { "ca": "bústica de cartes", "da": "postkasse", @@ -4816,6 +5038,7 @@ "nl": "brievenbus", "pl": "skrzynka na listy", "ru": "ящик для писем", + "sl": "poštni nabiralnik", "sv": "postlåda", "ur": "بمبا", "vi": "hòm thư đến", @@ -4828,6 +5051,7 @@ "bg": "библиотека", "ca": "biblioteca", "cs": "knihovna", + "cy": "llyfrgell", "da": "bibliotek", "de": "bibliothek", "el": "βιβλιοθήκη", @@ -4837,6 +5061,8 @@ "fa": "کتابخانه", "fi": "kirjasto", "fr": "bibliothèque", + "ga": "leabharlann", + "gl": "biblioteca", "he": "ספרייה", "hi": "पुस्तकालय", "hr": "knjižnica", @@ -4850,7 +5076,6 @@ "lv": "bibliotēka", "ml": "ഗ്രന്ഥശാല", "mr": "ग्रंथालय", - "ms": "perpustakaan", "nb": "bibliotek", "nl": "bibliotheek", "pl": "biblioteka", @@ -4859,8 +5084,10 @@ "ru": "библиотека", "sk": "knižnica", "sl": "knjižnica", + "sq": "biblioteka", "sv": "bibliotek", "ta": "நூலகம்", + "te": "గ్రంథాలయము", "th": "ห้องสมุด", "tr": "kütüphane", "uk": "бібліотека", @@ -4902,6 +5129,7 @@ "zh": "救生圈" }, "lifeboat_station": { + "cy": "canolfan bad achub", "da": "kystredningsstation", "de": "rettungsbootstation", "en": "lifeboat station", @@ -4931,13 +5159,16 @@ "en": "sex hotel", "es": "albergue transitorio", "fi": "seksihotelli", + "fr": "hôtel de sexe", "id": "hotel cinta", "ja": "セックス・ホテル", "pt": "motel", + "sl": "seks hotel", "sv": "kärlekshotell" }, "marae": { "en": "marae", + "fa": "مارائه", "he": "מאראה", "ja": "マラエ", "ru": "мараэ", @@ -4960,17 +5191,18 @@ "fa": "بازارگاه", "fi": "markkinapaikka", "fr": "marché", + "ga": "áit mhargaidh", + "gl": "mercado", "he": "שוק", "hr": "tržnica", "hu": "piac", - "id": "pasar tradisional", + "id": "pasar", "it": "mercato", "ja": "市場", "kn": "ಮಾರುಕಟ್ಟೆ", "ko": "시장", "lt": "turgus", "lv": "tirgus", - "ms": "tempat pasar", "nb": "torg", "nl": "marktplaats", "pl": "targ", @@ -5004,6 +5236,7 @@ "fa": "کتابخانه سیار", "fi": "kirjastoauto", "fr": "bibliothèque mobile", + "ga": "leabharlann taistil", "he": "ספרייה ניידת", "hr": "pokretna knjižnica", "hu": "mozgókönyvtár", @@ -5015,9 +5248,11 @@ "pt": "biblioteca móvel", "ru": "передвижная библиотека", "sl": "potujoča knjižnica", + "sq": "busoteka", "sv": "bokbuss", "ta": "நடமாடும் நூலகம்", "uk": "пересувна бібліотека", + "vi": "quầy sách lưu động", "zh": "流動圖書館" }, "monastery": { @@ -5027,6 +5262,7 @@ "bg": "манастир", "ca": "monestir", "cs": "klášter", + "cy": "mynachlog", "da": "kloster", "de": "kloster", "el": "μοναστήρι", @@ -5036,8 +5272,10 @@ "fa": "صومعه", "fi": "luostari", "fr": "monastère", + "ga": "mainistir", + "gl": "mosteiro", "he": "מנזר", - "hr": "samostan", + "hr": "manastir", "hu": "kolostor", "id": "biara", "it": "monastero", @@ -5046,7 +5284,6 @@ "lt": "vienuolynas", "lv": "klosteris", "ml": "ആശ്രമം", - "ms": "biara", "nb": "kloster", "nl": "kloostercomplex", "pl": "klasztor", @@ -5055,6 +5292,7 @@ "ru": "монастырь", "sk": "kláštor", "sl": "samostan", + "sq": "manastiri", "sv": "kloster", "th": "อาราม", "tr": "manastır", @@ -5095,6 +5333,7 @@ "th": "สถานเก็บศพ", "tr": "morg", "uk": "морг", + "vi": "nhà xác", "zh": "殮房", "zh-cn": "太平间", "zh-tw": "太平間" @@ -5104,10 +5343,12 @@ "en": "motorcycle parking area" }, "music_school": { + "ar": "مدرسة موسيقى", "be": "музычная школа", "bg": "музикално училище", "ca": "escola de música", "cs": "hudební škola", + "cy": "ysgol gerddoriaeth", "da": "musikskole", "de": "musikschule", "el": "μουσική σχολή", @@ -5117,6 +5358,7 @@ "et": "muusikakool", "fi": "musiikkiopisto", "fr": "école de musique", + "ga": "scoil cheoil", "he": "אקדמיה למוזיקה", "hr": "glazbena škola", "hu": "zeneiskola", @@ -5130,7 +5372,9 @@ "pt": "escola de música", "ru": "музыкальное учебное заведение", "sl": "glasbena šola", + "sq": "shkolla e muzikës", "sv": "musikskola", + "te": "సంగీత పాఠశాల", "tr": "müzik okulu", "uk": "музична школа", "ur": "موسیقی درس گاہ", @@ -5143,6 +5387,7 @@ "ar": "صالة موسيقى", "be": "канцэртная пляцоўка", "ca": "sala de concerts", + "cy": "canolfan gerddoriaeth", "da": "spillested", "de": "veranstaltungsort für musikdarbietungen", "el": "χώρος συναυλιών", @@ -5152,6 +5397,7 @@ "fa": "محل برگزاری موسیقی", "fi": "konserttitila", "fr": "salle de concert", + "ga": "ionad ceoil", "he": "אולם מוזיקה", "hu": "zenei előadások helyszíne", "it": "luogo per eventi musicali", @@ -5159,7 +5405,7 @@ "lv": "mūzikas norises vieta", "nb": "konsertlokale", "nl": "concertzaal", - "pl": "sala koncertowa", + "pl": "miejsce koncertowe", "pt": "casa de espetáculos", "ru": "концертная площадка", "sl": "glasbeno prizorišče", @@ -5177,6 +5423,7 @@ "bg": "нощен клуб", "ca": "club nocturn", "cs": "noční klub", + "cy": "clwb nos", "da": "natklub", "de": "nachtclub", "el": "νυχτερινό κέντρο διασκέδασης", @@ -5186,6 +5433,7 @@ "fa": "باشگاه شبانه", "fi": "yökerho", "fr": "boîte de nuit", + "ga": "club oíche", "he": "מועדון לילה", "hi": "नाइट क्लब", "hr": "noćni klub", @@ -5194,8 +5442,8 @@ "it": "night club", "ja": "ナイトクラブ", "ko": "나이트클럽", + "lt": "naktinis klubas", "ml": "നിശാ ക്ലബ്", - "ms": "kelab malam", "nb": "nattklubb", "nl": "nachtclub", "pl": "klub nocny", @@ -5205,6 +5453,7 @@ "sl": "nočni klub", "sv": "nattklubb", "ta": "இரவு விடுதி", + "te": "నైట్ క్లబ్", "th": "ไนต์คลับ", "tr": "gece kulübü", "uk": "нічний клуб", @@ -5215,30 +5464,38 @@ "ar": "التمريض المنزلي", "ca": "residència de gent gran", "cs": "dům s pečovatelskou službou", + "cy": "cartref nyrsio", "da": "sygehjem", "de": "pflegeheim", + "el": "γηροκομείο", "en": "nursing home", "es": "residencia geriátrica", "et": "hooldekodu", "fa": "آسایشگاه", "fi": "hoitokoti", "fr": "établissement médico-social", + "ga": "ionad altranais", + "gl": "residencia de maiores", + "he": "בית אבות", "hi": "नर्सिंग होम", - "hu": "idősek otthona", + "hu": "ápolóotthon", "id": "rumah perawatan", "it": "casa di riposo", "ja": "ナーシングホーム", "nb": "sykehjem", "nl": "verpleeghuis", "pl": "dom pomocy społecznej", + "ru": "дом для инвалидов и пенсионеров", "sl": "negovalni dom", "sv": "vårdhem", "tr": "huzurevi", "vi": "viện dưỡng lão", - "zh": "介護老人福祉設施" + "zh": "介護老人福祉設施", + "zh-tw": "長期照護機構" }, "parcel_locker": { "ar": "مطراد", + "bg": "автоматична пощенска станция", "cs": "doručovací box", "de": "paketautomat", "en": "parcel locker", @@ -5246,9 +5503,10 @@ "fi": "pakettiautomaatti", "fr": "consigne automatique de colis", "it": "paccomat", + "lv": "pakomāts", "nb": "pakkeboks", - "nl": "pakjesautomaat", - "pl": "paczkomat", + "nl": "pakketbrievenbus", + "pl": "automat paczkowy", "pt": "armário automático", "ro": "pachetomat", "ru": "почтомат", @@ -5261,6 +5519,7 @@ "be": "паркоўка", "ca": "aparcament", "cs": "parkoviště", + "cy": "maes parcio", "da": "parkeringsplads", "de": "parkplatz", "en": "parking lot", @@ -5270,6 +5529,7 @@ "fa": "پارکینگ", "fi": "pysäköintialue", "fr": "parc de stationnement", + "ga": "áit pháirceála", "he": "מגרש חניה", "hr": "parkiralište", "hu": "parkoló", @@ -5277,7 +5537,6 @@ "it": "parcheggio", "ja": "駐車場", "ko": "주차", - "ms": "tempat letak kereta", "nb": "parkeringsplass", "nl": "parkeerterrein", "pl": "parking", @@ -5300,6 +5559,7 @@ "parking_space": { "ar": "مساحة وقوف السيارة", "ca": "espai d'aparcament", + "cs": "parkovací stání", "de": "stellplatz", "el": "χώρος στάθμευσης", "en": "parking space", @@ -5317,6 +5577,7 @@ "pl": "miejsce postojowe", "ru": "парковочное место", "sl": "parkirno mesto", + "sv": "parkeringsyta", "vi": "chỗ đậu xe", "zh": "車位" }, @@ -5325,6 +5586,7 @@ "be": "будынак парламента", "ca": "edifici parlamentari", "cs": "budova parlamentu", + "cy": "senedd-dy", "da": "parlamentsbygning", "de": "parlamentsgebäude", "el": "κτήριο της βουλής", @@ -5332,6 +5594,7 @@ "es": "edificio parlamentario", "fi": "parlamenttitalo", "fr": "bâtiment parlementaire", + "ga": "teach parlaiminte", "he": "מבנה פרלמנט", "hu": "parlamenti épület", "id": "gedung parlemen", @@ -5352,9 +5615,6 @@ "zh": "議會建築物", "zh-cn": "议会建筑物" }, - "payment_centre": { - "en": "bayad center" - }, "pharmacy": { "af": "apteek", "ar": "صيدلية", @@ -5372,6 +5632,8 @@ "fa": "داروخانه", "fi": "apteekki", "fr": "pharmacie", + "ga": "cógaslann", + "gl": "farmacia", "he": "בית מרקחת", "hr": "ljekarna", "hu": "gyógyszertár", @@ -5381,7 +5643,6 @@ "ko": "약국", "lt": "vaistinė", "lv": "aptieka", - "ms": "farmasi", "nb": "apotek", "nl": "apotheek", "pl": "apteka", @@ -5390,6 +5651,7 @@ "ru": "аптека", "sk": "lekáreň", "sl": "lekarna", + "sq": "barnatore", "sv": "apotek", "ta": "மருந்தகம்", "tr": "eczane", @@ -5412,7 +5674,6 @@ "it": "cabina per fototessera", "ja": "証明写真機", "ko": "포토 부스", - "ms": "reruai foto", "nb": "fotoautomat", "nl": "fotoautomaat", "pl": "fotobudka", @@ -5438,13 +5699,11 @@ "sl": "mrliška vežica" }, "place_of_worship": { - "af": "rooms-katolieke kerk", "ar": "دار عبادة", "be": "культавае збудаванне", - "bg": "католическа църква", "ca": "lloc de culte", "cs": "místo uctívání", - "da": "romerskkatolske kirke", + "cy": "addoldy", "de": "kultstätte", "el": "χώρος λατρείας", "en": "structure of worship", @@ -5455,6 +5714,8 @@ "fa": "نیایشگاه", "fi": "hartauspaikka", "fr": "lieu de culte", + "ga": "ionad adhartha", + "gd": "àite adhraidh", "he": "בית תפילה", "hi": "उपासनास्थल", "hr": "mjesto štovanja", @@ -5462,13 +5723,10 @@ "id": "tempat ibadah", "it": "luogo di culto", "ja": "礼拝所", - "kn": "ಕ್ಯಾಥೋಲಿಕ್ ಚರ್ಚ್", - "ko": "로마 가톨릭교회", "lt": "šventvietė", "lv": "kulta vieta", "ml": "ആരാധനാലയം", "mr": "प्रार्थनास्थळ", - "ms": "tempat ibadat", "nb": "kultsted", "nl": "gebedshuis", "pl": "miejsce kultu", @@ -5476,8 +5734,8 @@ "pt-br": "local de prática religiosa", "ro": "lăcaș de cult", "ru": "культовое сооружение", - "sk": "katolícka cirkev", "sl": "svetišče", + "sq": "vendi i adhurimit", "sv": "kultplats", "ta": "வழிபாட்டு இடம்", "th": "ศาสนสถาน", @@ -5495,6 +5753,7 @@ "bg": "планетариум", "ca": "planetari", "cs": "planetárium", + "cy": "planetariwm", "el": "πλανητάριο", "en": "planetarium", "es": "planetario", @@ -5502,6 +5761,7 @@ "fa": "آسماننما", "fi": "planetaario", "fr": "planétarium", + "ga": "pláinéadlann", "he": "פלנטריום", "hi": "ताराघर", "hr": "planetarij", @@ -5515,6 +5775,8 @@ "ru": "планетарий", "sk": "planetárium", "sl": "planetarij", + "sq": "planetar", + "te": "నక్షత్రశాల", "th": "ท้องฟ้าจำลอง", "tr": "planetaryum", "uk": "планетарій", @@ -5527,6 +5789,7 @@ "be": "паліцэйскі ўчастак", "ca": "comissaria", "cs": "policejní stanice", + "cy": "gorsaf heddlu", "da": "politistation", "de": "polizeidienststelle", "el": "αστυνομικό τμήμα", @@ -5544,7 +5807,6 @@ "ko": "경찰서", "lv": "policijas iecirknis", "ml": "പോലീസ് സ്റ്റേഷൻ", - "ms": "balai polis", "nb": "politistasjon", "nl": "politiebureau", "pl": "siedziba policji", @@ -5553,8 +5815,10 @@ "ru": "полицейский участок", "sk": "policajná stanica", "sl": "policijska postaja", + "sq": "stacioni i policisë", "sv": "polisstation", "ta": "காவல் நிலையம்", + "te": "రక్షకభట నిలయం", "tr": "polis karakolu", "uk": "поліцейська дільниця", "ur": "تھانہ", @@ -5566,6 +5830,7 @@ "be": "выбарчы ўчастак", "ca": "lloc de votació", "cs": "volební místnost", + "cy": "gorsaf bleidleisio", "da": "afstemningssted", "de": "wahllokal", "en": "polling place", @@ -5573,13 +5838,13 @@ "et": "valimispunkt", "fi": "äänestyspaikka", "fr": "bureau de vote", + "ga": "ionad vótála", "hu": "szavazóhelyiség", "id": "tempat pemungutan suara", "it": "seggio elettorale", "ja": "投票所", "ko": "투표소", "mr": "मतदान केंद्र", - "ms": "pusat pembuangan undi", "nb": "stemmelokale", "nl": "stembureau", "pl": "lokal wyborczy", @@ -5588,6 +5853,7 @@ "sk": "volebná miestnosť", "sl": "volišče", "sv": "vallokal", + "ta": "வாக்குச்சாவடி", "tr": "oy kullanma yeri", "uk": "виборча дільниця", "ur": "information aboutpoling station", @@ -5599,6 +5865,7 @@ "bg": "пощенска кутия", "ca": "bústia", "cs": "poštovní schránka", + "cy": "blwch post", "da": "postkasse", "de": "postbriefkasten", "en": "post box", @@ -5607,6 +5874,8 @@ "fa": "صندوق پست", "fi": "kirjelaatikko", "fr": "boîte aux lettres", + "gd": "bogsa-litrichean", + "gl": "caixa do correo", "he": "תיבת דואר", "hu": "levélgyűjtő szekrény", "id": "bis surat", @@ -5615,7 +5884,6 @@ "ko": "우체통", "lt": "pašto dėžutė", "ml": "അഞ്ചൽപ്പെട്ടി", - "ms": "peti pos", "nb": "innleveringspostkasse", "nl": "brievenbus", "pl": "skrzynka pocztowa", @@ -5639,6 +5907,7 @@ "it": "centro di distribuzione", "ja": "区分所", "nl": "postsorteercentrum", + "sl": "sortirnica poštnih pošiljk", "sv": "utdelningskontoret", "zh": "郵件分類處" }, @@ -5649,6 +5918,7 @@ "bg": "пощенска станция", "ca": "oficina de correus", "cs": "pošta", + "cy": "swyddfa bost", "da": "postkontor", "de": "postamt", "el": "ταχυδρομείο", @@ -5658,6 +5928,7 @@ "fa": "اداره پست", "fi": "postitoimisto", "fr": "bureau de poste", + "ga": "oifig an phoist", "he": "בית דואר", "hi": "डाकघर", "hr": "poštanski ured", @@ -5674,8 +5945,10 @@ "pt-br": "agência de correio", "ru": "почтовое отделение", "sl": "pošta", + "sq": "zyra e postës", "sv": "postkontor", "ta": "அஞ்சலகம்", + "te": "పోస్టాఫీసు", "th": "ที่ทำการไปรษณีย์", "tr": "postane", "uk": "поштове відділення", @@ -5691,6 +5964,7 @@ "bg": "принтер", "ca": "impressora", "cs": "počítačová tiskárna", + "cy": "argraffydd", "de": "drucker", "el": "εκτυπωτής", "en": "printer", @@ -5698,6 +5972,8 @@ "fa": "چاپگر", "fi": "tulostin", "fr": "imprimante", + "ga": "printéir", + "gl": "impresora", "he": "מדפסת", "hi": "प्रिण्टर", "hr": "pisač", @@ -5711,7 +5987,6 @@ "lv": "printeris", "ml": "പ്രിന്റർ", "mr": "प्रिंटर", - "ms": "pencetak komputer", "nb": "skriver", "pl": "drukarka", "pt": "impressora", @@ -5719,15 +5994,19 @@ "ru": "принтер", "sk": "tlačiareň", "sl": "tiskalnik", + "sq": "printeri", "sv": "skrivare", "ta": "கணினி அச்சுப்பொறி", + "te": "కంప్యూటర్ ప్రింటర్", "th": "เครื่องพิมพ์", "tr": "yazıcı", "uk": "принтер", "ur": "پرنٹر", "vi": "máy in", "zh": "打印機", - "zh-cn": "打印机" + "zh-cn": "打印机", + "zh-hk": "列印機", + "zh-tw": "印表機" }, "prison": { "af": "tronk", @@ -5736,6 +6015,7 @@ "bg": "затвор", "ca": "presó", "cs": "věznice", + "cy": "carchar", "da": "fængsel", "de": "gefängnis", "el": "φυλακή", @@ -5744,6 +6024,9 @@ "et": "vangla", "fa": "زندان", "fi": "vankila", + "ga": "príosún", + "gd": "prìosan", + "gl": "centro penitenciario", "he": "בית סוהר", "hi": "कारागार", "hr": "zatvor", @@ -5757,7 +6040,6 @@ "lv": "cietums", "ml": "ജയിൽ", "mr": "तुरुंग", - "ms": "penjara", "nb": "fengsel", "nl": "gevangenis", "pl": "zakład karny", @@ -5766,8 +6048,10 @@ "ru": "тюрьма", "sk": "väznica", "sl": "zapor", + "sq": "burg", "sv": "anstalt", "ta": "சிறைச்சாலை", + "te": "కారాగారం", "th": "เรือนจำ", "tr": "cezaevi", "uk": "в'язниця", @@ -5777,11 +6061,16 @@ "zh-cn": "监狱" }, "prison_camp": { + "ar": "معسكر سجناء", + "ca": "camp de presoners", + "da": "fangelejr", + "de": "gefangenenlager", "en": "prison camp", "es": "campo de prisioneros", "et": "vangilaager", "fi": "vankileiri", "fr": "camp de prisonnier", + "ga": "campa príosúin", "nb": "fangeleir", "nl": "gevangenenkamp", "ru": "тюремный лагерь", @@ -5793,11 +6082,14 @@ "be": "паб", "bg": "кръчма", "cs": "hospoda", + "cy": "tafarn", "el": "παμπ", "en": "pub", "et": "pubi", "fa": "میخانه", "fi": "pubi", + "ga": "teach tábhairne", + "gd": "taigh-seinnse", "he": "פאב", "hu": "söröző", "id": "kedai bir", @@ -5817,6 +6109,7 @@ "ar": "حمامات عامة", "ca": "banys públics", "cs": "veřejné lázně", + "cy": "bath cyhoeddus", "da": "offentligt bad", "de": "badehaus", "el": "δημόσιο λουτρό", @@ -5825,6 +6118,7 @@ "fa": "حمام عمومی", "fi": "yleinen sauna", "fr": "bains publics", + "gl": "baño público", "he": "בית מרחץ", "hu": "közfürdő", "id": "pemandian umum", @@ -5839,7 +6133,7 @@ "ru": "общественная баня", "sl": "javno kopališče", "sv": "badanläggning", - "tr": "halk banyosu", + "tr": "hamam", "uk": "лазня", "vi": "nhà tắm công cộng", "zh": "公共浴場", @@ -5855,6 +6149,8 @@ "en-gb": "bookswap", "es": "biblioteca libre", "fr": "microbibliothèque", + "ga": "leabhragán poiblí", + "gl": "biblioteca libre", "he": "ספרייה זעירה", "ja": "みんなの本棚", "lt": "vieša knygų lentyna", @@ -5869,12 +6165,15 @@ "bg": "обществена сграда", "ca": "edifici públic", "cs": "veřejná budova", + "cy": "adeilad cyhoeddus", "de": "öffentliches gebäude", "el": "δημόσιο κτίριο", "en": "public building", "es": "edificio público", "fi": "julkinen rakennus", "fr": "bâtiment public", + "ga": "foirgneamh poiblí", + "gl": "edificio público", "he": "מבנה ציבורי", "hu": "középület", "id": "bangunan publik", @@ -5891,6 +6190,7 @@ "ru": "общественное здание", "sl": "javna stavba", "sv": "offentlig byggnad", + "tr": "kamu binası", "uk": "громадська будівля", "ur": "عوامی عمارت", "zh": "公共建築" @@ -5905,6 +6205,7 @@ }, "recycling": { "ar": "صندوق فرز نفايات", + "bg": "кошче за рециклиране", "ca": "centre de reciclatge", "da": "genbrugscontainer", "de": "wertstoffcontainer", @@ -5925,6 +6226,7 @@ "zh": "分類回收桶" }, "rescue_station": { + "cy": "canolfan bad achub", "da": "kystredningsstation", "de": "rettungsbootstation", "en": "lifeboat station", @@ -5935,11 +6237,12 @@ "sv": "sjöräddningsstation" }, "research_institute": { - "ar": "معهد بحوث", + "ar": "معهد أبحاث", "be": "навукова-даследчы інстытут", "bg": "научноизследователски институт", "ca": "institut de recerca", "cs": "výzkumný ústav", + "cy": "sefydliad ymchwil", "da": "forskningsinstitut", "de": "forschungseinrichtung", "el": "ερευνητικό ινστιτούτο", @@ -5949,18 +6252,19 @@ "fa": "موسسه تحقیقاتی", "fi": "tutkimuslaitos", "fr": "institut de recherche", + "ga": "institiúid um thaighde", + "gl": "instituto de investigación", "he": "מכון מחקר", "hi": "अनुसन्धान संस्थान", "hu": "kutatóintézet", "id": "institut riset", "it": "istituto di ricerca", "ja": "研究所", - "ko": "연구기관", + "ko": "연구 기관", "lt": "mokslinių tyrimų institutas", "lv": "izpētes institūts", "ml": "ഗവേഷണ സ്ഥാപനം", "mr": "संशोधन संस्था", - "ms": "institut penyelidikan", "nb": "forskningsinstitutt", "nl": "onderzoeksinstituut", "pl": "instytut badawczy", @@ -5968,6 +6272,7 @@ "pt-br": "instituto de pesquisa", "ro": "institut de cercetare", "ru": "научно-исследовательский институт", + "sk": "výskumný ústav", "sl": "raziskovalni inštitut", "sv": "forskningsinstitut", "ta": "ஆய்வு மையம்", @@ -5984,12 +6289,15 @@ "be": "рэстаран", "bg": "ресторант", "cs": "restaurace", + "cy": "bwyty", "el": "εστιατόριο", "en": "restaurant", "es": "restaurante", "et": "restoran", "fa": "غذاخوری", "fi": "ravintola", + "ga": "bialann", + "gl": "restaurante", "he": "מסעדה", "hi": "रेस्तरां", "hr": "restoran", @@ -6002,16 +6310,16 @@ "lv": "restorāns", "ml": "റെസ്റ്റോറൻറ്", "mr": "रेस्टॉरंट", - "ms": "kedai makan", "pl": "restauracja", "pt": "restaurante", "ru": "ресторан", "sk": "reštaurácia", "sl": "restavracija", + "sq": "restorant", "sv": "restaurang", "ta": "உணவகம்", "th": "ภัตตาคาร", - "tr": "lokanta", + "tr": "restoran", "uk": "ресторан", "ur": "ریستوران", "vi": "nhà hàng", @@ -6029,9 +6337,12 @@ "es": "sanatorio", "et": "sanatoorium", "fi": "parantola", + "ga": "sanatóir", + "gl": "sanatorio", "he": "סנטוריום", "hi": "आरोग्य आश्रम", "hr": "sanatorij", + "hu": "szanatórium", "it": "sanatorio", "ja": "サナトリウム", "ko": "요양원", @@ -6054,10 +6365,12 @@ "sauna": { "ar": "ساونا", "bg": "сауна", + "cy": "sawna", "el": "σάουνα", "en": "sauna", "et": "saun", "fa": "سونا", + "ga": "sabhna", "he": "סאונה", "hu": "szauna", "ja": "サウナ風呂", @@ -6081,6 +6394,7 @@ "bg": "училище", "ca": "escola", "cs": "škola", + "cy": "ysgol", "da": "skole", "de": "schule", "el": "σχολείο", @@ -6090,6 +6404,9 @@ "fa": "مدرسه", "fi": "koulu", "fr": "école", + "ga": "scoil", + "gd": "sgoil", + "gl": "escola", "he": "בית ספר", "hi": "विद्यालय", "hr": "škola", @@ -6103,7 +6420,6 @@ "lv": "skola", "ml": "വിദ്യാലയം", "mr": "शाळा", - "ms": "sekolah", "nb": "skole", "pl": "szkoła", "pt": "escola", @@ -6111,8 +6427,10 @@ "ru": "школа", "sk": "škola", "sl": "šola", + "sq": "shkollë", "sv": "skola", "ta": "பள்ளிக்கூடம்", + "te": "బడి", "th": "โรงเรียน", "tr": "okul", "uk": "школа", @@ -6123,7 +6441,7 @@ "zh-tw": "學校" }, "science_park": { - "ar": "حديقة المرام في تذكرة العلماء الأعلام", + "ar": "واحة علمية", "be": "навуковы парк", "ca": "parc científic", "cs": "vědeckotechnický park", @@ -6136,10 +6454,12 @@ "fa": "پارک علم و فناوری", "fi": "tiedepuisto", "fr": "parc scientifique", + "gl": "parque científico", "he": "פארק מדע", + "hu": "technológiai park", "id": "taman sains", "it": "parco tecnologico", - "ja": "研究学園都市", + "ja": "サイエンスパーク", "ko": "사이언스 파크", "lt": "mokslo ir technologijų parkas", "nb": "forskningspark", @@ -6160,13 +6480,16 @@ "seat": { "ar": "مقعد", "ca": "seient", + "cy": "sedd", "da": "sæde", - "de": "sitzplatz", + "de": "sitz", "el": "κάθισμα", "en": "seat", "es": "asiento", "fi": "istuin", "fr": "siège", + "ga": "suíochán", + "gl": "asento", "he": "מושב (רהיט)", "hu": "ülőhely", "id": "kursi", @@ -6175,13 +6498,13 @@ "kn": "ಪೀಠ", "ko": "좌석", "lv": "sēdeklis", - "ms": "tempat duduk", "nb": "sete", "nl": "zitplaats", "pl": "siedzisko", "pt": "assento", "ru": "сидение", "sl": "sedež", + "sq": "selia", "sv": "sits", "vi": "chỗ ngồi", "zh": "座位", @@ -6192,12 +6515,14 @@ "bg": "заслон", "ca": "refugi", "cs": "přístřešek", + "cy": "cysgodfan", "de": "unterstand", "en": "shelter", "es": "refugio", "fa": "کانکس", "fi": "suoja", "fr": "abri", + "ga": "foscadán", "he": "מחסה", "hr": "zaklon", "hu": "hajlék", @@ -6207,14 +6532,15 @@ "ko": "대피소", "lv": "pajumte", "ml": "ഷെൽറ്റർ", - "ms": "tempat berteduh", "nb": "ly", "nl": "schuilplaats", "pl": "schron", "pt": "abrigo", "ru": "укрытие", "sl": "zaklonišče", + "sq": "streha", "sv": "skydd", + "te": "ఆశ్రయం", "tr": "sığınak", "uk": "укриття", "zh": "簡易居所", @@ -6234,6 +6560,7 @@ "fa": "دوش (حمام)", "fi": "suihku", "fr": "douche", + "ga": "cithfholcadán", "he": "מקלחת", "hu": "zuhany", "it": "doccia", @@ -6251,6 +6578,7 @@ "ru": "душ", "sk": "sprcha", "sl": "prha", + "sq": "dushi", "sv": "dusch", "tr": "duş", "uk": "душ", @@ -6298,11 +6626,12 @@ "ar": "التمريض المنزلي", "ca": "residència de gent gran", "cs": "dům s pečovatelskou službou", - "da": "sygehjem", + "cy": "cartref nyrsio", + "da": "socialforvaltning", "de": "sozialeinrichtung", "de-ch": "altersheim", "el": "γηροκομείο", - "en": "social facility", + "en": "social service facility", "en-ca": "retirement home", "en-gb": "retirement home", "es": "residencia geriátrica", @@ -6310,10 +6639,12 @@ "fa": "آسایشگاه", "fi": "hoitokoti", "fr": "établissement social", + "ga": "ionad altranais", + "gl": "residencia de maiores", "he": "בית אבות", "hi": "नर्सिंग होम", "hr": "starački dom", - "hu": "idősek otthona", + "hu": "ápolóotthon", "id": "rumah perawatan", "it": "casa di riposo", "ja": "ナーシングホーム", @@ -6321,11 +6652,13 @@ "ko": "양로원", "ml": "വൃദ്ധസദനം", "nb": "sykehjem", - "nl": "verpleeghuis", + "nl": "sociale dienstvoorziening", "pl": "dom pomocy społecznej", - "pt": "casa de retiro", - "ru": "дом престарелых", - "sl": "negovalni dom", + "pt": "estrutura residencial para pessoas idosas", + "pt-br": "casa de retiro", + "ru": "учреждение социального обслуживания", + "sl": "socialna ustanova", + "sq": "shtëpia e pleqve", "sv": "vårdhem", "ta": "முதியோர் இல்லம்", "tr": "huzurevi", @@ -6333,7 +6666,7 @@ "ur": "دار المعمرین", "vi": "viện dưỡng lão", "zh": "介護老人福祉設施", - "zh-tw": "老人院" + "zh-tw": "長期照護機構" }, "stock_exchange": { "af": "aandelebeurs", @@ -6342,6 +6675,7 @@ "bg": "фондова борса", "ca": "borsa de valors", "cs": "burza cenných papírů", + "cy": "cyfnewidfa stoc", "da": "fondsbørs", "de": "wertpapierbörse", "el": "χρηματιστήριο", @@ -6349,8 +6683,10 @@ "es": "bolsa de valores", "et": "aktsiabörs", "fa": "بورس اوراق بهادار", - "fi": "pörssi", + "fi": "arvopaperipörssi", "fr": "bourse des valeurs", + "ga": "stocmhalartán", + "gl": "bolsa de valores", "he": "בורסה לניירות ערך", "hi": "शेयर एक्सचेंज", "hr": "burza vrijednosnih papira", @@ -6364,7 +6700,6 @@ "lv": "fondu birža", "ml": "ഓഹരി വിപണി", "mr": "रोखे बाजार", - "ms": "bursa saham", "nb": "aksjebørs", "nl": "effectenbeurs", "pl": "giełda papierów wartościowych", @@ -6375,6 +6710,7 @@ "sl": "borza vrednostnih papirjev", "sv": "börs", "ta": "பங்குச்சந்தை", + "te": "స్టాక్ ఎక్స్చేంజ్", "th": "ตลาดหลักทรัพย์", "tr": "menkul kıymetler borsası", "uk": "фондова біржа", @@ -6391,6 +6727,7 @@ "bg": "стол", "ca": "cadira", "cs": "židle", + "cy": "cadair", "da": "stol", "de": "stuhl", "de-at": "sessel", @@ -6401,6 +6738,8 @@ "fa": "صندلی", "fi": "tuoli", "fr": "chaise", + "ga": "cathaoir", + "gl": "cadeira", "he": "כיסא", "hi": "कुर्सी", "hr": "stolica", @@ -6414,7 +6753,6 @@ "lv": "krēsls", "ml": "കസേര", "mr": "खुर्ची", - "ms": "kerusi", "nb": "stol", "nl": "stoel", "pl": "krzesło", @@ -6423,8 +6761,10 @@ "ru": "стул", "sk": "stolička", "sl": "stol", + "sq": "karrige", "sv": "stol", "ta": "நாற்காலி", + "te": "కుర్చీ", "th": "เก้าอี้", "tr": "sandalye", "uk": "стілець", @@ -6445,6 +6785,7 @@ "id": "klub tari telanjang", "ja": "ストリップ劇場", "ko": "스트립 클럽", + "lt": "striptizo klubas", "nb": "strippeklubb", "nl": "stripclub", "pt": "clube de strip", @@ -6466,12 +6807,14 @@ "en": "student housing", "fi": "opiskelija-asunto", "fr": "dortoir étudiant", + "gl": "aloxamento de estudantes", "it": "residenza universitaria", "ja": "学生住宅", "nb": "studentbolig", "nl": "studentenhuisvesting", "sl": "študentska nastanitev", - "sv": "studentbostad" + "sv": "studentbostad", + "zh-hk": "學生宿舍" }, "studio": { "ca": "instal·lació d'estudi de mitjà de comunicació", @@ -6481,6 +6824,7 @@ "el": "κινηματογραφικό ή τηλεοπτικό στούντιο", "en": "media studio facility", "fr": "studio", + "ja": "メディア用スタジオ施設", "nl": "film- of televisiestudio", "ru": "кино- или телестудия", "sl": "stavba medijskega podjetja" @@ -6493,8 +6837,12 @@ "fa": "swining", "fr": "club échangiste", "he": "מועדון מין", + "hu": "szexklub", "ja": "セックス・クラブ", + "lt": "sekso klubas", + "nb": "sexklubb", "nl": "parenclub", + "ru": "секс-клуб", "sv": "porrklubb", "tr": "seks kulübü" }, @@ -6505,16 +6853,20 @@ "bg": "маса", "ca": "taula", "cs": "stůl", + "cy": "bwrdd", "da": "bord", "de": "tisch", "el": "τραπέζι", "en": "table", - "en-ca": "table (furniture)", "es": "mesa", "et": "laud", "fa": "میز", "fi": "pöytä", + "ga": "tábla", + "gd": "bòrd", + "gl": "mesa", "he": "שולחן", + "hi": "मेज़", "hr": "stol", "hu": "asztal", "id": "meja", @@ -6525,7 +6877,6 @@ "lt": "stalas", "lv": "galds", "ml": "മേശ", - "ms": "meja", "nb": "bord", "nl": "tafel", "pl": "stół", @@ -6534,8 +6885,10 @@ "ru": "стол", "sk": "stolový nábytok", "sl": "miza", + "sq": "tryezë", "sv": "bord", "ta": "மேசை", + "te": "మేజా", "th": "โต๊ะ", "tr": "masa", "uk": "стіл", @@ -6559,25 +6912,33 @@ "pl": "postój taksówek", "pt-br": "ponto de táxi", "ru": "очередь такси", + "sl": "stojišče za taksije", + "sv": "taxihållplats", "tr": "taksi durağı", + "ur": "ٹیکسی اڈہ", "zh": "的士站" }, "telephone": { "af": "telefoon", "ar": "هاتف", - "be": "тэлефон", + "be": "таксафон", "bg": "телефон", "ca": "telèfon públic", "cs": "telefon", + "cy": "ffôn", "da": "mønttelefon", "de": "münzfernsprecher", "el": "τηλέφωνο", "en": "payphone", + "en-us": "phone", "es": "teléfono público", "et": "taksofon", "fa": "تلفن", "fi": "yleisöpuhelin", "fr": "téléphone public", + "ga": "guthán", + "gd": "fòn", + "gl": "teléfono", "he": "טלפון ציבורי", "hi": "दूरभाष", "hr": "telefon", @@ -6591,7 +6952,6 @@ "lv": "telefons", "ml": "ടെലിഫോൺ", "mr": "दूरध्वनी", - "ms": "telefon awam", "nb": "mynttelefon", "nl": "betaalde telefoon", "pl": "automat telefoniczny", @@ -6601,8 +6961,10 @@ "ru": "таксофон", "sk": "telefón", "sl": "telefon", + "sq": "telefoni", "sv": "mynttelefon", "ta": "தொலைபேசி", + "te": "టెలీఫోను", "th": "เครื่องโทรศัพท์", "tr": "ankesörlü telefon", "uk": "таксофон", @@ -6618,6 +6980,7 @@ "bg": "театър", "ca": "teatre", "cs": "budova divadla", + "cy": "theatr", "da": "teater", "de": "theatergebäude", "de-ch": "theater", @@ -6630,6 +6993,8 @@ "fa": "سالن تئاتر", "fi": "teatterirakennus", "fr": "théâtre", + "ga": "amharclann", + "gl": "teatro", "he": "אולם תיאטרון", "hr": "kazalište", "hu": "színházépület", @@ -6641,10 +7006,9 @@ "lt": "teatras", "lv": "teātris", "ml": "നാടകവേദി", - "ms": "panggung", "nb": "teater", "nl": "theatergebouw", - "pl": "teatr", + "pl": "budynek teatru", "pt": "teatro", "ro": "teatru", "ru": "здание театра", @@ -6652,9 +7016,10 @@ "sl": "gledališka stavba", "sv": "teaterhus", "ta": "அரங்கு", + "te": "ప్రదర్శనశాల", "th": "โรงละคร", "tr": "tiyatro", - "uk": "театр", + "uk": "споруда театру", "ur": "تھیٹر", "vi": "nhà hát", "zh": "劇場", @@ -6671,14 +7036,16 @@ "it": "obliteratrice", "lt": "komposteris", "nl": "stempelautomaat", - "pl": "kasownik (urządzenie)", - "ru": "компостер", + "pl": "kasownik", + "ru": "билетный валидатор", + "sv": "biljettvalidator", "uk": "компостер" }, "toilets": { "ar": "دورة مياه عامة", "ca": "serveis", "cs": "veřejné toalety", + "cy": "cyfleusterau cyhoeddus", "de": "bedürfnisanstalt", "el": "δημόσια αποχωρητήρια", "en": "public toilet", @@ -6687,12 +7054,14 @@ "fa": "توالت همگانی", "fi": "julkinen käymälä", "fr": "toilettes publiques", + "ga": "leithreas poiblí", "he": "שירותים ציבוריים", "hu": "nyilvános wc", "id": "toilet umum", "it": "bagno pubblico", "ja": "公衆便所", "ko": "공중화장실", + "lv": "publiskā tualete", "nl": "openbaar toilet", "pl": "szalet", "pt": "casa de banho pública", @@ -6700,6 +7069,7 @@ "ro": "toaleta publica", "ru": "общественный туалет", "sl": "javno stranišče", + "sq": "tualeti publik", "sv": "offentlig toalett", "ta": "பொது கழிப்பறை", "th": "ห้องน้ำสาธารณะ", @@ -6708,11 +7078,18 @@ "vi": "nhà vệ sinh công cộng", "zh": "公共廁所" }, + "tool_library": { + "en": "tool library", + "fr": "outillothèque", + "nb": "verktøybibliotek", + "ru": "библиотека инструментов" + }, "townhall": { "ar": "مبنى بلدية", "be": "ратуша", "ca": "seu del govern local", "cs": "obecní dům", + "cy": "neuadd y dref", "da": "rådhus", "de": "rathaus", "el": "δημαρχείο", @@ -6722,28 +7099,29 @@ "fa": "تالار شهر", "fi": "kunnantalo", "fr": "hôtel de ville", + "ga": "halla baile", + "gl": "sede do goberno local", "he": "בניין ממשל מקומי", "hu": "városháza", "id": "balai kota", "it": "palazzo comunale", "ja": "役所", - "ko": "지방 관청", + "ko": "지방관청", "lv": "pilsētas dome", "mr": "नगरगृह", - "ms": "dewan perbandaran", - "nb": "kommunehus", + "nb": "rådhus", "nl": "gemeentehuis", "pl": "ratusz", "pt": "câmara municipal", "pt-br": "sede de prefeitura", "ro": "primărie", - "ru": "дом общины", + "ru": "мэрия", "sk": "obecný dom", "sl": "mestna hiša", "sv": "kommunhus", "ta": "நகர மண்டபம்", "tr": "belediye binası", - "uk": "ратуша", + "uk": "мерія", "ur": "ٹاؤن ہال", "vi": "tòa thị chính", "zh": "地方政府大樓" @@ -6769,7 +7147,17 @@ }, "traffic_park": { "ar": "مدينة السلامة", - "en": "traffic playground" + "cs": "dopravní hřiště", + "da": "trafiklegeplads", + "de": "verkehrsgarten", + "en": "traffic park", + "et": "liikluslinnak", + "fi": "liikennepuisto", + "fr": "parc de circulation", + "ja": "交通公園", + "nl": "verkeerstuin", + "pl": "miasteczko ruchu drogowego", + "zh": "交通安全城" }, "trolley_bay": { "en": "shopping cart shelter", @@ -6782,7 +7170,8 @@ "bg": "университет", "ca": "col·legi constituent", "cs": "univerzita", - "da": "universitet", + "cy": "prifysgol", + "da": "konstitueret uddannelsessted", "de": "college", "de-ch": "universität", "el": "συστατικό κολέγιο", @@ -6793,10 +7182,13 @@ "fa": "دانشگاه", "fi": "yliopisto", "fr": "collège constituant", + "ga": "ollscoil", + "gd": "oilthigh", + "gl": "universidade", "he": "אוניברסיטה", "hi": "विश्वविद्यालय", "hr": "sveučilište", - "hu": "egyetem", + "hu": "egyetemi college", "id": "universitas", "it": "università", "ja": "大学", @@ -6806,7 +7198,6 @@ "lv": "universitāte", "ml": "സർവ്വകലാശാല", "mr": "विद्यापीठ", - "ms": "universiti", "nb": "universitet", "nl": "universiteit", "pl": "uniwersytet", @@ -6815,8 +7206,10 @@ "ru": "университет", "sk": "univerzita", "sl": "univerzitetna fakulteta", + "sq": "universitet", "sv": "universitet", "ta": "பல்கலைக்கழகம்", + "te": "విశ్వవిద్యాలయం", "th": "มหาวิทยาลัย", "tr": "kolej oluşumu", "uk": "університет", @@ -6837,6 +7230,7 @@ "fa": "مرکز معاینه فنی خودرو", "fi": "katsastus", "fr": "contrôle technique des véhicules automobiles", + "gl": "inspección técnica de vehículos", "he": "מבחן רישוי שנתי לרכב", "id": "pengujian kendaraan bermotor", "it": "revisione", @@ -6866,9 +7260,10 @@ "en": "vending machine", "es": "máquina expendedora", "et": "müügiautomaat", - "fa": "دستگاه فروش خودکار", + "fa": "دستگاه خودبردار", "fi": "myyntiautomaatti", "fr": "distributeur automatique", + "gl": "máquina expendedora", "he": "אוטומט מכירות", "hi": "बिक्री मशीन", "hu": "árusító automata", @@ -6877,7 +7272,6 @@ "ja": "自動販売機", "ko": "자동 판매기", "lt": "vendingas", - "ms": "mesin layan diri", "nb": "myntautomat", "nl": "verkoopautomaat", "pl": "automat sprzedający", @@ -6890,6 +7284,7 @@ "th": "เครื่องจำหน่ายสินค้าอัตโนมัติ", "tr": "satış makinesi", "uk": "торговельний автомат", + "ur": "آلۂ فروخت", "vi": "máy bán hàng", "zh": "自動販賣機", "zh-cn": "自动售货机", @@ -6902,6 +7297,7 @@ "bg": "ветеринар", "ca": "veterinari", "cs": "veterinární lékař", + "cy": "milfeddyg", "da": "dyrlæge", "de": "tierarzt", "el": "κτηνίατρος", @@ -6912,6 +7308,9 @@ "fa": "دامپزشکی", "fi": "eläinlääkäri", "fr": "vétérinaire", + "ga": "tréidlia", + "gd": "bheat", + "gl": "veterinario", "he": "וטרינר", "hr": "veterinar", "hu": "állatorvos", @@ -6922,7 +7321,6 @@ "lt": "veterinaras", "lv": "veterinārārsts", "mr": "पशुवैद्यक", - "ms": "doktor haiwan", "nb": "veterinær", "nl": "dierenarts", "pl": "weterynarz", @@ -6931,6 +7329,7 @@ "ru": "ветеринар", "sk": "veterinár", "sl": "veterinar", + "sq": "mjeku veterinar", "sv": "veterinär", "th": "สัตวแพทย์", "tr": "veteriner hekim", @@ -6949,6 +7348,7 @@ "es": "papelera", "fi": "roska-astia", "fr": "corbeille à papier", + "hu": "papírkosár", "nl": "prullenbak", "pt-br": "lata de lixo", "ru": "мусорная корзина", @@ -6970,6 +7370,9 @@ "fa": "سطل آشغال", "fi": "roska-astia", "fr": "poubelle", + "ga": "araid bhruscair", + "gd": "basgaid-sgudail", + "gl": "contedor de residuos", "he": "פח אשפה", "hi": "कचरा पात्र", "hu": "kuka", @@ -6977,7 +7380,7 @@ "it": "contenitore per rifiuti", "ja": "ごみ箱", "ko": "쓰레기통", - "ms": "tong sampah", + "lt": "šiukšlių dėžė", "nb": "søppelkasse", "nl": "vuilnisbak", "pl": "kubeł na śmieci", @@ -6986,8 +7389,10 @@ "ru": "контейнер для мусора", "sk": "smetník", "sl": "smetnjak", + "sq": "koshi i plehrave", "sv": "soptunna", "ta": "குப்பைத் தொட்டி", + "te": "chetta butta", "tr": "çöp konteyneri", "uk": "контейнер для сміття", "ur": "کوڑے کا سمانا", @@ -7007,6 +7412,9 @@ "ar": "حوض التروية", "bg": "поилка", "ca": "abeurador", + "cs": "napajedlo", + "cy": "cafn dŵr", + "da": "trug", "de": "tränke", "en": "stock tank", "en-ca": "abreuvoir", @@ -7018,11 +7426,14 @@ "hu": "itatóvályú", "it": "abbeveratoio", "ja": "ストック・タンク", + "nb": "vanntrau", "nl": "drinkbak", "pl": "poidło", "ro": "jgheab", "ru": "поильник", "sk": "abreuvoir", + "sl": "vodno korito", + "sv": "vattentråg", "uk": "напувалка" }, "weighbridge": { @@ -7045,6 +7456,13 @@ "zh": "地磅" } }, + "animal": { + "horse_walker": { + "de": "führanlage", + "en": "horse walker", + "nl": "stapmolen" + } + }, "animal_shelter": { "": { "ar": "مأوى حيوانات", @@ -7053,15 +7471,18 @@ "en": "pet adoption", "es": "adopción en animales", "fa": "زنهارگاه", + "fi": "eläinsuojelukeskus", "fr": "sanctuaire pour animaux", "he": "מקלט לבעלי חיים", "ja": "ペットの譲渡", "lv": "dzīvnieku saudzētava", - "ms": "pengambilan haiwan peliharaan", "nb": "kjæledyradopsjon", + "nl": "dierenopvangcentrum", "pl": "sanktuarium dla zwierząt", "pt": "adoção de animais", - "ru": "святилище животных", + "pt-br": "santuário de animais", + "ru": "заповедник животных", + "sl": "posvojitev hišnega ljubljenčka", "th": "เขตอภัยทาน", "tr": "hayvan barınağı", "uk": "адопція тварин", @@ -7092,6 +7513,8 @@ "fa": "خرسنگ", "fi": "megaliitti", "fr": "mégalithe", + "ga": "meigilit", + "gl": "megálito", "he": "מגלית", "hi": "महापाषाण", "hr": "megalit", @@ -7101,7 +7524,6 @@ "ko": "거석기념물", "lt": "megalitas", "mr": "स्मारकशिला दफने", - "ms": "megalit", "nb": "megalitt", "nl": "megaliet", "pl": "megalit", @@ -7122,6 +7544,49 @@ "en": "minilith", "pt": "minilito" }, + "necropolis": { + "ar": "مدينة جنائزية", + "be": "некропаль", + "bg": "некропол", + "ca": "necròpolis", + "cs": "nekropole", + "cy": "tre'r meirw", + "da": "nekropol", + "de": "nekropole", + "el": "νεκρόπολη", + "en": "necropolis", + "es": "necrópolis", + "et": "nekropol", + "fa": "شهر مردگان", + "fi": "nekropoli", + "fr": "nécropole", + "ga": "reilig", + "gl": "necrópole", + "he": "נקרופוליס", + "hi": "क़ब्रिस्तान", + "hr": "nekropola", + "hu": "nekropolisz", + "id": "nekropolis", + "it": "necropoli", + "ja": "ネクロポリス", + "ko": "네크로폴리스", + "lt": "nekropolis", + "lv": "nekropole", + "nb": "nekropolis", + "pl": "nekropola", + "pt": "necrópole", + "ro": "necropolă", + "ru": "некрополь", + "sk": "nekropola", + "sl": "nekropola", + "sq": "nekropoli", + "sv": "nekropol", + "ta": "நெக்ரோபொலிசு", + "tr": "nekropol", + "uk": "некрополь", + "ur": "شہر خموشاں", + "zh": "大墓地" + }, "rock_shelter": { "af": "rotsskuiling", "ar": "مأوى صخري", @@ -7134,12 +7599,14 @@ "fr": "abri sous roche", "he": "מחסה-סלע", "hi": "शैलाश्रय", + "id": "abris sous roche", "it": "riparo sotto roccia", "ja": "岩陰遺跡", "nb": "heller", "nl": "abri", "pl": "koleba skalna", "sk": "abri", + "sl": "spodmol", "uk": "колиба", "zh": "岩棚" } @@ -7169,10 +7636,12 @@ "fa": "مجسمه برنزی", "fi": "pronssityö", "fr": "sculpture en bronze", + "gl": "escultura de bronce", "hi": "कांस्य कला", "it": "scultura bronzea", "ja": "銅像", "ko": "동상 (형상)", + "lv": "bronzas tēlniecība", "nl": "bronssculptuur", "pl": "rzeźba w brązie", "pt": "bronze (escultura)", @@ -7193,6 +7662,7 @@ "bg": "архитектура", "ca": "arquitectura", "cs": "architektura", + "cy": "pensaernïaeth", "da": "arkitektur", "de": "architektur", "el": "αρχιτεκτονική", @@ -7201,6 +7671,9 @@ "et": "arhitektuur", "fa": "معماری", "fi": "arkkitehtuuri", + "ga": "ailtireacht", + "gd": "ailtireachd", + "gl": "arquitectura", "he": "אדריכלות", "hi": "वास्तुशास्त्र", "hr": "arhitektura", @@ -7214,7 +7687,6 @@ "lv": "arhitektūra", "ml": "വാസ്തുവിദ്യ", "mr": "वास्तुशास्त्र", - "ms": "seni bina", "nb": "arkitektur", "nl": "architectuur", "pl": "architektura", @@ -7223,14 +7695,16 @@ "ru": "архитектура", "sk": "architektúra", "sl": "arhitektura", + "sq": "arkitekturë", "sv": "arkitektur", "ta": "கட்டிடக்கலை", + "te": "భవన నిర్మాణ శాస్త్రం", "th": "สถาปัตยกรรม", "tr": "mimarlık", "uk": "архітектура", "ur": "معماری", "vi": "kiến trúc", - "zh": "建筑学", + "zh": "建筑", "zh-hk": "建築" }, "azulejo": { @@ -7239,6 +7713,7 @@ "ca": "rajola de valència", "el": "αζουλέζου", "en": "azulejo", + "gl": "azulexo", "he": "אזולז'ו", "ja": "アズレージョ", "ko": "아줄레주", @@ -7251,18 +7726,21 @@ "af": "borsbeeld", "ar": "تمثال نصفي", "be": "бюст", - "bg": "бюст (паметник)", + "bg": "бюст", "cs": "busta", + "cy": "penddelw", "da": "buste", - "de": "büste", + "de": "porträtbüste", "el": "προτομή", "en": "bust", "es": "busto", "et": "büst", - "fa": "سردیس", + "fa": "بالاتنه", "fi": "rintakuva", "fr": "buste", - "he": "פרוטומה", + "ga": "dealbh bhrád", + "gl": "busto", + "he": "דיוקן חזה", "hr": "poprsje", "hu": "mellszobor", "id": "patung dada", @@ -7270,13 +7748,14 @@ "ja": "胸像", "kn": "ಭುಜ ಮತ್ತು ಎದೆಯುಳ್ಳ ಪ್ರತಿಮೆ", "ko": "흉상", + "lv": "biste", "nb": "byste", - "nl": "buste", + "nl": "borstbeeld", "pl": "popiersie", "pt": "busto", "ru": "бюст", "sk": "busta", - "sl": "doprsni kip", + "sl": "doprsni portret", "sv": "byst", "tr": "büst", "uk": "погруддя", @@ -7293,6 +7772,7 @@ "es": "grafiti", "et": "grafiti", "fa": "دیوارنگاری", + "ga": "graifítí", "he": "גרפיטי", "hi": "दीवारकला", "hr": "grafiti", @@ -7303,17 +7783,17 @@ "ko": "낙서", "lv": "grafiti", "ml": "ഗ്രഫിറ്റി", - "ms": "grafiti", "pt": "grafito", "pt-br": "grafite", "ru": "граффити", "sl": "grafit", "ta": "கிராஃபிட்டி", + "te": "గ్రాఫిటీ", "th": "รอยขูดขีดเขียน", "uk": "графіті", "vi": "tranh phun sơn", "zh": "塗鴉", - "zh-cn": "涂鸦" + "zh-cn": "涂鸦艺术" }, "installation": { "ar": "تنصيبية", @@ -7321,6 +7801,7 @@ "bg": "инсталационно изкуство", "ca": "instal·lació artística", "cs": "instalační umění", + "cy": "gosodwaith", "da": "kunstinstallation", "de": "installation", "en": "installation artwork", @@ -7329,6 +7810,8 @@ "fa": "چیدمان", "fi": "installaatio", "fr": "installation", + "ga": "saothar ealaíne suiteála", + "gl": "instalación", "he": "מיצב", "hr": "umjetnička instalacija", "hu": "installáció", @@ -7344,6 +7827,7 @@ "ro": "instalație", "ru": "инсталляция", "sl": "instalacija", + "sq": "instalacion", "sv": "installation", "th": "ศิลปะจัดวาง", "tr": "yerleştirme sanatı", @@ -7358,6 +7842,7 @@ "be": "лэнд-арт", "bg": "лендарт", "ca": "art natura", + "cy": "celf tir", "en": "land art", "et": "maakunst", "fa": "هنر زمینی", @@ -7383,6 +7868,7 @@ "ar": "لوحة جدارية", "be": "манументальны жывапіс", "cs": "nástěnná malba", + "cy": "murlun", "da": "murmaleri", "de": "wandmalerei", "el": "τοιχογραφία", @@ -7391,6 +7877,7 @@ "fa": "نقاشی دیواری", "fi": "seinämaalaus", "fr": "peinture murale", + "ga": "múrmhaisiú", "he": "ציור קיר", "hi": "भित्तिचित्र कला", "hr": "zidno slikarstvo", @@ -7407,6 +7894,7 @@ "ru": "монументальная живопись", "sk": "nástenná maľba", "sl": "stensko delo", + "sq": "piktura murore", "sv": "muralmålning", "ta": "சுவர் ஓவியம்", "th": "จิตรกรรมฝาผนัง", @@ -7423,6 +7911,7 @@ "bg": "картина", "ca": "pintura", "cs": "malba", + "cy": "paentiad", "da": "maleri", "de": "gemälde", "el": "έργο ζωγραφικής", @@ -7432,6 +7921,8 @@ "fa": "نقاشی", "fi": "maalaus", "fr": "peinture", + "ga": "pictiúr", + "gl": "pintura", "he": "ציור", "hr": "slika", "hu": "festmény", @@ -7451,7 +7942,9 @@ "ru": "картина", "sk": "maľba", "sl": "slika", + "sq": "pikturë", "sv": "målning", + "te": "చిత్రం", "th": "จิตรกรรม", "tr": "tablo", "uk": "картина", @@ -7466,6 +7959,7 @@ "bg": "релеф", "ca": "relleu", "cs": "reliéf", + "cy": "cerfwedd", "da": "relief", "de": "relief", "el": "ανάγλυφο", @@ -7476,6 +7970,8 @@ "fa": "نقشبرجسته", "fi": "kohokuva", "fr": "relief", + "ga": "dealbhóireacht rilífe", + "gl": "baixorrelevo", "he": "תבליט", "hi": "उच्चावच", "hr": "reljef", @@ -7497,6 +7993,7 @@ "sl": "reliefna plastika", "sv": "relief", "ta": "புடைப்புச் சிற்பம்", + "te": "రిలీఫ్", "tr": "kabartma", "uk": "барельєф", "vi": "phù điêu", @@ -7508,6 +8005,7 @@ "bg": "скулптура", "ca": "obra escultòrica", "cs": "skulptura", + "cy": "cerflun", "da": "skulptur", "de": "skulptur", "el": "γλυπτό", @@ -7515,7 +8013,10 @@ "es": "escultura", "et": "skulptuur", "fi": "veistos", + "ga": "dealbh", + "gl": "obra escultórica", "he": "פסל", + "hi": "मूर्ति", "hr": "skulptura", "hu": "szobor", "id": "patung", @@ -7525,7 +8026,6 @@ "lt": "skulptūra", "lv": "skulptūra", "ml": "ശില്പം", - "ms": "arca", "nb": "skulptur", "nl": "sculptuur", "pl": "rzeźba", @@ -7534,6 +8034,7 @@ "ru": "скульптура", "sk": "socha", "sl": "skulptura", + "sq": "skulpturë", "sv": "skulptur", "ta": "சிற்பம்", "th": "ประติมากรรม", @@ -7550,12 +8051,15 @@ "bg": "статуя", "ca": "estàtua", "cs": "socha", + "cy": "cerfddelw", "el": "άγαλμα", "en": "statue", "es": "estatua", "et": "kuju", "fa": "تندیس", "fi": "patsas", + "ga": "dealbh", + "gl": "estatua", "he": "פסל דמות", "hi": "प्रतिमा", "hr": "kip", @@ -7568,7 +8072,6 @@ "lv": "statuja", "ml": "പ്രതിമ", "mr": "पुतळा", - "ms": "patung", "nl": "standbeeld", "pl": "posąg", "pt": "estátua", @@ -7576,8 +8079,10 @@ "ru": "статуя", "sk": "socha", "sl": "kip", + "sq": "statujë", "sv": "staty", "ta": "சிலை", + "te": "విగ్రహం", "th": "รูปปั้น", "tr": "heykel", "uk": "статуя", @@ -7600,15 +8105,17 @@ "fa": "کاشی", "fi": "keraaminen laatta", "fr": "carreau", + "gl": "baldosa", "he": "אריח", "hi": "खपरैल और चौके", "hr": "crijep", + "hu": "csempe", "id": "ubin", "it": "piastrella", "ja": "タイル", "ko": "타일", + "lv": "flīzes", "ml": "ടൈൽസ്", - "ms": "jubin", "nb": "flis", "nl": "tegel", "pl": "fliza", @@ -7616,6 +8123,7 @@ "ro": "faianță", "ru": "кафель", "sl": "ploščica", + "sq": "pllaka", "sv": "kakel", "ta": "ஓடு", "th": "กระเบื้อง", @@ -7628,6 +8136,36 @@ "zh-tw": "瓷磚" } }, + "association": { + "cultural": { + "be": "установа культуры", + "ca": "associació cultural", + "cs": "kulturní asociace", + "de": "kulturverein", + "el": "πολιτιστικός οργανισμός", + "en": "cultural association", + "en-gb": "cultural organisation", + "es": "asociación cultural", + "fi": "kulttuurijärjestö", + "fr": "association culturelle", + "ga": "eagraíocht chultúrtha", + "gl": "asociación cultural", + "hu": "kulturális szervezet", + "it": "organizzazione culturale", + "ja": "文化協会", + "ko": "문화단체", + "nb": "kulturforening", + "nl": "culturele organisatie", + "pt": "organização cultural", + "ro": "organizație culturală", + "ru": "культурная ассоциация", + "sl": "kulturno društvo", + "sv": "kulturförening", + "uk": "організація культури", + "zh": "文化协会", + "zh-tw": "文化組織" + } + }, "athletics": { "cross_country": { "af": "landloop", @@ -7644,15 +8182,16 @@ "fa": "دو صحرانوردی", "fi": "maastojuoksu", "fr": "cross-country", + "ga": "reathaíocht trastíre", "he": "ריצת שדה", "hr": "cross trčanje", + "hu": "terepfutás", "id": "lari lintas alam", "it": "corsa campestre", "ja": "クロスカントリー走", "ko": "크로스컨트리 달리기", "lt": "kroso bėgimas", "lv": "krosa skriešana", - "ms": "merentas desa", "nb": "terrengløp", "nl": "veldlopen", "pl": "bieg przełajowy", @@ -7683,6 +8222,7 @@ "fa": "پرتاب دیسک", "fi": "kiekonheitto", "fr": "lancer du disque", + "gl": "lanzamento de disco", "he": "זריקת דיסקוס", "hi": "डिस्कस थ्रो", "hr": "bacanje diska", @@ -7693,7 +8233,6 @@ "ko": "원반던지기", "lt": "disko metimas", "lv": "diska mešana", - "ms": "lempar cakera", "nb": "diskos", "nl": "discuswerpen", "pl": "rzut dyskiem", @@ -7702,6 +8241,7 @@ "ru": "метание диска", "sk": "hod diskom", "sl": "met diska", + "sq": "hedhja e diskut", "sv": "diskus", "ta": "வட்டு எறிதல்", "tr": "disk atma", @@ -7713,6 +8253,7 @@ "zh-tw": "鐵餅" }, "hammer_throw": { + "af": "hamergooi", "ar": "رمي المطرقة", "be": "кіданне молата", "bg": "хвърляне на чук", @@ -7727,6 +8268,7 @@ "fa": "پرتاب چکش", "fi": "moukarinheitto", "fr": "lancer du marteau", + "ga": "caitheamh an oird", "he": "יידוי פטיש", "hr": "bacanje kladiva", "hu": "kalapácsvetés", @@ -7736,7 +8278,6 @@ "ko": "해머던지기", "lt": "kūjo metimas", "lv": "vesera mešana", - "ms": "lontar tukul besi", "nb": "sleggekast", "nl": "kogelslingeren", "pl": "rzut młotem", @@ -7745,6 +8286,7 @@ "ru": "метание молота", "sk": "hod kladivom", "sl": "met kladiva", + "sq": "hedhja e çekiçit", "sv": "släggkastning", "ta": "சம்மட்டி எறிதல்", "tr": "çekiç atma", @@ -7755,8 +8297,8 @@ }, "high_jump": { "af": "hoogspring", - "ar": "وثب عالي", - "be": "скачок у вышыню", + "ar": "الوثب العالي", + "be": "скачкі ў вышыню", "bg": "висок скок", "ca": "salt d'alçada", "cs": "skok do výšky", @@ -7769,6 +8311,8 @@ "fa": "پرش ارتفاع", "fi": "korkeushyppy", "fr": "saut en hauteur", + "ga": "léim ard", + "gl": "salto de altura", "he": "קפיצה לגובה", "hr": "skok u vis", "hu": "magasugrás", @@ -7779,7 +8323,6 @@ "lt": "šuolis į aukštį", "lv": "augstlēkšana", "ml": "ഹൈജമ്പ്", - "ms": "lompat tinggi", "nb": "høydehopp", "nl": "hoogspringen", "pl": "skok wzwyż", @@ -7790,6 +8333,7 @@ "sl": "skok v višino", "sv": "höjdhopp", "ta": "உயரம் தாண்டுதல்", + "te": "హై జంప్", "th": "กระโดดสูง", "tr": "yüksek atlama", "uk": "стрибки у висоту", @@ -7811,6 +8355,8 @@ "fa": "پرتاب نیزه", "fi": "keihäänheitto", "fr": "lancer du javelot", + "ga": "caitheamh na sleá", + "gl": "lanzamento de xavelina", "he": "הטלת כידון", "hi": "भाला फेंक", "hr": "bacanje koplja", @@ -7823,7 +8369,6 @@ "lv": "šķēpa mešana", "ml": "ജാവലിൻ ത്രോ", "mr": "भाला फेक", - "ms": "rejam lembing", "nb": "spydkast", "nl": "speerwerpen", "pl": "rzut oszczepem", @@ -7834,6 +8379,7 @@ "sl": "met kopja", "sv": "spjutkastning", "ta": "ஈட்டி எறிதல்", + "te": "జావెలిన్ త్రో", "th": "พุ่งแหลน", "tr": "cirit atma", "uk": "метання списа", @@ -7843,7 +8389,8 @@ "zh-cn": "掷标枪" }, "pole_vault": { - "ar": "قفز بالزانة", + "af": "paalspring", + "ar": "القفز بالزانة", "be": "скачок з шастом", "bg": "овчарски скок", "ca": "salt de perxa", @@ -7857,6 +8404,8 @@ "fa": "پرش با نیزه", "fi": "seiväshyppy", "fr": "saut à la perche", + "ga": "léim chuaille", + "gl": "salto con pértega", "he": "קפיצה במוט", "hr": "skok s motkom", "hu": "rúdugrás", @@ -7866,7 +8415,6 @@ "ko": "장대높이뛰기", "lt": "šuolis su kartimi", "lv": "kārtslēkšana", - "ms": "lombol galah", "nb": "stavsprang", "nl": "polsstokhoogspringen", "pl": "skok o tyczce", @@ -7877,6 +8425,7 @@ "sl": "skok s palico", "sv": "stavhopp", "ta": "தடியூன்றித் தாண்டுதல்", + "te": "పోల్ వాల్ట్", "th": "กระโดดค้ำถ่อ", "tr": "sırıkla yüksek atlama", "uk": "стрибки з жердиною", @@ -7888,7 +8437,7 @@ }, "shot_put": { "af": "gewigstoot", - "ar": "دفع الثقل", + "ar": "رمي الجلة", "be": "штурханне ядра", "bg": "тласкане на гюле", "ca": "llançament de pes", @@ -7903,6 +8452,8 @@ "fa": "پرتاب وزنه", "fi": "kuulantyöntö", "fr": "lancer du poids", + "ga": "caitheamh meáchain", + "gl": "lanzamento de peso", "he": "הדיפת כדור ברזל", "hr": "bacanje kugle", "hu": "súlylökés", @@ -7914,7 +8465,6 @@ "lv": "lodes grūšana", "ml": "ഷോട്ട് പുട്ട്", "mr": "गोळाफेक", - "ms": "lontar peluru", "nb": "kulestøt", "nl": "kogelstoten", "pl": "pchnięcie kulą", @@ -7933,9 +8483,10 @@ "zh-tw": "鉛球" }, "steeplechase": { - "ar": "3000 متر موانع", + "ar": "موانع", "ca": "cursa d'obstacles", "cs": "běh na 3000 metrů překážek", + "cy": "rasys ffos a pherth", "da": "forhindringsløb", "de": "hindernislauf", "el": "στιπλ", @@ -7944,6 +8495,7 @@ "et": "3000 meetri takistusjooks", "fi": "estejuoksu", "fr": "steeple", + "ga": "léimrás", "he": "ריצת 3000 מטר מכשולים", "id": "lari halang-rintang", "it": "siepi", @@ -7959,6 +8511,7 @@ "sk": "beh na 3 000 metrov cez prekážky", "sl": "tek z zaprekami", "sv": "hinderlöpning", + "te": "స్టీపుల్చేజ్ (అథ్లెటిక్స్)", "tr": "hendekli koşu", "uk": "стипль-чез", "zh": "3000米障碍赛", @@ -7966,7 +8519,8 @@ "zh-tw": "3000米障礙賽" }, "triple_jump": { - "ar": "وثب ثلاثي", + "ar": "الوثب الثلاثي", + "be": "трайны скачок", "bg": "троен скок", "ca": "triple salt", "cs": "trojskok", @@ -7979,6 +8533,8 @@ "fa": "پرش سهگام", "fi": "kolmiloikka", "fr": "triple saut", + "ga": "na trí léim", + "gl": "triplo salto", "he": "קפיצה משולשת", "hr": "troskok", "hu": "hármasugrás", @@ -7988,7 +8544,6 @@ "ko": "세단뛰기", "lt": "trišuolis", "lv": "trīssoļlēkšana", - "ms": "lompat kijang", "nb": "tresteg", "nl": "hink-stap-springen", "pl": "trójskok", @@ -7999,6 +8554,7 @@ "sl": "troskok", "sv": "tresteg", "ta": "மும்முறை தாண்டுதல்", + "te": "ట్రిపుల్ జంప్", "th": "เขย่งก้าวกระโดด", "tr": "üç adım atlama", "uk": "потрійний стрибок", @@ -8021,11 +8577,12 @@ "hu": "fogság", "id": "penangkaran", "it": "cattività", - "ja": "飼育環境下", + "ja": "飼育状態", "nl": "gevangenschap", "pl": "niewola", "pt": "cativeiro", "ru": "неволя", + "sl": "ujetništvo", "sv": "fångenskap", "vi": "nuôi nhốt động vật", "zh": "圈養" @@ -8038,6 +8595,7 @@ "fr": "parcours scénique", "he": "מתקן אפל", "id": "wahana gelap", + "it": "treno fantasma", "ja": "ダーク・ライド", "nl": "darkride", "pt": "trem-fantasma", @@ -8049,6 +8607,7 @@ "ar": "أفعوانية", "ca": "muntanya russa", "cs": "horská dráha", + "cy": "trên rola-bola", "da": "rutsjebane", "de": "achterbahn", "en": "roller coaster", @@ -8057,6 +8616,7 @@ "fa": "قطار هوایی", "fi": "vuoristorata", "fr": "montagnes russes", + "gl": "montaña rusa", "he": "רכבת הרים", "hr": "vlak smrti", "hu": "hullámvasút", @@ -8069,7 +8629,7 @@ "pt": "montanha-russa", "ru": "американские горки", "sk": "horská dráha", - "sl": "vlakec smrti", + "sl": "vlak smrti", "sv": "berg- och dalbana", "th": "รถไฟเหาะตีลังกา", "uk": "американські гірки", @@ -8083,6 +8643,7 @@ "cs": "horská dráha", "de": "sommerrodelbahn", "en": "summer toboggan", + "en-us": "summer luge", "es": "tobogán de verano", "fr": "luge d'été", "he": "מגלשות הרים", @@ -8093,6 +8654,18 @@ "sl": "poletna sankaška proga", "uk": "альпійське каботажне судно", "zh": "滑道" + }, + "train": { + "de": "touristenzug", + "en": "tourist train", + "es": "tren turístico", + "fr": "train touristique", + "it": "treni turistici", + "ja": "観光列車", + "nl": "toeristische trein", + "pt": "trem turístico", + "ru": "туристический поезд", + "sv": "turisttåg" } }, "authentication": { @@ -8112,7 +8685,8 @@ "fa": "ارتباط حوزه نزدیک", "fi": "near field communication", "fr": "communication en champ proche", - "he": "תקשורת טווח אפס", + "gl": "comunicación de campo achegado", + "he": "תקשורת שדה קרוב", "hi": "नियर फील्ड कम्युनिकेशन", "hr": "komunikacija bliskog polja", "hu": "near field communication", @@ -8122,10 +8696,9 @@ "ko": "근거리 무선 통신", "lv": "tuvā lauka sakari", "ml": "നിയർ ഫീൽഡ് കമ്മ്യൂണിക്കേഷൻ", - "ms": "komunikasi medan berhampiran", "nb": "nærfeltskommunikasjon", "nl": "near field communication", - "pl": "near field communication", + "pl": "komunikacja bliskiego zasięgu", "pt": "near field communication", "ro": "near field communication", "ru": "nfc", @@ -8135,24 +8708,11 @@ "ta": "அண்மைத் தகவல் தொடர்பு", "th": "เนียร์ฟีลด์คอมมูนิเคชัน", "tr": "nfc", - "uk": "near field communication", "vi": "near field communication", "zh": "近場通訊", "zh-cn": "近场通信" } }, - "barn": { - "horreo": { - "ar": "هري أكواز", - "en": "corn crib", - "en-gb": "corncrib", - "es": "hórreo", - "fr": "crib à maïs", - "hu": "góré", - "nl": "maïsren", - "uk": "кошниця" - } - }, "barrier": { "berm": { "be": "берма", @@ -8177,8 +8737,10 @@ "de": "absperrpoller", "en": "traffic bollard", "es": "bolardo de tráfico", + "he": "עמודון (מחסום תנועה)", "it": "dissuasore stradale", "ja": "車止め", + "nb": "pullert", "nl": "verkeerspaal" }, "border_control": { @@ -8193,6 +8755,7 @@ "fa": "کنترل مرزی", "fi": "rajavalvonta", "fr": "contrôle frontalier", + "ga": "rialú teorann", "he": "ביקורת גבולות", "hr": "granični nadzor", "id": "kontrol perbatasan", @@ -8220,6 +8783,7 @@ "da": "bussluse", "de": "busschleuse", "en": "bus trap", + "en-gb": "car trap", "fr": "filtre à bus", "ja": "バストラップ", "nb": "bussluse", @@ -8251,6 +8815,7 @@ "be": "гарадскія сцены", "ca": "muralla urbana", "cs": "městské hradby", + "cy": "muriau dinas", "da": "bymur", "de": "stadtmauer", "el": "τείχη της πόλης", @@ -8261,6 +8826,8 @@ "fa": "دیوارهای شهر", "fi": "kaupunginmuuri", "fr": "rempart de ville", + "ga": "ballaí baile", + "gl": "murallas da cidade", "he": "חומות עיר", "hu": "városfal", "it": "mura cittadine", @@ -8289,6 +8856,7 @@ "bg": "ограда", "ca": "tanca", "cs": "plot", + "cy": "ffens", "da": "hegn", "de": "zaun", "el": "φράχτης", @@ -8298,6 +8866,8 @@ "fa": "حصار (حائل)", "fi": "aita", "fr": "clôture", + "ga": "claí", + "gl": "cerca", "he": "גדר", "hi": "बाड़", "hu": "kerítés (építmény)", @@ -8308,7 +8878,6 @@ "ko": "울타리", "lt": "tvora", "lv": "žogs", - "ms": "pagar", "nb": "gjerde", "nl": "hek", "pl": "płot", @@ -8317,8 +8886,10 @@ "ru": "забор", "sk": "oplotenie", "sl": "ograja", + "sq": "rrethoja", "sv": "stängsel", "ta": "வேலி (எல்லை)", + "te": "కంచె", "tr": "çit", "uk": "огорожа", "vi": "hàng dậu", @@ -8334,6 +8905,7 @@ "bg": "порта", "ca": "porta", "cs": "brána", + "cy": "gât", "da": "port", "de": "tor", "el": "πύλη", @@ -8343,6 +8915,7 @@ "fa": "دروازه", "fi": "portti", "fr": "porte", + "ga": "geata", "he": "שער", "hu": "kapu", "id": "gerbang", @@ -8351,7 +8924,6 @@ "ko": "대문", "lt": "vartai", "ml": "പടിവാതിൽ", - "ms": "pintu pagar", "nb": "port", "nl": "poort", "pl": "brama", @@ -8376,7 +8948,7 @@ "da": "autoværn", "de": "schutzplanke", "en": "traffic barrier", - "es": "barrera de contención", + "es": "barrera bionda", "fa": "گاردریل", "fr": "glissière de sécurité", "he": "מעקה הפרדה", @@ -8389,6 +8961,7 @@ "pl": "bariera energochłonna", "pt": "mureta", "ru": "барьерное ограждение", + "sl": "varnostna ograja", "sv": "vägräckesbalk", "ta": "போக்குவரத்து தடுப்புச் சுவர்", "zh": "交通護欄" @@ -8418,6 +8991,7 @@ "fa": "پرچین", "fi": "pensasaita", "fr": "haie", + "gl": "sebe", "he": "גדר חיה", "hr": "živica", "hu": "sövény", @@ -8427,7 +9001,6 @@ "ko": "생울타리", "lt": "gyvatvorė", "lv": "dzīvžogs", - "ms": "pagar", "nb": "hekk", "nl": "heg", "pl": "żywopłot", @@ -8445,7 +9018,8 @@ "zh": "樹籬" }, "height_restrictor": { - "en": "height barrier" + "en": "height barrier", + "ja": "高さ制限柱" }, "jersey_barrier": { "ar": "حاجز نيوجيرسي", @@ -8465,6 +9039,7 @@ "ko": "저지 장벽", "nb": "betonggris", "pt": "barreira new jersey", + "ru": "блок джерси", "sv": "betongsugga", "tr": "beton bariyer", "uk": "бар'єр «джерсі»", @@ -8536,6 +9111,7 @@ "cs": "bezbariérové navrhování staveb", "de": "barrierefreies bauen", "en": "barrier-free", + "es": "construcción sin barreras", "ja": "バリアフリー", "ko": "배리어 프리", "pt": "sem barreiras", @@ -8557,6 +9133,7 @@ "fa": "دیوار حائل", "fi": "tukimuuri", "fr": "mur de soutènement", + "gl": "muro de contención", "he": "קיר תומך", "hi": "धारक भित्ति", "hu": "támfal", @@ -8565,6 +9142,7 @@ "ja": "擁壁", "kn": "ಆಸರೆಗೋಡೆ", "ko": "옹벽", + "lt": "atraminė siena", "nb": "støttemur", "nl": "keermuur", "pl": "mur oporowy", @@ -8583,6 +9161,7 @@ "de": "sicherheitsschleuse", "en": "sally port", "fa": "دروازه زندان", + "it": "porta di sortita", "ja": "サリーポート", "nl": "sortie", "zh": "暗道" @@ -8597,12 +9176,14 @@ "ja": "スパイク・ストライプ", "nb": "spikermatte", "nl": "spijkermat", + "ro": "bandă cu țepi", "ru": "ежи", "sv": "spikmatta", "uk": "стрічка з шипами", "zh": "釘條" }, "step": { + "ar": "سلم", "be": "прыступка", "ca": "esglaó", "cs": "schodišťový stupeň", @@ -8611,6 +9192,8 @@ "es": "escalón", "et": "trepiaste", "fr": "escalier", + "gl": "chanzo", + "hr": "stepenice", "hu": "lépcsőfok", "it": "scalino", "ja": "段", @@ -8618,10 +9201,12 @@ "pl": "stopień", "ru": "ступень", "sl": "stopnica", - "sv": "steg" + "sv": "steg", + "zh": "台阶" }, "stile": { "ar": "مَرقى", + "cy": "camfa", "da": "stente", "de": "zauntritt", "en": "stile", @@ -8644,10 +9229,10 @@ "cs": "mýtnice", "de": "mautstelle", "en": "tollbooth", + "es": "cabina de peaje", "fr": "cabine de péage", "it": "casello", "ja": "本線料金所", - "ms": "pondok tol", "nb": "bom", "nl": "tolhuisje", "pl": "miejsce poboru opłat", @@ -8662,6 +9247,7 @@ "be": "турнікет", "ca": "torniquet d'accés", "cs": "turniket", + "cy": "giât dro", "da": "korsbom", "de": "vereinzelungsanlage", "en": "turnstile", @@ -8680,6 +9266,7 @@ "pt": "torniquete", "pt-br": "catraca", "ru": "турникет", + "sl": "vrtljivi križ", "sv": "vändkors", "tr": "turnike", "uk": "турнікет", @@ -8692,6 +9279,7 @@ "bg": "стена", "ca": "paret", "cs": "zeď", + "cy": "mur", "da": "mur", "de": "mauer", "el": "τοίχος", @@ -8701,6 +9289,9 @@ "fa": "دیوار", "fi": "muuri", "fr": "mur", + "ga": "balla", + "gd": "balla", + "gl": "muro", "he": "קיר", "hi": "दीवार", "hr": "zid", @@ -8712,16 +9303,18 @@ "ko": "벽", "lt": "siena", "lv": "mūris", - "ms": "dinding", "nb": "mur", + "nl": "muur (bouwsel)", "pl": "mur", "pt": "muro", "ro": "zid", "ru": "стена", "sk": "stena", "sl": "zid", + "sq": "mur", "sv": "mur", "ta": "மதில்", + "te": "గోడ", "th": "ผนัง", "tr": "duvar", "uk": "стіна", @@ -8740,6 +9333,7 @@ "be": "весніцы", "ca": "schlupfpforte", "cs": "schlupfpforte", + "cy": "schlupfpforte", "da": "schlupfpforte", "de": "schlupfpforte", "en": "wicket gate", @@ -8749,11 +9343,13 @@ "et": "schlupfpforte", "fi": "schlupfpforte", "fr": "portillon", + "ga": "schlupfpforte", + "gd": "schlupfpforte", + "gl": "schlupfpforte", "he": "פשפש", "hr": "schlupfpforte", "id": "schlupfpforte", "it": "schlupfpforte", - "ms": "schlupfpforte", "nb": "schlupfpforte", "nl": "schlupfpforte", "pl": "furtka", @@ -8774,11 +9370,14 @@ "be": "софтбол", "bg": "софтбол", "ca": "softbol", + "cy": "pêl feddal", "el": "σόφτμπολ", "en": "softball", "es": "sóftbol", "et": "pehmepall", "fa": "سافتبال", + "ga": "bogliathróid", + "gl": "softbol", "he": "סופטבול", "hr": "softbol", "id": "sofbol", @@ -8788,7 +9387,6 @@ "lt": "softbolas", "lv": "softbols", "mr": "सॉफ्टबॉल", - "ms": "bola lisut", "nl": "softbal", "pt": "softbol", "ru": "софтбол", @@ -8796,6 +9394,7 @@ "sl": "softbol", "sv": "softboll", "ta": "மென்பந்தாட்டம்", + "te": "సాఫ్ట్ బాల్", "th": "ซอฟต์บอล", "tr": "softbol", "uk": "софтбол", @@ -8806,17 +9405,23 @@ } }, "basin": { + "aeration": { + "en": "aeration basin" + }, "detention": { "ar": "حوض الاحتجاز", "cs": "polder", "de": "hochwasserrückhaltebecken", "en": "detention basin", + "fr": "bassin sans retenue permanente", + "id": "kolam retensi", "it": "bacini di espansione", "ja": "遊水池", "ko": "유수지", "nl": "detentiebekken", "pl": "polder przeciwpowodziowy", "sk": "polder", + "sl": "protipoplavni bazen", "th": "แก้มลิง", "zh": "滯洪池", "zh-cn": "滞洪区" @@ -8832,15 +9437,17 @@ "retention": { "ar": "حوض التخزين", "cs": "retenční nádrž", + "da": "regnvandsbassin", "de": "regenrückhaltebecken", "en": "retention basin", "fr": "bassin de rétention", "id": "embung", - "ja": "調整池", + "ja": "洪水貯水池", "lt": "neišleidžiamasis paviršinių nuotekų tvenkinys", "nl": "retentiebekken", "ro": "bazin de acumulare", "ru": "отстойник", + "sl": "zadrževalni bazen", "sv": "utjämningsmagasin", "zh": "調整池" } @@ -8856,32 +9463,66 @@ "de": "hammām", "el": "χαμάμ", "en": "hammam", + "en-gb": "onsen", "et": "türgi saun", "fa": "حمام ترکی", "fi": "turkkilainen sauna", + "gl": "baño turco", "he": "חמאם", "hi": "हमाम", "hr": "hamam", "hu": "törökfürdő", "ja": "ハンマーム", "ko": "하맘", + "lt": "onsenas", "lv": "turku pirts", "ml": "ഹമ്മം", "nb": "tyrkisk bad", "nl": "hamam", "pl": "sauna turecka", "pt": "banho turco", + "ro": "onsen", "ru": "хаммам", + "sk": "onsen", "sl": "hamam", + "sq": "hamami", "sv": "hamam", + "ta": "ஒன்சென்", + "th": "อนเซ็ง", "tr": "hamam", "uk": "хамам", "ur": "ترکی حمام", "vi": "nhà tắm thổ nhĩ kỳ", - "zh": "土耳其浴" + "zh": "土耳其浴", + "zh-hk": "日式溫泉" } }, "beauty": { + "spa": { + "ar": "حمام معدني", + "bg": "спа", + "cs": "lázně", + "cy": "sba", + "el": "λουτρό", + "en": "spa", + "es": "balneario", + "et": "spaa", + "fa": "اسپا", + "fi": "kylpylä", + "ga": "spá", + "he": "ספא", + "hi": "स्पा", + "hr": "toplice", + "hu": "gyógyvizes üdülő", + "it": "terme", + "ja": "スパ", + "kn": "ಸ್ಪಾ", + "ko": "스파", + "sl": "terme", + "ta": "ஸ்பா", + "th": "สปา", + "uk": "спа" + }, "tattoo_removal": { "de": "entfernen von tätowierungen", "el": "αφαίρεση τατουάζ", @@ -8893,6 +9534,10 @@ } }, "bicycle": { + "designated": { + "en": "cycle navi mark", + "ja": "自転車ナビマーク" + }, "no": { "da": "cykling forbudt", "de": "fahrradverbot", @@ -8913,7 +9558,7 @@ "it": "ciclostazione", "ja": "駐輪場", "ko": "주거장", - "nb": "sykkelhotell", + "nb": "sykkelgarasje", "nl": "fietsenstalling", "pl": "stacja parkowania rowerów", "pt": "bicicletário", @@ -8932,7 +9577,7 @@ "et": "jalgrattahoidja", "fi": "pyöräteline", "fr": "arceau à vélo", - "he": "חנייה לאופניים", + "he": "חניה לאופניים", "id": "rak sepeda", "it": "rastrelliera", "ja": "自転車スタンド", @@ -8961,6 +9606,7 @@ "bg": "атол", "ca": "atol", "cs": "atol", + "cy": "atol", "da": "atol", "el": "ατόλλη", "en": "atoll", @@ -8969,6 +9615,8 @@ "es": "atolón", "fa": "آبسنگ حلقوی", "fi": "atolli", + "ga": "atall", + "gl": "atol", "he": "אטול", "hi": "एटोल", "hr": "atol", @@ -8979,7 +9627,6 @@ "lt": "atolas", "lv": "atols", "ml": "അടോലുകൾ", - "ms": "atol", "nl": "atol", "pl": "atol", "pt": "atol", @@ -8987,13 +9634,15 @@ "ru": "атолл", "sk": "atol", "sl": "atol", + "sq": "atoli", "ta": "பவளத்தீவு", "th": "อะทอลล์", "tr": "mercan adası", "uk": "атол", "ur": "مرجانی جزیرہ", "vi": "đảo san hô vòng", - "zh": "環礁" + "zh": "環礁", + "zh-cn": "环礁" } }, "books": { @@ -9007,7 +9656,9 @@ "en": "esperanto literature", "es": "literatura en esperanto", "fa": "ادبیات اسپرانتو", + "fi": "esperantonkielinen kirjallisuus", "fr": "littérature espérantophone", + "gl": "literatura en esperanto", "hu": "eszperantó irodalom", "it": "letteratura in esperanto", "ja": "エスペラント文学", @@ -9017,6 +9668,7 @@ "pt": "literatura em esperanto", "ro": "literatură în esperanto", "ru": "эсперанто-литература", + "sv": "litteratur på esperanto", "tr": "esperanto edebiyatı", "uk": "література есперанто", "zh": "世界語文學", @@ -9033,6 +9685,25 @@ } }, "border_type": { + "arrondissement": { + "ar": "دائرة", + "bg": "арондисман", + "en": "arrondissement", + "fi": "arrondissementti", + "he": "הרבעים של פריז", + "id": "arondisemen", + "ja": "アロンディスマン", + "ko": "아롱디스망", + "lt": "apskritis", + "pl": "okręg", + "ro": "arondisment", + "ru": "арондисман", + "sl": "okrožje", + "tr": "belçika'da arrondisementlar", + "uk": "округ", + "ur": "ارونڈسمینٹس", + "zh": "區 (法語圈)" + }, "county": { "af": "graafskap", "ar": "محافظة", @@ -9040,6 +9711,7 @@ "bg": "графство", "ca": "comtat", "cs": "hrabství", + "cy": "sir", "el": "κομητεία", "en": "county", "es": "condado", @@ -9047,16 +9719,19 @@ "fa": "شهرستان", "fi": "piirikunta", "fr": "comté", + "ga": "contae", + "gd": "ceàrn", + "gl": "condado", "he": "נפה", "hi": "काउण्टी", "hr": "grofovija", "hu": "megye", + "id": "kontas", "it": "contea", "ja": "カウンティ", "ko": "카운티", "lt": "grafystė", "lv": "grāfiste", - "ms": "kaunti", "nb": "fylke", "pl": "hrabstwo", "pt": "condado", @@ -9070,6 +9745,47 @@ "vi": "hạt", "zh": "县/郡/伯国/伯爵领", "zh-tw": "縣/郡/伯國/伯爵領" + }, + "nation": { + "af": "internasionale grens", + "ar": "حدود دولية", + "be": "міжнародная граніца", + "bg": "държавна граница", + "ca": "frontera internacional", + "cs": "mezinárodní hranice", + "cy": "ffin rhyngwladol", + "da": "international grænse", + "de": "internationale grenze", + "el": "διεθνές σύνορο", + "en": "international border", + "es": "frontera internacional", + "et": "riigipiir", + "fi": "valtionraja", + "fr": "frontière internationale", + "ga": "teorainn idirnáisiúnta", + "gl": "fronteira internacional", + "he": "גבול בין-לאומי", + "hr": "državna granica", + "hu": "nemzetközi határ", + "it": "confine internazionale", + "ja": "国境", + "kn": "ಅಂತರಾಷ್ಟ್ರೀಯ ಗಡಿರೇಖೆ", + "ko": "국경", + "lt": "valstybės siena", + "lv": "valsts robeža", + "nb": "riksgrense", + "nl": "internationale grens", + "pl": "granica międzynarodowa", + "pt": "fronteira internacional", + "ru": "межгосударственная граница", + "sk": "medzinárodna hranica", + "sl": "mednarodna meja", + "sv": "statsgräns", + "tr": "uluslararası sınır", + "uk": "міждержавний кордон", + "ur": "بین الاقوامی سرحد", + "vi": "biên giới quốc tế", + "zh": "國界" } }, "boules": { @@ -9077,7 +9793,10 @@ "da": "petanquebane", "en": "petanque pitch", "es": "pista de petanca", - "fr": "pétanquodrome" + "fr": "pétanquodrome", + "it": "campo da petanque", + "ru": "площадка для петанка", + "sl": "igrišče za petanko" } }, "boundary": { @@ -9085,9 +9804,11 @@ "ar": "تصنيف:أراضي يعيش فيها السكان الأصليون", "ca": "territoris indígenes", "cs": "domorodé území", + "cy": "tiroedd ble mae brodorion gwreiddiol gwlad yn byw", "en": "lands inhabited by indigenous peoples", "es": "territorios indígenas", "fr": "territoire indigène", + "ja": "先住民居住地", "nl": "gebieden bewoond door inheemse volkeren", "pt": "áreas habitadas por povos indígenas", "ru": "территории коренных народов", @@ -9095,11 +9816,12 @@ "zh": "原住民居住的土地" }, "administrative": { - "ar": "تقسيم إداري", + "ar": "كيان إقليمي إداري", "be": "адміністрацыйна-тэрытарыяльная адзінка", "bg": "административна единица", "ca": "entitat territorial administrativa", "cs": "administrativní jednotka", + "cy": "endid tiriogaethol gweinyddol", "da": "administrativ-territorial enhed", "de": "administrativ-territoriale entität", "el": "διοικητική διαίρεση", @@ -9109,11 +9831,13 @@ "fa": "تقسیمات کشوری", "fi": "hallinnollinen alueyksikkö", "fr": "entité territoriale administrative", + "ga": "limistéar riaracháin", + "gl": "división administrativa", "he": "חלוקה מנהלית", "hi": "प्रशासनिक प्रभाग", "hr": "administrativni teritorijalni entitet", "hu": "közigazgatási egység", - "id": "wilayah administratif", + "id": "pembagian administratif", "it": "divisione amministrativa", "ja": "行政区画", "kn": "ಆಡಳಿತ ಕೇಂದ್ರ", @@ -9121,7 +9845,6 @@ "lt": "administracinis vienetas", "lv": "administratīvi teritoriāla vienība", "mr": "प्रशासकीय विभाग", - "ms": "entiti wilayah pentadbiran", "nb": "administrativ-territorial enhet", "nl": "bestuurlijk gebied", "pl": "jednostka administracyjna", @@ -9130,7 +9853,9 @@ "ru": "административно-территориальная единица", "sk": "administratívny územný celok", "sl": "upravna ozemeljska entiteta", + "sq": "njësi administrative territoriale", "sv": "administrativ territoriell enhet", + "te": "పరిపాలనా విభాగం", "th": "เขตการปกครอง", "tr": "idari bölünüş", "uk": "адміністративно-територіальна одиниця", @@ -9141,11 +9866,12 @@ }, "census": { "af": "census-designated place", - "ar": "مركز تعداد للسكان", + "ar": "مكان مخصص لتعداد السكان", "ca": "concentració de població designada pel cens", "cs": "území pro potřeby sčítání lidu", + "cy": "lle cyfrifiad-dynodedig", "de": "census-designated place", - "el": "census-designated place", + "el": "τοποθεσία απογραφής στις ηνωμένες πολιτείες", "en": "census-designated place in the united states", "en-ca": "census-designated place", "en-gb": "census-designated place", @@ -9154,6 +9880,7 @@ "fa": "حوزه سرشماری", "fi": "census-designated place", "fr": "localité de recensement aux états-unis", + "gl": "lugar designado polo censo", "he": "יישוב לצורכי מפקד אוכלוסין", "hr": "popisom određeno mjesto", "hu": "statisztikai település", @@ -9168,7 +9895,7 @@ "ro": "loc desemnat pentru recensământ", "ru": "статистически обособленная местность", "sl": "popisno odrejeni kraj", - "sv": "folkräkningsområde", + "sv": "statistisk ort", "tr": "sayım yeri", "uk": "переписна місцевість", "ur": "مردم شماری نامزد مقام", @@ -9183,6 +9910,7 @@ "bg": "церемониално графство", "ca": "comtat cerimonial", "cs": "anglické ceremoniální hrabství", + "cy": "swydd seremonïol lloegr", "da": "ceremonielle grevskaber i england", "de": "zeremonielle grafschaften englands", "el": "τελετουργική κομητεία της αγγλίας", @@ -9193,15 +9921,16 @@ "fa": "شهرستانهای تشریفاتی انگلستان", "fi": "englannin muodollinen kreivikunta", "fr": "comté cérémonial", + "ga": "contae searmanais shasana", + "gl": "condado cerimonial de inglaterra", "he": "מחוז טקסי של אנגליה", "hr": "engleske ceremonijalne grofovije", - "id": "provinsi di inggris", + "id": "county seremonial di inggris", "it": "contea cerimoniale", "ja": "イングランドの典礼カウンティ", "ko": "잉글랜드의 전례주", "lt": "anglijos grafystės", "lv": "anglijas ceremoniālā grāfiste", - "ms": "kaunti istiadat di england", "nb": "seremonielt grevskap", "nl": "ceremoniële graafschappen van engeland", "pl": "hrabstwo ceremonialne", @@ -9222,6 +9951,7 @@ "civil_parish": { "ca": "parròquia civil", "cs": "civilní farnost", + "cy": "plwyf sifil", "de": "parish", "el": "ενορία", "en": "civil parish", @@ -9229,6 +9959,9 @@ "es": "parroquia civil", "fa": "پریش (تقسیمات اداری)", "fr": "paroisse civile", + "ga": "paróiste sibhialta", + "gl": "parroquia civil", + "he": "קהילה אזרחית", "hu": "község", "it": "parrocchia civile", "ja": "行政教区", @@ -9248,8 +9981,10 @@ "disputed": { "ar": "منطقة متنازع عليها", "be": "спрэчная тэрыторыя", + "bg": "оспорвана територия", "ca": "territori disputat", "cs": "sporné území", + "cy": "tiriogaeth ddadleuol", "da": "omstridt territorium", "de": "umstrittenes territorium", "el": "αμφισβητούμενο έδαφος", @@ -9259,6 +9994,8 @@ "fa": "سرزمین مورد مناقشه", "fi": "kiistanalainen alue", "fr": "territoire disputé", + "ga": "críoch atá ina hábhar achrainn", + "gl": "territorio disputado", "he": "חבל ארץ במחלוקת", "hu": "vitatott terület", "id": "wilayah sengketa", @@ -9282,6 +10019,29 @@ "zh-hk": "爭議領土", "zh-tw": "爭議領土" }, + "low_emission_zone": { + "ar": "منطقة منخفضة الانبعاثات", + "ca": "zona de baixes emissions", + "cs": "nízkoemisní zóny", + "de": "umweltzone", + "en": "low-emission zone", + "es": "zona de baja emisión", + "fa": "محدوده ترافیکی با انتشار گازهای آلاینده کمتر", + "fr": "zone à faibles émissions", + "he": "אזור מופחת פליטות", + "id": "zona emisi rendah", + "it": "zona a bassa emissione", + "ja": "環境ゾーン", + "nb": "lavutslippssone", + "nl": "milieuzone", + "pl": "strefa niskiej emisji", + "pt": "zona de baixas emissões", + "sv": "miljözon", + "tr": "düşük emisyon bölge", + "uk": "зона з низьким рівнем викидів", + "vi": "vùng phát thải thấp", + "zh": "低排放區" + }, "maritime": { "ar": "حدود بحرية", "ca": "frontera marítima", @@ -9302,7 +10062,6 @@ "ja": "海上境界線", "ko": "해상경계선", "lv": "jūras robeža", - "ms": "sempadan laut", "nb": "maritim grense", "nl": "zeegrens", "pl": "morska granica państwowa", @@ -9322,6 +10081,7 @@ "be": "памежны знак", "ca": "fita", "cs": "hraniční kámen", + "cy": "arwydd terfyn", "da": "grænsesten", "de": "grenzmarkierung", "en": "boundary marker", @@ -9330,19 +10090,22 @@ "fa": "نشانگر مرز", "fi": "rajamerkki", "fr": "borne frontière", + "ga": "rianaire teorann", "he": "אבן גבול", + "hu": "határjelzés", "id": "tugu perbatasan", "it": "cippo di confine", "ja": "境界標", + "ko": "지계표", "lt": "riboženklis", "lv": "robežzīme", - "ms": "batu sempadan", "nb": "grensemerke", "nl": "grensmarkering", "pl": "znak graniczny", "pt": "marco de fronteira", "ru": "пограничный маркерный знак", "sl": "mejnik", + "sq": "shënuesi i kufirit", "sv": "gränsmärke", "tr": "sınır taşı", "uk": "прикордонний знак", @@ -9355,6 +10118,7 @@ "bg": "национален парк", "ca": "parc nacional", "cs": "národní park", + "cy": "parc cenedlaethol", "da": "nationalpark", "de": "nationalpark", "el": "εθνικός δρυμός", @@ -9364,6 +10128,8 @@ "fa": "پارک ملی", "fi": "kansallispuisto", "fr": "parc national", + "ga": "páirc náisiúnta", + "gl": "parque nacional", "he": "פארק לאומי", "hi": "राष्ट्रीय उद्यान", "hr": "nacionalni park", @@ -9376,7 +10142,6 @@ "lt": "nacionalinis parkas", "lv": "nacionālais parks", "ml": "ദേശീയോദ്യാനം", - "ms": "taman negara", "nb": "nasjonalpark", "nl": "nationaal park", "pl": "park narodowy", @@ -9385,12 +10150,14 @@ "ru": "национальный парк", "sk": "národný park", "sl": "narodni park", + "sq": "parku kombëtar", "sv": "nationalpark", - "ta": "தேசிய பூங்கா", + "ta": "தேசியப் பூங்கா", + "te": "జాతీయ ఉద్యానవనం", "th": "อุทยานแห่งชาติ", "tr": "millî park", "uk": "національний парк", - "ur": "قومی پارک", + "ur": "قومی باغستان", "vi": "vườn quốc gia", "zh": "國家公園", "zh-cn": "国家公园" @@ -9402,6 +10169,7 @@ "bg": "избирателен район", "ca": "circumscripció electoral", "cs": "volební obvod", + "cy": "etholaeth", "da": "valgkreds", "de": "wahlkreis", "el": "εκλογική περιφέρεια", @@ -9413,8 +10181,11 @@ "fa": "حوزه انتخابیه", "fi": "vaalipiiri", "fr": "circonscription électorale", + "ga": "toghcheantar", + "gl": "distrito electoral", "he": "מחוז בחירה", "hi": "चुनाव क्षेत्र", + "hr": "izborna jedinica", "hu": "választókerület", "id": "daerah pemilihan", "it": "circoscrizione elettorale", @@ -9424,7 +10195,6 @@ "lv": "vēlēšanu apgabals", "ml": "നിയോജകമണ്ഡലം", "mr": "सांसदीय मतदारसंघ", - "ms": "kawasan pilihan raya", "nb": "valgkrets", "nl": "kieskring", "pl": "okręg wyborczy", @@ -9433,7 +10203,8 @@ "ru": "избирательный округ", "sl": "volilna enota", "sv": "valkrets", - "ta": "தொகுதி", + "ta": "தேர்தல் தொகுதி", + "te": "నియోజక వర్గం", "th": "เขตเลือกตั้ง", "tr": "seçim bölgesi", "uk": "виборчий округ", @@ -9449,16 +10220,18 @@ "bg": "резерват", "ca": "reserva natural", "cs": "přírodní rezervace", + "cy": "gwarchodfa natur", "da": "naturreservat", "de": "naturschutzgebiet", "el": "φυσικό καταφύγιο", "en": "nature reserve", - "en-us": "naturschutzgebiet", "es": "reserva natural", "et": "looduskaitseala", "fa": "ذخیرهگاه طبیعی", "fi": "luonnonpuisto", "fr": "réserve naturelle", + "ga": "anaclann dúlra", + "gl": "reserva natural", "he": "שמורת טבע", "hi": "संरक्षित प्रकृतिक्षेत्र", "hr": "prirodni rezervat", @@ -9471,7 +10244,6 @@ "lv": "dabas rezervāts", "ml": "സംരക്ഷിത പ്രദേശം", "mr": "संरक्षित क्षेत्र", - "ms": "cagar alam", "nb": "naturreservat", "nl": "natuurreservaat", "pl": "rezerwat przyrody", @@ -9481,7 +10253,9 @@ "ru": "заповедник", "sk": "prírodná rezervácia", "sl": "naravni rezervat", + "sq": "rezervat natyror", "sv": "naturreservat", + "te": "ప్రకృతి రిజర్వ్", "th": "พื้นที่คุ้มครอง", "tr": "doğa koruma alanı", "uk": "природний заповідник", @@ -9497,16 +10271,18 @@ "ca": "entitat territorial administrativa religiosa", "cs": "náboženská administrativní územní jednotka", "de": "religiöser verwaltungsbezirk", + "el": "θρησκευτική εδαφική οντότητα", "en": "religious administrative territorial entity", "es": "subdivisión eclesiástica", "fa": "نهاد اداری دینی سرزمین", "fr": "entité territoriale religieuse", + "ga": "eintiteas críche riaracháin creidimh", + "gl": "entidade territorial administrativa relixiosa", "he": "יחידת מנהל אזורי דתית", "hu": "egyházigazgatási körzet", "it": "ente amministrativo religioso territoriale", "ja": "宗教行政区域実体", "lv": "reliģiska administratīvi teritoriāla vienība", - "ms": "entiti wilayah pentadbiran agama", "nl": "religieuze bestuurlijke territoriale entiteit", "pt": "entidade territorial administrativa religiosa", "ru": "религиозное административно-территориальное образование", @@ -9537,7 +10313,6 @@ "ko": "경제특구", "ml": "പ്രത്യേക സാമ്പത്തിക മേഖല", "mr": "विशेष आर्थिक क्षेत्र", - "ms": "zon ekonomi khas", "nb": "spesiell økonomisk sone", "nl": "speciale economische zone", "pl": "specjalna strefa ekonomiczna", @@ -9546,6 +10321,7 @@ "sl": "posebna ekonomska cona", "sv": "särskild ekonomisk zon", "ta": "சிறப்பு பொருளாதார மண்டலம்", + "te": "ప్రత్యేక ఆర్థిక మండలి", "th": "เขตเศรษฐกิจพิเศษ", "tr": "özel ekonomik bölge", "uk": "спеціальна економічна зона", @@ -9560,6 +10336,7 @@ "bg": "часова зона", "ca": "fus horari", "cs": "časové pásmo", + "cy": "cylchfa amser", "da": "tidszone", "de": "zeitzone", "el": "ζώνη ώρας", @@ -9569,6 +10346,9 @@ "fa": "منطقه زمانی", "fi": "aikavyöhyke", "fr": "fuseau horaire", + "ga": "amchrios", + "gd": "roinn-tìde", + "gl": "fuso horario", "he": "אזור זמן", "hi": "समय मण्डल", "hr": "vremenska zona", @@ -9582,7 +10362,6 @@ "lv": "laika josla", "ml": "സമയമേഖല", "mr": "आंतरराष्ट्रीय कालविभाग", - "ms": "zon waktu", "nb": "tidssone", "nl": "tijdzone", "pl": "strefa czasowa", @@ -9591,8 +10370,10 @@ "ru": "часовой пояс", "sk": "časové pásmo", "sl": "časovni pas", + "sq": "zona kohore", "sv": "tidszon", "ta": "நேர வலயம்", + "te": "కాల మండలం", "th": "เขตเวลา", "tr": "zaman dilimi", "uk": "часовий пояс", @@ -9605,9 +10386,11 @@ "vice_county": { "ar": "نائب مقاطعة", "ca": "vicecomtat", + "cy": "is-sir", "en": "vice-county", "es": "vicecondado", "fr": "vice-comté", + "ga": "leaschontae", "sl": "podgrofija", "uk": "віце-графство" }, @@ -9621,75 +10404,65 @@ } }, "brand": { - "": { - "af": "aldi", - "ar": "ألدي", - "ca": "aldi", - "cs": "aldi", - "da": "aldi", - "de": "aldi", - "el": "aldi", - "en": "krowarzywa", - "en-ca": "aldi", - "en-gb": "aldi", - "es": "aldi", - "fa": "آلدی", - "fi": "aldi", - "fr": "aldi", - "he": "אלדי", - "hr": "aldi", - "hu": "aldi", - "id": "aldi", - "it": "caddy's", - "ja": "aldi", - "ko": "알디", - "lt": "aldi", - "nb": "aldi", - "nl": "aldi", - "pt": "aldi", - "ro": "aldi", - "ru": "aldi", - "sv": "aldi", - "tr": "aldi", - "uk": "aldi", - "vi": "aldi", - "zh": "aldi" + "Eroski": { + "en": "eroski", + "fa": "اروسکی", + "gl": "grupo eroski", + "ja": "エロスキ" }, - "Aldi": { - "ar": "ألدي", - "en": "aldi", - "fa": "آلدی", - "he": "אלדי", - "ko": "알디" + "Harley-Davidson": { + "ar": "هارلي-ديفيدسون", + "en": "harley-davidson", + "fa": "هارلی-دیویدسن", + "fi": "harley-davidson motor company", + "he": "הרלי-דייווידסון", + "hi": "हार्ले-डेविडसन", + "ja": "ハーレーダビッドソン", + "kn": "ಹಾರ್ಲೆ-ಡೇವಿಡ್ಸನ್", + "ko": "할리데이비슨", + "ml": "ഹാർലി-ഡേവിഡ്സൺ", + "te": "హర్లే డేవిడ్సన్", + "th": "ฮาร์ลีย์-เดวิดสัน", + "zh": "哈雷摩托車", + "zh-cn": "哈雷摩托车" }, - "Caddy's": { - "en": "caddy's" + "KTM": { + "ar": "كي تي إم", + "en": "ktm", + "fa": "کیتیام", + "hi": "केटीएम", + "kn": "ಕೆಟಿಎಂ", + "ml": "കെ.ടി.എം.", + "th": "เคทีเอ็ม" }, - "Drogeria_Natura": { - "en": "drogeria natura", - "pl": "drogerie natura" + "Louis_Motorrad": { + "de": "louis", + "en": "louis motorcycle", + "es": "louis", + "fi": "detlev louis", + "fr": "louis moto", + "it": "louis", + "nl": "louis motorfiets" }, - "Krowarzywa": { - "en": "krowarzywa" + "Moto_Guzzi": { + "en": "moto guzzi", + "fa": "موتو گوتزی", + "he": "מוטו גוצי", + "ja": "モト・グッツィ", + "zh": "摩托古兹" }, - "REWE": { - "en": "rewe", - "fa": "سوپرمارکت رو", - "he": "רווה", - "ja": "レーベ", - "zh": "雷弗超市" + "Spar": { + "ar": "سبار", + "en": "spar", + "fa": "اسپار", + "ja": "スパー", + "ko": "스파", + "zh": "spar超市" }, - "SB_Tank": { - "en": "sb-tank" - }, - "Safe Streets Baltimore": { - "en": "safe streets baltimore" - }, - "Tigre": { - "en": "tigre" - }, - "Tigre_Amico": { - "en": "tigre amico" + "Zero": { + "en": "zero motorcycles", + "fa": "زیرو موتور", + "ja": "ゼロ・モーターサイクルズ" } }, "bridge": { @@ -9700,6 +10473,7 @@ "bg": "вантов мост", "ca": "pont basculant", "cs": "zdvihací most", + "cy": "pont wrthbwys", "da": "klapbro", "de": "klappbrücke", "de-ch": "bogenbrücke", @@ -9711,6 +10485,8 @@ "fa": "پل بالارو", "fi": "läppäsilta", "fr": "pont basculant", + "ga": "droichead staghcháblaí", + "gl": "ponte basculante", "he": "גשר נפתח", "hi": "बैस्क्यूल सेतु", "hr": "pontonski most", @@ -9722,7 +10498,6 @@ "lt": "varstomasis tiltas", "lv": "arkas tilts", "ml": "തോണിച്ചങ്ങാടം", - "ms": "jambatan imbang", "nb": "klaffebru", "nl": "basculebrug", "pl": "most zwodzony", @@ -9732,6 +10507,7 @@ "ru": "раскрывающийся мост", "sk": "oblúkový most", "sl": "dvodelni dvižni most", + "sq": "urë me hark", "sv": "klaffbro", "ta": "மிதவைப்பாலம்", "th": "สะพานแบบโค้ง", @@ -9745,13 +10521,16 @@ "zh-tw": "潛水橋" }, "aqueduct": { - "ar": "أنبوب ماء", + "ar": "جسر قناة مياه", "ca": "aqüeducte", "cs": "akvadukt", + "cy": "dyfrbont", "da": "akvædukt", "de": "aquäduktbrücke", "el": "υδραγωγός", "en": "aqueduct bridge", + "es": "puente acueducto", + "fa": "پل آبنما", "fr": "pont-aqueduc", "ja": "水路橋", "ko": "용수로", @@ -9760,7 +10539,7 @@ "ru": "акведук", "sl": "akvadukt (vodovod)", "uk": "акведук (міст)", - "zh": "引水道" + "zh": "引水道橋" }, "boardwalk": { "ar": "ممشى خشبي", @@ -9772,6 +10551,8 @@ "es": "paseo marítimo", "et": "laudtee", "fr": "promenade en planches", + "ga": "clárchosán", + "gl": "paseo marítimo", "hr": "šetnica", "id": "jalan papan", "ja": "ボードウォーク", @@ -9801,11 +10582,11 @@ "ja": "カンチレバー橋", "ko": "캔틸레버교", "lt": "konsolinis tiltas", - "ms": "jambatan julur", "nb": "fritt frambygg-bro", "nl": "cantileverbrug", "pl": "most wspornikowy", "pt": "ponte cantilever", + "ro": "pod în consolă", "ru": "консольный мост", "sk": "konzolový most", "sl": "konzolni most", @@ -9830,7 +10611,6 @@ "id": "jembatan beratap", "it": "ponte coperto", "ja": "屋根付橋", - "ms": "jambatan berbumbung", "nb": "overdekket bro", "nl": "overdekte brug", "pl": "kryty most", @@ -9849,6 +10629,7 @@ "bg": "подвижен мост", "ca": "pont mòbil", "cs": "pohyblivý most", + "cy": "pont symudol", "de": "bewegliche brücke", "el": "κινητή γέφυρα", "en": "moveable bridge", @@ -9896,8 +10677,10 @@ "bg": "виадукт", "ca": "viaducte", "cs": "viadukt", + "cy": "traphont", "da": "viadukt", - "de": "viadukt", + "de": "bahnviadukt", + "de-ch": "viadukt", "el": "οδογέφυρα", "en": "viaduct", "es": "viaducto", @@ -9905,6 +10688,8 @@ "fa": "پل چنددهانه", "fi": "maasilta", "fr": "viaduc", + "ga": "tarbhealach", + "gl": "viaduto", "he": "ויאדוקט", "hr": "vijadukt", "hu": "viadukt", @@ -9935,6 +10720,7 @@ "en": "bicycle bridge", "es": "puente de bicicleta", "fr": "passerelle cyclable", + "he": "גשר אופניים", "it": "ponte ciclabile", "ja": "自転車橋", "nb": "sykkelbro", @@ -9954,8 +10740,9 @@ "bg": "ар нуво", "ca": "arquitectura art déco", "cs": "art deco architektura", + "cy": "pensaernïaeth art deco", "da": "jugendstil", - "de": "art deco architektur", + "de": "art-deco-architektur", "de-ch": "jugendstil", "el": "αρ νουβό", "en": "art deco architecture", @@ -9965,8 +10752,11 @@ "es": "arquitectura art déco", "et": "juugend", "fa": "هنر نو", - "fi": "jugend", + "fi": "art deco -arkkitehtuuri", "fr": "architecture art déco", + "ga": "ailtireacht art deco", + "gd": "bauhaus", + "gl": "art nouveau", "he": "אר דקו", "hi": "बाऊहाउस", "hr": "secesija", @@ -9980,7 +10770,6 @@ "lv": "art deco arhitektūra", "ml": "ആർട് നൂവോ", "mr": "मुस्लिम स्थापत्यशैली", - "ms": "seni nouveau", "nb": "art deco", "nl": "art deco", "pl": "architektura art deco", @@ -9990,8 +10779,10 @@ "ru": "архитектура ар-деко", "sk": "secesia", "sl": "arhitektura art déco", + "sq": "arkitektura islame", "sv": "art déco-arkitektur", "ta": "ஆர்ட் நூவோ", + "te": "జోసెన్", "th": "นวศิลป์", "tr": "art nouveau", "uk": "ар деко", @@ -10004,14 +10795,16 @@ }, "allotment_house": { "de": "schrebergartenlaube", - "en": "allotment house" + "en": "allotment house", + "pl": "altana działkowa" }, "apartments": { - "ar": "مجمع سكني", + "ar": "مبنى سكني", "be": "шматкватэрны дом", "bg": "кондоминиум", "ca": "bloc de pisos", "cs": "bytový dům", + "cy": "bloc o fflatiau", "da": "lejlighedskompleks", "de": "geschosswohnungsbau", "el": "πολυκατοικία", @@ -10030,28 +10823,30 @@ "ko": "콘도미니엄", "lt": "daugiabutis namas", "lv": "daudzdzīvokļu māja", - "ms": "kondominium", "nb": "boligblokk", "nl": "appartementengebouw", "pl": "wielopiętrowy budynek mieszkalny", "pt": "edifício residencial", + "pt-br": "condomínio", "ru": "многоквартирное жилое здание", "sk": "bytový dom", "sl": "stanovanjska stavba", "sv": "lägenhetshus", "th": "อาคารชุด", - "tr": "kondominyum", + "tr": "apartman binası", "uk": "багатоквартирний будинок", "vi": "tòa chung cư", "zh": "公寓楼", "zh-hk": "公寓大廈" }, "bakehouse": { + "cy": "popty", "de": "backhaus", "en": "bakehouse", "fi": "leivintupa", "fr": "four à pain", "it": "forno comunitario", + "ja": "パン工房", "nl": "bakhuis", "zh": "面包炉" }, @@ -10061,15 +10856,18 @@ "bg": "обор", "ca": "pallissa", "cs": "stodola", + "cy": "ysgubor", "da": "lade", "de": "scheune", "el": "αχυρώνας", "en": "barn", - "es": "galpón", + "es": "granero", "et": "küün", "fa": "انبار کاه", "fi": "lato", "fr": "grange", + "ga": "scioból", + "gl": "alpendre", "he": "אסם", "hi": "खलिहान", "hu": "csűr", @@ -10080,7 +10878,6 @@ "ko": "헛간", "lt": "svirnas", "lv": "klēts", - "ms": "bangsal", "nb": "løe", "nl": "schuur", "pl": "stodoła", @@ -10090,6 +10887,7 @@ "ru": "амбар", "sk": "stodola", "sl": "skedenj", + "sq": "hambar", "sv": "lada", "ta": "கொட்டில்", "tr": "ahır", @@ -10104,6 +10902,7 @@ "bg": "камбанария", "ca": "campanar", "cs": "zvonice", + "cy": "clochdy", "da": "klokketårn", "de": "glockenturm", "el": "καμπαναριό", @@ -10113,6 +10912,8 @@ "fa": "برج ناقوس", "fi": "kellotorni", "fr": "clocher-tour", + "ga": "cloigtheach", + "gl": "campanario", "he": "מגדל פעמונים", "hr": "zvonik", "hu": "harangtorony", @@ -10131,7 +10932,9 @@ "ru": "колокольня", "sk": "zvonica", "sl": "zvonik", + "sq": "kulla e ziles", "sv": "klocktorn", + "te": "ఘంట స్తంభం", "tr": "çan kulesi", "uk": "дзвіниця", "vi": "tháp chuông", @@ -10176,7 +10979,6 @@ "id": "jembatan udara", "ja": "スカイウォーク", "ko": "구름다리", - "ms": "jejantas udara", "nl": "luchtbrug", "pl": "łącznik", "ro": "pasarelă", @@ -10190,6 +10992,7 @@ "bg": "бунгало", "ca": "bungalou", "cs": "bungalov", + "cy": "byngalo", "el": "μπανγκαλόου", "en": "bungalow", "es": "bungaló", @@ -10199,15 +11002,15 @@ "hu": "bungaló", "ja": "バンガロー", "kn": "ಬಂಗಲೆ", - "ms": "banglo", "pt": "bangalô", "ru": "бунгало", "sl": "bungalov", "ta": "ஓரடுக்கு மனை", + "te": "బంగ్లా", "th": "บังกะโล", "tr": "bungalov", "uk": "бунґало", - "zh": "單層小屋" + "zh": "孟加拉式平房" }, "bunker": { "ar": "ملجأ", @@ -10220,6 +11023,8 @@ "et": "punker", "fa": "پناهگاه", "fi": "bunkkeri", + "ga": "buncar", + "gl": "búnker", "he": "בונקר", "ja": "掩体壕", "ko": "벙커", @@ -10229,9 +11034,11 @@ "pt": "búnquer", "ro": "buncăr", "ru": "бункер", + "sq": "bunkeri", "sv": "stridsvärn", "tr": "sığınak", "uk": "бункер", + "ur": "بنکر", "vi": "boong ke", "zh": "地堡" }, @@ -10267,6 +11074,7 @@ "en": "carport", "es": "cochera", "fi": "päätykatos", + "hr": "nadstrešnica za automobil", "id": "emper mobil", "ja": "カーポート", "ko": "카포트", @@ -10281,6 +11089,7 @@ "bg": "катедрала", "ca": "catedral", "cs": "katedrála", + "cy": "eglwys gadeiriol", "da": "domkirke", "de": "kathedrale", "el": "καθεδρικός ναός", @@ -10290,6 +11099,9 @@ "fa": "کلیسای جامع", "fi": "tuomiokirkko", "fr": "cathédrale", + "ga": "ardeaglais", + "gd": "cathair-eaglais", + "gl": "catedral", "he": "קתדרלה", "hr": "katedrala", "hu": "székesegyház", @@ -10301,7 +11113,6 @@ "lv": "katedrāle", "ml": "കത്തീഡ്രൽ", "mr": "प्रमुख चर्च", - "ms": "katedral", "nb": "domkirke", "nl": "kathedraal", "pl": "katedra", @@ -10310,6 +11121,7 @@ "ru": "кафедральный собор", "sk": "katedrála", "sl": "stolnica", + "sq": "katedralja", "sv": "katedral", "ta": "கத்தீட்ரல்", "th": "อาสนวิหาร", @@ -10325,6 +11137,7 @@ "bg": "параклис", "ca": "capella", "cs": "kaple", + "cy": "capel", "da": "kapel", "de": "kapelle", "el": "παρεκκλήσιο", @@ -10334,6 +11147,9 @@ "fa": "نمازخانه", "fi": "kappeli", "fr": "chapelle", + "ga": "séipéal", + "gd": "caibeal", + "gl": "capela", "he": "קפלה", "hi": "पुजास्थल", "hr": "kapela", @@ -10353,6 +11169,7 @@ "ru": "капелла", "sk": "kaplnka", "sl": "kapela", + "sq": "kishëz", "sv": "kapell", "th": "โบสถ์น้อย", "tr": "şapel", @@ -10369,6 +11186,7 @@ "bg": "църква", "ca": "església", "cs": "kostel", + "cy": "eglwys", "da": "kirke", "de": "kirchengebäude", "de-ch": "kirche", @@ -10381,6 +11199,9 @@ "fa": "کلیسا", "fi": "kirkko", "fr": "église", + "ga": "eaglais", + "gd": "eaglais", + "gl": "igrexa", "he": "כנסייה", "hi": "गिरजाघर", "hr": "crkva", @@ -10394,7 +11215,6 @@ "lv": "baznīcas celtne", "ml": "കൃസ്ത്യൻ പള്ളി", "mr": "चर्च", - "ms": "bangunan gereja", "nb": "kirkebygning", "nl": "kerkgebouw", "pl": "kościół", @@ -10403,8 +11223,10 @@ "ru": "христианский храм", "sk": "kostol", "sl": "cerkev", + "sq": "kishë", "sv": "kyrka", "ta": "கிறித்தவத் தேவாலயம்", + "te": "చర్చి", "th": "คริสต์ศาสนสถาน", "tr": "kilise", "uk": "церква", @@ -10415,10 +11237,12 @@ "civic": { "ca": "edifici cívic", "cs": "občanská stavba", + "cy": "adeilad dinesig", "de": "bürgerhaus", "en": "civic building", "es": "edificio cívico", "fr": "édifice civil", + "gl": "edificio civil", "it": "edificio civico", "nl": "burgerlijk gebouw", "pt": "construção cívica", @@ -10435,6 +11259,7 @@ "bg": "колеж", "ca": "college", "cs": "kolej", + "cy": "coleg", "da": "college", "de": "collegegebäude", "el": "κολέγιο", @@ -10446,8 +11271,11 @@ "fa": "کالج", "fi": "college", "fr": "bâtiment collégial", + "ga": "coláiste", + "gl": "college", "he": "מכללה", "hi": "महाविद्यालय", + "hr": "visoka škola", "hu": "főiskola", "id": "kolese", "it": "college", @@ -10458,7 +11286,6 @@ "lv": "koledža", "ml": "കോളേജ്", "mr": "महाविद्यालय", - "ms": "kolej", "nb": "college", "nl": "collegegebouw", "pl": "college", @@ -10466,23 +11293,25 @@ "ro": "colegiu", "ru": "колледж", "sl": "fakultetna stavba", + "sq": "kolegji", "sv": "college", "ta": "கல்லூரி", + "te": "కళాశాల", "th": "วิทยาลัย", "tr": "kolej", "uk": "коледж", "ur": "کالج", "vi": "trường cao đẳng", - "zh": "學院", - "zh-cn": "学院" + "zh": "学院" }, "commercial": { "ar": "مبنى تجاري", "be": "камерцыйная нерухомасць", "ca": "edifici comercial", "cs": "komerční budova", + "cy": "adeilad masnachol", "da": "kommerciel bygning", - "de": "handelsgebäude", + "de": "geschäftshaus", "el": "εμπορικό κτήριο", "en": "commercial building", "es": "edificio comercial", @@ -10495,14 +11324,13 @@ "it": "edificio commerciale", "ja": "商業施設", "ko": "상업 시설", - "ms": "bangunan komersial", "nb": "næringsbygg", "nl": "bedrijfsgebouw", "pl": "nieruchomość komercyjna", "pt": "edifício comercial", "ro": "clădire comercială", "ru": "коммерческое здание", - "sl": "komercialna stavba", + "sl": "poslovna stavba", "sv": "kommersiell byggnad", "uk": "комерційна споруда", "zh": "商業建築物", @@ -10518,7 +11346,9 @@ "en": "sunroom", "es": "conservatorio de plantas", "et": "talveaed", + "fi": "viherhuone", "fr": "véranda", + "ga": "grianán", "he": "חדר שמש", "ja": "サンルーム", "lt": "žiemos sodas", @@ -10537,7 +11367,7 @@ "construction": { "ar": "تحت الإنشاء", "ca": "edifici en construcció", - "cs": "ve výstavbě", + "cs": "budova nebo stavba ve výstavbě", "da": "under opførelse", "de": "bauwerk im bau", "el": "υπό κατασκευή", @@ -10547,13 +11377,15 @@ "fa": "در حال توسعه", "fi": "rakenteilla oleva rakennus tai rakennelma", "fr": "en construction", + "ga": "foirgneamh nó struchtúr á thógáil", + "gl": "edificio en construción", "he": "בבנייה", "hu": "építés alatt", + "id": "bangunan atau struktur dalam konstruksi", "it": "in costruzione", "ja": "建設中", "ko": "건설중인 건물", "lv": "celtne vai struktūra pašlaik tiek celta", - "ms": "dalam pembinaan", "nb": "under bygging", "nl": "in aanbouw", "pl": "budynek lub konstrukcja w budowie", @@ -10590,16 +11422,19 @@ "be": "абора", "bg": "краварник", "cs": "kravín", + "cy": "beudy", "da": "kostald", "de": "kuhstall", "en": "cowshed", "fi": "navetta", + "ga": "bóitheach", "he": "רפת", "lt": "karvidė", "nb": "kufjøs", "nl": "koeienstal", "pl": "obora", "ru": "коровник", + "sl": "kravji hlev", "sv": "ladugård", "uk": "корівник" }, @@ -10613,9 +11448,12 @@ "el": "κέντρο δεδομένων", "en": "data center", "es": "centro de procesamiento de datos", + "et": "arvutuskeskus", "fa": "مرکز داده", "fi": "datakeskus", "fr": "centre de données", + "ga": "iárionad sonraí", + "gl": "centro de procesamento de datos", "he": "מרכז נתונים", "hi": "आँकड़ा केन्द्र", "hu": "adatközpont", @@ -10626,7 +11464,6 @@ "lt": "duomenų centras", "lv": "datu centrs", "ml": "ഡേറ്റാ സെന്റർ", - "ms": "pusat data", "nb": "datasenter", "nl": "datacenter", "pl": "centrum danych", @@ -10635,8 +11472,10 @@ "ru": "дата-центр", "sk": "datacentrum", "sl": "podatkovni center", + "sq": "qendër e të dhënave", "sv": "datorhall", "ta": "தரவு மையம்", + "te": "డేటా సెంటర్", "th": "ศูนย์ข้อมูล", "tr": "veri merkezi", "uk": "дата-центр", @@ -10649,6 +11488,7 @@ "ar": "منزل عائلة منفصل", "ca": "habitatge unifamiliar", "cs": "rodinný dům", + "cy": "cartref i un teulu, yn ei dir ei hun", "da": "parcelhus", "de": "einfamilienwohnhaus", "el": "μονοκατοικία", @@ -10657,6 +11497,7 @@ "fa": "خانه مستقل", "fi": "omakotitalo", "fr": "maison unifamiliale", + "gl": "vivenda unifamiliar", "he": "בית מגורים למשפחה אחת", "hu": "egylakásos családi ház", "it": "casa unifamiliare", @@ -10677,18 +11518,24 @@ "cs": "bioplynová stanice", "da": "biogasanlæg", "de": "biogasanlage", - "en": "biogas plant", + "en": "digester", + "es": "biodigestor", + "et": "metaanitank", "fi": "biokaasulaitos", + "fr": "digesteur", "nl": "biogasinstallatie", "pl": "biogazownia", + "sl": "digestor", "sv": "biogasanläggning" }, "dormitory": { "af": "koshuis", "ar": "سكن جامعي", "be": "інтэрнат", + "bg": "общежитие", "ca": "dormitori", "cs": "internát", + "cy": "neuadd breswyl", "de": "dormitorium", "de-ch": "schlafunterkunft", "en": "dormitory", @@ -10696,6 +11543,8 @@ "fa": "خوابگاه", "fi": "asuntola", "fr": "dortoir", + "ga": "suanlios", + "he": "מעונות סטודנטים", "hu": "kollégium", "id": "asrama", "it": "dormitorio", @@ -10707,40 +11556,18 @@ "ru": "общежитие", "sk": "internát", "sl": "internat", - "sv": "studenthem", + "sq": "konvikti", + "sv": "korridorboende", + "te": "డార్మిటరి", "tr": "yurt", "uk": "гуртожиток", "zh": "宿舍" }, - "entrance": { - "ca": "entrada", - "da": "indgang", - "de": "eingang", - "en": "entrance", - "es": "entrada", - "et": "sissepääs", - "fi": "sisäänkäynti", - "fr": "entrée", - "he": "כניסה", - "hu": "bejárat", - "it": "ingresso", - "ja": "入り口", - "ko": "현관", - "nb": "inngang", - "nl": "ingang", - "pl": "sień", - "pt": "entrada", - "ru": "вход", - "sl": "vhod", - "sv": "entré", - "tr": "giriş", - "uk": "під'їзд", - "zh": "入口" - }, "farm": { "ar": "حظيرة", "ca": "masia", "cs": "statek", + "cy": "ffermdy", "da": "bondehus", "de": "bauernhaus", "el": "αγροικία", @@ -10749,7 +11576,9 @@ "et": "moonakamaja", "fi": "päärakennus", "fr": "corps de ferme", + "ga": "teach feirme", "he": "בתי-חווה", + "hu": "farmház", "it": "edificio principale di una fattoria", "ja": "ファームハウス", "nb": "våningshus", @@ -10768,6 +11597,8 @@ "be": "гаспадарчая пабудова", "ca": "edifici agrícola", "cs": "zemědělská budova", + "cy": "adeilad fferm", + "da": "landbrugsbygning", "de": "landwirtschaftsgebäude", "el": "γεωργικό κτίριο", "en": "agricultural structure", @@ -10776,10 +11607,10 @@ "fa": "ساختمان کشاورزی", "fi": "maatalousrakennus", "fr": "construction agricole", + "ga": "struchtúr talmhaíochta", "hu": "mezőgazdasági épület", "it": "edificio agricolo", "ja": "農業用構造物", - "ms": "struktur pertanian", "nb": "driftsbygning", "nl": "agrarische bouwconstructie", "pl": "budynek rolny", @@ -10791,6 +11622,7 @@ "zh": "農業建築" }, "font": { + "ar": "بيت المعمودية", "be": "баптыстэрый", "bg": "баптистерий", "ca": "baptisteri", @@ -10804,6 +11636,7 @@ "fa": "تعمیدگاه", "fi": "kastekappeli", "fr": "baptistère", + "gl": "baptisterio", "he": "בפטיסטריום", "hr": "krstionica", "hu": "keresztelőkápolna", @@ -10833,12 +11666,15 @@ "bg": "гараж", "ca": "garatge", "cs": "garáž", + "cy": "garej", "el": "γκαράζ", "en": "garage", "es": "garaje", "et": "garaaž", "fa": "گاراژ", "fi": "autotalli", + "ga": "garáiste", + "gl": "garaxe", "he": "מוסך (חלק בבית)", "hr": "garaža", "hu": "garázs", @@ -10852,6 +11688,7 @@ "ro": "garaj", "ru": "гараж", "sl": "garaža", + "sq": "garazhi", "tr": "garaj", "uk": "гараж", "vi": "nhà để xe", @@ -10864,12 +11701,15 @@ "bg": "гараж", "ca": "garatge", "cs": "garáž", + "cy": "garej", "el": "γκαράζ", "en": "garage", "es": "garaje", "et": "garaaž", "fa": "گاراژ", "fi": "autotalli", + "ga": "garáiste", + "gl": "garaxe", "he": "מוסך (חלק בבית)", "hr": "garaža", "hu": "garázs", @@ -10883,6 +11723,7 @@ "ro": "garaj", "ru": "гараж", "sl": "garaža", + "sq": "garazhi", "tr": "garaj", "uk": "гараж", "vi": "nhà để xe", @@ -10892,10 +11733,12 @@ "en": "garbage shed" }, "gatehouse": { + "af": "stadspoort", "ar": "بوابة مدينة", "be": "гарадскія вароты", "ca": "porta de ciutat", "cs": "městská brána", + "cy": "porth dinas", "da": "byport", "de": "stadttor", "el": "πύλη της πόλης", @@ -10905,6 +11748,7 @@ "fa": "دروازه شهر", "fi": "kaupungin portti", "fr": "porte de ville", + "ga": "geata cathrach", "he": "שער העיר", "hu": "városkapu", "id": "gerbang kota (kuno)", @@ -10920,6 +11764,7 @@ "sk": "mestská brána", "sl": "mestna vrata", "sv": "stadsport", + "te": "నగర పొలిమేర", "tr": "şehir kapısı", "uk": "міська брама", "ur": "دروازہ شہر", @@ -10932,6 +11777,7 @@ "bg": "хамбар", "ca": "graner", "cs": "sýpka", + "cy": "granar", "de": "getreidespeicher", "el": "σιτοβολώνας", "en": "granary", @@ -10940,6 +11786,9 @@ "fa": "انبار غله", "fi": "vilja-aitta", "fr": "grenier", + "ga": "gráinseach", + "gd": "sìol-lann", + "gl": "celeiro", "hi": "बखारी", "hr": "žitnica", "hu": "magtár", @@ -10982,6 +11831,7 @@ "bg": "парник", "ca": "hivernacle", "cs": "skleník", + "cy": "tŷ gwydr", "da": "drivhus", "de": "gewächshaus", "el": "θερμοκήπιο", @@ -10991,6 +11841,8 @@ "fa": "گلخانه", "fi": "kasvihuone", "fr": "serre", + "ga": "teach gloine", + "gl": "invernadoiro", "he": "חממה", "hi": "ग्रीनहाउस", "hr": "staklenik", @@ -11004,7 +11856,6 @@ "lv": "siltumnīca", "ml": "ഹരിതഗൃഹം", "mr": "हरितगृह", - "ms": "rumah hijau", "nb": "drivhus", "nl": "kas", "pl": "szklarnia", @@ -11012,9 +11863,11 @@ "ro": "seră", "ru": "теплица", "sk": "skleník", - "sl": "topla greda", + "sl": "rastlinjak", + "sq": "serra", "sv": "växthus", "ta": "பசுமைக்குடில்", + "te": "గ్రీన్హౌస్(హరితగృహం)", "tr": "sera", "uk": "оранжерея", "ur": "پود گھر", @@ -11031,6 +11884,7 @@ "fa": "ایستگاه زمینی", "fi": "maa-asema", "fr": "station terrienne", + "gl": "estación de seguimento de satélites", "he": "תחנת קרקע", "hr": "zemaljska satelitska stanica", "id": "stasiun bumi", @@ -11062,6 +11916,7 @@ "lt": "angaras", "ru": "ангар", "sk": "hangár", + "sq": "hangari", "uk": "ангар", "vi": "xưởng cất máy bay", "zh": "飞机库" @@ -11070,6 +11925,8 @@ "ar": "مبنى مستشفى", "ca": "edifici d'hospital", "cs": "budova nemocnice", + "cy": "adeilad ysbyty", + "da": "hospitalsbygning", "de": "krankenhausgebäude", "de-at": "spitalgebäude", "el": "νοσοκομειακό κτήριο", @@ -11078,8 +11935,10 @@ "et": "haiglahoone", "fi": "sairaalarakennus", "fr": "bâtiment d'hôpital", + "ga": "foirgneamh ospidéil", "it": "edificio ospedaliero", "ja": "病院の建築物", + "lv": "slimnīcas ēka", "nl": "ziekenhuisgebouw", "pl": "budynek szpitalny", "pt": "edifício hospitalar", @@ -11091,6 +11950,7 @@ "ar": "بناء الفنادق", "ca": "edifici d'hotel", "cs": "budova hotelu", + "cy": "adeilad gwesty", "da": "hotelbygning", "de": "hotelgebäude", "el": "κτήριο ξενοδοχείου", @@ -11098,7 +11958,7 @@ "es": "edificio de hotel", "et": "hotellihoone", "fi": "hotellirakennus", - "fr": "hôtel", + "fr": "bâtiment d'hôtel", "he": "מבנה בית מלון", "hu": "szállodaépület", "it": "struttura alberghiera", @@ -11111,7 +11971,7 @@ "sl": "hotelska stavba", "sv": "hotellbyggnad", "uk": "будівля готелю", - "vi": "toà nhà khách sạn" + "vi": "tòa nhà khách sạn" }, "house": { "af": "huis", @@ -11120,6 +11980,7 @@ "bg": "къща", "ca": "casa desocupada", "cs": "dům", + "cy": "tŷ", "da": "hus", "de": "leerstehendes haus", "de-ch": "haus", @@ -11132,19 +11993,21 @@ "fa": "خانه", "fi": "talo", "fr": "maison", + "ga": "teach", + "gd": "taigh", + "gl": "casa", "he": "בית מגורים", "hi": "घर", "hr": "kuća", "hu": "ház", "id": "rumah", "it": "casa", - "ja": "家屋", + "ja": "空き家", "kn": "ಮನೆ", "ko": "집", "lt": "namas", "lv": "māja", "ml": "വീട്", - "ms": "rumah", "nb": "hus", "nl": "woonhuis", "pl": "dom", @@ -11152,9 +12015,11 @@ "ro": "casă", "ru": "дом", "sk": "dom", - "sl": "hiša", + "sl": "prazna hiša", + "sq": "shtëpi", "sv": "övergivet hus", "ta": "வீடு", + "te": "ఇల్లు", "th": "บ้าน", "tr": "ev", "uk": "житло", @@ -11175,16 +12040,19 @@ "fr": "maison flottante", "he": "בית צף", "hi": "ःईण्डी", + "id": "rumah apung", "it": "casa galleggiante", "ja": "ハウスボート", + "ko": "수상가옥", "ml": "ഹൗസ്ബോട്ട്", - "ms": "rumah perahu", "nb": "husbåt", "nl": "woonboot", "pl": "barka mieszkalna", "ru": "хаусбот", + "sl": "plavajoči dom", "sv": "husbåt", "ta": "நீரணி மாடம்", + "th": "เรือนเรือ", "tr": "yüzen ev", "uk": "вонбот", "vi": "nhà nổi", @@ -11195,6 +12063,7 @@ "bg": "колиба", "ca": "barraca", "cs": "chýše", + "cy": "cut", "de": "hütte", "en": "hut", "es": "choza", @@ -11202,6 +12071,7 @@ "fa": "کلبه", "fi": "maja", "fr": "hutte", + "ga": "bothán", "he": "בקתה", "hi": "hut house in acient", "hu": "kunyhó", @@ -11211,7 +12081,6 @@ "kn": "ಗುಡಿಸಲು", "ko": "오두막", "ml": "കുടിൽ", - "ms": "pondok", "nb": "hytte", "pt": "cabana", "pt-br": "mucambo", @@ -11219,6 +12088,7 @@ "sl": "koča", "sv": "koja", "ta": "குடிசை", + "te": "గుడిసె", "th": "ปอเนาะ", "tr": "kulübe", "uk": "хижа", @@ -11232,23 +12102,26 @@ "bg": "индустриално съоръжение", "ca": "edifici industrial", "cs": "průmyslová stavba", + "cy": "adeilad diwydiannol", "da": "industribygning", "de": "industriebau", "el": "βιομηχανικό κτίριο", "en": "industrial building", "es": "edificio industrial", + "et": "tööstushoone", "fi": "teollisuusrakennus", "fr": "bâtiment industriel", + "ga": "foirgneamh tionscail", + "he": "בניין תעשייתי", "hu": "ipari épület", "id": "bangunan industri", "it": "edificio industriale", - "ja": "産業構造", - "ms": "bangunan industri", + "ja": "産業建築物", "nb": "industribygning", "nl": "industrieel gebouw", "pl": "budynek przemysłowy", "pt": "edificação industrial", - "ru": "промышленное сооружение", + "ru": "промышленное здание", "sl": "industrijska zgradba", "sv": "industribyggnad", "uk": "промислова споруда", @@ -11271,6 +12144,8 @@ "fa": "کودکستان", "fi": "esikoulu", "fr": "école maternelle", + "ga": "ciondargairdín", + "gl": "escola infantil", "he": "גן ילדים", "hi": "किंडरगार्टन", "hr": "dječji vrtić", @@ -11284,7 +12159,6 @@ "lv": "bērnudārzs", "ml": "കിൻഡർഗാർട്ടൻ", "mr": "अंगणवाडी", - "ms": "tadika", "nb": "barnehage", "nl": "kleuterschool", "pl": "przedszkole", @@ -11293,8 +12167,10 @@ "ru": "детский сад", "sk": "materská škola", "sl": "vrtec", + "sq": "kopsht fëmijësh", "sv": "barnträdgård", "ta": "கின்டர்கார்ட்டின்", + "te": "కిండర్ గార్టెన్", "th": "โรงเรียนอนุบาล", "tr": "anaokulu", "uk": "дитячий садок", @@ -11307,12 +12183,14 @@ "be": "шапік", "ca": "quiosc", "cs": "kiosek", + "cy": "ciosg", "el": "περίπτερο", "en": "kiosk", "es": "quiosco", "fa": "کیوسک", "fi": "kioski", "fr": "kiosque", + "gl": "quiosco", "he": "קיוסק", "hu": "kioszk", "id": "kios", @@ -11327,13 +12205,13 @@ "tr": "büfe", "uk": "кіоск", "vi": "quầy bán hàng", - "zh": "便亭", - "zh-cn": "自助機台" + "zh": "便亭" }, "library": { "ar": "بناء يضم مكتبة", "ca": "edifici de biblioteca", "cs": "budova knihovny", + "cy": "adeilad llyfrgell", "da": "biblioteksbygning", "de": "bibliotheksgebäude", "el": "κτήριο βιβλιοθήκης", @@ -11342,7 +12220,8 @@ "et": "raamatukoguhoone", "fi": "kirjastorakennus", "fr": "bibliothèque", - "he": "ספרייה", + "ga": "leabharlann", + "he": "מבנה ספרייה", "hu": "könyvtárépület", "id": "gedung perpustakaan", "it": "edificio bibliotecario", @@ -11353,7 +12232,7 @@ "pl": "gmach biblioteki", "pt": "edifício de biblioteca", "ro": "bibliotecă", - "ru": "библиотека", + "ru": "здание библиотеки", "sl": "stavba knjižnice", "sv": "biblioteksbyggnad", "uk": "бібліотечна будівля", @@ -11366,6 +12245,7 @@ "bg": "манифактура", "ca": "taller", "cs": "manufaktura", + "cy": "gweithdy", "da": "manufaktur", "de": "manufaktur", "en": "manufactory", @@ -11374,6 +12254,7 @@ "fa": "صنایع دستساز", "fi": "manufaktuuri", "fr": "manufacture", + "gl": "manufactura", "he": "מלאכת יד", "hr": "manufaktura", "hu": "manufaktúra", @@ -11397,11 +12278,13 @@ "ca": "envelat", "de": "festzelt", "en": "pole marquee", - "es": "entoldado", + "es": "carpa de fiestas", "fa": "چادر فریم فلزی", "fr": "barnum", "it": "tendone", "nl": "feesttent", + "ru": "шатер на шесте", + "sl": "praznični šotor", "sv": "partytält" }, "mosque": { @@ -11411,6 +12294,7 @@ "bg": "джамия", "ca": "mesquita", "cs": "mešita", + "cy": "mosg", "da": "moské", "de": "moschee", "el": "τζαμί", @@ -11420,6 +12304,9 @@ "fa": "مسجد", "fi": "moskeija", "fr": "mosquée", + "ga": "mosc", + "gd": "mosg", + "gl": "mesquita", "he": "מסגד", "hi": "मस्जिद", "hr": "džamija", @@ -11433,7 +12320,6 @@ "lv": "mošeja", "ml": "ജുമാമസ്ജിദ്", "mr": "मशीद", - "ms": "masjid", "nb": "moské", "nl": "moskee", "pl": "meczet", @@ -11442,8 +12328,10 @@ "ru": "мечеть", "sk": "mešita", "sl": "mošeja", + "sq": "xhami", "sv": "moské", "ta": "பள்ளிவாசல்", + "te": "మస్జిద్", "th": "มัสยิด", "tr": "cami", "uk": "мечеть", @@ -11456,6 +12344,7 @@ "be": "будынак музея", "ca": "edifici de museu", "cs": "budova muzea", + "cy": "adeilad amgueddfa", "da": "museumsbygning", "de": "museumsgebäude", "el": "κτήριο μουσείου", @@ -11464,6 +12353,7 @@ "et": "muuseumihoone", "fi": "museorakennus", "fr": "bâtiment de musée", + "ga": "foirgneamh músaeim", "he": "מוזיאון", "hr": "zgrada muzeja", "hu": "múzeumépület", @@ -11473,7 +12363,6 @@ "lt": "muziejaus pastatas", "lv": "muzeja ēka", "ml": "മ്യൂസിയം കെട്ടിടം", - "ms": "bangunan muzium", "nb": "museumsbygning", "nl": "museumgebouw", "pl": "budynek muzeum", @@ -11493,6 +12382,7 @@ "bg": "административна сграда", "ca": "edifici d'oficines", "cs": "kancelářská budova", + "cy": "adeilad swyddfa", "da": "kontorbygning", "de": "bürogebäude", "el": "κτήριο γραφείων", @@ -11502,13 +12392,15 @@ "fa": "ساختمان اداری", "fi": "toimistorakennus", "fr": "immeuble de bureaux", + "ga": "foirgneamh oifige", + "gl": "edificio de oficinas", "he": "בניין משרדים", + "hr": "poslovni neboder", "hu": "irodaház", "id": "bangunan perkantoran", "it": "edificio per uffici", "ja": "オフィスビル", "lv": "biroju ēka", - "ms": "bangunan pejabat", "nb": "kontorbygning", "nl": "kantoorgebouw", "pl": "biurowiec", @@ -11523,6 +12415,27 @@ "zh-hk": "辦公大樓", "zh-tw": "辦公大樓" }, + "outbuilding": { + "cs": "dependance", + "cy": "tŷ allan", + "de": "nebengebäude", + "el": "εξωτερικό κτίσμα", + "en": "appendage", + "en-gb": "outbuilding", + "es": "dependencia", + "fi": "lisärakennus", + "fr": "dépendance", + "hu": "melléképület", + "id": "empeyak", + "it": "dépendance", + "nb": "uthus", + "nl": "bijgebouw", + "pl": "przybudówka", + "sl": "dozidava", + "sv": "gårdsbyggnader", + "uk": "прибудівка", + "zh": "附属建筑" + }, "pagoda": { "ar": "باغودة", "be": "пагада", @@ -11535,6 +12448,8 @@ "fa": "پاگودا", "fi": "pagodi", "fr": "pagode", + "ga": "pagóda", + "gl": "pagode", "he": "פגודה", "hi": "पगोडा", "ja": "パゴダ", @@ -11547,6 +12462,7 @@ "pt": "pagode", "ro": "pagodă", "ru": "пагода", + "sq": "pagoda kineze", "sv": "pagod", "ta": "பகோடா", "th": "ถะ", @@ -11561,6 +12477,7 @@ "bg": "дворец", "ca": "palau", "cs": "palác", + "cy": "palas", "da": "palads", "de": "palast", "el": "ανάκτορο", @@ -11570,6 +12487,8 @@ "fa": "کاخ", "fi": "palatsi", "fr": "palais", + "ga": "pálás", + "gl": "palacio", "he": "ארמון", "hi": "महल", "hr": "palača", @@ -11582,7 +12501,6 @@ "lt": "rūmai", "lv": "pils", "ml": "കൊട്ടാരം", - "ms": "istana", "nb": "palass", "nl": "paleis", "pl": "pałac", @@ -11591,8 +12509,10 @@ "ru": "дворец", "sk": "palác", "sl": "palača", + "sq": "pallat", "sv": "palats", "ta": "அரண்மனை", + "te": "ప్యాలెస్", "th": "วัง", "tr": "saray", "uk": "палац", @@ -11606,6 +12526,7 @@ "be": "будынак парламента", "ca": "edifici parlamentari", "cs": "budova parlamentu", + "cy": "senedd-dy", "da": "parlamentsbygning", "de": "parlamentsgebäude", "el": "κτήριο της βουλής", @@ -11613,6 +12534,7 @@ "es": "edificio parlamentario", "fi": "parlamenttitalo", "fr": "bâtiment parlementaire", + "ga": "teach parlaiminte", "he": "מבנה פרלמנט", "hu": "parlamenti épület", "id": "gedung parlemen", @@ -11635,7 +12557,6 @@ }, "pavilion": { "ca": "instal·lacions esportives", - "de": "sporthalle", "en": "sports pavilion", "es": "pabellón deportivo", "it": "palazzetto dello sport", @@ -11648,12 +12569,15 @@ "bg": "обществена сграда", "ca": "edifici públic", "cs": "veřejná budova", + "cy": "adeilad cyhoeddus", "de": "öffentliches gebäude", "el": "δημόσιο κτίριο", "en": "public building", "es": "edificio público", "fi": "julkinen rakennus", "fr": "bâtiment public", + "ga": "foirgneamh poiblí", + "gl": "edificio público", "he": "מבנה ציבורי", "hu": "középület", "id": "bangunan publik", @@ -11670,6 +12594,7 @@ "ru": "общественное здание", "sl": "javna stavba", "sv": "offentlig byggnad", + "tr": "kamu binası", "uk": "громадська будівля", "ur": "عوامی عمارت", "zh": "公共建築" @@ -11677,8 +12602,10 @@ "residential": { "ar": "مبنى سكني", "be": "жылы будынак", + "bg": "жилищна сграда", "ca": "edifici residencial", - "cs": "bytová budova", + "cs": "obytná budova", + "cy": "preswylfa", "da": "beboelsesejendom", "de": "wohngebäude", "el": "κτήριο κατοικιών", @@ -11688,20 +12615,21 @@ "fa": "ساختمان مسکونی", "fi": "asuinrakennus", "fr": "bâtiment d'habitation", + "ga": "foirgneamh cónaithe", + "gl": "vivenda", "he": "בניין מגורים", "hu": "lakóépület", "id": "bangunan perumahan", "it": "edificio abitativo", "ja": "居住用建築物", "lv": "dzīvojamā ēka", - "ms": "bangunan kediaman", "nb": "boligbygning", "nl": "woongebouw", "pl": "budynek mieszkalny", "pt": "edifício residencial", "ru": "жилое здание", "sk": "bytová budova", - "sl": "stanovanjska zgradba", + "sl": "stanovanjska stavba", "sv": "bostadshus", "tr": "konut binası", "uk": "житловий будинок", @@ -11716,6 +12644,7 @@ "fi": "vähittäiskaupan rakennus", "fr": "bâtiment de vente au détail", "hu": "kereskedelmi célú épület", + "ja": "商業ビル", "lv": "tirdzniecības ēka", "nl": "gebouw voor detailhandel", "pl": "budynek z przeznaczeniem dla handlu detalicznego", @@ -11759,6 +12688,7 @@ "bg": "училище", "ca": "edifici escolar", "cs": "školní budova", + "cy": "adeilad ysgol", "da": "skolebygning", "de": "schulgebäude", "el": "σχολικό κτήριο", @@ -11768,6 +12698,8 @@ "fa": "ساختمان مدرسه", "fi": "koulurakennus", "fr": "bâtiment scolaire", + "ga": "foirgneamh scoile", + "gl": "edificio escolar", "he": "בניין בית ספר", "hr": "zgrada škole", "hu": "iskolaépület", @@ -11775,7 +12707,6 @@ "it": "edificio scolastico", "ja": "学校施設", "ko": "학교 건물", - "ms": "bangunan sekolah", "nb": "skolebygning", "nl": "schoolgebouw", "pl": "budynek szkoły", @@ -11783,6 +12714,7 @@ "ru": "здание учебного заведения", "sl": "šolska stavba", "sv": "skolbyggnad", + "te": "పాఠశాల భవనం", "th": "อาคารเรียน", "tr": "okul binası", "uk": "будівля школи", @@ -11790,8 +12722,9 @@ "zh": "学校建筑" }, "semi": { - "ca": "casa adossada", + "ca": "casa geminada", "cs": "dvojdům", + "cy": "tŷ pâr", "de": "doppelhaus", "en": "semi-detached house", "es": "casa adosada", @@ -11801,18 +12734,19 @@ "it": "casa bifamiliare", "ja": "セミ・デタッチド", "ko": "반단독주택", - "ms": "rumah sebandung", "nb": "tomannsbolig", "nl": "twee-onder-een-kapwoning", "pl": "bliźniak", "ru": "сблокированный дом", + "sl": "polsamostojen dom", "sv": "parhus", "zh": "雙併屋", "zh-cn": "半独立洋房" }, "semidetached_house": { - "ca": "casa adossada", + "ca": "casa geminada", "cs": "dvojdům", + "cy": "tŷ pâr", "de": "doppelhaus", "en": "semi-detached house", "es": "casa adosada", @@ -11822,11 +12756,11 @@ "it": "casa bifamiliare", "ja": "セミ・デタッチド", "ko": "반단독주택", - "ms": "rumah sebandung", "nb": "tomannsbolig", "nl": "twee-onder-een-kapwoning", "pl": "bliźniak", "ru": "сблокированный дом", + "sl": "polsamostojen dom", "sv": "parhus", "zh": "雙併屋", "zh-cn": "半独立洋房" @@ -11844,11 +12778,12 @@ "be": "шопа", "ca": "cobert", "cs": "kůlna", + "cy": "sied", "da": "skur", "de": "schuppen", "de-ch": "schopf", "en": "shed", - "es": "tinglado (cobertizo)", + "es": "cobertizo", "et": "kuur", "fa": "آلونک", "fi": "vaja", @@ -11858,7 +12793,7 @@ "ko": "광", "lt": "daržinė", "nb": "skur", - "nl": "loods", + "nl": "schuurtje", "pl": "szopa", "pt": "edícula", "ru": "сарай", @@ -11874,13 +12809,17 @@ "bg": "светилище", "ca": "templet", "cs": "svatyně", + "cy": "creirfa", "da": "helligdom", "de": "heiligtum", "el": "βωμός", "en": "shrine", - "es": "templete", + "es": "santuario", + "fa": "زیارتگاه", "fi": "palvontapaikka", "fr": "sanctuaire", + "ga": "scrín", + "gl": "santuario", "he": "מקדש", "hu": "kegyhely", "id": "mazbah", @@ -11900,7 +12839,8 @@ "uk": "святилище", "vi": "điện thờ", "zh": "聖祠", - "zh-cn": "圣物箱" + "zh-cn": "圣物箱", + "zh-tw": "靈祠" }, "slurry_tank": { "da": "gylletank", @@ -11916,10 +12856,12 @@ }, "sports_hall": { "cs": "sportovní hala", + "da": "idrætshal", "de": "sporthalle", "en": "sports hall", "et": "spordihall", "fi": "urheiluhalli", + "lt": "sporto salė", "nb": "idrettshall", "nl": "sportzaal", "ru": "спортивный зал", @@ -11931,6 +12873,7 @@ "bg": "конюшня", "ca": "cavallerissa", "cs": "stáj", + "cy": "stabl", "da": "hesteboks", "de": "pferdestall", "el": "στάβλος", @@ -11940,6 +12883,8 @@ "fa": "اصطبل", "fi": "talli", "fr": "écurie", + "ga": "stábla", + "gl": "corte", "he": "אורווה", "hi": "अस्तबल", "hr": "ergela", @@ -11972,6 +12917,7 @@ "bg": "стадион", "ca": "estadi", "cs": "stadion", + "cy": "stadiwm", "da": "stadion", "de": "stadion", "el": "στάδιο", @@ -11981,6 +12927,8 @@ "fa": "ورزشگاه", "fi": "stadion", "fr": "stade", + "ga": "staid", + "gl": "estadio", "he": "אצטדיון", "hi": "क्रीडांगन", "hr": "stadion", @@ -12001,6 +12949,7 @@ "ru": "стадион", "sk": "štadión", "sl": "stadion", + "sq": "stadiumi", "sv": "stadion", "ta": "விளையாட்டரங்கம்", "th": "สนามกีฬา", @@ -12019,6 +12968,7 @@ "fa": "خانه سیار", "fi": "siirrettävä talo", "fr": "maison mobile", + "ga": "teach soghluaiste", "he": "מבנה יביל", "it": "casa mobile", "ja": "トレーラーハウス", @@ -12033,12 +12983,14 @@ "be": "палевае жыллё", "bg": "наколно жилище", "ca": "palafit", + "cy": "llyndy", "de": "pfahlbau", "el": "αρχική παλαφίτη", "en": "stilt house", "es": "palafito", "fa": "آبسرا", "fr": "cité lacustre", + "gl": "palafito", "he": "בתי כלונסאות", "hr": "sojenica", "hu": "cölöpház", @@ -12047,15 +12999,16 @@ "ja": "高床式住居", "ko": "호상 가옥", "lt": "palafito", - "ms": "rumah bertiang tinggi", "nl": "paalwoning", "pl": "palafit", "pt": "palafita", "ro": "palafită", "ru": "свайное жилище", "sl": "hiša na kolih", + "sq": "shtëpi palafite", "sv": "pålbyggnader", "ta": "கால் வீடு", + "tr": "kazıklı ev", "uk": "пальові будівлі", "vi": "nhà sàn", "zh": "干欄屋" @@ -12065,6 +13018,7 @@ "bg": "кочина", "ca": "porcellera", "cs": "vepřín", + "cy": "cwt mochyn", "da": "svinesti", "de": "schweinestall", "en": "pigsty", @@ -12090,7 +13044,8 @@ "supermarket": { "de": "supermarktgebäude", "en": "supermarket building", - "nl": "supermarktgebouw" + "nl": "supermarktgebouw", + "sl": "stavba supermarketa" }, "synagogue": { "af": "sinagoge", @@ -12099,6 +13054,7 @@ "bg": "синагога", "ca": "sinagoga", "cs": "synagoga", + "cy": "synagog", "da": "synagoge", "de": "synagoge", "el": "συναγωγή", @@ -12107,6 +13063,9 @@ "et": "sünagoog", "fa": "کنیسه", "fi": "synagoga", + "ga": "sionagóg", + "gd": "sìonagoga", + "gl": "sinagoga", "he": "בית כנסת", "hi": "यहूदी मंदिर", "hr": "sinagoga", @@ -12119,7 +13078,6 @@ "lv": "sinagoga", "ml": "ജൂതപ്പള്ളി", "mr": "सिनेगॉग", - "ms": "saumaah", "nb": "synagoge", "nl": "synagoge", "pl": "synagoga", @@ -12128,6 +13086,7 @@ "ru": "синагога", "sk": "synagóga", "sl": "sinagoga", + "sq": "sinagoga", "sv": "synagoga", "ta": "தொழுகைக் கூடம்", "th": "สุเหร่ายิว", @@ -12144,6 +13103,7 @@ "bg": "мандир", "ca": "mandir", "cs": "mandir", + "cy": "teml", "da": "hinduistiske templer", "de": "hindutempel", "el": "ινδουιστικός ναός", @@ -12155,6 +13115,9 @@ "fa": "معبد هندو", "fi": "mandir", "fr": "mandir", + "ga": "teampall hiondúch", + "gd": "teampall", + "gl": "templo hinduísta", "he": "מקדש הינדי", "hi": "मन्दिर", "hr": "indijski hram", @@ -12168,7 +13131,6 @@ "lv": "templis", "ml": "ഹിന്ദു ക്ഷേത്രം", "mr": "मंदिर", - "ms": "kuil hindu", "nb": "hindutempel", "nl": "hindoeïstische tempel", "pl": "mandir", @@ -12178,15 +13140,17 @@ "ru": "индуистский храм", "sk": "chrám", "sl": "hindujski tempelj", + "sq": "tempulli hindu", "sv": "tempel", "ta": "இந்துக் கோயில்", + "te": "హిందూ దేవాలయం", "th": "โบสถ์พราหมณ์", "tr": "hindu tapınağı", "uk": "індуїстський храм", "ur": "مندر", "vi": "đền hindu", "zh": "印度教神廟", - "zh-cn": "神庙", + "zh-cn": "庙宇", "zh-hk": "神廟", "zh-tw": "神廟" }, @@ -12195,6 +13159,7 @@ "bg": "градска къща", "ca": "terraced house", "cs": "řadový dům", + "cy": "rhes dai", "da": "rækkehus", "de": "reihenhausgruppe", "de-ch": "reihenhaus", @@ -12205,13 +13170,15 @@ "fi": "rivitalo", "fr": "ensemble de maisons en rangée", "he": "רצף בתים", + "hu": "sorházcsoport", "id": "rumah teras", "it": "casa a schiera", "ja": "テラスハウス", "ko": "테라스 하우스", - "ms": "rumah teres", + "lv": "rindu māja", "nb": "rekkehus", "nl": "huizenrij", + "pl": "ciąg domów", "pt": "terraced house", "ru": "несколько домов, построенных как террасный дом", "sk": "radový rodinný dom", @@ -12220,6 +13187,7 @@ "th": "บ้านแถว", "tr": "teraslı evler", "uk": "зблокований будинок", + "vi": "nhà liền kề", "zh": "排屋", "zh-cn": "联排房屋" }, @@ -12230,6 +13198,7 @@ "bg": "кула", "ca": "torre", "cs": "věž", + "cy": "tŵr", "da": "tårn", "de": "turm", "el": "πύργος", @@ -12239,6 +13208,8 @@ "fa": "برج", "fi": "torni", "fr": "tour", + "ga": "túr", + "gl": "torre", "he": "מגדל", "hi": "बुर्ज", "hr": "toranj", @@ -12251,7 +13222,6 @@ "lv": "tornis", "ml": "ഗോപുരം", "mr": "मनोरा", - "ms": "menara", "nb": "tårn", "nl": "toren", "pl": "wieża", @@ -12260,6 +13230,7 @@ "ru": "башня", "sk": "veža", "sl": "stolp", + "sq": "kullë", "sv": "torn", "ta": "கோபுரம்", "th": "หอคอย", @@ -12275,6 +13246,7 @@ "be": "ратуша", "ca": "seu del govern local", "cs": "obecní dům", + "cy": "neuadd y dref", "da": "rådhus", "de": "rathaus", "el": "δημαρχείο", @@ -12284,28 +13256,29 @@ "fa": "تالار شهر", "fi": "kunnantalo", "fr": "hôtel de ville", + "ga": "halla baile", + "gl": "sede do goberno local", "he": "בניין ממשל מקומי", "hu": "városháza", "id": "balai kota", "it": "palazzo comunale", "ja": "役所", - "ko": "지방 관청", + "ko": "지방관청", "lv": "pilsētas dome", "mr": "नगरगृह", - "ms": "dewan perbandaran", - "nb": "kommunehus", + "nb": "rådhus", "nl": "gemeentehuis", "pl": "ratusz", "pt": "câmara municipal", "pt-br": "sede de prefeitura", "ro": "primărie", - "ru": "дом общины", + "ru": "мэрия", "sk": "obecný dom", "sl": "mestna hiša", "sv": "kommunhus", "ta": "நகர மண்டபம்", "tr": "belediye binası", - "uk": "ратуша", + "uk": "мерія", "ur": "ٹاؤن ہال", "vi": "tòa thị chính", "zh": "地方政府大樓" @@ -12315,6 +13288,7 @@ "be": "чыгуначны вакзал", "ca": "edifici d'estació de ferrocarril", "cs": "staniční budova", + "cy": "adeilad gorsaf", "da": "stationsbygning", "de": "empfangsgebäude", "de-at": "aufnahmsgebäude", @@ -12324,6 +13298,7 @@ "et": "jaamahoone", "fi": "asemarakennus", "fr": "bâtiment voyageurs", + "ga": "foirgneamh stáisiúin", "hu": "állomásépület", "id": "bangunan stasiun", "it": "fabbricato viaggiatori", @@ -12336,7 +13311,7 @@ "ru": "железнодорожный вокзал", "sl": "postajna stavba", "sv": "stationsbyggnad", - "tr": "gar", + "tr": "gar binası", "uk": "залізничний вокзал", "ur": "ریلوے اسٹیشن کی عمارت", "zh": "站房" @@ -12344,8 +13319,11 @@ "transformer_tower": { "da": "transformatortårn", "de": "turmstation", + "el": "πύργος μετασχηματιστή", "en": "transformer tower", + "es": "torre del transformador", "fr": "cabine haute", + "hu": "transzformátortorony", "ro": "post de transformare", "sv": "transformatortorn" }, @@ -12353,9 +13331,11 @@ "en": "public transportation building" }, "university": { + "ar": "مبنى جامعة", "be": "універсітэцкі будынак", "ca": "edifici universitari", "cs": "univerzitní budova", + "cy": "adeilad prifysgol", "da": "universitetsbygning", "de": "universitätsgebäude", "el": "πανεπιστημιακό κτίριο", @@ -12364,12 +13344,13 @@ "fa": "ساختمان دانشگاه", "fi": "yliopistorakennus", "fr": "bâtiment universitaire", + "ga": "foirgneamh ollscoile", + "gl": "edificio universitario", "he": "בניין אוניברסיטאי", "hu": "egyetemi épület", "it": "edificio universitario", "ja": "大学の建築物", "ko": "대학 건물", - "ms": "bangunan universiti", "nb": "universitetsbygning", "nl": "universiteitsgebouw", "pl": "budynek uniwersytecki", @@ -12387,6 +13368,7 @@ "bg": "склад", "ca": "alfòndec", "cs": "sklad", + "cy": "warws", "da": "pakhus", "de": "speicher", "el": "αποθήκη", @@ -12396,6 +13378,8 @@ "fa": "انبار", "fi": "varastorakennus", "fr": "entrepôt", + "ga": "stóras", + "gl": "almacén", "he": "מחסן", "hi": "मालगोदाम", "hr": "skladište", @@ -12415,8 +13399,10 @@ "ro": "depozit", "ru": "пакгауз", "sl": "skladišče", + "sq": "depoja", "sv": "packhus", "ta": "சேமிப்புக் கிடங்கு", + "te": "గిడ్డంగి", "th": "คลังสินค้า", "tr": "depolama", "uk": "гуртівня", @@ -12431,6 +13417,7 @@ "bg": "водонапорна кула", "ca": "torre d'aigua", "cs": "vodárenská věž", + "cy": "twr dŵr", "da": "vandtårn", "de": "wasserturm", "en": "water tower", @@ -12439,6 +13426,7 @@ "fa": "برج آب", "fi": "vesitorni", "fr": "château d'eau", + "gl": "torre de auga", "he": "מגדל מים", "hr": "vodotoranj", "hu": "víztorony", @@ -12471,6 +13459,7 @@ "bg": "сграда", "ca": "edifici", "cs": "budova", + "cy": "adeilad", "da": "bygning", "de": "gebäude", "el": "κτήριο", @@ -12480,6 +13469,9 @@ "fa": "ساختمان", "fi": "rakennus", "fr": "bâtiment", + "ga": "foirgneamh", + "gd": "togalach", + "gl": "edificio", "he": "בניין", "hi": "भवन", "hr": "zgrada", @@ -12490,20 +13482,22 @@ "kn": "ಕಟ್ಟಡ", "ko": "건물", "lt": "statinys", - "lv": "celtne", + "lv": "ēka", "ml": "കെട്ടിടം", "mr": "इमारत", - "ms": "bangunan", "nb": "bygning", "nl": "gebouw", "pl": "budynek", "pt": "edifício", + "pt-br": "edificação", "ro": "clădire", "ru": "здание", "sk": "budova", "sl": "stavba", + "sq": "ndërtesë", "sv": "byggnad", "ta": "கட்டிடம்", + "te": "భవనం", "th": "อาคาร", "tr": "bina", "uk": "будівля", @@ -12520,6 +13514,7 @@ "de": "geschlossene deckung für flugzeuge", "en": "hardened aircraft shelter", "es": "refugio reforzado para aviones", + "fi": "vahvistettu lentokonesuoja", "he": "דיר תת-קרקעי", "ja": "堅固化航空機用掩体", "nb": "shelter", @@ -12542,6 +13537,7 @@ "be": "доўгачасовы агнявы пункт", "bg": "дълговременно огнево съоръжение", "ca": "fortificació", + "cy": "pil bocs", "en": "pillbox", "es": "fortín", "et": "punker", @@ -12551,48 +13547,14 @@ "ja": "トーチカ", "ko": "특화점", "lt": "atsparioji ugniavietė", - "ms": "kubu peninjau", "pl": "umocnione stanowisko ogniowe", "ru": "долговременная огневая точка", "tr": "korugan", "uk": "довгочасна вогнева точка", + "ur": "طویل مدتی فائرنگ پوائنٹ", "zh": "碉堡" } }, - "busway": { - "lane": { - "ar": "مسار محمي للحافلات", - "ca": "carril bus", - "cs": "vyhrazený jízdní pruh", - "da": "busbane", - "de": "busfahrstreifen", - "el": "λεωφορειολωρίδα", - "en": "bus lane", - "es": "carril de buses", - "fi": "linja-autokaista", - "fr": "transport en commun en site propre", - "he": "נתיב תחבורה ציבורית", - "hr": "autobusna traka", - "hu": "buszsáv", - "id": "jalur khusus bus", - "it": "corsia preferenziale", - "ja": "バスレーン", - "ko": "버스전용차로", - "lt": "autobusų juosta", - "ms": "lorong bas", - "nb": "kollektivfelt", - "nl": "busbaan", - "pl": "buspas", - "pt": "faixa de bus", - "pt-br": "corredor de ônibus", - "ru": "выделенная полоса", - "sv": "bussfil", - "tr": "otobüs şeridi", - "uk": "автобусна смуга", - "zh": "公車專用道", - "zh-hk": "巴士專線" - } - }, "capacity": { "": { "ar": "تصريح وقوف السيارات للمعاقين", @@ -12608,6 +13570,7 @@ "ko": "장애인 전용 주차구역", "nb": "handikapp-parkering", "nl": "gehandicaptenparkeerkaart", + "sl": "parkirna dovolilnica za invalide", "sv": "parkeringstillstånd för rörelsehindrad", "zh": "身心障礙者專用停車位許可證" } @@ -12620,6 +13583,7 @@ "bg": "столица", "ca": "capital", "cs": "hlavní město", + "cy": "prifddinas", "da": "hovedstad", "de": "hauptstadt", "el": "πρωτεύουσα", @@ -12629,6 +13593,9 @@ "fa": "پایتخت", "fi": "pääkaupunki", "fr": "capitale", + "ga": "príomhchathair", + "gd": "prìomh-bhaile", + "gl": "capital", "he": "עיר בירה", "hi": "राजधानी", "hr": "glavni grad", @@ -12642,7 +13609,6 @@ "lv": "galvaspilsēta", "ml": "തലസ്ഥാനം", "mr": "राजधानी", - "ms": "ibu negara", "nb": "hovedstad", "nl": "hoofdstad", "pl": "stolica", @@ -12651,8 +13617,10 @@ "ru": "столица", "sk": "hlavné mesto", "sl": "glavno mesto", + "sq": "kryeqytet", "sv": "huvudstad", "ta": "தலைநகரம்", + "te": "రాజధాని", "th": "เมืองหลวง", "tr": "başkent", "uk": "столиця", @@ -12663,12 +13631,14 @@ }, "cargo": { "vehicle": { + "ar": "شاحنة السحب", "ca": "grua (vehicle)", "cs": "odtahový automobil", "da": "bjærgningskøretøj", "de": "abschleppfahrzeug", "en": "tow truck", "et": "puksiirauto", + "fa": "کامیون یدککش", "fi": "hinausauto", "fr": "remorqueuse", "he": "משאית גרר", @@ -12677,11 +13647,10 @@ "it": "carro attrezzi", "ja": "レッカー車", "ko": "견인차", - "ms": "trak tunda", "nb": "bergingsbil", "nl": "bergingsvoertuig", "ro": "tractări auto", - "ru": "эвакуатор (транспортное средство)", + "ru": "эвакуатор", "sl": "vlečni tovornjak", "sv": "bärgningsfordon", "tr": "çekici", @@ -12690,32 +13659,25 @@ }, "carpenter": { "cabinetmaker": { - "ar": "خزانة", "ca": "ebenisteria", - "cs": "kabinet", "de": "kunsttischlerei", "el": "επιπλοποιία", "en": "cabinetry", "es": "ebanistería", - "fa": "کابینت", "fr": "ébénisterie", + "gl": "ebanistaría", + "hu": "műasztalosság", "it": "ebanisteria", - "kn": "ಅಲಮಾರು", - "ms": "kabinet (perabot)", "nb": "møbelsnekring", - "nl": "kabinet (meubel)", - "pl": "kabinet", "pt": "marcenaria", - "ru": "кабинет", - "sl": "umetno mizarstvo", - "tr": "dolap (mobilya)", - "zh": "櫃" + "sl": "umetno mizarstvo" }, "trim": { "ar": "مارتكليه", "bg": "маркетри", "ca": "marqueteria", "cs": "marketerie", + "cy": "argaenwaith", "da": "marqueterie", "de": "marketerie", "el": "μαρκετερί", @@ -12724,6 +13686,9 @@ "et": "marketrii", "fa": "معرق کاری", "fr": "marqueterie", + "ga": "maircíneacht", + "gl": "marquetaría", + "he": "מרקטרי", "hu": "intarzia", "it": "intarsio", "ja": "マーケトリー", @@ -12743,17 +13708,20 @@ "ar": "جنونية", "be": "капрыз, архітэктура", "ca": "capritx", + "cy": "ffoledd", "da": "folly (havekunst)", "en": "folly", "es": "capricho", "fa": "سازه تزئینی", "fi": "koristerakennus", "fr": "fabrique de jardin", + "ga": "bréagán tí", "he": "מבנה שטות", "it": "capriccio (architettura)", "ja": "フォリー", + "ko": "폴리", "ru": "каприз", - "sl": "dekorativna stavba", + "sl": "okrasna stavba", "sv": "fåfänga", "th": "สิ่งก่อสร้างตกแต่ง", "tr": "dekorasyon binası", @@ -12766,6 +13734,7 @@ "castrum": { "ar": "كاسترا", "bg": "каструм", + "cy": "caer rufeinig", "de": "römisches militärlager", "el": "ρωμαϊκό στρατόπεδο", "en": "castrum", @@ -12774,6 +13743,7 @@ "fa": "کاستروم", "fi": "castra", "fr": "camp romain", + "gl": "campamento romano", "he": "קסטרום", "ja": "カストラ", "ko": "카스트라", @@ -12785,6 +13755,47 @@ "uk": "каструм", "zh": "古罗马兵营" }, + "fortress": { + "ar": "قلعة", + "be": "крэпасць", + "bg": "крепост", + "ca": "fortalesa", + "cs": "pevnost", + "cy": "caer enfawr", + "da": "fæstningsværk", + "de": "festung", + "el": "φρούριο", + "en": "fortress", + "es": "fortaleza", + "et": "kindlus", + "fi": "linnoitus", + "fr": "forteresse", + "ga": "daingean", + "gl": "fortaleza", + "he": "מוצב", + "hr": "tvrđava", + "hu": "erődrendszer", + "it": "fortezza", + "ja": "要塞", + "ko": "요새", + "lt": "tvirtovė", + "lv": "cietoksnis", + "ml": "കോട്ടകൊത്തളം", + "nb": "festning", + "nl": "vesting", + "pl": "twierdza", + "pt": "fortaleza", + "ro": "cetate", + "ru": "крепость", + "sk": "pevnosť", + "sl": "trdnjava", + "sv": "fästning", + "tr": "kale", + "uk": "фортеця", + "ur": "قلعہ", + "vi": "pháo đài", + "zh": "要塞" + }, "kremlin": { "ar": "كرملين", "be": "крэмль", @@ -12797,6 +13808,7 @@ "et": "kreml", "fa": "کرملین", "fi": "kreml", + "ga": "creimil", "he": "קרמלין", "hi": "क्रेमलिन", "hr": "kremlj", @@ -12820,6 +13832,7 @@ "be": "сядзібны дом", "ca": "casa pairal", "cs": "panské sídlo", + "cy": "maenordy", "da": "herregård", "de": "herrenhaus", "el": "αγροτική έπαυλη", @@ -12828,6 +13841,8 @@ "et": "härrastemaja", "fi": "kartanon päärakennus", "fr": "manoir", + "ga": "mainéar", + "gl": "casa señorial", "he": "אחוזה", "hr": "kurija", "hu": "udvarház", @@ -12837,7 +13852,6 @@ "ko": "매너하우스", "lt": "dvaras", "lv": "muižas dzīvojamā ēka", - "ms": "rumah manor", "nb": "herregård", "nl": "manoir", "pl": "dwór", @@ -12862,6 +13876,7 @@ "es": "castillo japonés", "fa": "قلعه ژاپنی", "fr": "château japonais", + "gl": "castelo xaponés", "he": "טירה יפנית", "hu": "japán várkastélyai", "id": "istana jepang", @@ -12869,12 +13884,12 @@ "ja": "日本の城", "ko": "일본의 성", "lv": "japāņu pilis", - "ms": "istana jepun", "nb": "japansk borg", "nl": "japans kasteel", "pt": "castelo japonês", "ru": "японский замок", "sl": "japonski grad", + "sq": "kështjella japoneze", "sv": "japanskt slott", "ta": "சப்பானியக் கோட்டையகம்", "th": "ปราสาทญี่ปุ่น", @@ -12887,15 +13902,18 @@ "be": "шато", "ca": "country house", "cs": "zámek", + "cy": "plas", "da": "slot", "de": "schloss", "el": "σατώ", "en": "stately home", - "es": "château", + "es": "palacio", "et": "loss", "fa": "شاتو", "fi": "kartanolinna", "fr": "maison seigneuriale", + "ga": "château", + "gl": "château", "he": "שאטו", "hr": "dvorac", "hu": "kastély", @@ -12903,7 +13921,6 @@ "ja": "シャトー", "ko": "샤토", "lt": "pilis", - "ms": "château", "nb": "slott", "nl": "statig huis", "pl": "château", @@ -12911,7 +13928,7 @@ "ro": "castel", "ru": "шато", "sk": "zámok", - "sl": "graščina", + "sl": "plemiški dvorec", "th": "คฤหาสน์ภูมิฐาน", "tr": "şato", "uk": "шато", @@ -12926,6 +13943,7 @@ "bg": "гроб", "ca": "sepultura", "cs": "hrob", + "cy": "bedd", "da": "grav", "de": "grab", "el": "τάφος", @@ -12935,6 +13953,9 @@ "fa": "گور", "fi": "hauta", "fr": "tombe", + "ga": "uaigh", + "gd": "uaigh", + "gl": "sepultura", "he": "קבר", "hi": "कब्र", "hr": "grob", @@ -12945,7 +13966,6 @@ "ko": "묘소", "lt": "kapas", "lv": "kaps", - "ms": "kubur", "nb": "grav", "nl": "graf", "pl": "grób", @@ -12954,7 +13974,10 @@ "ru": "могила", "sk": "hrob", "sl": "grob", + "sq": "varri", "sv": "grav", + "ta": "கல்லறை", + "te": "సమాధి", "tr": "mezar", "uk": "могила", "ur": "قبر", @@ -12972,6 +13995,7 @@ "es": "cementerio de guerra", "fi": "sotahautausmaa", "fr": "cimetière de guerre", + "ga": "reilig chogaidh", "he": "בית קברות מלחמתי", "it": "cimitero di guerra", "nb": "krigsgravkirkegård", @@ -12986,97 +14010,6 @@ } }, "china_class": { - "cun": { - "ar": "قرية صينية", - "bg": "село в китай", - "ca": "poble de la xina", - "cs": "vesnice v čínské lidové republice", - "da": "kinesisk landsby", - "de": "dorf", - "el": "οικισμός της λαϊκής δημοκρατίας της κίνας", - "en": "chinese village", - "en-ca": "village", - "en-gb": "village", - "en-us": "village", - "es": "aldea", - "fa": "روستا", - "fi": "kylä kiinassa", - "fr": "village de chine", - "he": "כפר בסין העממית", - "id": "desa di tiongkok", - "it": "villaggi", - "ja": "村", - "ko": "마을", - "lt": "kaimas", - "ms": "kampung di china", - "nb": "tettsted i kina", - "nl": "dorp in china", - "pl": "wioska w chinach", - "pt-br": "vila chinesa", - "ru": "деревня кнр", - "sl": "vas", - "sv": "by i kina", - "tr": "köy", - "uk": "село в китаї", - "ur": "عوامی جمہوریہ چین کے گاؤں", - "vi": "đơn vị hành chính cấp thôn", - "zh": "行政村" - }, - "jiedao": { - "ar": "منطقة فرعية في الصين", - "ca": "subdistricte de la xina", - "de": "straßenviertel", - "de-ch": "strassenviertel", - "en": "subdistrict", - "es": "subdistrito", - "fa": "زیربخش", - "fr": "sous-district", - "id": "subdistrik, tiongkok", - "it": "sottodistretto della cina", - "ja": "街道", - "ko": "가도변사소", - "nl": "subdistricten van china", - "ru": "уличный комитет кнр", - "sl": "poddistrikt", - "sv": "kinas stadsdelsdistrikt", - "uk": "підрайони (кнр)", - "ur": "عوامی جمہوریہ چین کے ذیلی اضلاع", - "vi": "nhai đạo biện sự xứ", - "zh": "街道" - }, - "village": { - "ar": "قرية صينية", - "bg": "село в китай", - "ca": "poble de la xina", - "cs": "vesnice v čínské lidové republice", - "da": "kinesisk landsby", - "de": "dorf", - "el": "οικισμός της λαϊκής δημοκρατίας της κίνας", - "en": "village", - "es": "aldea", - "fa": "روستا", - "fi": "kylä kiinassa", - "fr": "village de chine", - "he": "כפר בסין העממית", - "id": "desa di tiongkok", - "it": "villaggi", - "ja": "中国の村級行政区画", - "ko": "마을", - "lt": "kaimas", - "ms": "kampung di china", - "nb": "tettsted i kina", - "nl": "dorp in china", - "pl": "wioska w chinach", - "pt-br": "vila chinesa", - "ru": "деревня кнр", - "sl": "vas", - "sv": "by i kina", - "tr": "köy", - "uk": "село в китаї", - "ur": "عوامی جمہوریہ چین کے گاؤں", - "vi": "đơn vị hành chính cấp thôn", - "zh": "行政村" - }, "xiang": { "ar": "بلدة مدينة في الصين", "ca": "poble de la xina", @@ -13093,7 +14026,7 @@ "ro": "canton chinez", "ru": "волость кнр", "sl": "občina", - "sv": "socken", + "sv": "socken i kina", "tr": "çin halk cumhuriyeti beldesi", "uk": "волость у китаї", "ur": "عوامی جمہوریہ چین کے ٹاؤن شپ", @@ -13107,6 +14040,7 @@ "be": "пасёлак", "ca": "poble de la xina", "cs": "město v číně", + "cy": "tref yn tsieina", "da": "by i kina", "de": "großgemeinde in china", "en": "town of china", @@ -13123,7 +14057,7 @@ "pl": "mniejsze miasto (chiny)", "ru": "посёлок кнр", "sl": "mesto", - "sv": "köping", + "sv": "köping i kina", "th": "เมืองของประเทศจีน", "tr": "çin halk cumhuriyeti i̇lçesi", "uk": "містечко кнр", @@ -13136,23 +14070,29 @@ }, "climbing": { "": { - "ar": "بولدرنق", + "ar": "تسلق الجلمود", "be": "боўлдэрынг", - "ca": "escalada en bloc", + "ca": "escalada de blocs", "de": "bouldern", + "el": "αθλητική αναρρίχηση", "en": "bouldering", "es": "boulder", + "et": "sportronimine", "fi": "boulderointi", "fr": "bloc", + "gl": "boulder", "he": "טיפוס בולדרינג", + "hr": "športsko penjanje", "id": "panjat dinding", "ja": "ボルダリング", "ko": "볼더링", + "lt": "laipiojimo sportas", "lv": "boulderings", "nb": "buldring", "nl": "boulderen", "pt": "boulder", "ru": "боулдеринг", + "sk": "lezenie", "sl": "balvansko plezanje", "uk": "боулдеринг", "zh": "抱石" @@ -13165,9 +14105,11 @@ "es": "zona de escalada", "fi": "kiipeilyalue", "fr": "site d'escalade", + "ga": "limistéar dreapadóireachta", "it": "sito d'arrampicata", "nl": "klimgebied", - "sl": "plezališče" + "sl": "plezališče", + "zh": "攀岩区" }, "crag": { "ca": "zona d'escalada", @@ -13177,9 +14119,40 @@ "es": "zona de escalada", "fi": "kiipeilyalue", "fr": "site d'escalade", + "ga": "limistéar dreapadóireachta", "it": "sito d'arrampicata", "nl": "klimgebied", - "sl": "plezališče" + "sl": "plezališče", + "zh": "攀岩区" + }, + "route": { + "af": "klimroete", + "ar": "طريق تسلق", + "ca": "ruta d'escalada", + "cs": "horolezecká cesta", + "de": "kletterroute", + "el": "αναρριχητική διαδρομή", + "en": "climbing route", + "es": "vía (escalada)", + "fi": "kiipeilyreitti", + "fr": "voie d'escalade", + "he": "מסלול טיפוס", + "hi": "आरोहण मार्ग", + "it": "via d'arrampicata", + "ja": "クライミング・ルート", + "nb": "klatrerute", + "nl": "klimroute", + "pl": "droga wspinaczkowa", + "pt": "via de montanha", + "ru": "скалолазный маршрут", + "sl": "plezalna pot", + "uk": "альпіністський маршрут" + } + }, + "cloth": { + "traditional": { + "en": "antakarana tradionnal costume", + "fr": "tenue traditionnelle antakarana" } }, "clothes": { @@ -13188,6 +14161,7 @@ "de": "babybekleidung", "en": "infant clothing", "he": "בגדי תינוקות", + "hu": "babaruha", "id": "shailendra tshai group", "ko": "유아복", "nb": "babyklær", @@ -13230,6 +14204,7 @@ "bg": "носия", "ca": "vestit", "cs": "kostým", + "cy": "gwisg", "da": "kostume", "de": "kostüm", "el": "ενδυμασία", @@ -13239,6 +14214,9 @@ "et": "kostüüm", "fa": "لباس محلی", "fi": "asu", + "ga": "feisteas", + "gd": "aodach-brèige", + "gl": "traxe", "he": "תחפושת", "hi": "वेशभूषा", "hr": "kostim", @@ -13255,6 +14233,7 @@ "ro": "costum", "ru": "костюм", "sl": "kostim", + "sq": "veshje", "sv": "dräkt", "ta": "ஆடை", "tr": "kostüm", @@ -13271,12 +14250,15 @@ "es": "mezclilla", "et": "teksariie", "fa": "دنیم", + "ga": "deinim", "he": "דנים", "ja": "デニム", "ko": "데님", "nb": "dongeri", "pl": "dżins", + "pt": "brim", "ru": "деним", + "te": "డెనిమ్", "tr": "kot", "uk": "денім", "zh": "牛仔布" @@ -13296,10 +14278,12 @@ "fa": "خز", "fi": "turkis", "fr": "fourrure", + "ga": "fionnadh", + "gl": "pelaxe", "he": "פרווה", "hi": "ऊर्णाजिन", "hr": "krzno", - "hu": "szőrzet", + "hu": "prém", "id": "rambut hewan", "it": "pelliccia", "ja": "毛皮", @@ -13307,7 +14291,6 @@ "lt": "kailis", "lv": "kažokāda", "ml": "രോമക്കുപ്പായം", - "ms": "bulu", "nb": "pels", "nl": "vacht", "pl": "futro", @@ -13315,7 +14298,8 @@ "ro": "blană", "ru": "шерсть", "sk": "srsť", - "sl": "krzno", + "sl": "dlaka", + "sq": "gëzofi", "sv": "päls", "ta": "ஃபர்", "th": "ขนสัตว์", @@ -13332,6 +14316,7 @@ "bg": "шапка", "ca": "barret", "cs": "klobouk", + "cy": "het", "de": "hut", "el": "καπέλο", "en": "hat", @@ -13340,6 +14325,9 @@ "fa": "کلاه", "fi": "hattu", "fr": "chapeau", + "ga": "hata", + "gd": "ad", + "gl": "chapeu", "he": "כובע", "hi": "टोपी", "hr": "šešir", @@ -13351,7 +14339,6 @@ "lt": "skrybėlė", "lv": "cepure", "ml": "തൊപ്പി", - "ms": "topi", "nb": "hatt", "nl": "hoed", "pl": "kapelusz", @@ -13360,11 +14347,14 @@ "ru": "шляпа", "sk": "klobúk", "sl": "klobuk", + "sq": "kapelë", "sv": "hatt", "ta": "தொப்பி", + "te": "టోపీ", "th": "หมวก", "tr": "şapka", "uk": "капелюх", + "ur": "ٹوپی (ہیٹ)", "vi": "mũ", "zh": "帽子" }, @@ -13374,7 +14364,8 @@ "be": "скура", "bg": "кожа", "ca": "cuir", - "cs": "kůže", + "cs": "useň", + "cy": "lledr", "da": "læder", "de": "leder", "el": "ζωικό δέρμα", @@ -13384,6 +14375,8 @@ "fa": "چرم", "fi": "nahka", "fr": "cuir", + "ga": "leathar", + "gl": "coiro", "he": "עור", "hi": "चमड़ा", "hr": "koža", @@ -13396,7 +14389,6 @@ "lv": "āda", "ml": "തുകൽ", "mr": "चामडे", - "ms": "kulit", "nb": "lær", "nl": "leer", "pl": "skóra", @@ -13404,6 +14396,7 @@ "ro": "piele", "ru": "кожа", "sl": "usnje", + "sq": "lëkurë", "sv": "läder", "ta": "தோல்சரக்கு நுட்பியல்", "tr": "dericilik", @@ -13422,10 +14415,26 @@ "it": "moda maschile", "nl": "herenmode", "pt": "vestuário masculino", + "sl": "moška moda", "sv": "herrkonfektion" }, + "motorcycle": { + "de": "schutzausrüstung", + "en": "motorcycle personal protective equipment", + "fi": "ajopuku", + "fr": "équipement de sécurité pour motard", + "hu": "motorkerékpáros személyi védőfelszerelés", + "it": "protezioni per motociclisti", + "ja": "オートバイ用個人用防護具", + "nl": "motorkleding", + "ru": "мотоэкипировка", + "sl": "motoristična osebna zaščitna oprema", + "sv": "motorcykelställ", + "zh": "摩托車個人防護裝備" + }, "oversize": { "en": "plus-size clothing", + "ga": "mórthomhas", "ja": "プラスサイズ衣料", "tr": "büyük beden giyim" }, @@ -13433,6 +14442,7 @@ "af": "skooluniform", "ar": "زي مدرسي", "cs": "školní uniforma", + "cy": "gwisg ysgol", "da": "skoleuniform", "de": "schuluniform", "el": "μαθητική στολή", @@ -13455,8 +14465,10 @@ "pt": "uniforme escolar", "ru": "школьная форма", "sl": "šolska uniforma", + "sq": "uniforma shkollore", "sv": "skoluniform", "ta": "பள்ளிச் சீருடை", + "te": "స్కూల్ యూనిఫామ్", "th": "เครื่องแบบนักเรียน", "tr": "okul üniforması", "uk": "шкільна форма", @@ -13482,6 +14494,7 @@ "pt": "fatos de banho e roupa de praia", "sl": "kopalna oblačila in oblačila za na plažo", "sv": "badkläder och strandkläder", + "uk": "купальник", "zh": "泳裝" }, "traditional": { @@ -13490,6 +14503,7 @@ "bg": "народна носия", "ca": "indumentària tradicional", "cs": "kroj", + "cy": "gwisg werin", "da": "folkedragt", "de": "tracht", "el": "παραδοσιακή ενδυμασία", @@ -13499,6 +14513,8 @@ "fa": "لباس محلی (لباس سنتی)", "fi": "kansallispuku", "fr": "costume traditionnel", + "ga": "feisteas traidisiúnta", + "gl": "traxe tradicional", "he": "לבוש מסורתי", "hr": "narodna nošnja", "hu": "népviselet", @@ -13508,7 +14524,6 @@ "ko": "전통 의상", "lt": "tautinis kostiumas", "lv": "tautastērps", - "ms": "kostum rakyat", "nb": "folkedrakt", "nl": "klederdracht", "pl": "strój ludowy", @@ -13517,12 +14532,58 @@ "ru": "традиционный костюм", "sk": "kroj", "sl": "ljudska noša", + "sq": "veshje popullore", "sv": "folkdräkt", "tr": "halk kostümü", "uk": "національний одяг", "vi": "trang phục truyền thống", "zh": "民族服饰" }, + "underwear": { + "ar": "لباس داخلي", + "be": "ніжняя бялізна", + "bg": "бельо", + "ca": "roba interior", + "cs": "spodní prádlo", + "da": "undertøj", + "de": "unterwäsche", + "el": "εσώρουχο", + "en": "undergarment", + "es": "ropa interior", + "et": "aluspesu", + "fa": "لباس زیر", + "fi": "alusvaate", + "fr": "sous-vêtement", + "ga": "ball fo-éadaigh", + "gl": "roupa interior", + "he": "הלבשה תחתונה", + "hr": "donje rublje", + "hu": "alsónemű", + "id": "pakaian dalam", + "it": "biancheria intima", + "ja": "下着", + "ko": "속옷", + "lt": "apatiniai drabužiai", + "lv": "apakšveļa", + "ml": "ജട്ടി", + "nb": "undertøy", + "nl": "ondergoed", + "pl": "bielizna", + "pt": "roupa interior", + "pt-br": "roupa íntima", + "ro": "lenjerie intimă", + "ru": "нательное бельё", + "sk": "spodné prádlo", + "sl": "spodnje perilo", + "sv": "underkläder", + "ta": "உள்ளாடை", + "th": "ชุดชั้นใน", + "tr": "iç çamaşırı", + "uk": "спідня білизна", + "ur": "زیر جامہ", + "vi": "quần lót", + "zh": "内衣" + }, "wedding": { "ar": "لباس عرس", "ca": "roba de noces", @@ -13530,7 +14591,9 @@ "en": "wedding clothing", "nl": "bruidskleding", "pt": "traje de casamento", - "sv": "brudkläder" + "sl": "poročna obleka", + "sv": "brudkläder", + "th": "เครื่องแต่งกายงานแต่งงาน" }, "women": { "ar": "ملابس نسائية", @@ -13553,31 +14616,78 @@ "ur": "زنانہ ملبوسات" } }, + "clothing": { + "swimwear": { + "ar": "لباس سباحة", + "bg": "бански костюм", + "ca": "banyador", + "cs": "plavky", + "da": "badetøj", + "de": "badebekleidung", + "en": "swimsuit", + "en-gb": "swimming costume", + "es": "traje de baño", + "et": "supeltrikoo", + "fa": "مایو", + "fi": "uimapuku", + "fr": "maillot de bain", + "gd": "briogais-snàmh", + "gl": "traxe de baño", + "he": "בגד ים", + "hr": "kupaći kostim", + "hu": "fürdőruha", + "id": "pakaian renang", + "it": "costume da bagno", + "ja": "水着", + "kn": "ಸ್ವಿಮ್ ಸೂತ್", + "ko": "수영복", + "lt": "maudymosi kostiumėlis", + "lv": "peldkostīms", + "nb": "badedrakt", + "nl": "zwemkleding", + "pl": "kostium kąpielowy", + "pt": "traje de banho", + "ro": "costum de baie", + "ru": "купальник", + "sl": "kopalna oblačila", + "sv": "badkläder", + "th": "ชุดว่ายน้ำ", + "tr": "mayo", + "uk": "купальний костюм", + "vi": "đồ bơi", + "zh": "泳衣" + } + }, "club": { "amateur_radio": { "de": "amateurfunkverein", "en": "amateur radio club", "fi": "radioamatöörikerho", - "pl": "klub krótkofalarski" + "pl": "klub krótkofalarski", + "sl": "radioklub" }, "automobile": { "da": "bilklub", "de": "automobilclub", "en": "car club", + "fr": "automobile club", "pl": "automobilklub", "sl": "avto-moto društvo", "zh": "车友会" }, "bicycle": { "ca": "club de ciclisme", - "da": "cykleklub", + "da": "cykelklub", "de": "radfahrerverein", "en": "cycling club", + "es": "club de ciclismo", + "fr": "club cycliste", "ja": "自転車競技クラブ", "nb": "sykkelklubb", - "nl": "fietsclub", + "nl": "wielervereniging", "pl": "klub rowerowy", "ru": "велоклуб", + "sl": "kolesarsko društvo", "tr": "bisiklet kulübü", "uk": "велоклуб" }, @@ -13596,6 +14706,8 @@ "es": "club de ajedrez", "fi": "shakkiklubi", "fr": "club d'échecs", + "ga": "club fichille", + "gl": "club de xadrez", "he": "מועדון שחמט", "it": "circolo di scacchi", "ja": "チェスクラブ", @@ -13604,6 +14716,7 @@ "nl": "schaakvereniging", "pl": "klub szachowy", "ru": "шахматный клуб", + "sl": "šahovsko društvo", "sv": "schackklubb", "uk": "шаховий клуб", "zh": "西洋棋俱樂部" @@ -13617,6 +14730,7 @@ "es": "cineclub", "fi": "elokuvakerho", "fr": "ciné-club", + "gl": "cineclub", "it": "cine club", "ja": "シネクラブ", "ko": "시네클럽", @@ -13643,7 +14757,6 @@ "ja": "ケネルクラブ", "ko": "애견협회", "ml": "കെന്നൽ ക്ലബ്ബ്", - "ms": "kelab kenel", "nb": "kennelklubb", "nl": "kennelclub", "ru": "кинологические организации", @@ -13682,6 +14795,7 @@ "be": "масонская ложа", "ca": "lògia maçònica", "cs": "zednářská lóže", + "cy": "seiri rhyddion", "da": "frimurerloge", "de": "freimaurerloge", "el": "μασονική στοά", @@ -13690,9 +14804,11 @@ "et": "loož (vabamüürlus)", "fa": "لژ ماسونی", "fr": "loge maçonnique", + "ga": "ardlóiste máisiúin", + "gl": "loxa masónica", "he": "לשכת בונים חופשיים", "hr": "masonska loža", - "hu": "szabadkőműves páholy", + "hu": "szabadkőműves-páholy", "it": "loggia massonica", "ja": "フリーメーソンのロッジ", "lv": "brīvmūrnieku loža", @@ -13724,7 +14840,9 @@ "es": "grupo de usuarios de linux", "fa": "گروه کاربران لینوکس", "fr": "groupe d'utilisateurs linux", + "gl": "grupo de usuarios de linux", "ja": "linuxユーザーグループ", + "ko": "리눅스 사용자 그룹", "nl": "linux users group", "pt": "grupo de usuários linux", "ro": "grup de utilizatori gnu/linux", @@ -13743,6 +14861,7 @@ "he": "מועדון אופנוענים", "it": "moto club", "ja": "バイカー集団", + "lv": "motoklubs", "nb": "motorsykkelklubb", "nl": "motorclub", "pt": "moto clube", @@ -13765,14 +14884,16 @@ "it": "fotoclub", "nl": "fotoclub", "ru": "фотоклуб", - "zh-cn": "摄影俱乐部" + "zh": "摄影俱乐部" }, "sailing": { "da": "sejlklub", "de": "segelverein", "en": "sailing club", + "es": "club de vela", "he": "מועדון שייט", - "nb": "seilforening" + "nb": "seilforening", + "sl": "jadralni klub" }, "social": { "ar": "نادي اجتماعي", @@ -13781,10 +14902,12 @@ "en": "social club", "es": "club social", "fa": "باشگاه اجتماعی", + "ga": "club sóisialta", "id": "klub sosial", "ja": "社交クラブ", + "pt": "clube social", "ru": "социальный клуб", - "sl": "družbeni klub", + "sl": "družabni klub", "tr": "sosyal kulüp", "uk": "соціальний клуб", "vi": "câu lạc bộ xã hội", @@ -13796,6 +14919,7 @@ "bg": "спортен клуб", "ca": "club esportiu", "cs": "sportovní klub", + "cy": "clwb chwaraeon", "da": "idrætsforening", "de": "sportverein", "el": "αθλητικός σύλλογος", @@ -13807,6 +14931,8 @@ "fa": "باشگاه ورزشی", "fi": "urheiluseura", "fr": "club sportif", + "ga": "club spóirt", + "gl": "club deportivo", "he": "מועדון ספורט", "hr": "sportski klub", "hu": "sportklub", @@ -13816,7 +14942,6 @@ "ko": "스포츠 구단", "lt": "sporto klubas", "lv": "sporta klubs", - "ms": "kelab sukan", "nb": "fallskjermklubb", "nl": "parachuteclub", "pl": "klub sportowy", @@ -13843,19 +14968,23 @@ "be": "маладзёжная арганізацыя", "ca": "organització juvenil", "cs": "organizace dětí a mládeže", + "cy": "mudiad ieuenctid", "da": "ungdomsorganisation", "de": "jugendorganisation", "el": "οργανισμός νεολαίας", - "en": "youth organization", + "en": "youth organisation", + "en-us": "youth organization", "es": "organización juvenil", "et": "noorteorganisatsioon", "fi": "nuorisojärjestö", - "fr": "organisation de pensionnés", + "fr": "organisation de jeunesse", + "ga": "ógeagraíocht", + "gl": "organización xuvenil", "he": "תנועת נוער", "hu": "ifjúsági szervezet", "it": "organizzazione giovanile", "ja": "青少年組織", - "ms": "pertubuhan pemuda", + "lt": "jaunimo organizacija", "nb": "ungdomsorganisasjon", "nl": "jongerenorganisatie", "pl": "organizacja młodzieżowa", @@ -13877,6 +15006,7 @@ "bg": "коктейл", "ca": "còctel", "cs": "koktejl", + "cy": "coctel", "da": "cocktail", "de": "cocktailbar", "el": "κοκτέιλ", @@ -13886,6 +15016,8 @@ "fa": "کوکتل", "fi": "drinkki", "fr": "cocktail avec alcool", + "ga": "manglam", + "gl": "cóctel", "he": "קוקטייל", "hr": "koktel", "hu": "koktél", @@ -13905,27 +15037,515 @@ "ru": "алкогольный коктейль", "sk": "koktail", "sl": "koktajl", + "sq": "koktell", "sv": "cocktail", "ta": "காக்டெய்ல்கள்", "th": "ค็อกเทล", "tr": "kokteyl", "uk": "коктейль", "ur": "کاک ٹیل", - "vi": "cocktailthức", + "vi": "cocktail", "zh": "鸡尾酒", "zh-hk": "雞尾酒", "zh-tw": "雞尾酒" } }, "colour": { + "black": { + "af": "swart", + "ar": "أسود", + "be": "чорны", + "bg": "черно", + "ca": "negre", + "cs": "černá", + "cy": "du", + "da": "sort", + "de": "schwarz", + "el": "μαύρο", + "en": "black", + "es": "negro", + "et": "must", + "fa": "سیاه", + "fi": "musta", + "fr": "noir", + "ga": "dubh", + "gl": "negro", + "he": "שחור", + "hi": "काला", + "hr": "crna", + "hu": "fekete", + "id": "hitam", + "it": "nero", + "ja": "黒", + "kn": "ಕಪ್ಪು", + "ko": "검정", + "lt": "juoda", + "lv": "melnā krāsa", + "ml": "കറുപ്പ്", + "mr": "काळा", + "nb": "svart", + "nl": "zwart", + "pl": "barwa czarna", + "pt": "preto", + "ro": "negru", + "ru": "чёрный", + "sk": "čierna", + "sl": "črna", + "sq": "e zezë", + "sv": "svart", + "ta": "கருப்பு", + "te": "నలుపు", + "th": "สีดำ", + "tr": "siyah", + "uk": "чорний", + "ur": "سیاہ", + "vi": "đen", + "zh": "黑色" + }, + "blue": { + "af": "blou", + "ar": "أزرق", + "be": "сіні колер", + "bg": "синьо", + "ca": "blau", + "cs": "modrá", + "cy": "glas", + "da": "blå", + "de": "blau", + "el": "μπλε", + "en": "blue", + "es": "azul", + "et": "sinine", + "fa": "آبی", + "fi": "sininen", + "fr": "bleu", + "ga": "gorm", + "gl": "azul", + "he": "כחול", + "hi": "नीला", + "hr": "plava", + "hu": "kék", + "id": "biru", + "it": "blu", + "ja": "青", + "kn": "ನೀಲಿ", + "ko": "파란색", + "lt": "mėlyna", + "lv": "zils", + "ml": "നീല", + "mr": "निळा", + "nb": "blå", + "nl": "blauw", + "pl": "barwa niebieska", + "pt": "azul", + "ro": "albastru", + "ru": "синий", + "sk": "modrá", + "sl": "modra", + "sq": "ngjyra vjollcë e kaltër", + "sv": "blå", + "ta": "நீலம்", + "te": "నీలం", + "th": "สีน้ำเงิน", + "tr": "mavi", + "uk": "синій", + "ur": "نیلا", + "vi": "xanh lam", + "zh": "藍色", + "zh-cn": "蓝色" + }, + "brown": { + "af": "bruin", + "ar": "بني", + "be": "карычневы", + "bg": "кафяв цвят", + "ca": "marró", + "cs": "hnědá", + "da": "brun", + "de": "braun", + "el": "καφέ", + "en": "brown", + "es": "marrón", + "et": "pruun", + "fa": "قهوهای", + "fi": "ruskea", + "fr": "brun", + "ga": "donn", + "gl": "marrón", + "he": "חום", + "hr": "smeđa", + "hu": "barna", + "id": "cokelat", + "it": "bruno", + "ja": "茶色", + "kn": "ಕಂದು", + "ko": "갈색", + "lt": "ruda", + "lv": "brūnā krāsa", + "ml": "തവിട്ടുനിറം", + "nb": "brun", + "nl": "bruin", + "pl": "barwa brązowa", + "pt": "castanho", + "pt-br": "marrom", + "ro": "brun", + "ru": "коричневый", + "sk": "hnedá", + "sl": "rjava", + "sv": "brun", + "ta": "பழுப்பு", + "th": "สีน้ำตาล", + "tr": "kahverengi", + "uk": "коричневий", + "ur": "بھورا", + "vi": "nâu", + "zh": "褐色" + }, + "cyan": { + "af": "siaan", + "ar": "سيان", + "be": "сіне-зялёны колер", + "bg": "синьо-зелен цвят", + "ca": "cian", + "cs": "azurová", + "cy": "gwyrddlas", + "el": "γαλάζιο", + "en": "cyan", + "es": "cian", + "et": "tsüaansinine", + "fa": "آبی دریایی", + "fi": "syaani", + "gl": "ciano", + "he": "ציאן", + "hi": "क्यान", + "hr": "cijan", + "hu": "ciánkék", + "id": "sian", + "it": "ciano", + "ja": "シアン", + "ko": "시안", + "lv": "ciānzaļa krāsa", + "nb": "turkis", + "nl": "cyaan", + "pl": "cyjan", + "pt": "ciano", + "ru": "зеленовато-голубой", + "sl": "sinja", + "sq": "ngjyra cijan", + "th": "สีไซอัน", + "tr": "camgöbeği", + "uk": "ціановий", + "vi": "xanh lơ", + "zh": "青色" + }, + "gray": { + "af": "grys", + "ar": "رمادي", + "be": "шэры колер", + "bg": "сив цвят", + "ca": "gris", + "cs": "šedá", + "cy": "llwyd", + "da": "grå", + "de": "grau", + "el": "γκρι", + "en": "grey", + "en-us": "gray", + "es": "gris", + "et": "hall", + "fa": "خاکستری", + "fi": "harmaa", + "fr": "gris", + "ga": "liath", + "gl": "gris", + "he": "אפור", + "hi": "धूसर", + "hr": "siva", + "hu": "szürke", + "id": "abu-abu", + "it": "grigio", + "ja": "灰色", + "kn": "ಬೂದು", + "ko": "회색", + "lt": "pilka", + "lv": "pelēkā krāsa", + "ml": "ചാരനിറം", + "mr": "राखाडी", + "nb": "grå", + "nl": "grijs", + "pl": "barwa szara", + "pt": "cinza", + "ro": "gri", + "ru": "серый", + "sk": "sivá", + "sl": "siva", + "sv": "grå", + "ta": "பழுப்பு", + "th": "สีเทา", + "tr": "gri", + "uk": "сірий", + "ur": "خاکستری", + "vi": "xám", + "zh": "灰色" + }, + "green": { + "af": "groen", + "ar": "أخضر", + "be": "зялёны колер", + "bg": "зелено", + "ca": "verd", + "cs": "zelená", + "cy": "gwyrdd", + "da": "grøn", + "de": "grün", + "el": "πράσινο", + "en": "green", + "es": "verde", + "et": "roheline", + "fa": "سبز", + "fi": "vihreä", + "fr": "vert", + "ga": "glas", + "gl": "verde", + "he": "ירוק", + "hi": "हरा", + "hr": "zelena", + "hu": "zöld", + "id": "hijau", + "it": "verde", + "ja": "緑", + "ko": "초록", + "lt": "žalia", + "lv": "zaļā krāsa", + "ml": "പച്ച", + "mr": "हिरवा", + "nb": "grønn", + "nl": "groen", + "pl": "barwa zielona", + "pt": "verde", + "ro": "verde", + "ru": "зелёный", + "sk": "zelená", + "sl": "zelena", + "sv": "grön", + "ta": "பச்சை", + "te": "ఆకుపచ్చ", + "th": "สีเขียว", + "tr": "yeşil", + "uk": "зелений", + "ur": "سبز", + "vi": "xanh lá cây", + "zh": "綠色", + "zh-cn": "绿色" + }, + "orange": { + "af": "oranje", + "ar": "برتقالي", + "be": "аранжавы колер", + "bg": "оранжев цвят", + "ca": "taronja", + "cs": "oranžová", + "cy": "oren", + "el": "πορτοκαλί", + "en": "orange", + "es": "naranja", + "et": "oranž", + "fa": "نارنجی", + "fi": "oranssi", + "ga": "flannbhuí", + "gl": "laranxa", + "he": "כתום", + "hi": "नारंगी", + "hr": "narančasta", + "hu": "narancssárga", + "id": "jingga", + "it": "arancione", + "ja": "オレンジ色", + "ko": "주황", + "lt": "oranžinė", + "lv": "oranžā krāsa", + "ml": "ഓറഞ്ച്", + "mr": "केशरी", + "nb": "oransje", + "nl": "oranje", + "pl": "barwa pomarańczowa", + "pt": "laranja", + "ro": "portocaliu", + "ru": "оранжевый", + "sk": "oranžová", + "sl": "oranžna", + "sq": "ngjyra portokalle", + "ta": "செம்மஞ்சள்", + "th": "สีส้ม", + "tr": "turuncu", + "uk": "помаранчевий", + "ur": "نارنجی", + "vi": "da cam", + "zh": "橙色", + "zh-tw": "橘色" + }, + "red": { + "af": "rooi", + "ar": "أحمر", + "be": "чырвоны", + "bg": "червено", + "ca": "roig", + "cs": "červená", + "cy": "coch", + "da": "rød", + "de": "rot", + "el": "κόκκινο", + "en": "red", + "es": "rojo", + "et": "punane", + "fa": "سرخ", + "fi": "punainen", + "fr": "rouge", + "ga": "dearg", + "gl": "vermello", + "he": "אדום", + "hi": "लाल", + "hr": "crvena", + "hu": "vörös", + "id": "merah", + "it": "rosso", + "ja": "赤", + "kn": "ಕೆಂಪು", + "ko": "빨강", + "lt": "raudona", + "lv": "sarkanā krāsa", + "ml": "ചുവപ്പ്", + "mr": "लाल", + "nb": "rødt", + "nl": "rood", + "pl": "barwa czerwona", + "pt": "vermelho", + "ro": "roșu", + "ru": "красный", + "sk": "červená", + "sl": "rdeča", + "sq": "ngjyra e kuqe", + "sv": "röd", + "ta": "சிவப்பு", + "te": "ఎరుపు", + "th": "สีแดง", + "tr": "kırmızı", + "uk": "червоний", + "ur": "سرخ", + "vi": "đỏ", + "zh": "紅色", + "zh-cn": "红色" + }, + "white": { + "af": "wit", + "ar": "أبيض", + "be": "белы колер", + "bg": "бяло", + "ca": "blanc", + "cs": "bílá", + "cy": "gwyn", + "da": "hvid", + "de": "weiß", + "de-ch": "weiss", + "el": "λευκό", + "en": "white", + "es": "blanco", + "et": "valge", + "fa": "سفید", + "fi": "valkoinen", + "fr": "blanc", + "ga": "bán", + "gl": "branco", + "he": "לבן", + "hi": "श्वेत", + "hr": "bijela", + "hu": "fehér", + "id": "putih", + "it": "bianco", + "ja": "白", + "kn": "ಬಿಳಿ", + "ko": "하양", + "lt": "balta", + "lv": "baltā krāsa", + "ml": "വെളുപ്പ്", + "mr": "पांढरा", + "nb": "hvit", + "nl": "wit", + "pl": "biały", + "pt": "branco", + "ro": "alb", + "ru": "белый", + "sk": "biela", + "sl": "bela", + "sq": "ngjyra e bardhë", + "sv": "vit", + "ta": "வெள்ளை", + "te": "తెలుపు", + "th": "สีขาว", + "tr": "beyaz", + "uk": "білий", + "ur": "سفید", + "vi": "trắng", + "zh": "白色" + }, "yellow": { - "en": "baltimore salt box" + "af": "geel", + "ar": "أصفر", + "be": "жоўты колер", + "bg": "жълт цвят", + "ca": "groc", + "cs": "žlutá", + "cy": "melyn", + "da": "gul", + "de": "gelb", + "el": "κίτρινο", + "en": "yellow", + "es": "amarillo", + "et": "kollane", + "fa": "زرد", + "fi": "keltainen", + "fr": "jaune", + "ga": "buí", + "gd": "buidhe", + "gl": "amarelo", + "he": "צהוב", + "hi": "पीला", + "hr": "žuta", + "hu": "sárga", + "id": "kuning", + "it": "giallo", + "ja": "黄色", + "ko": "노랑", + "lt": "geltona", + "lv": "dzeltenā krāsa", + "ml": "മഞ്ഞ", + "mr": "पिवळा", + "nb": "gul", + "nl": "geel", + "pl": "barwa żółta", + "pt": "amarelo", + "ro": "galben", + "ru": "жёлтый", + "sk": "žltá", + "sl": "rumena", + "sq": "ngjyra e verdhë", + "sv": "gul", + "ta": "மஞ்சள்", + "te": "పసుపు", + "th": "สีเหลือง", + "tr": "sarı", + "uk": "жовтий", + "ur": "پیلا", + "vi": "vàng", + "zh": "黃色", + "zh-cn": "黄色" } }, "comedy": { "yes": { "de": "comedy-club", "en": "comedy club", + "ga": "club grinn", "he": "קומדי-קלאב", "ja": "コメディクラブ", "nb": "standupklubb", @@ -13936,7 +15556,7 @@ "communication": { "": { "bg": "телевизионна кула", - "ca": "torre de tv", + "ca": "torre de televisió", "cs": "televizní věž", "da": "tv-tårn", "de": "fernsehturm", @@ -13945,6 +15565,7 @@ "es": "torre de telecomunicaciones", "et": "teletorn", "fr": "tour de télévision", + "ga": "túr cumarsáide", "he": "מגדל טלוויזיה", "hu": "tévétorony", "it": "torre televisiva", @@ -13993,8 +15614,8 @@ "en": "institute of the incarnate word", "es": "instituto del verbo encarnado", "fr": "institut du verbe incarné", + "hu": "megtestesült ige intézete", "it": "famiglia religiosa del verbo incarnato", - "ms": "buela", "nl": "instituut van het vleesgeworden woord", "pt": "instituto do verbo encarnado", "ru": "общество воплощённого слова", @@ -14023,7 +15644,8 @@ "en": "order of the brothers discalced of the blessed virgin mary of mount carmel", "es": "orden de los hermanos descalzos de la bienaventurada virgen maría del monte carmelo", "fa": "کرملیهای پابرهنه", - "fr": "ordre des frères déchaux et des moniales déchaussées de la bienheureuse vierge marie du mont-carmel", + "fr": "ordre des carmes déchaux", + "gl": "orde dos carmelitas descalzos", "he": "הכרמליטים היחפים", "hr": "bosonoge karmelićanke", "hu": "sarutlan karmeliták", @@ -14041,6 +15663,7 @@ "sl": "red bosonogih bratov blažene device marije s karmelske gore", "sv": "oskodda karmeliter", "th": "คณะคาร์เมไลท์ไม่สวมรองเท้า", + "tr": "yalınayak karmelitler", "uk": "кармеліти босі", "zh": "赤足加爾默羅會", "zh-cn": "赤足加尔默罗会" @@ -14060,6 +15683,7 @@ "et": "trapistide ordu", "fi": "trappistit", "fr": "ordre cistercien de la stricte observance", + "gl": "orde cisterciense da estrita observancia", "he": "טראפיסטים", "hr": "trapisti", "hu": "trappisták", @@ -14094,6 +15718,8 @@ "es": "orden de los cartujos", "fi": "kartusiaanit", "fr": "ordre des chartreux", + "ga": "ord na gcartúiseach", + "gl": "orde dos cartuxos", "he": "קרטוזיאנים", "hr": "kartuzijanci", "hu": "karthauzi rend", @@ -14123,12 +15749,16 @@ "ar": "الرهبة الصغرى للإخوان", "ca": "orde de frares menors", "cs": "řád menších bratří", + "cy": "urdd y mynachod lleiaf", "de": "franziskaner", "el": "τάγμα των ελάσσονων αδελφών", "en": "order of friars minor", "es": "orden de frailes menores", "fa": "فرقه فرانسیسکن", "fr": "ordre des frères mineurs", + "ga": "ord na mbráthar mionúr", + "gd": "òrd nam mion-bhràithrean", + "gl": "orde dos freires menores", "hr": "red manje braće", "hu": "kisebb testvérek rendje", "id": "ordo fratrum minorum", @@ -14143,8 +15773,9 @@ "ru": "орден меньших братьев", "sk": "rád menších bratov", "sl": "red manjših bratov", + "tr": "küçük kardeşler tarikatı", "vi": "dòng anh em hèn mọn", - "zh": "方濟會小修士" + "zh": "小兄弟会" }, "OFMCap": { "ar": "الرهبنة الكبوشية", @@ -14160,6 +15791,7 @@ "fa": "کاپوچین", "fi": "kapusiinit", "fr": "frères mineurs capucins", + "gl": "orde dos freires menores capuchinos", "he": "המסדר הקפוצ'יני", "hr": "kapucini", "hu": "kapucinusok", @@ -14196,6 +15828,7 @@ "en": "conventual franciscans", "es": "orden de frailes menores conventuales", "fr": "frères mineurs conventuels", + "gl": "orde dos freires menores conventuais", "hr": "konventualci", "hu": "minoriták", "id": "konventual", @@ -14212,9 +15845,10 @@ "sl": "minoriti", "uk": "францисканці конвентуальні", "vi": "dòng phan sinh viện tu", - "zh": "方濟各住院兄弟會" + "zh": "住院小兄弟会" }, "OM": { + "be": "мінімы", "bg": "минимски орден", "ca": "orde dels mínims", "cs": "řád nejmenších bratří sv. františka z pauly", @@ -14222,6 +15856,7 @@ "en": "order of the minims", "es": "orden de los mínimos", "fr": "ordre des minimes", + "gl": "orde dos mínimos", "hu": "minimita rend", "it": "ordine dei minimi", "ja": "ミニミ会", @@ -14233,6 +15868,7 @@ "ru": "минимы", "sk": "rád najmenších bratov sv. františka z paoly", "sl": "pavlinci", + "sv": "minimernas orden", "tr": "kategori:minim tarikatı", "uk": "мініми", "zh": "最小兄弟会" @@ -14243,6 +15879,7 @@ "bg": "доминикански орден", "ca": "orde dels predicadors", "cs": "řád bratří kazatelů", + "cy": "dominiciaid", "da": "dominikanerordenen", "de": "dominikaner", "el": "τάγμα των δομινικανών", @@ -14252,9 +15889,12 @@ "fa": "فرقه دومینیکن", "fi": "dominikaanit", "fr": "ordre des prêcheurs", + "ga": "doiminicigh", + "gd": "òrd nan doiminiceach", + "gl": "orde dos predicadores", "he": "דומיניקנים", "hi": "दोमिनिकी संघ", - "hr": "dominikanci", + "hr": "red propovjednika", "hu": "domonkos-rend", "id": "dominikan", "it": "ordine dei frati predicatori", @@ -14275,7 +15915,7 @@ "th": "คณะดอมินิกัน", "tr": "dominikan tarikatı", "uk": "домініканці", - "vi": "dòng anh em thuyết giáo", + "vi": "dòng anh em giảng thuyết", "zh": "道明會", "zh-cn": "道明会" }, @@ -14283,12 +15923,14 @@ "bg": "норбертински орден", "ca": "premonstratencs", "cs": "řád premonstrátských řeholních kanovníků", + "cy": "urdd y premonstratensiaid", "da": "præmonstratenserordenen", "de": "prämonstratenser", "en": "premonstratensians", - "es": "orden de canónigos de prémontré", + "es": "orden de canónigos premonstratenses", "fi": "premonstratenssit", "fr": "prémontrés", + "gl": "premonstratenses", "he": "פרמונסטרנטנזים", "hr": "premonstratenški red", "hu": "premontrei rend", @@ -14321,6 +15963,8 @@ "es": "orden de san agustín", "fa": "محفل سنت آگوستین", "fr": "ordre de saint-augustin", + "ga": "agaistínigh", + "gl": "orde de santo agostiño", "he": "מסדר אוגוסטינוס הקדוש", "hr": "augustinski heremiti", "id": "ordo santo agustinus", @@ -14342,6 +15986,7 @@ "bg": "бенедиктински орден", "ca": "orde de sant benet", "cs": "řád svatého benedikta", + "cy": "urdd sant bened", "da": "benediktinerordenen", "de": "benediktiner", "el": "τάγμα του αγίου βενέδικτου", @@ -14353,6 +15998,9 @@ "fa": "نظام سنت بندیکت", "fi": "benediktiinit", "fr": "ordre de saint-benoît", + "ga": "beinidictigh", + "gd": "na beinidictich", + "gl": "orde de san bieito", "he": "בנדיקטינים", "hr": "benediktinci", "hu": "bencések", @@ -14370,6 +16018,7 @@ "ru": "бенедиктинцы", "sk": "rád svätého benedikta", "sl": "benediktinci", + "sq": "benediktinët", "sv": "benediktinorden", "ta": "புனித ஆசிர்வாதப்பர் சபை", "th": "คณะเบเนดิกติน", @@ -14385,6 +16034,7 @@ "be": "кларысінкі", "ca": "orde de santa clara", "cs": "chudé sestry svaté kláry", + "cy": "clariaid tlodion", "da": "clarisserordenen", "de": "klarissen", "el": "τάγμα των καρμηλιτών", @@ -14392,6 +16042,7 @@ "es": "orden de santa clara", "fi": "klarissalaiset", "fr": "ordre de sainte-claire", + "gl": "orde de santa clara", "he": "מסדר הקלאריסות העניות", "hr": "klarise", "hu": "klarisszák", @@ -14403,7 +16054,7 @@ "pl": "ubogie siostry świętej klary", "pt": "ordem de santa clara", "ro": "ordinul clariselor", - "ru": "клариссинки", + "ru": "орден святой клары", "sk": "klarisky", "sl": "klarise", "sv": "sankta klaras orden", @@ -14413,6 +16064,13 @@ "zh": "贫穷修女会", "zh-hk": "貧窮修女會" }, + "SFA": { + "en": "franciscan sisters of alcántara", + "es": "hermanas franciscanas alcantarinas", + "fr": "franciscaines alcantarines", + "it": "suore francescane alcantarine", + "nl": "franciscanessen van alcántara" + }, "SJ": { "af": "jesuïet", "ar": "يسوعيون", @@ -14420,15 +16078,19 @@ "bg": "йезуитски орден", "ca": "companyia de jesús", "cs": "tovaryšstvo ježíšovo", + "cy": "cymdeithas yr iesu", "da": "jesuiterordenen", "de": "jesuiten", - "el": "αδελφότητα του ιησού", + "el": "εταιρεία του ιησού", "en": "society of jesus", "es": "compañía de jesús", "et": "jesuiidid", "fa": "یسوعیها", "fi": "jesuiitat", "fr": "compagnie de jésus", + "ga": "cumann íosa", + "gd": "comann iosaid", + "gl": "compañía de xesús", "he": "ישועים", "hr": "isusovci", "hu": "jézus társasága", @@ -14440,7 +16102,6 @@ "lt": "jėzuitai", "lv": "jezuīti", "ml": "ഈശോസഭ", - "ms": "persatuan jesus", "nb": "jesuittordenen", "nl": "jezuïeten", "pl": "jezuici", @@ -14449,6 +16110,7 @@ "ru": "иезуиты", "sk": "spoločnosť ježišova", "sl": "družba jezusova", + "sq": "jezuitët", "sv": "jesuitorden", "ta": "இயேசு சபை", "th": "คณะเยสุอิต", @@ -14465,6 +16127,7 @@ "bg": "цистерциански орден", "ca": "orde del cister", "cs": "cisterciácký řád", + "cy": "urdd y sistersiaid", "da": "cistercienserordenen", "de": "zisterzienser", "el": "κιστερκιανό τάγμα", @@ -14474,6 +16137,8 @@ "fa": "سیسترسیها", "fi": "sisterssiläiset", "fr": "ordre cistercien", + "ga": "cistéirsigh", + "gl": "orde do císter", "he": "נזירים ציסטרציאניים", "hi": "सिस्टर्सन्स", "hr": "cisterciti", @@ -14503,9 +16168,12 @@ "TOSF": { "ca": "tercer orde de sant francesc", "cs": "třetí řád svatého františka", + "de": "dritter orden des hl. franziskus", "en": "third order of saint francis", "es": "tercera orden de san francisco", "fr": "tiers-ordre franciscain", + "gd": "treas òrd naomh frainseas", + "gl": "terceira orde de san francisco", "hu": "ferences világi rend", "it": "terzo ordine francescano", "ja": "フランシスコ会第三会", @@ -14523,6 +16191,7 @@ "community_centre": { "village_hall": { "ar": "قاعة القرية", + "cy": "neuadd bentref", "da": "forsamlingshus", "de": "gemeindehaus", "en": "village hall", @@ -14530,13 +16199,15 @@ "hu": "községháza", "ja": "公会堂", "nb": "bygdegård", + "sl": "občinski dom", "sv": "bygdegård", "zh": "公會堂" }, "youth_centre": { - "ar": "مركز شباب", + "ar": "مركز شبابي", "ca": "equipament juvenil", "cs": "klub mládeže", + "cy": "canolfan ieuenctid", "de": "kinder- und jugendfreizeiteinrichtung", "en": "youth center", "en-ca": "youth centre", @@ -14547,20 +16218,59 @@ "fr": "maison des jeunes", "he": "מרכז צעירים", "hu": "ifjúsági központ", + "id": "gelanggang remaja", + "ja": "青少年センター", + "lv": "jauniešu centrs", "nb": "ungdomssenter", "nl": "jeugdcentrum", "pl": "centrum młodzieżowe", + "ru": "молодежный центр", "sl": "mladinski center", "sv": "fritidsgård", "zh": "青年會" } }, + "company": { + "bus": { + "ar": "شركة حافلات", + "ca": "companyia de bus", + "cs": "autobusový dopravce", + "da": "busselskab", + "de": "busunternehmen", + "en": "bus company", + "es": "empresa de autobuses", + "fi": "linja-autoliikennöitsijä", + "fr": "entreprise de transport par autocar", + "ga": "comhlacht bus", + "gl": "empresa de autobuses", + "he": "חברת אוטובוסים", + "hu": "autóbusz-társaság", + "id": "perusahaan otobus", + "it": "compagnia di autobus", + "ja": "バス事業者", + "ko": "버스 회사", + "nb": "busselskap", + "nl": "busmaatschappij", + "pt": "empresa de autocarros", + "pt-br": "empresa de ônibus", + "ru": "автобусная компания", + "sl": "avtobusna družba", + "sv": "bussbolag", + "tr": "otobüs şirketi", + "uk": "автобусна компанія", + "ur": "بس کمپنی", + "zh": "公交公司", + "zh-hk": "巴士公司", + "zh-tw": "客運公司" + } + }, "compensator": { "voltage_regulator": { "ar": "منظم الجهد", "bg": "реле-регулатор", "ca": "regulador de tensió", "cs": "stabilizátor napětí", + "da": "elektrisk spændingsregulator", "de": "spannungsregler", "en": "voltage regulator", "es": "regulador de tensión", @@ -14568,12 +16278,13 @@ "fa": "تنظیمکننده ولتاژ", "fi": "jänniteregulaattori", "fr": "régulateur de tension", + "he": "וסת מתח", "hi": "वोल्टता नियंत्रक", + "hu": "feszültségstabilizátor", "it": "regolatore di tensione", "ja": "三端子レギュレータ", "ko": "전압 조정기", "lt": "įtampos stabilizatorius", - "ms": "pengatur voltan", "nb": "spenningsregulator", "nl": "spanningsregelaar", "pl": "stabilizator napięcia", @@ -14581,8 +16292,10 @@ "ro": "stabilizator de tensiune", "ru": "стабилизатор напряжения", "sl": "regulator napetosti", + "sq": "rregullatori i tensionit", "sv": "spänningsreglerare", "ta": "மின்னழுத்த ஒழுங்காக்கி", + "te": "వోల్టేజ్ స్టెబిలైజర్", "tr": "voltaj regülatörü", "uk": "стабілізатор напруги", "vi": "ổn áp", @@ -14593,6 +16306,7 @@ "concentration_camp": { "gulag": { "be": "гулаг", + "ca": "camp del gulag", "cs": "gulag", "da": "gulag-lejr", "de": "gulag-lager", @@ -14608,6 +16322,7 @@ "be": "нацысцкі канцлагер", "ca": "camp de concentració nazi", "cs": "koncentrační tábor nacistického německa", + "cy": "gwersyll crynhoi natsïaidd", "da": "tysk koncentrationslejr", "de": "ns-konzentrationslager", "el": "ναζιστικό στρατόπεδο συγκέντρωσης", @@ -14616,6 +16331,8 @@ "fa": "اردوگاههای کار اجباری آلمان نازی", "fi": "natsi-saksan keskitysleirit", "fr": "camp de concentration nazi", + "ga": "campa géibhinn na naitsithe", + "gl": "campo de concentración nazi", "he": "מחנה ריכוז נאצי", "hr": "nacistički koncentracijski logori", "hu": "náci koncentrációs tábor", @@ -14625,7 +16342,6 @@ "ko": "나치 강제 수용소", "lt": "nacių koncentracijos stovyklos", "mr": "नाझी छळछावण्या", - "ms": "kem tahanan nazi", "nb": "konsentrasjonsleirer i nazi-tyskland", "nl": "naziconcentratiekamp", "pl": "nazistowski obóz koncentracyjny", @@ -14634,6 +16350,7 @@ "ru": "нацистский концлагерь", "sk": "nacistický vyhladzovací tábor", "sl": "nacistično koncentracijsko taborišče", + "sq": "kampi i përqëndrimit buhenwald", "sv": "koncentrationsläger organiserade av nazityskland", "ta": "நாசி அரசியல் கைதிகளின் முகாம்கள்", "th": "ค่ายกักกันนาซี", @@ -14645,9 +16362,6 @@ } }, "content": { - "salt": { - "en": "baltimore salt box" - }, "water": { "ar": "خزان مياه", "ca": "dipòsit d'aigua", @@ -14693,6 +16407,7 @@ "fa": "پیادهبر", "fi": "liukukäytävä", "fr": "tapis roulant", + "gl": "cinta transportadora", "he": "מסוע הליכה", "hu": "mozgójárda", "id": "marga laju", @@ -14717,6 +16432,7 @@ "ca": "cooperativa agrícola", "cs": "zemědělská kooperace", "de": "erzeugergenossenschaft", + "el": "αγροτικός συνεταιρισμός", "en": "agricultural cooperative", "es": "cooperativa agraria", "et": "põllumajandusühistu", @@ -14727,7 +16443,9 @@ "ja": "農業協同組合", "ko": "농업협동조합", "lv": "lauksaimniecības kooperatīvs", - "pl": "rolnicza spółdzielnia produkcyjna", + "nl": "landbouwcoöperatie", + "pl": "spółdzielnia rolników", + "pt": "cooperativa agrícola", "ru": "сельскохозяйственный кооператив", "tr": "tarım kooperatifi", "uk": "сільськогосподарський кооператив", @@ -14750,6 +16468,8 @@ "et": "arkaad", "fa": "رواق (معماری)", "fi": "arkadi", + "ga": "stuabhealach", + "gl": "arcada", "he": "ארקדה", "hr": "arkada", "hu": "árkád", @@ -14765,6 +16485,7 @@ "ru": "аркада", "sk": "arkáda", "sl": "arkada", + "sq": "arkada", "sv": "arkad", "tr": "arkat", "uk": "аркада", @@ -14778,6 +16499,7 @@ "be": "тэлефонная будка", "ca": "cabina telefònica", "cs": "veřejný telefonní automat", + "cy": "ciosg ffôn", "da": "telefonboks", "de": "telefonzelle", "en": "telephone booth", @@ -14786,6 +16508,8 @@ "et": "telefoniputka", "fi": "puhelinkioski", "fr": "cabine téléphonique", + "gd": "bogsa-fòn", + "gl": "cabina telefónica", "he": "תא טלפון", "hr": "telefonska govornica", "hu": "telefonfülke", @@ -14793,7 +16517,6 @@ "it": "cabina telefonica", "ja": "電話ブース", "ko": "공중전화 박스", - "ms": "pondok telefon", "nb": "telefonkiosk", "nl": "telefooncel", "pl": "budka telefoniczna", @@ -14803,6 +16526,7 @@ "sv": "telefonkiosk", "tr": "telefon kulübesi", "uk": "телефонна будка", + "ur": "ٹیلی فون بوتھ", "vi": "bốt điện thoại", "zh": "电话亭", "zh-hk": "電話亭" @@ -14813,6 +16537,7 @@ "bg": "колонада", "ca": "columnata", "cs": "kolonáda", + "cy": "colofnres", "da": "kolonnade", "de": "kolonnade", "el": "κιονοστοιχία", @@ -14820,6 +16545,8 @@ "es": "columnata", "et": "kolonnaad", "fa": "سایهگذر", + "ga": "colúnáid", + "gl": "columnata", "he": "אכסדרה", "hu": "oszlopcsarnok", "it": "colonnato", @@ -14863,6 +16590,7 @@ "bg": "пекар", "ca": "flequer", "cs": "pekař", + "cy": "pobydd", "da": "bager", "de": "bäcker", "el": "αρτοποιός", @@ -14872,6 +16600,8 @@ "fa": "نانوا", "fi": "leipuri", "fr": "boulanger ou boulangère", + "ga": "báicéir", + "gl": "panadeiro", "he": "אופה", "hi": "नानबाई", "hr": "pekar", @@ -14880,6 +16610,7 @@ "it": "panettiere", "ja": "製パン工", "ko": "제빵사", + "lt": "kepėjas", "lv": "maiznieks", "nl": "bakker", "pl": "piekarz", @@ -14905,7 +16636,8 @@ "en": "basket weaver", "es": "cestero", "fi": "korintekijä", - "fr": "vannier", + "fr": "vannier ou vannière", + "gl": "cesteiro", "it": "cestaio", "ja": "籠職人", "nb": "kurvmaker", @@ -14921,6 +16653,7 @@ "bg": "пчелар", "ca": "apicultor", "cs": "včelař", + "cy": "gwenynwr", "da": "biavler", "de": "imker", "el": "μελισσοκόμος", @@ -14930,6 +16663,9 @@ "fa": "زنبوردار", "fi": "mehiläishoitaja", "fr": "apiculteur ou apicultrice", + "ga": "beachaire", + "gd": "beachlannair", + "gl": "apicultor", "he": "דבוראי", "hi": "मधुमक्खी पालन", "hr": "pčelar", @@ -14937,6 +16673,7 @@ "it": "apicoltore", "ja": "養蜂家", "ko": "양봉가", + "lt": "bitininkas", "lv": "biškopis", "nb": "birøkter", "nl": "imker", @@ -14959,8 +16696,11 @@ "bg": "ковач", "ca": "ferrer", "cs": "kovář", + "cy": "gof", "da": "smed", - "de": "schmied", + "de": "grobschmied", + "de-at": "schmied", + "de-ch": "schmied", "el": "σιδηρουργός", "en": "blacksmith", "es": "herrero", @@ -14968,6 +16708,9 @@ "fa": "آهنگری", "fi": "seppä", "fr": "forgeron ou forgeronne", + "ga": "gabha", + "gd": "gobha", + "gl": "ferreiro", "he": "נפח", "hi": "लोहार", "hr": "kovač", @@ -14977,10 +16720,9 @@ "ja": "鍛冶屋", "kn": "ಕಮ್ಮಾರ ಅಥವಾ ಬಡಗಿ", "ko": "대장장이", - "lt": "kalvystė", + "lt": "kalvis", "lv": "kalējs", "mr": "लोहार", - "ms": "tukang besi", "nb": "smed", "nl": "ijzersmid", "pl": "kowal", @@ -14991,6 +16733,7 @@ "sl": "kovač", "sv": "smed", "ta": "கொல்லர்", + "te": "black smith", "th": "ช่างตีเหล็ก", "tr": "nalbant", "uk": "коваль", @@ -15005,6 +16748,7 @@ "es": "constructor de barco", "fi": "veneentekijä", "hu": "csónaképítő", + "ja": "ボート製造者", "nb": "båtbygger", "nl": "bootbouwer", "pl": "szkutnik", @@ -15017,7 +16761,8 @@ "bg": "книговезец", "ca": "enquadernador", "cs": "vazárna", - "da": "bogbinder", + "cy": "rhwymwr llyfrau", + "da": "binderi", "de": "buchbinderei", "el": "βιβλιοδέτης", "en": "bindery", @@ -15028,13 +16773,14 @@ "fi": "kirjansitoja", "fr": "atelier de reliure", "he": "כורך ספרים", - "hu": "könyvkötő", + "hu": "könyvkötő műhely", "it": "legatoria", "ja": "バインダリー", "nb": "binderi", "nl": "boekbinderij", "pl": "introligator", "pt": "encadernador", + "pt-br": "oficina de encadernação", "ru": "переплётчик", "sl": "knjigovez", "sv": "bokbindare", @@ -15046,6 +16792,7 @@ "bg": "пивоварна", "ca": "cerveseria", "cs": "pivovar", + "cy": "bragdy", "da": "bryggeri", "de": "brauerei", "el": "ζυθοποιία", @@ -15055,6 +16802,8 @@ "fa": "کارخانه آبجوسازی", "fi": "panimo", "fr": "brasserie", + "ga": "grúdlann", + "gl": "cervexaría", "he": "מבשלה", "hr": "pivovara", "hu": "sörfőzde", @@ -15081,6 +16830,7 @@ "be": "муляр", "ca": "paleta", "cs": "zedník", + "cy": "briciwr", "da": "murer", "de": "maurer", "el": "χτίστης τούβλων", @@ -15088,7 +16838,10 @@ "es": "albañil", "fa": "بنا", "fi": "muurari", - "fr": "maçon", + "fr": "maçon ou maçonne", + "ga": "bríceadóir", + "gl": "albanel", + "he": "בנאי המתמחה בהנחת לבנים", "hr": "zidar", "hu": "kőműves", "it": "muratore", @@ -15113,6 +16866,7 @@ "bg": "марангоз", "ca": "fuster", "cs": "tesař", + "cy": "saer coed", "da": "tømrer", "de": "zimmerer", "el": "μαραγκός", @@ -15122,7 +16876,10 @@ "et": "puusepp", "fa": "درودگر", "fi": "puuseppä", - "fr": "charpentier", + "fr": "charpentier ou charpentière", + "ga": "cearpantóir", + "gd": "saor", + "gl": "carpinteiro", "he": "נגר", "hi": "बढ़ई", "hu": "ács", @@ -15143,6 +16900,7 @@ "sl": "tesar", "sv": "snickare", "ta": "தச்சர்", + "te": "వడ్రంగి", "tr": "marangozluk", "uk": "тесляр", "ur": "نجارت", @@ -15150,6 +16908,7 @@ "zh": "木匠" }, "caterer": { + "ar": "متعهد طعام", "ca": "cuiner de càtering", "cs": "lahůdkář", "el": "τροφοδότης", @@ -15161,14 +16920,33 @@ "nb": "traktør", "pl": "katerer", "ru": "кейтеринг", + "sl": "izvajalec cateringa", "uk": "громадське харчування", "vi": "người cung cấp lương thực, thực phẩm" }, + "cheese": { + "da": "osteri", + "de": "käserei", + "en": "cheesery", + "es": "quesería", + "fi": "juustola", + "fr": "fromagerie", + "ja": "チーズ工場", + "lv": "sierotava", + "nb": "ysteri", + "nl": "kaasmakerij", + "pl": "serownia", + "pt": "queijaria", + "ru": "сыроварня", + "sl": "sirarna", + "sv": "ysteri" + }, "chimney_sweeper": { "ar": "منظف مداخن", "bg": "коминочистач", "ca": "escura-xemeneies", "cs": "kominík", + "cy": "glanhäwr simneiau", "da": "skorstensfejer", "de": "schornsteinfeger", "en": "chimney sweep", @@ -15181,6 +16959,7 @@ "it": "spazzacamino", "ja": "煙突掃除人", "ko": "굴뚝 청소부", + "lv": "skursteņslauķis", "nb": "feier", "nl": "schoorsteenveger", "pl": "kominiarz", @@ -15198,6 +16977,7 @@ "bg": "часовникар", "ca": "rellotger", "cs": "hodinář", + "cy": "clociwr", "da": "urmager", "de": "uhrmacher (größere uhren)", "el": "ωρολογοποιός", @@ -15207,11 +16987,13 @@ "fa": "ساعتساز", "fi": "kelloseppä", "fr": "horloger", + "ga": "déantóir clog", "he": "שען", "hu": "órakészítő", "it": "orologiaio", "ja": "時計職人", "ko": "시계사", + "lt": "laikrodininkas", "nb": "klokkemaker", "nl": "uurwerkmaker", "ru": "часовщик", @@ -15229,6 +17011,7 @@ "da": "konditori", "de": "konditorei", "en": "confectionery", + "es": "confitería", "fi": "konditoria", "fr": "konditorei", "he": "קונדיטוריה", @@ -15237,7 +17020,6 @@ "id": "konditorei", "it": "konditorei", "ja": "ケーキ店", - "ms": "konditorei", "nb": "konditori", "nl": "konditorei", "pl": "cukiernia", @@ -15250,6 +17032,7 @@ "zh": "糕點師" }, "distillery": { + "ar": "مقطر", "ca": "destil·leria", "cs": "palírna", "da": "destilleri", @@ -15259,9 +17042,11 @@ "et": "viinavabrik", "fi": "tislaamo", "fr": "distillerie", + "ga": "drioglann", "he": "מזקקה", "it": "distilleria", "ja": "蒸留所", + "ko": "증류소", "nb": "brenneri", "nl": "destilleerderij", "pl": "gorzelnia", @@ -15285,6 +17070,8 @@ "et": "õmbleja", "fi": "ompelija", "fr": "couturier ou couturière", + "ga": "gúnadóir", + "gl": "modisto", "he": "תופר", "id": "couturier", "it": "modista", @@ -15307,6 +17094,7 @@ "be": "электраманцёр", "ca": "electricista", "cs": "elektrikář", + "cy": "trydanwr", "da": "elektriker", "de": "elektroinstallateur", "el": "ηλεκτρολόγος", @@ -15315,12 +17103,16 @@ "et": "elektrik", "fa": "برقکار", "fi": "sähköasentaja", - "fr": "électricien", + "fr": "électricien ou électricienne", + "ga": "leictreoir", + "gd": "dealanair", + "gl": "electricista", "he": "חשמלאי", "hu": "villanyszerelő", "id": "teknisi listrik", "it": "elettricista", "ja": "電気工事士", + "ko": "전기기술자", "lv": "elektriķis", "nb": "elektriker", "nl": "elektricien", @@ -15329,8 +17121,10 @@ "ru": "электромонтёр", "sk": "elektrikár", "sl": "električar", + "sq": "elektricisti", "sv": "elektriker", "ta": "மின்வினைஞர்", + "te": "ఎలక్ట్రీషియన్", "th": "ช่างไฟฟ้า", "tr": "elektrikçi", "uk": "електромонтер", @@ -15349,6 +17143,7 @@ "bg": "градинар", "ca": "jardiner", "cs": "zahradník", + "cy": "garddwr", "da": "gartner", "de": "gärtner", "el": "κηπουρός", @@ -15358,6 +17153,8 @@ "fa": "باغبان", "fi": "puutarhuri", "fr": "jardinier", + "ga": "garraíodóir", + "gl": "xardineiro", "he": "גנן", "hr": "vrtlar", "hu": "kertész", @@ -15365,6 +17162,7 @@ "it": "giardiniere", "ja": "庭師", "ko": "원예사", + "lt": "sodininkas", "nb": "gartner", "nl": "hovenier", "pl": "ogrodnik", @@ -15374,6 +17172,7 @@ "sk": "záhradník", "sl": "vrtnar", "sv": "trädgårdsmästare", + "ta": "தோட்டக்காரர்", "tr": "bahçıvan", "uk": "садівник", "ur": "مالی", @@ -15393,6 +17192,7 @@ "bg": "мелница", "ca": "molí", "cs": "mlýn", + "cy": "melin", "da": "mølle", "de": "mühle", "el": "μύλος", @@ -15402,6 +17202,8 @@ "fa": "دستگاه آسیاب", "fi": "mylly", "fr": "moulin", + "ga": "muileann", + "gl": "muíño", "he": "מטחנה", "hr": "vjetrenjače", "hu": "malom", @@ -15421,6 +17223,7 @@ "sk": "mlyn", "sl": "mlin", "sv": "kvarn", + "te": "గానుగ", "tr": "değirmen", "uk": "млин", "zh": "研磨" @@ -15439,36 +17242,47 @@ "pt": "artesão", "ru": "ремесленник", "sl": "rokodelec", - "sv": "hantverkare", + "sv": "konsthantverkare", "uk": "ремісник" }, "hvac": { "ar": "التدفئة والتهوية وتكييف الهواء", "be": "кіраванне мікракліматам", "bg": "отопление, вентилация и климатизация", + "ca": "hvac", "cs": "vytápění, ventilace a klimatizace", "da": "vvs", "de": "klimatechnik", "el": "θέρμανση, εξαερισμός, και κλιματισμός", - "en": "hvac", + "en": "heating, ventilation, and air conditioning", "es": "climatización", "et": "kliimatehnika", "fa": "اچویایسی", "fr": "chauffage, ventilation et climatisation", + "gl": "climatización", + "he": "hvac", "hi": "तापन, संवातन तथा वातानुकूलन", "hr": "zrakovod", "hu": "klímatechnika", "id": "pemanasan, sirkulasi, dan penyejuk udara", + "it": "hvac", + "ja": "空気調和工学", + "ko": "hvac", "nb": "varme-, ventilasjons- og sanitærteknikk", - "nl": "heating ventilation air conditioning", + "nl": "klimaattechniek", + "pl": "hvac", "pt": "avac", "ro": "încălzire, ventilare și condiționare de aer", "ru": "управление микроклиматом", "sl": "klimatska tehnika", + "sq": "ngrohja, ventilimi dhe klimatizimi", "sv": "vvs", "ta": "வெப்பவேற்றம், காற்றோட்டம், குளிர்பதனம்", + "te": "hvac", "th": "ระบบปรับอากาศ", + "tr": "hvac", "uk": "опалення, вентиляція та кондиціювання повітря", + "ur": "hvac", "zh": "暖通空調" }, "jeweller": { @@ -15477,6 +17291,7 @@ "bg": "бижутер", "ca": "joier", "cs": "klenotník", + "cy": "gemydd", "da": "juvelér", "de": "juwelier", "el": "κοσμηματοπώλης", @@ -15486,6 +17301,8 @@ "es": "joyero", "fa": "جواهر فروش", "fr": "bijoutier", + "ga": "seodóir", + "gl": "xoieiro", "he": "תכשיטן", "hu": "ékszerész", "it": "gioielliere", @@ -15513,9 +17330,12 @@ "en": "locksmith", "es": "cerrajero", "et": "lukksepp", - "fr": "serrurier ou serrurière", + "fr": "serrurier", + "ga": "glasadóir", "he": "מנעולן", "hu": "lakatos", + "id": "tukang kunci", + "ja": "鍵屋", "nb": "låsesmed", "nl": "slotenmaker", "pl": "ślusarz", @@ -15533,13 +17353,17 @@ "be": "каваль", "ca": "forjador", "cs": "kovotepec", + "cy": "gof metal", "da": "metalarbejder", "de": "metallschmied", "en": "metalsmith", + "es": "forjador", "fa": "متال اسمیت", "fr": "forgeron ou forgeronne", + "ga": "gabha miotail", "he": "מסגר", "hr": "kovač", + "it": "fabbro forgiatore", "ja": "鍛冶", "nb": "smed", "nl": "metaalsmid", @@ -15548,13 +17372,15 @@ "sl": "kovač", "sv": "smed", "tr": "demircilik", + "uk": "коваль", "zh": "金属工匠" }, "optician": { - "ar": "نظاراتي", + "ar": "اختصاصي بصريات", "be": "оптык", "ca": "òptic", "cs": "optik", + "cy": "optegydd", "da": "optiker", "de": "augenoptiker", "el": "οπτικός", @@ -15562,19 +17388,23 @@ "es": "óptico", "fa": "عینکسازی", "fi": "optometristi", - "fr": "opticien-lunetier", + "fr": "opticien-lunetier ou opticienne-lunetière", + "ga": "radharceolaí", + "gl": "óptico", "he": "אופטיקאי", "hu": "optikus", "id": "ahli optik", "it": "ottico", "ja": "眼鏡店", "ko": "안경사", + "lt": "optikas", "nb": "optiker", "nl": "opticien", "pl": "optyk", "ru": "оптик", "sl": "optik", "sv": "optiker", + "ta": "கண்ணாடியாளர்", "tr": "optisyen", "zh": "配鏡師" }, @@ -15582,6 +17412,7 @@ "ar": "نقَّاش", "ca": "pintor", "cs": "malíř pokojů", + "cy": "peintiwr a farneisiwr", "da": "maler", "de": "maler und lackierer", "el": "ελαιοχρωματιστής", @@ -15592,6 +17423,8 @@ "fa": "نقاش ساختمان", "fi": "maalari", "fr": "peintre en bâtiment", + "ga": "péintéir", + "gl": "pintor", "he": "צבע", "hu": "szobafestő", "it": "imbianchino", @@ -15615,6 +17448,7 @@ "bg": "фотограф", "ca": "fotògraf", "cs": "fotograf", + "cy": "ffotograffydd", "da": "fotograf", "de": "fotograf", "el": "φωτογράφος", @@ -15624,6 +17458,9 @@ "fa": "عکاس", "fi": "valokuvaaja", "fr": "photographe", + "ga": "grianghrafadóir", + "gd": "neach togail dhealbhan", + "gl": "fotógrafo", "he": "צלם", "hi": "फोटोग्राफर", "hr": "fotograf", @@ -15635,7 +17472,6 @@ "lt": "fotografas", "lv": "fotogrāfs", "ml": "ഛായാഗ്രാഹകൻ", - "ms": "jurugambar", "nb": "fotograf", "nl": "fotograaf", "pl": "fotograf", @@ -15644,8 +17480,10 @@ "ru": "фотограф", "sk": "fotograf", "sl": "fotograf", + "sq": "fotograf", "sv": "fotograf", "ta": "ஒளிப்படக் கலைஞர்", + "te": "ఛాయాగ్రాహకుడు", "th": "ช่างภาพ", "tr": "fotoğrafçı", "uk": "фотограф", @@ -15661,6 +17499,7 @@ "en": "photographic laboratory", "es": "laboratorio fotográfico", "fi": "valokuvauslaboratorio", + "fr": "laboratoire photographique", "it": "laboratorio fotografico", "ja": "写真現像所", "nl": "fotolaboratorium", @@ -15670,11 +17509,13 @@ "piano_tuner": { "ca": "afinador", "cs": "ladič pian", + "da": "klaverstemmer", "de": "klavierstimmer", + "el": "χορδιστής πιάνου", "en": "piano tuner", "es": "afinador de pianos", "fi": "pianonvirittäjä", - "fr": "accordeur", + "fr": "accordeur ou accordeuse de pianos", "he": "כוונן פסנתרים", "hu": "zongorahangoló", "it": "accordatore di pianoforti", @@ -15689,23 +17530,22 @@ "plasterer": { "ar": "جصاص", "ca": "estuquista", - "cs": "štukatérství", + "cs": "štukatér", "da": "stukkatør", "de": "stuckateur", - "de-ch": "gipser", - "en": "stuccoist", - "es": "enyesado", - "et": "krohvimine", + "en": "plasterer", + "es": "yesero", "fr": "plâtrier", - "hu": "stukkátor", + "ga": "plástrálaí", + "hu": "vakolómunkás", "it": "stuccatore", "ja": "左官", "nb": "stukkatør", "nl": "stukadoor", - "pl": "tynkarstwo", + "pl": "tynkarz", "ro": "tencuitor", "ru": "штукатур", - "sl": "štukaturno delo", + "sl": "štukater", "sv": "spacklare", "uk": "штукатур", "zh": "泥水工" @@ -15724,13 +17564,17 @@ "et": "torumees", "fa": "لولهکش", "fi": "lvi-asentaja", - "fr": "plombier", + "fr": "plombier ou plombière", + "ga": "pluiméir", + "gd": "plumair", + "gl": "fontaneiro", "he": "שרברב", "hu": "víz- és gázszerelő", "id": "tukang ledeng", "it": "idraulico", "ja": "配管工", "ko": "배관공", + "lt": "santechnikas", "nb": "rørlegger", "nl": "loodgieter", "pl": "hydraulik", @@ -15742,7 +17586,7 @@ "ta": "குழாய்நுட்பர்", "tr": "tesisatçı", "uk": "сантехнік", - "ur": "پلمبر", + "ur": "نل ساز", "vi": "thợ sửa ống nước", "zh": "水管工" }, @@ -15751,6 +17595,7 @@ "be": "гаршэчнік", "ca": "terrissaire", "cs": "hrnčíř", + "cy": "crochenydd", "da": "pottemager", "de": "töpfer", "el": "αγγειοπλάστης", @@ -15759,6 +17604,8 @@ "et": "pottsepp", "fi": "keraamikko", "fr": "potier ou potière", + "ga": "criadóir", + "gl": "oleiro", "he": "קדר", "hi": "कुम्हार", "hu": "fazekas", @@ -15766,8 +17613,8 @@ "it": "vasaio", "ja": "陶芸家", "ko": "옹기장이", + "lt": "puodžius", "lv": "podnieks", - "ms": "tukang periuk", "nb": "pottemaker", "nl": "pottenbakker", "pl": "garncarz", @@ -15780,13 +17627,59 @@ "ta": "குயவர்", "uk": "гончар", "ur": "کمہار", + "vi": "thợ gốm", "zh": "陶艺家" }, + "printer": { + "ar": "مطبعة", + "be": "друкарня", + "bg": "печатница", + "ca": "impremta", + "cs": "tiskárna", + "cy": "gwasg", + "da": "trykkeri", + "de": "druckerei", + "el": "τυπογραφείο", + "en": "printing company", + "en-ca": "printer", + "en-gb": "printer", + "es": "imprenta", + "et": "trükikoda", + "fi": "kirjapaino", + "fr": "imprimerie", + "hr": "tiskara", + "hu": "nyomda", + "id": "percetakan", + "it": "stamperia", + "ja": "印刷会社", + "kn": "ಮುದ್ರಕ (ಪ್ರಕಾಶನ)", + "ko": "인쇄소", + "lt": "spaustuvė", + "lv": "tipogrāfijas uzņēmums", + "ml": "അച്ചുകൂടം", + "nb": "trykkeri", + "nl": "drukkerij", + "pl": "drukarnia", + "pt": "gráfica", + "ro": "tipografie (întreprindere)", + "ru": "типография", + "sl": "tiskarna", + "sq": "shtypshkronja", + "sv": "tryckeri", + "ta": "அச்சுப்பொறி வகைகள்", + "te": "ప్రింటర్", + "tr": "yazıcı (yayımcı)", + "uk": "друкарня", + "vi": "nhà in", + "zh": "印刷商" + }, "printmaker": { + "af": "drukmaker", "ar": "مصمم مطبوعات", "be": "мастак-гравёр", "ca": "gravador", "cs": "tiskař", + "cy": "gwneuthurwr printiau", "da": "gravør", "de": "druckgrafiker", "el": "χαράκτης", @@ -15795,6 +17688,8 @@ "et": "graafik", "fi": "kaivertaja", "fr": "graveur ou graveuse d'estampes", + "ga": "déantóir priontaí", + "gl": "gravador", "he": "אמן הדפס", "hr": "tiskar", "hu": "gravírozó", @@ -15803,14 +17698,13 @@ "ja": "版画家", "ko": "판화가", "lt": "spaustuvininkas", - "ms": "ahli seni cetak", "nb": "grafiker", "nl": "prentkunstenaar", "pl": "rytownik", - "pt": "gravurista", - "pt-br": "gravador", + "pt": "gravador", "ro": "artist grafic", "ru": "художник-гравёр", + "sk": "tlačiar", "sl": "tiskarski grafik", "sv": "gravör", "tr": "grafiker", @@ -15845,21 +17739,24 @@ "pt": "telhadista", "pt-br": "carpinteiro", "ru": "кровельщик", + "sl": "krovec", "uk": "покрівельник" }, "saddler": { "ca": "baster", "cs": "sedlář", + "cy": "cyfrwywr", "da": "saddelmager", "de": "sattler", "en": "saddler", "es": "talabartero", "et": "sadulsepp", "fa": "سراج اسب", - "fi": "satulasepät", + "fi": "satulaseppä", "fr": "bourrelier", "hu": "szíjgyártó", "it": "sellaio", + "ja": "鞍職人", "nb": "salmaker", "nl": "zadelmaker", "pl": "rymarz", @@ -15871,11 +17768,14 @@ "sailmaker": { "ca": "veler", "cs": "plachtář", + "cy": "gof hwyl llongau", + "da": "sejlmager", "de": "segelmacher", "en": "sailmaker", "es": "velero", "fi": "purjeentekijä", "fr": "voilerie", + "ga": "déantóir seolta", "it": "velaio", "ja": "製帆職人", "nb": "seilmaker", @@ -15899,6 +17799,7 @@ "fa": "کارخانه چوب بری والوارسازی", "fi": "saha", "fr": "scierie", + "gl": "serradoiro", "he": "מנסרה", "hi": "आरा मिल", "hr": "pilana", @@ -15913,6 +17814,7 @@ "pl": "tartak", "pt": "serração", "pt-br": "serraria", + "ro": "fabrică de cherestea", "ru": "лесопилка", "sk": "píla", "sl": "žaga", @@ -15923,6 +17825,7 @@ "scaffolder": { "de": "gerüstbauer", "en": "scaffolder", + "fr": "échafaudeur ou échafaudeuse", "pl": "monter rusztowań" }, "sculptor": { @@ -15932,6 +17835,7 @@ "bg": "скулптор", "ca": "escultor", "cs": "sochař", + "cy": "cerflunydd", "da": "billedhugger", "de": "bildhauer", "el": "γλύπτης", @@ -15941,6 +17845,9 @@ "fa": "مجسمهساز", "fi": "kuvanveistäjä", "fr": "sculpteur ou sculptrice", + "ga": "dealbhóir", + "gd": "snaidheadair", + "gl": "escultor", "he": "פסל", "hi": "शिल्पकार", "hr": "kipar", @@ -15953,7 +17860,6 @@ "lv": "skulptors", "ml": "ശില്പി", "mr": "शिल्पकार", - "ms": "pengarca", "nb": "billedhugger", "nl": "beeldhouwer", "pl": "rzeźbiarz", @@ -15961,8 +17867,11 @@ "ru": "скульптор", "sk": "sochár", "sl": "kipar", + "sq": "skulptor", "sv": "skulptör", "ta": "சிற்பி", + "te": "శిల్పి", + "th": "ประติมากร", "tr": "heykeltıraş", "uk": "скульптор", "ur": "مجسمہ ساز", @@ -15975,6 +17884,7 @@ "bg": "обущар", "ca": "sabater", "cs": "obuvník", + "cy": "crydd", "da": "skomager", "de": "schuhmacher", "el": "τσαγκάρης", @@ -15982,12 +17892,15 @@ "es": "zapatero", "et": "kingsepp", "fi": "suutari", - "fr": "cordonnier", + "fr": "cordonnier ou cordonnière", + "ga": "gréasaí", + "gd": "greusaiche", + "gl": "zapateiro", "he": "סנדלר", "hu": "cipész", "it": "calzolaio", "ja": "靴職人", - "lt": "batsiuvystė", + "lt": "batsiuvys", "lv": "kurpnieks", "nb": "skomaker", "nl": "schoenmaker", @@ -16009,7 +17922,7 @@ "en": "exhibition stand builder", "nl": "standbouwer", "pl": "wykonawca zabudowy stoisk", - "sl": "postavljavec sejemskih konstrukcij", + "sl": "postavljavec razstav", "sv": "mässbyggare", "uk": "будівельник виставкових стендів" }, @@ -16019,13 +17932,17 @@ "bg": "каменоделство", "ca": "picapedrer", "cs": "kameník", + "cy": "saer maen", "da": "stenhugger", "de": "steinmetz", "el": "λιθοξόος", "en": "stonemason", "es": "cantero", "fi": "kivenhakkaaja", - "fr": "tailleur de pierre", + "fr": "tailleur ou tailleuse de pierre", + "ga": "saor cloiche", + "gd": "clachair", + "gl": "canteiro", "he": "סיתות", "hr": "klesar", "hu": "kőfaragó", @@ -16049,6 +17966,7 @@ "bg": "шивач", "ca": "sastre", "cs": "krejčí", + "cy": "teiliwr", "da": "skrædder", "de": "schneider", "el": "ράφτης", @@ -16058,6 +17976,8 @@ "fa": "خیاط", "fi": "vaatturi", "fr": "tailleur ou tailleuse", + "ga": "táilliúir", + "gl": "xastre", "he": "חייט", "hi": "दर्जी", "hu": "szabó", @@ -16076,8 +17996,10 @@ "ru": "портной", "sk": "krajčír", "sl": "krojač", + "sq": "terzinjtë", "sv": "skräddare", "ta": "தையற்கலைஞர்", + "te": "దర్జీ", "tr": "terzi", "uk": "кравець", "ur": "درزی", @@ -16092,7 +18014,7 @@ "de": "fliesenleger", "en": "tiler", "es": "tejero", - "fr": "carreleur", + "fr": "carreleur ou carreleuse", "it": "piastrellista", "nl": "tegelzetter", "pt": "ladrilheiro", @@ -16104,11 +18026,15 @@ "be": "бляхар", "ca": "llauner", "cs": "klempíř", + "cy": "gof gwyn", "de": "spengler", "el": "τενεκετζής", "en": "whitesmith", "es": "hojalatero", + "fa": "حلبیساز", "fr": "ferblantier", + "ga": "gabha stáin", + "gl": "latoeiro", "he": "פחח", "hu": "bádogos", "it": "magnano", @@ -16119,6 +18045,7 @@ "ru": "жестянщик", "sl": "kositrar", "sv": "plåtslagare", + "th": "ช่างตีบุก", "uk": "бляхар" }, "turner": { @@ -16137,17 +18064,19 @@ "pl": "tokarz", "ro": "strungar", "ru": "токарь", + "sl": "strugar", "sv": "svarvare", "uk": "токар" }, "upholsterer": { "cs": "čalouník", + "cy": "clustogwr", "da": "møbelpolstrer", "de": "polsterer", "en": "upholsterer", "es": "tapicero", "fi": "verhoilijat", - "fr": "tapissier", + "fr": "tapissier ou tapissière", "he": "רפד", "hu": "kárpitos", "it": "tappezziere", @@ -16164,6 +18093,7 @@ "be": "гадзіншчык", "ca": "rellotger", "cs": "hodinář", + "cy": "oriadurwr", "da": "urmager", "de": "uhrmacher", "el": "ωρολογοποιός", @@ -16172,6 +18102,8 @@ "fa": "ساعتساز", "fi": "kelloseppä", "fr": "horloger ou horlogère", + "ga": "uaireadóirí", + "gl": "reloxeiro", "he": "שען", "hi": "घड़ीसाज़", "hr": "urar", @@ -16179,13 +18111,15 @@ "it": "orologiaio", "ja": "時計職人", "ko": "시계 제작자", + "lt": "laikrodininkas", "mr": "घड्याळजी", "nb": "urmaker", "nl": "horlogemaker", "pl": "zegarmistrz", "pt": "relojoeiro", "ru": "часовщик", - "sl": "urar (male ure)", + "sl": "urar", + "sq": "sahatçi", "sv": "urmakare", "tr": "saatçi", "uk": "годинникар", @@ -16193,11 +18127,13 @@ "zh": "錶匠" }, "winery": { + "af": "wynmakery", "ar": "منبذة", "be": "вінаробная гаспадарка", "bg": "винарска изба", "ca": "celler", "cs": "budova vinařství", + "cy": "gwinllannwr", "da": "vingård", "de": "weingut", "el": "οινοποιείο", @@ -16207,11 +18143,14 @@ "fa": "شرابخانه", "fi": "viininvalmistaja", "fr": "domaine viticole", + "ga": "fíonlann", + "gl": "lagar", "he": "יקב", "hr": "vinarija", "hu": "pincészet", "it": "casa vinicola", "ja": "ワイナリー", + "ko": "와이너리", "nb": "vingård", "nl": "wijndomein", "pl": "winiarnia", @@ -16220,6 +18159,7 @@ "ru": "винодельческое хозяйство", "sk": "vinár", "sl": "vinarna", + "sq": "veraria", "sv": "vineri", "tr": "şaraphane", "uk": "виноробня", @@ -16242,6 +18182,7 @@ "hr": "portalna dizalica", "ja": "ガントリークレーン", "ko": "갠트리 크레인", + "nb": "portalkran", "nl": "portaalkraan", "pl": "suwnica", "ru": "козловой кран", @@ -16259,13 +18200,15 @@ "ca": "java openstreetmap editor", "en": "josm", "es": "java openstreetmap editor", + "gl": "java openstreetmap editor", "sv": "java openstreetmap editor" }, "gnome-maps_3.33.3": { + "ar": "خرائط جنوم", "de": "gnome karten", "en": "gnome maps", "es": "gnome mapas", - "fr": "gnome cartes", + "fr": "gnome cartes", "it": "mappe", "pt": "gnome mapas" } @@ -16278,6 +18221,7 @@ "bg": "кафеено дърво", "ca": "gra de cafè", "cs": "kávová zrna", + "cy": "ffeuen goffi", "da": "kaffebønne", "de": "kaffeebohne", "de-ch": "kaffee", @@ -16290,6 +18234,8 @@ "fa": "دانه قهوه", "fi": "kahvipapu", "fr": "grain de café", + "ga": "coffea", + "gl": "cafeeira", "he": "פולי קפה", "hi": "कॉफ़ी के बीज", "hr": "kava", @@ -16301,7 +18247,6 @@ "lt": "kavos pupelė", "lv": "kafijas pupiņa", "ml": "കാപ്പി", - "ms": "biji kopi", "nb": "kaffebønne", "nl": "koffieboon", "pl": "ziarno kawy", @@ -16310,9 +18255,12 @@ "ru": "кофейное зерно", "sk": "kávové zrno", "sl": "kavno zrno", + "sq": "coffea", "sv": "kaffeböna", "ta": "கோப்பி", + "te": "కాఫియా", "th": "สกุลกาแฟ", + "tr": "coffea", "uk": "кавове зерно", "vi": "hạt cà phê", "zh": "咖啡豆" @@ -16320,17 +18268,21 @@ "flowers": { "bg": "цвете", "cs": "květina", + "cy": "planhigyn blodeuol", "de": "blume", "en": "flowering plant", "es": "flores", "et": "lilled", "fr": "fleurs", + "ga": "planda bláthach", "it": "pianta fiorita", "lt": "gėlė", - "ms": "tumbuhan berbunga", "nl": "bloemen", - "ru": "цветок", - "sl": "cvetnica" + "pt": "planta com flor", + "ru": "цветочное растение", + "sl": "cvetnica", + "sq": "lulet", + "zh": "花卉植物" }, "rice": { "ar": "حقل الأرز", @@ -16354,12 +18306,14 @@ "ko": "논", "lt": "lietinimas", "ml": "കണ്ടം", - "ms": "sawah", "nb": "rismark", "nl": "rijstveld", + "pt": "arrozal", "ru": "заливное поле", + "sk": "ryžové pole", "sl": "riževo polje", "ta": "நெல் வயல்", + "te": "మాగాణి", "th": "นา", "tr": "çeltik tarlası", "uk": "заливне поле", @@ -16373,6 +18327,7 @@ "bg": "ананасова ягода", "ca": "maduixot", "cs": "jahodník velkoplodý", + "cy": "mefus", "da": "jordbær", "de": "gartenerdbeere", "el": "φράουλα", @@ -16383,12 +18338,14 @@ "fa": "توتفرنگی", "fi": "puutarhamansikka", "fr": "fraisier cultivé", + "ga": "fragaria ×ananassa", + "gl": "amorodo", "he": "תות שדה", "hi": "स्ट्रॉबेरी", "hr": "vrtna jagoda", "hu": "eper", "id": "stroberi", - "it": "fragaria × ananassa", + "it": "fragola", "ja": "イチゴ", "kn": "ಸ್ಟ್ರಾಬೆರಿ", "ko": "딸기", @@ -16396,15 +18353,17 @@ "lv": "dārza zemene", "ml": "ഗാർഡൻ സ്ട്രോബെറി", "mr": "स्ट्रॉबेरी", - "ms": "strawberi", "nb": "hagejordbær", "nl": "aardbeienplant", "pl": "truskawka", "pt": "morango", "ro": "căpșună", "ru": "земляника садовая", + "sl": "jagoda", + "sq": "luleshtrydhja", "sv": "jordgubbe", "ta": "செம்புற்றுப்பழம்", + "te": "స్ట్రాబెర్రీ", "th": "สตรอว์เบอร์รี", "tr": "bahçe çileği", "uk": "полуниці садові", @@ -16420,11 +18379,13 @@ "cs": "čajovník čínský", "da": "tebusk", "de": "tee", + "el": "καμέλια η σινική", "en": "camellia sinensis", "et": "teepõõsas", "fa": "کاملیا سیننسیس", "fi": "teepensas", "fr": "théier", + "gl": "té", "he": "קמליה סינית", "hi": "कामेल्या सीनेन्सीस्", "hr": "kineski čajevac", @@ -16434,7 +18395,6 @@ "lt": "kininis arbatmedis", "lv": "tējas koks", "ml": "തേയില", - "ms": "teh", "nl": "theeplant", "pl": "herbata chińska", "ru": "чай", @@ -16442,6 +18402,7 @@ "sl": "čajevec", "sv": "tebuske", "ta": "தேயிலை", + "te": "తేయాకు", "th": "ต้นชา", "tr": "çay", "uk": "чай", @@ -16456,6 +18417,7 @@ "bg": "пшеница", "ca": "blat", "cs": "pšenice", + "cy": "gwenith", "da": "hvede", "de": "weizen", "el": "σιτάρι", @@ -16465,6 +18427,8 @@ "fa": "گندم", "fi": "vehnä", "fr": "blé", + "ga": "cruithneacht", + "gl": "trigo", "he": "חיטה", "hi": "गेहूं", "hr": "pšenica", @@ -16478,7 +18442,6 @@ "lv": "kvieši", "ml": "ഗോതമ്പ്", "mr": "गहू", - "ms": "gandum", "nb": "hvete", "nl": "tarwe", "pl": "pszenica", @@ -16487,8 +18450,10 @@ "ru": "пшеница", "sk": "pšenica", "sl": "pšenica", + "sq": "gruri", "sv": "brödvete", "ta": "கோதுமை", + "te": "గోధుమ", "th": "ข้าวสาลี", "tr": "triticum", "uk": "пшениця", @@ -16505,6 +18470,7 @@ "en": "quiet zone", "es": "zona tranquila", "pt": "sinal “apite”", + "sl": "območje tišine", "th": "ป้ายหวีด" } }, @@ -16518,14 +18484,17 @@ "de": "druckknopfanlage", "en": "pelican crossing", "fa": "زیگزاگ توقف ممنوع", + "tr": "pelikan geçidi", "zh": "鵜鶘式人行橫道" }, "puffin": { "en": "puffin crossing", + "tr": "fratercula geçidi", "zh": "海雀式人行橫道" }, "toucan": { - "en": "toucan crossing" + "en": "toucan crossing", + "tr": "tukan geçidi" }, "zebra": { "ca": "pas de vianants", @@ -16536,18 +18505,23 @@ "fr": "bande de passage piéton", "hu": "zebrával jelzett gyalogos-átkelőhely", "id": "zebra cross", + "ja": "横断歩道 (横縞模様)", "ml": "സീബ്ര ക്രോസ്സിംഗ്", - "ms": "lintasan belang", "nl": "zebrapad", "pl": "zebra", "ru": "зебра", "sl": "prehod z zebro", "ta": "வரிக்கடவை", "ur": "زیبرا کراسنگ", - "zh": "斑馬線" + "zh": "斑馬線", + "zh-cn": "斑马线" } }, "cuisine": { + "american": { + "en": "american restaurant", + "ja": "アメリカ料理店" + }, "arab": { "ar": "مطبخ عربي", "be": "арабская кухня", @@ -16568,7 +18542,6 @@ "ja": "アラブ料理", "ko": "아랍 음식", "lv": "arābu virtuve", - "ms": "masakan arab", "nl": "arabische keuken", "pl": "kuchnia arabska", "pt": "culinária árabe", @@ -16585,24 +18558,27 @@ "be": "аргенцінская кухня", "ca": "gastronomia de argentina", "cs": "argentinská kuchyně", + "cy": "coginiaeth yr ariannin", "de": "argentinische küche", - "en": "argentine cuisine", + "en": "argentinian restaurant", "es": "gastronomía de argentina", "fa": "آشپزی آرژانتینی", "fi": "argentiinalainen keittiö", "fr": "cuisine argentine", + "ga": "cócaireacht na hairgintíne", "he": "המטבח הארגנטינאי", + "hu": "argentin konyha", "id": "masakan argentina", "it": "cucina argentina", - "ja": "アルゼンチン料理", + "ja": "アルゼンチン料理店", "ko": "아르헨티나 요리", "lv": "argentīniešu virtuve", - "ms": "makanan di argentina", "nl": "argentijnse keuken", "pl": "kuchnia argentyńska", "pt": "culinária da argentina", "ro": "bucătăria argentiniană", "ru": "аргентинская кухня", + "sl": "argentinska kuhinja", "sv": "argentinska köket", "tr": "arjantin mutfağı", "uk": "аргентинська кухня", @@ -16621,6 +18597,7 @@ "fa": "آشپزی آسیایی", "fi": "aasialainen keittiö", "fr": "cuisine asiatique", + "ga": "cócaireacht na háise", "he": "המטבח האסייתי", "hi": "एशियाई भोजन", "hu": "ázsiai konyha", @@ -16630,7 +18607,6 @@ "ko": "아시아 요리", "lv": "āzijas virtuve", "ml": "ഏഷ്യയിലെ ഭക്ഷണവിഭവങ്ങൾ", - "ms": "masakan asia", "nl": "aziatische keuken", "pt": "culinária da ásia", "ru": "азиатская кухня", @@ -16652,13 +18628,14 @@ "fa": "آشپزی استرالیایی", "fi": "australialainen keittiö", "fr": "cuisine australienne", + "ga": "cócaireacht na hastráile", "he": "המטבח האוסטרלי", + "hu": "ausztrál konyha", "id": "masakan australia", "it": "cucina australiana", "ja": "オーストラリア料理", "ko": "오스트레일리아 요리", "lv": "austrāliešu virtuve", - "ms": "masakan australia", "nl": "australische keuken", "pl": "kuchnia australijska", "pt": "culinária da austrália", @@ -16670,6 +18647,10 @@ "vi": "ẩm thực úc", "zh": "澳大利亞飲食" }, + "austrian": { + "en": "austrian restaurant", + "ja": "オーストリア料理店" + }, "bagel": { "ar": "بايغل", "bg": "бейгъл", @@ -16690,6 +18671,7 @@ "zh-cn": "贝果" }, "balkan": { + "ar": "مطبخ بلقاني", "be": "балканская кухня", "bg": "балканска кухня", "ca": "gastronomia dels balcans", @@ -16701,6 +18683,7 @@ "et": "balkani köök", "fr": "cuisine des balkans", "he": "המטבח הבלקני", + "hu": "balkáni konyha", "id": "hidangan balkan", "ja": "バルカン半島の料理", "pl": "kuchnia bałkańska", @@ -16708,6 +18691,7 @@ "ro": "bucătăria balcanică", "ru": "балканская кухня", "sl": "balkanska kuhinja", + "sq": "kuzhina balkanike", "tr": "balkan mutfağı", "uk": "балканська кухня", "vi": "ẩm thực balkan", @@ -16724,17 +18708,21 @@ "ca": "gastronomia de bolívia", "cs": "bolivijská kuchyně", "de": "bolivianische küche", - "en": "bolivian cuisine", + "en": "bolivian restaurant", "es": "gastronomía de bolivia", "fr": "cuisine bolivienne", + "ga": "cócaireacht na bolaive", + "gl": "gastronomía de bolivia", "he": "המטבח הבוליבאני", + "hu": "bolíviai konyha", "it": "cucina boliviana", - "ja": "ボリビア料理", + "ja": "ボリビア料理店", "ko": "볼리비아 요리", "nl": "boliviaanse keuken", "pl": "kuchnia boliwijska", "pt": "culinária da bolívia", "ru": "боливийская кухня", + "sl": "bolivijska kuhinja", "sv": "bolivianska köket", "tr": "bolivya mutfağı", "uk": "болівійська кухня" @@ -16745,15 +18733,17 @@ "ca": "gastronomia del brasil", "cs": "brazilská kuchyně", "de": "brasilianische küche", - "en": "brazilian cuisine", + "en": "brazilian restaurant", "es": "gastronomía de brasil", "fa": "آشپزی برزیلی", "fi": "brasilialainen keittiö", "fr": "cuisine brésilienne", + "ga": "cócaireacht na brasaíle", "he": "המטבח הברזילאי", + "hu": "brazil konyha", "id": "hidangan brasil", "it": "cucina brasiliana", - "ja": "ブラジル料理", + "ja": "ブラジル料理店", "ko": "브라질 요리", "lv": "brazīliešu virtuve", "nl": "braziliaanse keuken", @@ -16767,6 +18757,11 @@ "vi": "ẩm thực brasil", "zh": "巴西飲食" }, + "breakfast": { + "en": "breakfast restaurant", + "he": "מסעדת ארוחת בוקר", + "zh": "早餐店" + }, "british": { "ar": "مطبخ بريطاني", "ca": "cuina britànica", @@ -16777,14 +18772,15 @@ "fa": "آشپزی بریتانیایی", "fi": "brittiläinen keittiö", "fr": "cuisine britannique", + "ga": "cócaireacht na breataine", "he": "המטבח הבריטי", + "hu": "brit konyha", "id": "masakan britania", "it": "cucina britannica", "ja": "イギリス料理", "ko": "영국 요리", "lt": "britų virtuvė", "lv": "britu virtuve", - "ms": "masakan british", "nl": "britse keuken", "pl": "kuchnia brytyjska", "pt": "culinária do reino unido", @@ -16811,17 +18807,20 @@ "id": "teh susu mutiara", "ja": "タピオカティー", "ko": "버블티", - "ms": "teh susu mutiara", "nb": "te med kuler", "nl": "bubbelthee", "pt": "chá de bolhas", "ru": "чай с шариками", "th": "ชานมไข่มุก", "tr": "i̇nci çayı", + "uk": "бульбашковий чай", "ur": "ببل ٹی / بلبلہ چائے", "vi": "trà sữa trân châu", "zh": "珍珠奶茶" }, + "buffet": { + "en": "buffet restaurant" + }, "burger": { "af": "hamburger", "ar": "هامبرغر", @@ -16829,6 +18828,7 @@ "bg": "хамбургер", "ca": "hamburgueseria", "cs": "hamburger", + "cy": "hambyrgyr", "da": "burger", "de": "burger", "de-ch": "hamburger", @@ -16841,6 +18841,7 @@ "fa": "همبرگر", "fi": "hampurilaisravintola", "fr": "hamburger", + "gl": "hamburguesa", "he": "המבורגרייה", "hi": "हैमबर्गर", "hr": "hamburger", @@ -16853,16 +18854,15 @@ "lv": "hamburgers", "ml": "ഹാംബർഗർ", "mr": "ह्यामबर्गर", - "ms": "hamburger", "nb": "hamburger", "nl": "hamburger", "pl": "hamburger", "pt": "hambúrguer", - "pt-br": "hamburguer", "ro": "hamburger", - "ru": "гамбургер", + "ru": "бургерная", "sk": "hamburger", "sl": "hamburger", + "sq": "hamburgeri", "sv": "hamburgerbar", "ta": "பர்கர்", "th": "แฮมเบอร์เกอร์", @@ -16876,9 +18876,10 @@ }, "caribbean": { "ar": "مطبخ كاريبي", + "ca": "gastronomia del carib", "cs": "karibská kuchyně", "de": "karibische küche", - "en": "caribbean cuisine", + "en": "caribbean restaurant", "es": "gastronomía del caribe", "fr": "cuisine antillaise", "it": "cucina caraibica", @@ -16890,6 +18891,33 @@ "sl": "karibska kuhinja", "zh": "加勒比飲食" }, + "catalan": { + "ar": "مطبخ كتالوني", + "bg": "каталонска кухня", + "ca": "gastronomia dels països catalans", + "cs": "katalánská kuchyně", + "de": "katalanische küche", + "en": "catalan cuisine", + "es": "gastronomía de cataluña", + "fr": "cuisine catalane", + "ga": "cócaireacht na catalóine", + "he": "המטבח הקטלוני", + "it": "cucina catalana", + "ja": "カタルーニャ料理", + "ko": "카탈루냐 요리", + "lv": "kataloņu virtuve", + "nl": "catalaanse keuken", + "pl": "kuchnia katalońska", + "pt": "culinária da catalunha", + "ro": "bucătăria catalană", + "ru": "каталонская кухня", + "sl": "katalonska kuhinja", + "sv": "katalanska köket", + "tr": "katalan mutfağı", + "uk": "каталонська кухня", + "vi": "ẩm thực catalunya", + "zh": "加泰隆尼亞飲食" + }, "chinese": { "af": "chinese kookkuns", "ar": "مطبخ صيني", @@ -16906,6 +18934,7 @@ "fa": "آشپزی چینی", "fi": "kiinalainen keittiö", "fr": "cuisine chinoise", + "ga": "cócaireacht na síne", "he": "המטבח הסיני", "hi": "चीनी व्यंजन", "hr": "kineska kuhinja", @@ -16916,7 +18945,6 @@ "ko": "중국 요리", "lt": "kinų virtuvė", "lv": "ķīniešu virtuve", - "ms": "masakan china", "nb": "det kinesiske kjøkken", "nl": "chinese keuken", "pl": "kuchnia chińska", @@ -16931,11 +18959,27 @@ "tr": "çin mutfağı", "uk": "китайська кухня", "vi": "ẩm thực trung quốc", - "zh": "中国菜" + "zh": "中国菜", + "zh-hk": "中式餐館", + "zh-tw": "中菜" + }, + "colombian": { + "en": "colombian restaurant", + "ja": "コロンビア料理店" + }, + "crepe": { + "ca": "creperia", + "en": "crêperie", + "es": "crepería", + "fi": "kreppiravintola", + "lt": "blyninė", + "pt": "creperia", + "ru": "блинная" }, "croatian": { "ar": "مطبخ كرواتي", "be": "харвацкая кухня", + "ca": "gastronomia de croàcia", "cs": "chorvatská kuchyně", "de": "kroatische küche", "el": "κροατική κουζίνα", @@ -16943,8 +18987,10 @@ "es": "gastronomía de croacia", "fa": "آشپزی کرواتی", "fr": "cuisine croate", + "ga": "cócaireacht na cróite", "he": "המטבח הקרואטי", "hr": "hrvatska kuhinja", + "hu": "horvát konyha", "id": "hidangan kroasia", "it": "cucina croata", "ja": "クロアチア料理", @@ -16972,7 +19018,10 @@ "fa": "کیک فنجانی", "fi": "kuppikakku", "fr": "cupcake", + "ga": "borróg", + "gl": "cupcake", "he": "קאפקייק", + "hi": "कपकेक", "hu": "cupcake", "id": "kue mangkok", "it": "cupcake", @@ -16980,7 +19029,6 @@ "kn": "ಕಪ್ಕೇಕ್", "ko": "컵케이크", "lv": "glazūrkēkss", - "ms": "kek cawan", "nb": "cupcake", "nl": "cupcake", "pl": "cupcake", @@ -17009,6 +19057,7 @@ "fa": "آشپزی چکی", "fi": "tšekkiläinen keittiö", "fr": "cuisine tchèque", + "ga": "cócaireacht phoblacht na seice", "he": "המטבח הצ'כי", "hr": "češka kuhinja", "hu": "cseh konyha", @@ -17040,7 +19089,9 @@ "fa": "آشپزی دانمارکی", "fi": "tanskalainen keittiö", "fr": "cuisine danoise", + "ga": "cócaireacht na danmhairge", "he": "המטבח הדני", + "hu": "dán konyha", "id": "masakan denmark", "it": "cucina danese", "ja": "デンマーク料理", @@ -17075,6 +19126,20 @@ "zh": "點心", "zh-cn": "点心" }, + "fine_dining": { + "ar": "مطعم فاخر", + "bg": "класически ресторант", + "ca": "restaurant de classe alta", + "en": "fine dining restaurant", + "hu": "csúcsgasztronómiás étterem", + "id": "makan mewah", + "ja": "高級飲食店", + "ru": "люксовый ресторан", + "sl": "restavracija visokega razreda", + "tr": "nitelikli restoran", + "vi": "ăn tối cao cấp", + "zh": "高档餐厅" + }, "fish_and_chips": { "af": "vis en tjips", "ar": "السمك ورقائق البطاطا", @@ -17082,6 +19147,7 @@ "bg": "риба и пържени картофи", "ca": "fish and chips", "cs": "fish and chips", + "cy": "siop sgod a sglods", "da": "fish and chips", "de": "fish and chips", "el": "φις εντ τσιπς", @@ -17102,14 +19168,15 @@ "ko": "피시 앤드 칩스", "lt": "žuvis ir traškučiai", "ml": "മത്സ്യവും ചിപ്സും", - "ms": "ikan dan kentang goreng", "nb": "fish and chips", "nl": "fish and chips", "pl": "fish and chips", "pt": "fish and chips", "pt-br": "peixe e fritas", "ro": "fish and chips", - "ru": "рыба и картофель фри", + "ru": "фиш-энд-чип-шоп", + "sk": "fish and chips", + "sq": "peshk dhe patatet", "sv": "fish and chips", "th": "ฟิชแอนด์ชิปส์", "tr": "fish and chips", @@ -17127,24 +19194,27 @@ "bg": "френска кухня", "ca": "gastronomia de frança", "cs": "francouzská kuchyně", + "cy": "coginio ffrainc", "da": "franske køkken", "de": "französische küche", "el": "γαλλική κουζίνα", - "en": "french cuisine", + "en": "french restaurant", + "en-ca": "french cuisine", + "en-gb": "french cuisine", "es": "gastronomía de francia", "et": "prantsuse köök", "fa": "آشپزی فرانسوی", "fi": "ranskalainen keittiö", "fr": "cuisine française", + "ga": "cócaireacht na fraince", "he": "המטבח הצרפתי", "hr": "francuska kuhinja", "hu": "francia konyha", "id": "masakan prancis", "it": "cucina francese", - "ja": "フランス料理", + "ja": "フランス料理店", "ko": "프랑스 요리", "lv": "franču virtuve", - "ms": "masakan perancis", "nb": "det franske kjøkken", "nl": "franse keuken", "pl": "kuchnia francuska", @@ -17175,6 +19245,7 @@ "be": "нямецкая кухня", "ca": "gastronomia d'alemanya", "cs": "německá kuchyně", + "cy": "coginio'r almaen", "da": "tyske køkken", "de": "deutsche küche", "de-ch": "dütschi chochi", @@ -17185,6 +19256,7 @@ "fa": "آشپزی آلمانی", "fi": "saksalainen keittiö", "fr": "cuisine allemande", + "ga": "cócaireacht na gearmáine", "he": "המטבח הגרמני", "hr": "njemačka kuhinja", "hu": "német konyha", @@ -17194,7 +19266,6 @@ "ko": "독일 요리", "lt": "vokiečių virtuvė", "lv": "vācu virtuve", - "ms": "masakan jerman", "nl": "duitse keuken", "pl": "kuchnia niemiecka", "pt": "culinária da alemanha", @@ -17210,8 +19281,10 @@ }, "greek": { "ar": "مطبخ يوناني", + "bg": "гръцка кухня", "ca": "gastronomia de grècia", "cs": "řecká kuchyně", + "cy": "coginio gwlad groeg", "de": "griechische küche", "el": "ελληνική κουζίνα", "en": "greek cuisine", @@ -17220,6 +19293,7 @@ "fa": "آشپزی یونانی", "fi": "kreikkalainen keittiö", "fr": "cuisine grecque", + "ga": "cócaireacht na gréige", "he": "המטבח היווני", "hu": "görög konyha", "id": "hidangan yunani", @@ -17232,12 +19306,21 @@ "pt": "culinária da grécia", "ro": "bucătăria grecească", "ru": "греческая кухня", + "sl": "grška kuhinja", + "sq": "kuzhina greke", "sv": "grekiska köket", "tr": "yunan mutfağı", "uk": "грецька кухня", "vi": "ẩm thực hy lạp", "zh": "希臘飲食" }, + "hawaiian": { + "en": "hawaiian restaurant", + "ja": "ハワイ料理店" + }, + "hot_dog": { + "en": "fast-food hot dog restaurant" + }, "hungarian": { "af": "hongaarse kos", "ar": "المطبخ الهنغاري", @@ -17252,6 +19335,7 @@ "fa": "آشپزی مجارستانی", "fi": "unkarilainen keittiö", "fr": "cuisine hongroise", + "ga": "cócaireacht na hungáire", "he": "המטבח ההונגרי", "hu": "magyar konyha", "id": "hidangan hungaria", @@ -17287,6 +19371,7 @@ "fa": "آشپزی هندی", "fi": "intialainen keittiö", "fr": "cuisine indienne", + "ga": "cócaireacht na hindia", "he": "המטבח ההודי", "hi": "भारतीय खाना", "hu": "indiai konyha", @@ -17299,7 +19384,6 @@ "lv": "indiešu virtuve", "ml": "ഇന്ത്യൻ ഭക്ഷണവിഭവങ്ങൾ", "mr": "भारतीय खाद्यपदार्थ", - "ms": "masakan india", "nb": "indisk mat", "nl": "indiase keuken", "pl": "kuchnia indyjska", @@ -17309,6 +19393,7 @@ "sl": "indijska kuhinja", "sv": "indiska köket", "ta": "இந்திய உணவுமுறை", + "te": "భారతీయ వంటకాలు", "th": "อาหารอินเดีย", "tr": "hint mutfağı", "uk": "індійська кухня", @@ -17328,14 +19413,15 @@ "fa": "آشپزی ایرانی", "fi": "iranilainen keittiö", "fr": "cuisine iranienne", + "ga": "cócaireacht na hiaráine", "he": "המטבח הפרסי", + "hu": "iráni konyha", "id": "masakan iran", "it": "cucina iraniana", "ja": "イラン料理", "ko": "이란 요리", "lv": "irānas virtuve", "mr": "इराणी खाद्यसंस्कृती", - "ms": "masakan iran", "nl": "perzische keuken", "pl": "kuchnia perska", "pt": "culinária do irã", @@ -17355,6 +19441,7 @@ "bg": "италианска кухня", "ca": "gastronomia d'itàlia", "cs": "italská kuchyně", + "cy": "coginio'r eidal", "da": "italienske køkken", "de": "italienische küche", "el": "ιταλική κουζίνα", @@ -17364,6 +19451,8 @@ "fa": "آشپزی ایتالیایی", "fi": "italialainen keittiö", "fr": "cuisine italienne", + "ga": "bia na hiodáile", + "gl": "gastronomía de italia", "he": "המטבח האיטלקי", "hr": "talijanska kuhinja", "hu": "olasz konyha", @@ -17374,7 +19463,6 @@ "ko": "이탈리아 요리", "lt": "itališka virtuvė", "lv": "itāliešu virtuve", - "ms": "masakan itali", "nb": "italiensk mat", "nl": "italiaanse keuken", "pl": "kuchnia włoska", @@ -17383,7 +19471,9 @@ "ru": "итальянская кухня", "sk": "talianska kuchyňa", "sl": "italijanska kuhinja", + "sq": "kuzhina italiane", "sv": "italienska köket", + "te": "ఇటలీ వంట పద్ధతి", "th": "อาหารอิตาลี", "tr": "i̇talyan mutfağı", "uk": "італійська кухня", @@ -17409,6 +19499,8 @@ "fa": "آشپزی ژاپنی", "fi": "japanilainen keittiö", "fr": "cuisine japonaise", + "ga": "cócaireacht na seapáine", + "gd": "biadh seapanach", "he": "המטבח היפני", "hu": "japán konyha", "id": "masakan jepang", @@ -17417,7 +19509,6 @@ "ko": "일본 요리", "lt": "japoniška virtuvė", "lv": "japāņu virtuve", - "ms": "masakan jepun", "nb": "mattradisjoner i japan", "nl": "japanse keuken", "pl": "kuchnia japońska", @@ -17446,12 +19537,12 @@ "fi": "juutalainen keittiö", "fr": "cuisine juive", "he": "המטבח היהודי", + "hu": "zsidó konyha", "id": "hidangan yahudi", "it": "cucina ebraica", "ja": "ユダヤ料理", "ko": "유대 요리", "lt": "žydų virtuvė", - "ms": "masakan yahudi", "nb": "jødisk mat", "nl": "joodse keuken", "pl": "kuchnia żydowska", @@ -17465,6 +19556,15 @@ "vi": "ẩm thực do thái", "zh": "猶太人飲食" }, + "kebab": { + "de": "döner-kebab-laden", + "en": "kebab shop", + "fi": "kebabravintola", + "ja": "ケバブ店", + "nb": "kebabsjappe", + "sq": "qebaptorë", + "tr": "kebapçı" + }, "kebab;pizza": { "en": "pizza and kebab place", "fi": "kebabpizzeria" @@ -17475,21 +19575,23 @@ "bg": "корейска кухня", "ca": "gastronomia de corea", "cs": "korejská kuchyně", - "de": "koreanische küche", - "en": "korean cuisine", + "cy": "coginio corea", + "de": "koreanisches restaurant", + "en": "korean restaurant", "es": "gastronomía de corea", "fa": "آشپزی کرهای", - "fi": "korealainen keittiö", + "fi": "korealainen ravintola", "fr": "cuisine coréenne", + "ga": "cócaireacht na cóiré", + "gl": "gastronomía de corea", "he": "המטבח הקוריאני", "hu": "koreai konyha", "id": "masakan korea", "it": "cucina coreana", - "ja": "朝鮮料理", - "ko": "한국 요리", + "ja": "韓国料理店", + "ko": "한식당", "lt": "korėjietiška virtuvė", "lv": "korejiešu virtuve", - "ms": "masakan korea", "nb": "det koreanske kjøkken", "nl": "koreaanse keuken", "pl": "kuchnia koreańska", @@ -17505,30 +19607,57 @@ "vi": "ẩm thực triều tiên", "zh": "韓國料理" }, + "kurdish": { + "ar": "مطبخ كردي", + "cs": "kurdská kuchyně", + "de": "kurdische küche", + "en": "kurdish cuisine", + "es": "gastronomía kurda", + "fa": "آشپزی کردی", + "fr": "cuisine kurde", + "ga": "cócaireacht na cordastáine", + "he": "המטבח הכורדי", + "hu": "kurd konyha", + "id": "hidangan kurdi", + "ja": "クルド料理", + "ko": "쿠르드 요리", + "ml": "കുർദ്ദിഷ് പാചകം", + "nl": "koerdische keuken", + "pt": "culinária curda", + "ru": "курдская кухня", + "sl": "kurdska kuhinja", + "sv": "kurdiska köket", + "th": "อาหารเคิร์ด", + "tr": "kürt mutfağı", + "zh": "庫德飲食" + }, "kyo_ryouri": { "en": "obanzai", "ja": "おばんざい" }, "lebanese": { - "ar": "مطبخ لبناني", + "ar": "مطبخ بلاد الشام", "ca": "cuina libanesa", "cs": "libanonská kuchyně", + "cy": "coginio libanus", "de": "libanesische küche", - "en": "lebanese cuisine", + "en": "lebanese restaurant", "es": "gastronomía del líbano", "fa": "آشپزی لبنانی", "fr": "cuisine libanaise", + "ga": "cócaireacht na liobáine", "he": "המטבח הלבנוני", + "hu": "libanoni konyha", "id": "masakan lebanon", "it": "cucina libanese", "ja": "レバノン料理", "ko": "레바논 요리", - "ms": "masakan lubnan", "nl": "libanese keuken", "pl": "kuchnia libańska", "pt": "culinária do líbano", "ro": "masia", "ru": "ливанская кухня", + "sl": "libanonska kuhinja", "sv": "libanesiska köket", "tr": "lübnan mutfağı", "uk": "ліванська кухня", @@ -17549,19 +19678,20 @@ "fr": "cuisine méditerranéenne", "he": "המטבח הים-תיכוני", "hr": "sredozemna kuhinja", + "hu": "mediterrán konyha", "id": "masakan mediterania", "it": "cucina mediterranea", "ja": "地中海料理", "ko": "지중해 요리", "lt": "viduržemio jūros virtuvė", "lv": "vidusjūras virtuve", - "ms": "masakan mediterranean", "nl": "mediterrane keuken", "pl": "kuchnia śródziemnomorska", "pt": "culinária do mediterrâneo", "ro": "bucătăria mediteraneană", "ru": "средиземноморская кухня", "sl": "sredozemska kuhinja", + "sq": "kuzhina mesdhetare", "sv": "medelhavsköket", "tr": "akdeniz mutfağı", "uk": "середземноморська кухня", @@ -17582,16 +19712,17 @@ "fa": "غذاهای مکزیکی", "fi": "meksikolainen keittiö", "fr": "cuisine mexicaine", + "ga": "cócaireachta na mheicsiceo", "he": "המטבח המקסיקני", "hi": "मेक्सिकन व्यंजन", "hr": "meksička kuhinja", + "hu": "mexikói konyha", "id": "masakan meksiko", "it": "cucina messicana", "ja": "メキシコ料理", "ko": "멕시코 요리", "lt": "meksikietiška virtuvė", "lv": "meksikāņu virtuve", - "ms": "makanan di mexico", "nb": "meksikansk mat", "nl": "mexicaanse keuken", "pl": "kuchnia meksykańska", @@ -17619,6 +19750,7 @@ }, "okinawa_ryori": { "ca": "gastronomia d'okinawa", + "cs": "okinawská kuchyně", "en": "okinawan cuisine", "es": "gastronomía de okinawa", "fr": "cuisine d'okinawa", @@ -17629,6 +19761,7 @@ "ko": "오키나와 요리", "pt": "culinária de okinawa", "ru": "окинавская кухня", + "sl": "okinavska kuhinja", "th": "อาหารโอกินาวะ", "tr": "okinawa mutfağı", "uk": "окінавська кухня", @@ -17646,13 +19779,14 @@ "fa": "آشپزی پاکستانی", "fi": "pakistanilainen keittiö", "fr": "cuisine pakistanaise", + "ga": "cócaireacht na pacastáine", "he": "המטבח הפקיסטני", "hi": "पाकिस्तानी खाना", + "hu": "pakisztáni konyha", "id": "hidangan pakistan", "it": "cucina pakistana", "ja": "パキスタン料理", "ko": "파키스탄 요리", - "ms": "masakan pakistan", "nl": "pakistaanse keuken", "pt": "culinária do paquistão", "ru": "пакистанская кухня", @@ -17663,6 +19797,12 @@ "vi": "ẩm thực pakistan", "zh": "巴基斯坦菜" }, + "pancakes": { + "en": "pancake house", + "fi": "pannukakkuravintola", + "he": "בית פנקייק", + "nl": "pannenkoekenhuis" + }, "panini": { "ar": "بانيني (شطيرة)", "da": "panino", @@ -17673,10 +19813,12 @@ "it": "panino imbottito", "ja": "パニーノ", "ko": "파니니", + "lt": "paninis", "pl": "panino", "ru": "панини", "sv": "panino", "th": "ปานีนี", + "tr": "panini (sandviç)", "uk": "паніно", "zh": "帕尼尼" }, @@ -17686,28 +19828,33 @@ "ca": "gastronomia del perú", "cs": "peruánská kuchyně", "de": "peruanische küche", - "en": "peruvian cuisine", + "en": "peruvian restaurant", "es": "gastronomía del perú", "fa": "آشپزی پرویی", "fi": "perulainen keittiö", "fr": "cuisine péruvienne", + "ga": "cócaireacht pheiriú", "he": "המטבח הפרואני", + "hu": "perui konyha", "it": "cucina peruviana", - "ja": "ペルー料理", + "ja": "ペルー料理店", "ko": "페루 요리", "lv": "peruviešu virtuve", "nl": "peruviaanse keuken", "pl": "kuchnia peruwiańska", "pt": "culinária do peru", "ru": "перуанская кухня", + "sl": "perujska kuhinja", "sv": "peruanska köket", "tr": "peru mutfağı", "uk": "перуанська кухня", - "vi": "ẩm thực peru" + "vi": "ẩm thực peru", + "zh": "秘鲁饮食" }, "pizza": { "ar": "مبتز", "cs": "pizzerie", + "el": "πιτσαρία", "en": "pizzeria", "es": "pizzería", "he": "פיצריה", @@ -17732,6 +19879,7 @@ "bg": "полска кухня", "ca": "gastronomia de polònia", "cs": "polská kuchyně", + "cy": "coginio gwlad pwyl", "de": "polnische küche", "el": "πολωνική κουζίνα", "en": "polish cuisine", @@ -17739,6 +19887,7 @@ "fa": "آشپزی لهستانی", "fi": "puolalainen keittiö", "fr": "cuisine polonaise", + "ga": "cócaireacht na polainne", "he": "המטבח הפולני", "hu": "lengyel konyha", "id": "masakan polandia", @@ -17754,6 +19903,7 @@ "pt-br": "culinária da polônia", "ro": "bucătăria poloneză", "ru": "польская кухня", + "sk": "poľská kuchyňa", "sl": "poljska kuhinja", "sv": "polska köket", "tr": "polonya mutfağı", @@ -17766,18 +19916,20 @@ "ca": "gastronomia de portugal", "cs": "portugalská kuchyně", "de": "portugiesische küche", - "en": "portuguese cuisine", + "en": "portuguese restaurant", "es": "gastronomía de portugal", "fa": "آشپزی پرتغالی", "fi": "portugalilainen keittiö", "fr": "cuisine portugaise", + "ga": "cócaireacht na portaingéile", + "gl": "gastronomía de portugal", "he": "המטבח הפורטוגזי", + "hu": "portugál konyha", "id": "masakan portugis", "it": "cucina portoghese", - "ja": "ポルトガル料理", + "ja": "ポルトガル料理店", "ko": "포르투갈 요리", "lt": "portugališka virtuvė", - "ms": "masakan portugis", "nl": "portugese keuken", "pl": "kuchnia portugalska", "pt": "gastronomia de portugal", @@ -17792,6 +19944,7 @@ }, "ramen": { "en": "ramen restaurant", + "he": "ראמנייה", "id": "kedai ramen", "ja": "ラーメン店" }, @@ -17814,7 +19967,7 @@ "ja": "郷土料理", "ko": "향토 음식", "lv": "vietējā virtuve", - "ms": "masakan serantau", + "nb": "regional matrett", "nl": "regionale keuken", "pl": "kuchnia regionalna", "pt": "culinária regional", @@ -17845,6 +19998,7 @@ "fa": "آشپزی روسی", "fi": "venäläinen keittiö", "fr": "cuisine russe", + "ga": "cócaireacht na rúise", "he": "המטבח הרוסי", "hr": "ruska kuhinja", "hu": "orosz konyha", @@ -17873,6 +20027,7 @@ "bg": "сандвич", "ca": "sandvitx", "cs": "sendvič", + "cy": "brechdan", "da": "smørrebrødsrestaurant", "de": "sandwich-laden", "de-ch": "sandwich", @@ -17885,7 +20040,10 @@ "fa": "ساندویچ", "fi": "voileipäravintola", "fr": "sandwich", - "he": "כריך", + "ga": "ceapaire", + "gd": "ceapaire", + "gl": "sándwich", + "he": "חנות כריכים", "hi": "सैंडविच", "hr": "sendvič", "hu": "szendvics", @@ -17897,7 +20055,6 @@ "lt": "sumuštinis", "lv": "sendvičs", "ml": "സാൻഡ് വിച്ച്", - "ms": "sandwic", "nb": "smørrebrødsrestaurant", "nl": "sandwich", "pl": "kanapka", @@ -17906,8 +20063,10 @@ "ru": "сэндвич", "sk": "sendvič", "sl": "prodajalna sendvičev", + "sq": "sanduiç", "sv": "sandwich", "ta": "சான்விச்", + "te": "శాండ్ విచ్", "th": "แซนด์วิช", "tr": "sandviç", "uk": "сандвіч", @@ -17922,39 +20081,48 @@ "be": "морапрадукты", "ca": "producte del mar", "cs": "mořské plody", + "cy": "bwyd môr", "da": "fisk og skaldyr", - "de": "meeresfrüchte", + "de": "seefisch-restaurant", "el": "θαλασσινά", - "en": "seafood", - "es": "producto del mar", + "en": "seafood restaurant", + "es": "restaurante de comida marina", "et": "mereannid", "fa": "خوراک دریایی", - "fr": "produit de la mer", - "he": "מאכלי ים", + "fr": "restaurant de fruits de mer", + "ga": "bia mara", + "gl": "alimentos do mar", + "he": "מסעדת מאכלי ים", "hr": "morski plodovi", "hu": "tenger gyümölcsei", "id": "makanan laut", - "it": "prodotti ittici", - "ja": "海産物", + "it": "ristorante di pesce", + "ja": "シーフードレストラン", "ko": "해산물", + "lt": "jūros gerybės", "lv": "jūras veltes", - "ms": "makanan laut", "nb": "sjømat", - "nl": "voedsel uit zee", + "nl": "visrestaurant", "pl": "owoce morza", - "pt": "fruto do mar", + "pt": "restaurante de frutos do mar", "ro": "fructe de mare", "ru": "морепродукты", "sk": "morské plody", "sl": "morska hrana", - "sv": "mat från havet", + "sq": "ushqim deti", + "sv": "fiskerestaurang", "ta": "கடல் உணவு", "th": "อาหารทะเล", "tr": "su ürünleri", "uk": "морепродукти", "vi": "hải sản", - "zh": "海鮮", - "zh-cn": "海鲜" + "zh": "海鮮餐廳", + "zh-cn": "海鲜餐厅", + "zh-hk": "海鮮" + }, + "south_american": { + "en": "south american restaurant", + "ja": "南米料理店" }, "spanish": { "ar": "مطبخ إسباني", @@ -17962,22 +20130,24 @@ "bg": "испанска кухня", "ca": "gastronomia d'espanya", "cs": "španělská kuchyně", + "cy": "coginio sbaen", "da": "spanske køkken", "de": "spanische küche", "el": "ισπανική κουζίνα", - "en": "spanish cuisine", + "en": "spanish restaurant", "es": "gastronomía de españa", "et": "hispaania köök", "fa": "آشپزی اسپانیایی", "fi": "espanjalainen keittiö", "fr": "cuisine espagnole", + "ga": "cócaireacht na spáinne", "he": "המטבח הספרדי", + "hu": "spanyol konyha", "id": "masakan spanyol", "it": "cucina spagnola", - "ja": "スペイン料理", + "ja": "スペイン料理店", "ko": "스페인 요리", "lv": "spāņu virtuve", - "ms": "masakan sepanyol", "nl": "spaanse keuken", "pl": "kuchnia hiszpańska", "pt": "culinária de espanha", @@ -18001,7 +20171,6 @@ "it": "bisteccheria", "ja": "ステーキハウス", "ko": "스테이크하우스", - "ms": "restoran stik", "pt": "restaurante de carne", "sl": "zrezkarna", "zh": "牛排館" @@ -18016,6 +20185,8 @@ "en": "sushi", "et": "suši", "fa": "سوشی", + "ga": "súisí", + "gl": "suxi", "he": "סושי", "hi": "सूशी", "hr": "suši", @@ -18028,7 +20199,6 @@ "lv": "suši", "ml": "സുഷി", "mr": "सुशी", - "ms": "susyi", "ru": "суши", "sk": "suši", "sl": "suši", @@ -18041,27 +20211,32 @@ "zh-hk": "壽司", "zh-tw": "壽司" }, + "taiwanese": { + "en": "taiwanese restaurant", + "ja": "台湾料理店" + }, "thai": { "af": "thaise kookkuns", "ar": "مطبخ تايلاند", "bg": "тайска кухня", "ca": "gastronomia de tailàndia", "cs": "thajská kuchyně", + "cy": "coginio gwlad tai", "da": "det thailanske køkken", - "de": "thailändische küche", + "de": "thailändisches restaurant", "el": "ταϊλανδέζικη κουζίνα", - "en": "thai cuisine", + "en": "thai restaurant", "es": "gastronomía de tailandia", "fa": "آشپزی تایلندی", - "fi": "thaikeittiö", + "fi": "thairavintola", "fr": "cuisine thaïlandaise", + "ga": "cócaireacht na téalainne", "he": "המטבח התאילנדי", "hu": "thai konyha", "id": "masakan thailand", "it": "cucina thailandese", "ja": "タイ料理", "ko": "태국 요리", - "ms": "masakan thailand", "nl": "thaise keuken", "pl": "kuchnia tajska", "pt": "culinária da tailândia", @@ -18081,32 +20256,38 @@ "cs": "turecká kuchyně", "de": "türkische küche", "el": "τουρκική κουζίνα", - "en": "turkish cuisine", + "en": "turkish restaurant", "es": "gastronomía de turquía", "fa": "آشپزی ترکیه", "fi": "turkkilainen keittiö", "fr": "cuisine turque", + "ga": "cócaireacht na tuirce", "he": "המטבח הטורקי", "hu": "török konyha", "id": "masakan turki", "it": "cucina turca", - "ja": "トルコ料理", + "ja": "トルコ料理店", "ko": "터키 요리", "lt": "turkiška virtuvė", "lv": "turcijas virtuve", - "ms": "masakan turki", "nl": "turkse keuken", "pl": "kuchnia turecka", "pt": "culinária da turquia", "ro": "bucătăria turcească", "ru": "турецкая кухня", "sl": "turška kuhinja", + "sq": "kuzhina turke", "sv": "turkiska köket", "tr": "türk mutfağı", "uk": "турецька кухня", + "ur": "ترک پکوان", "vi": "ẩm thực thổ nhĩ kỳ", "zh": "土耳其菜式" }, + "venezuelan": { + "en": "venezuelan restaurant", + "ja": "ベネズエラ料理店" + }, "vietnamese": { "ar": "مطبخ فيتنامي", "be": "в'етнамская кухня", @@ -18122,6 +20303,7 @@ "fa": "آشپزی ویتنامی", "fi": "vietnamilainen keittiö", "fr": "cuisine vietnamienne", + "ga": "cócaireacht vítneam", "he": "המטבח הווייטנאמי", "hu": "vietnámi konyha", "id": "masakan vietnam", @@ -18130,7 +20312,6 @@ "ko": "베트남 요리", "lt": "vietnamietiška virtuvė", "lv": "vjetnamiešu virtuve", - "ms": "masakan vietnam", "nb": "vietnamesisk mat", "nl": "vietnamese keuken", "pl": "kuchnia wietnamska", @@ -18175,6 +20356,18 @@ } }, "cycle_network": { + "BE-BRU": { + "de": "brüsseler radschnellwegnetz", + "en": "brussels bicycle highway network", + "fr": "réseau d'cyclostrade bruxellois", + "nl": "brussels cyclostradenetwerk" + }, + "BE-VLG": { + "de": "flämisches radschnellwegnetz", + "en": "flemish bicycle highway network", + "fr": "réseau d'cyclostrade flamandes", + "nl": "vlaams fietssnelwegennetwerk" + }, "EuroVelo": { "en": "eurovelo", "ja": "ユーロヴェロ", @@ -18185,6 +20378,7 @@ "de": "national bicycle route network", "en": "georgia state bicycle routes", "ko": "미국 자전거 도로망", + "ru": "система велосипедных маршрутов сша", "sl": "sistem kolesarskih poti v združenih državah amerike", "vi": "quốc lộ xe đạp hoa kỳ", "zh": "美国自行车路线系统" @@ -18200,6 +20394,7 @@ "fr": "sas vélo", "it": "casa avanzata", "ja": "二段停止線", + "nb": "sykkelboks", "nl": "opgeblazen fietsopstelstrook", "pl": "śluza rowerowa", "ru": "зона остановки велосипедистов", @@ -18219,9 +20414,10 @@ "hu": "kerékpársáv", "it": "corsia ciclabile", "ja": "自転車専用レーン", - "ms": "lorong basikal", + "nb": "sykkelfelt", "nl": "fietsstrook", "pl": "pas ruchu dla rowerów", + "pt": "faixa ciclável", "ru": "велосипедная полоса", "sk": "jazdný pruh pre cyklistov", "sl": "kolesarski pas", @@ -18271,6 +20467,7 @@ "bg": "църква на адвентистите от седмия ден", "ca": "església adventista del setè dia", "cs": "adventisté sedmého dne", + "cy": "eglwys adfentydd y seithfed dydd", "da": "syvende dags adventistkirken", "de": "siebenten-tags-adventisten", "el": "εκκλησία αντβεντιστών της εβδόμης ημέρας", @@ -18280,6 +20477,8 @@ "fa": "کلیسای منتظران ظهور روز هفتم", "fi": "seitsemännen päivän adventismi", "fr": "église adventiste du septième jour", + "ga": "eaglais ateachtach an tseachtú lá", + "gl": "igrexa adventista do sétimo día", "he": "הכנסייה האדוונטיסטית של היום השביעי", "hr": "adventisti sedmog dana", "hu": "hetednapi adventista egyház", @@ -18290,7 +20489,6 @@ "lt": "septintosios dienos adventistai", "lv": "septītās dienas adventisti", "ml": "ശാബത് സഭ", - "ms": "gereja advent hari ketujuh", "nb": "syvendedagsadventister", "nl": "zevendedagsadventisten", "pl": "kościół adwentystów dnia siódmego", @@ -18317,17 +20515,18 @@ "es": "comunidad ahmadía", "fa": "احمدیه", "fr": "ahmadisme", + "ga": "ahmadach", "he": "אחמדים", - "hi": "अहमदिया धर्म", + "hi": "अहमदिया", "hr": "ahmedije", "hu": "ahmadijja", "id": "ahmadiyyah", "ja": "アフマディーヤ", "ko": "아흐마드파", + "lt": "achmadija", "lv": "ahmadiji", "ml": "അഹമദിയ്യ പ്രസ്ഥാനം", "mr": "अहमदिया", - "ms": "ahmadiyyah", "pl": "ahmadijja", "pt": "comunidade ahmadi", "ru": "ахмадие", @@ -18342,7 +20541,7 @@ "zh-tw": "阿赫邁底亞" }, "alevi": { - "ar": "العلوية", + "ar": "العلوية الأناضولية", "bg": "алевити", "ca": "alevisme", "cs": "alevismus", @@ -18356,6 +20555,7 @@ "fa": "علویان", "fi": "aleviitit", "fr": "alévisme", + "gl": "alevismo", "he": "אלווים", "hr": "aleviti", "hu": "aleviták", @@ -18364,7 +20564,6 @@ "ja": "アレヴィー派", "ko": "알레비파", "lt": "alevitai", - "ms": "alevi", "nb": "alevisme", "nl": "alevitisme", "pl": "alewici", @@ -18372,6 +20571,8 @@ "ro": "aleviți", "ru": "алевиты", "sk": "aleviti", + "sl": "alevizem", + "sq": "alevitet", "tr": "alevilik", "uk": "алевіти", "ur": "علوی شیعہ", @@ -18383,7 +20584,9 @@ "ca": "unió mundial de l'aliança", "en": "alliance world fellowship", "es": "unión mundial de la alianza", + "fi": "christian and missionary alliance", "fr": "union mondiale de l'alliance", + "gd": "caidreachas nan crìostaidh 's nam miseanaraidh", "he": "הברית הקתולית והמיסיונרית", "id": "christian and missionary alliance", "ja": "日本アライアンス教団", @@ -18400,6 +20603,7 @@ "bg": "англиканско съобщество", "ca": "comunió anglicana", "cs": "anglikánské společenství", + "cy": "y cymundeb anglicanaidd", "da": "den anglikanske kirke", "de": "anglikanische gemeinschaft", "el": "αγγλικανική κοινωνία", @@ -18409,6 +20613,7 @@ "fa": "انگلیکان", "fi": "anglikaaninen kirkkoyhteisö", "fr": "communion anglicane", + "gl": "comuñón anglicana", "he": "השיתוף האנגליקני", "hi": "ऐंग्लिकन समुदाय", "hr": "anglikanska zajednica", @@ -18420,7 +20625,6 @@ "lt": "anglikonų bažnyčia", "lv": "anglikāņu baznīca", "ml": "ആംഗ്ലിക്കൻ സഭ", - "ms": "golongan anglikan", "nb": "den anglikanske kirke", "nl": "anglicaanse gemeenschap", "pl": "wspólnota anglikańska", @@ -18451,6 +20655,7 @@ "bg": "арменска апостолическа църква", "ca": "església apostòlica armènia", "cs": "arménská apoštolská církev", + "cy": "eglwys apostolaidd armenia", "da": "den armenske apostolske kirke", "de": "armenische apostolische kirche", "el": "αρμενική αποστολική εκκλησία", @@ -18460,6 +20665,8 @@ "fa": "کلیسای حواری ارمنی", "fi": "armenian apostolinen kirkko", "fr": "église apostolique arménienne", + "ga": "eaglais aspalda na hairméine", + "gl": "igrexa apostólica armenia", "he": "הכנסייה האפוסטולית הארמנית", "hr": "armenska apostolska crkva", "hu": "örmény apostoli ortodox egyház", @@ -18479,6 +20686,7 @@ "ru": "армянская апостольская церковь", "sk": "arménska apoštolská cirkev", "sl": "armenska apostolska cerkev", + "sq": "kisha armene", "sv": "armeniska apostoliska kyrkan", "ta": "ஆர்மீனிய திருத்தூதர் திருச்சபை", "th": "คริสตจักรอัครทูตอาร์มีเนีย", @@ -18502,6 +20710,7 @@ "es": "iglesia católica armenia", "fa": "کلیسای کاتولیک ارمنی", "fr": "église catholique arménienne", + "gl": "igrexa católica armenia", "he": "הכנסייה הקתולית הארמנית", "hr": "armenska katolička crkva", "hu": "örmény katolikus egyház", @@ -18531,10 +20740,12 @@ "de": "germanisches neuheidentum", "el": "γερμανικός νεοπαγανισμός", "en": "heathenry", - "es": "neopaganismo germano", + "es": "heathenismo", "fa": "هیتنری", "fi": "hetenismi", "fr": "néo-paganisme germanique", + "ga": "an ghintlíocht", + "gl": "etenismo", "he": "ניאו-פגאניזם גרמאני", "id": "neopaganisme jermanik", "it": "etenismo", @@ -18546,7 +20757,8 @@ "ro": "neopăgânism germanic", "ru": "германское неоязычество", "sl": "nemško staroverstvo", - "sv": "asatro", + "sq": "neopaganizmi gjerman", + "sv": "modern hedendom", "tr": "cermenik neopaganizm", "uk": "германське неоязичництво", "ur": "ہیتھنری", @@ -18583,6 +20795,7 @@ "bg": "асирийска източна църква", "ca": "església assíria oriental", "cs": "asyrská církev východu", + "cy": "eglwys asyriaidd y dwyrain", "da": "østens assyriske kirke", "de": "assyrische kirche des ostens", "el": "ασσυριακή αποστολική εκκλησία της ανατολής", @@ -18591,6 +20804,7 @@ "fa": "کلیسای آشوری مشرق", "fi": "idän apostolinen kirkko", "fr": "église apostolique assyrienne de l'orient", + "gl": "igrexa asiria do oriente", "he": "הכנסייה האשורית", "hr": "asirska crkva istoka", "hu": "asszír keleti egyház", @@ -18621,6 +20835,7 @@ "bg": "баптизъм", "ca": "església baptista", "cs": "baptisté", + "cy": "bedyddwyr", "da": "baptistkirken", "de": "baptisten", "el": "βαπτιστές", @@ -18630,6 +20845,9 @@ "fa": "باپتیست", "fi": "baptismi", "fr": "baptisme", + "ga": "baisteachas", + "gd": "baisteach", + "gl": "baptismo", "he": "בפטיזם", "hi": "बैप्टिस्ट चर्च", "hr": "baptisti", @@ -18649,6 +20867,7 @@ "ru": "баптизм", "sk": "baptizmus", "sl": "baptisti", + "sq": "baptistët", "sv": "baptism", "th": "แบปทิสต์", "tr": "baptistler", @@ -18679,7 +20898,7 @@ "id": "bektashi", "it": "bektashi", "ja": "ベクタシュ教団", - "ko": "벡타시교", + "ko": "벡타시 교단", "lt": "bektašizmas", "nb": "bektasji", "nl": "bektasji", @@ -18689,12 +20908,65 @@ "ru": "бекташи", "sk": "bektašija", "sl": "bektaši", + "sq": "bektashi", "sv": "bektashi", "tr": "bektaşilik", "uk": "бекташи", "ur": "بکتاشیہ", "zh": "拜克塔什教團" }, + "catholic": { + "af": "katoliekisme", + "ar": "كاثوليكية", + "be": "каталіцтва", + "bg": "католицизъм", + "ca": "catolicisme", + "cs": "katolicismus", + "cy": "catholigiaeth", + "da": "katolicisme", + "de": "katholizismus", + "el": "καθολικισμός", + "en": "catholicism", + "es": "catolicismo", + "et": "katoliiklus", + "fa": "کاتولیسیسم", + "fi": "katolisuus", + "fr": "catholicisme", + "ga": "caitliceachas", + "gd": "caitligeachd", + "gl": "catolicismo", + "he": "נצרות קתולית", + "hi": "कैथोलिक धर्म", + "hr": "katoličanstvo", + "hu": "katolicizmus", + "id": "katolisisme", + "it": "cattolicesimo", + "ja": "カトリシズム", + "kn": "ಕ್ಯಾಥೋಲಿಕ್ ಚರ್ಚ್", + "ko": "가톨릭교", + "lt": "katalikybė", + "lv": "katoļticība", + "ml": "കത്തോലിക്കാ മതം", + "mr": "कॅथलिक धर्म", + "nb": "katolisisme", + "nl": "katholicisme", + "pl": "katolicyzm", + "pt": "catolicismo", + "ro": "catolicism", + "ru": "католицизм", + "sk": "katolicizmus", + "sl": "katolicizem", + "sq": "kishë katolike romake", + "sv": "katolicism", + "ta": "கத்தோலிக்கம்", + "te": "కాథలిక్ మతం", + "th": "คาทอลิก", + "tr": "katoliklik", + "uk": "католицтво", + "ur": "کیتھولک ازم", + "vi": "công giáo", + "zh": "天主教" + }, "catholic_apostolic": { "af": "katoliek apostoliese kerk", "da": "katolsk-apostoliske menighed", @@ -18710,6 +20982,7 @@ "nl": "katholiek apostolische kerk", "pl": "irwingianizm", "ru": "ирвингиане", + "sl": "katoliška apostolska cerkev", "sv": "katolsk-apostoliska kyrkan", "uk": "католицька апостольська церква", "zh": "大公使徒教會" @@ -18725,6 +20998,7 @@ "ar": "وثنية كلتية", "ca": "politeisme celta", "cs": "keltské náboženství", + "cy": "amldduwiaeth geltaidd", "da": "keltisk religion", "de": "keltische religion", "el": "κέλτικος παγανισμός", @@ -18732,6 +21006,8 @@ "es": "politeismo celta", "fi": "kelttiläinen uskonto", "fr": "religion des celtes", + "ga": "ildiachas ceilteach", + "gl": "politeísmo celta", "hu": "kelta vallás", "id": "politeisme kelt", "it": "religione celtica", @@ -18750,12 +21026,14 @@ "ar": "الكنيسة الكلدانية الكاثوليكية", "ca": "església catòlica caldea", "cs": "chaldejská katolická církev", + "cy": "yr eglwys gatholig galdeaidd", "de": "chaldäisch-katholische kirche", "en": "chaldean catholic church", "es": "iglesia católica caldea", "fa": "کلیسای کاتولیک کلدانی", "fi": "kaldealaiskatolinen kirkko", "fr": "église catholique chaldéenne", + "gl": "igrexa católica caldea", "he": "הכנסייה הכלדאית קתולית", "hr": "kaldejska katolička crkva", "hu": "káld katolikus egyház", @@ -18853,6 +21131,7 @@ "be": "царква шатландыі", "ca": "església d'escòcia", "cs": "skotská církev", + "cy": "eglwys yr alban", "da": "den skotske kirke", "el": "εκκλησία της σκωτίας", "en": "church of scotland", @@ -18860,6 +21139,9 @@ "fa": "کلیسای اسکاتلند", "fi": "skotlannin kirkko", "fr": "église d'écosse", + "ga": "eaglais na halban", + "gd": "eaglais na h-alba", + "gl": "igrexa de escocia", "he": "הכנסייה של סקוטלנד", "hi": "चर्च ऑफ़ स्कॉटलैंड", "id": "gereja skotlandia", @@ -18896,6 +21178,8 @@ "fa": "کلیسای سوئد", "fi": "ruotsin kirkko", "fr": "église de suède", + "ga": "eaglais na sualainne", + "gl": "igrexa de suecia", "he": "הכנסייה השוודית", "hr": "švedska crkva", "hu": "svéd egyház", @@ -18904,7 +21188,6 @@ "ja": "スウェーデン国教会", "ko": "스웨덴 교회", "lt": "švedijos bažnyčia", - "ms": "gereja sweden", "nb": "svenska kyrkan", "nl": "zweedse kerk", "pl": "kościół szwecji", @@ -18935,6 +21218,7 @@ "pl": "kościoły chrystusowe", "pt": "igrejas de cristo", "ru": "церкви христа", + "sl": "kristusove cerkve", "sv": "kristi församlingar", "uk": "церкви христа", "zh": "基督的教會" @@ -18951,11 +21235,15 @@ "fa": "یهودیت محافظهکار", "fi": "konservatiivinen juutalaisuus", "fr": "judaïsme massorti", + "ga": "giúdachas coimeádach", + "gl": "xudaísmo conservador", "he": "יהדות קונסרבטיבית", "hr": "konzervativni judaizam", + "hu": "konzervatív judaizmus", "id": "yudaisme konservatif", "it": "ebraismo conservatore", "ja": "保守派", + "ko": "보수파 유대교", "lt": "konservatyvusis judaizmas", "nb": "konservativ jødedom", "nl": "conservatief jodendom", @@ -18978,6 +21266,7 @@ "cs": "koptská katolická církev", "da": "den koptiske katolske kirke", "de": "koptisch-katholische kirche", + "el": "κοπτική καθολική εκκλησία", "en": "coptic catholic church", "es": "iglesia católica copta", "fa": "کلیسای کاتولیک قبطی", @@ -19011,26 +21300,28 @@ "bg": "коптска православна църква", "ca": "església ortodoxa copta", "cs": "koptská pravoslavná církev", + "cy": "yr eglwys goptaidd", "da": "koptisk ortodokse kirke i alexandria", "de": "koptische kirche", - "el": "κοπτική ορθόδοξη εκκλησία αλεξανδρείας", + "el": "κοπτική ορθόδοξη εκκλησία", "en": "coptic orthodox church", "es": "iglesia ortodoxa copta", "fa": "کلیسای ارتدکس قبطی", "fi": "aleksandrian koptilais-ortodoksinen kirkko", "fr": "église copte orthodoxe", + "ga": "eaglais ortadocsach choptach", + "gl": "igrexa ortodoxa copta", "he": "נצרות קופטית", "hi": "कॉप्टिक ईसाई", "hr": "koptska crkva", "hu": "kopt ortodox egyház", - "id": "gereja ortodoks mesir", + "id": "gereja ortodoks koptik", "it": "chiesa ortodossa copta", "ja": "コプト正教会", "ko": "콥트 교회", "lt": "koptų stačiatikių bažnyčia", "lv": "koptu pareizticīgā baznīca", "ml": "ഈഗുപ്തായ ഓർത്തഡോക്സ് സഭ", - "ms": "gereja ortodoks koptik iskandariah", "nb": "koptisk kristendom", "nl": "koptisch-orthodoxe kerk", "pl": "koptyjski kościół ortodoksyjny", @@ -19039,6 +21330,7 @@ "ru": "коптская православная церковь", "sk": "koptská ortodoxná cirkev", "sl": "koptska pravoslavna cerkev", + "sq": "kisha kopte në egjipt", "sv": "koptisk-ortodoxa kyrkan", "th": "คอปติกออร์ทอดอกซ์", "tr": "i̇skenderiye kıpti kilisesi", @@ -19051,16 +21343,20 @@ "czechoslovak_hussite": { "ar": "الكنيسة الهوسية التشيكوسلوفاكية", "cs": "církev československá husitská", + "da": "den tjekkoslovakiske hussitiske kirke", "de": "tschechoslowakische hussitische kirche", "en": "czechoslovak hussite church", "es": "iglesia husita checoslovaca", "fr": "église hussite tchécoslovaque", + "gd": "eaglais hussiteach na seic-slòbhaice", + "gl": "igrexa husita checoslovaca", "hu": "csehszlovák huszita egyház", "it": "chiesa hussita cecoslovacca", "ja": "チェコスロバキア・フス派教会", "pl": "czechosłowacki kościół husycki", "ru": "чехословацкая гуситская церковь", "sk": "cirkev československá husitská", + "sl": "češkoslovaška husitska cerkev", "uk": "гуситська чехословацька церква", "zh": "捷克斯洛伐克胡思教會" }, @@ -19089,6 +21385,7 @@ }, "disciples_of_christ": { "ca": "església cristiana (deixebles de crist)", + "cy": "eglwys gristnogol (disgyblion crist)", "da": "kristen kirke (kristi disciple)", "de": "christliche kirche (jünger christi)", "el": "χριστιανική εκκλησία (μαθητές του χριστού)", @@ -19097,21 +21394,28 @@ "fa": "کلیسای مسیحی (شاگردان مسیح)", "fi": "kristillinen kirkko (kristuksen opetuslapset)", "fr": "l'église chrétienne (disciples du christ)", + "ga": "eaglais chríostaí (disciplíní chríost)", + "gd": "eaglais chrìosdail (disciples of christ)", + "gl": "igrexa cristiá (discípulos de cristo)", "ja": "キリスト教会(キリストの弟子)", "ko": "크리스천 교회(제자회)", "nb": "kristne kirke (kristi disipler)", "pt": "igreja cristã (discípulos de cristo)", "ro": "biserica creștină (ucenicii lui hristos)", "ru": "христианская церковь (ученики христа)", + "sl": "krščanska cerkev (kristusovi učenci)", "sv": "kristna kyrkan (kristi lärjungar)", "uk": "християнська церква (учні христа)", + "ur": "مسیحی کلیسیا (مسیح کے شاگرد)", "zh": "基督会" }, "episcopal": { "ca": "església episcopal", + "cy": "eglwys esgobol", "de": "episkopalkirche", "en": "episcopal church", "es": "iglesia episcopaliana", + "et": "episkopaalkirik", "fa": "اپیسکوپلین", "fr": "église épiscopalienne", "he": "הכנסייה האפיסקופלית", @@ -19121,7 +21425,7 @@ "ja": "監督教会", "nl": "episcopaalse kerk", "pl": "kościół episkopalny", - "pt": "igreja episcopal", + "pt": "episcopalismo", "ru": "епископальная церковь", "sl": "škofovska cerkev", "sv": "episkopalkyrkan", @@ -19134,6 +21438,7 @@ "ca": "església catòlica eritrea", "cs": "eritrejská katolická církev", "de": "eritreisch-katholische kirche", + "el": "ερυθραϊκή καθολική εκκλησία", "en": "eritrean catholic church", "es": "iglesia católica eritrea", "fr": "église catholique érythréenne", @@ -19162,6 +21467,7 @@ "fa": "کلیسای ارتودوکس توحیدی اریتره", "fi": "eritrean ortodoksinen kirkko", "fr": "église érythréenne orthodoxe", + "gl": "igrexa ortodoxa eritrea", "he": "הכנסייה האריתראית", "hr": "eritrejska pravoslavna tevahedo crkva", "hu": "eritreai ortodox egyház", @@ -19176,6 +21482,7 @@ "pt": "igreja ortodoxa eritreia", "ru": "эритрейская православная церковь", "sk": "eritrejská ortodoxná cirkev", + "sl": "eritrejska pravoslavna tevahedo cerkev", "sv": "eritreansk-ortodoxa kyrkan", "uk": "еритрейська православна церква тевахедо", "ur": "ارتریائی راسخ الاعتقاد توحیدی کلیسیا", @@ -19188,9 +21495,11 @@ "ca": "església catòlica etíop", "cs": "etiopská katolická církev", "de": "äthiopisch-katholische kirche", + "el": "αιθιοπική καθολική εκκλησία", "en": "ethiopian catholic church", "es": "iglesia católica etíope", "fr": "église catholique éthiopienne", + "gl": "igrexa católica etíope", "he": "הכנסייה הקתולית האתיופית", "hr": "etiopska katolička crkva", "hu": "etióp katolikus egyház", @@ -19215,6 +21524,7 @@ "bg": "етиопска православна църква", "ca": "església ortodoxa etíop", "cs": "etiopská ortodoxní církev", + "cy": "eglwys uniongred ethiopia", "da": "den etiopisk-ortodokse kirke", "de": "äthiopisch-orthodoxe tewahedo-kirche", "el": "αιθιοπική ορθόδοξη εκκλησία", @@ -19223,6 +21533,8 @@ "fa": "کلیسای ارتودوکس توحیدی اتیوپی", "fi": "etiopian ortodoksinen kirkko", "fr": "église éthiopienne orthodoxe", + "ga": "an eaglais ortadocsach aetópach", + "gl": "igrexa ortodoxa etíope", "he": "הכנסייה האורתודוקסית האתיופית", "hr": "etiopska pravoslavna tevahedo crkva", "hu": "etióp ortodox egyház", @@ -19241,6 +21553,7 @@ "ru": "эфиопская православная церковь", "sk": "etiópska ortodoxná cirkev", "sl": "etiopska pravoslavna cerkev", + "sq": "kisha etiopiane", "sv": "etiopisk-ortodoxa kyrkan", "tr": "etiyopya ortodoks tewahedo kilisesi", "uk": "ефіопська православна церква", @@ -19256,6 +21569,7 @@ "bg": "евангелизъм", "ca": "evangelicalisme", "cs": "evangelikalismus", + "cy": "efengylaidd", "da": "evangelikalisme", "de": "evangelikalismus", "el": "ευαγγελικοί", @@ -19264,6 +21578,9 @@ "fa": "مسیحیت انجیلی", "fi": "evankelikalismi", "fr": "évangélisme", + "ga": "protastúnachas shoiscéalach", + "gd": "creideamh nan soisgeulasach", + "gl": "evanxelicalismo", "he": "אוונגליזם", "hi": "शुभसंदेशीयवाद", "hu": "evangelizmus", @@ -19280,7 +21597,9 @@ "ru": "евангелизм", "sk": "evanjelikálne hnutie", "sl": "evangeličanstvo", + "sq": "evangjelikalizmi", "sv": "evangelikalism", + "ta": "நற்செய்தி இயக்கம்", "tr": "evanjelikalizm", "uk": "євангельські християни", "ur": "انجیلیت", @@ -19310,6 +21629,7 @@ "el": "διεθνής εκκλησία του τετραγωνικού ευαγγελίου", "en": "the foursquare church", "es": "iglesia internacional del evangelio cuadrangular", + "fi": "foursquare church", "ja": "国際フォースクエア伝道教会", "nb": "international church of the foursquare gospel", "nl": "international church of the foursquare gospel", @@ -19317,6 +21637,7 @@ "pt": "igreja do evangelho quadrangular", "ru": "международная церковь четырёхстороннего евангелия", "sv": "church of the foursquare gospel", + "ur": "فور اسکوائر چرچ", "zh": "國際四方福音會" }, "gelug": { @@ -19347,6 +21668,7 @@ "bg": "хасидизъм", "ca": "hassidisme", "cs": "chasidismus", + "cy": "iddewiaeth hasidig", "da": "chasidisk jødedom", "de": "chassidismus", "el": "χασιδισμός", @@ -19358,6 +21680,7 @@ "fa": "یهودیت حسیدی", "fi": "hasidismi", "fr": "hassidisme", + "gl": "xudaísmo xasídico", "he": "תנועת החסידות", "hr": "hasidizam", "hu": "haszidizmus", @@ -19365,7 +21688,7 @@ "it": "chassidismo", "ja": "ハシディズム", "ko": "하시딤", - "lt": "hasidinis judaizmas", + "lt": "chasidizmas", "lv": "hasīdisms", "ml": "ഹാസിദീയത", "nb": "ḥasidisk jødedom", @@ -19375,6 +21698,7 @@ "ru": "хасидизм", "sk": "chasidizmus", "sl": "hasidizem", + "sq": "hasidismi", "sv": "chassidism", "ta": "பக்தி யூதம்", "th": "ศาสนายูดาห์นิกายฮาซิด", @@ -19392,6 +21716,7 @@ "es": "huayan", "et": "huayan", "fr": "huayan", + "he": "חוואיין", "hu": "hua-jen", "id": "huayan", "ja": "華厳宗", @@ -19405,12 +21730,15 @@ "zh-hk": "華嚴宗" }, "hungarian_greek_catholic": { + "ar": "الكنيسة المجرية البيزنطية الكاثوليكية", "ca": "església grecocatòlica hongaresa", "cs": "maďarská řeckokatolická církev", "de": "ungarische griechisch-katholische kirche", + "el": "ουγγρική ελληνοκαθολική εκκλησία", "en": "hungarian greek catholic church", "es": "iglesia greco-católica húngara", "fr": "église grecque-catholique hongroise", + "gl": "igrexa católica bizantina húngara", "hr": "mađarska grkokatolička crkva", "hu": "magyar görögkatolikus egyház", "id": "gereja katolik yunani hungaria", @@ -19449,8 +21777,8 @@ "ja": "イバード派", "ko": "이바드파", "lt": "ibadizmas", + "lv": "ibādieši", "ml": "ഇബാദി", - "ms": "ibadi", "nb": "ibadi", "nl": "ibadisme", "pl": "ibadytyzm", @@ -19458,8 +21786,10 @@ "ro": "ibadism", "ru": "ибадизм", "sl": "ibadizem", + "sq": "ibadi", "sv": "ibadi", "ta": "இபாதி", + "th": "อิบาฎียะฮ์", "tr": "i̇badiyye", "uk": "ібадити", "ur": "اباضیہ", @@ -19468,6 +21798,7 @@ "iglesia_ni_cristo": { "ar": "إغليجا ني كريستو", "en": "iglesia ni cristo", + "es": "iglesia de cristo", "he": "איגלסיה ני קריסטו", "id": "gereja kristus filipina", "ja": "キリストの教会", @@ -19503,14 +21834,14 @@ "lv": "ismailisms", "ml": "ഇസ്മായിലി", "mr": "इस्माइली शिया", - "ms": "ismailiyah", "nb": "ismailitter", "nl": "isma'ilisme", "pl": "ismailizm", "pt": "ismaelismo", "ro": "ismailiți", "ru": "исмаилизм", - "sl": "ismailizem", + "sl": "izmailizem", + "sq": "ismailizmi", "sv": "ismailiter", "ta": "இஸ்மாயிலிகள்", "th": "อิสมาอีลียะฮ์", @@ -19530,6 +21861,7 @@ "es": "iglesia ortodoxa japonesa", "fi": "japanin ortodoksinen kirkko", "fr": "église orthodoxe du japon", + "gl": "igrexa ortodoxa no xapón", "hr": "japanska pravoslavna crkva", "hu": "japán ortodox egyház", "id": "gereja ortodoks jepang", @@ -19553,6 +21885,7 @@ "bg": "свидетели на йехова", "ca": "testimonis de jehovà", "cs": "svědkové jehovovi", + "cy": "tystion jehovah", "da": "jehovas vidner", "de": "zeugen jehovas", "el": "μάρτυρες του ιεχωβά", @@ -19562,6 +21895,9 @@ "fa": "شاهدان یهوه", "fi": "jehovan todistajat", "fr": "témoins de jéhovah", + "ga": "finnéithe iáivé", + "gd": "fianaisean iehòbhah", + "gl": "testemuñas de xehová", "he": "עדי יהוה", "hi": "यहोवा के साक्षी", "hr": "jehovini svjedoci", @@ -19574,7 +21910,6 @@ "lv": "jehovas liecinieki", "ml": "യഹോവയുടെ സാക്ഷികൾ", "mr": "जेहूव्हाचे साक्षीदार", - "ms": "saksi jehovah", "nb": "jehovas vitner", "nl": "jehovah's getuigen", "pl": "świadkowie jehowy", @@ -19583,6 +21918,7 @@ "ru": "свидетели иеговы", "sk": "jehovovi svedkovia", "sl": "jehovove priče", + "sq": "dëshmitarë të jehovait", "sv": "jehovas vittnen", "ta": "யெகோவாவின் சாட்சிகள்", "th": "พยานพระยะโฮวา", @@ -19594,11 +21930,14 @@ }, "jishu": { "en": "ji-shū", + "fa": "جی-شو", "fr": "ji shū", "ja": "時宗", "ru": "дзисю", + "sl": "džišu", "th": "จิชู", - "vi": "thời tông" + "vi": "thời tông", + "zh-hk": "時宗" }, "jodo_shinshu": { "ar": "جودو شينشو", @@ -19627,7 +21966,6 @@ "fr": "jōdo shū", "he": "ג'ודו-שו", "hu": "dzsódo", - "it": "buddhismo della terra pura", "ja": "浄土宗", "ru": "дзёдо", "sl": "jōdo", @@ -19638,7 +21976,7 @@ "kimbanguist": { "cs": "kimbanguismus", "de": "kimbanguistenkirche", - "en": "kimbanguism", + "en": "kimbanguist church", "es": "iglesia kimbanguista", "fi": "kimbangulaisuus", "fr": "église kimbanguiste", @@ -19652,6 +21990,7 @@ "pl": "kimbangizm", "pt": "igreja kimbanguista", "ru": "кимбангизм", + "sv": "kimbanguism", "tr": "kimbangizm", "zh": "金邦谷教" }, @@ -19681,16 +22020,21 @@ "bg": "лутеранство", "ca": "luteranisme", "cs": "luteránství", + "cy": "yr eglwys lutheraidd", "da": "lutheranisme", "de": "lutherische kirche australiens", "el": "λουθηρανισμός", "en": "lutheran church of australia", "en-gb": "lutheranism", + "en-us": "lutheranism", "es": "luteranismo", "et": "luterlus", "fa": "لوتریانیسم", "fi": "australian luterilainen kirkko", "fr": "luthéranisme", + "ga": "liútarachas", + "gd": "lutharanachd", + "gl": "luteranismo", "he": "לותרניזם", "hi": "लूथरवाद", "hr": "luterani", @@ -19702,7 +22046,6 @@ "lt": "liuteronybė", "lv": "luterticība", "ml": "ലൂഥറനിസം", - "ms": "lutheranisme", "nl": "lutheranisme", "pl": "kościół luterański australii", "pt": "luteranismo", @@ -19710,6 +22053,7 @@ "ru": "лютеранская церковь австралии", "sk": "luteránstvo", "sl": "luteranstvo", + "sq": "luteranizmi", "sv": "lutherska kyrkan i australien", "ta": "லூதரனியம்", "th": "ลูเทอแรน", @@ -19742,6 +22086,7 @@ "bg": "маронитска църква", "ca": "església maronita", "cs": "maronitská katolická církev", + "cy": "yr eglwys faronaidd", "da": "den maronitiske kirke", "de": "syrisch-maronitische kirche", "el": "μαρωνιτική εκκλησία", @@ -19750,6 +22095,8 @@ "fa": "کلیسای مارونی", "fi": "maroniittikirkko", "fr": "église maronite", + "ga": "an eaglais mharóiníteach", + "gl": "igrexa católica maronita", "he": "הכנסייה המרונית", "hi": "मॅरोनीय मण्डली", "hr": "maronitska crkva", @@ -19759,7 +22106,6 @@ "ja": "マロン派", "ko": "마론파", "ml": "മാറോനായ സുറിയാനി സഭ", - "ms": "gereja maruniyah", "nb": "den maronittiske kirke", "nl": "maronitische kerk", "pl": "kościół maronicki", @@ -19781,6 +22127,7 @@ "bg": "менонити", "ca": "mennonisme", "cs": "mennonité", + "cy": "mennoniaid", "da": "mennonit", "de": "mennoniten", "el": "μενονίτες", @@ -19789,6 +22136,8 @@ "fa": "منونایت", "fi": "mennoniitat", "fr": "mennonitisme", + "ga": "meinninítigh", + "gl": "menonita", "he": "מנוניטים", "hu": "mennoniták", "id": "gereja menonit", @@ -19803,6 +22152,7 @@ "ro": "menoniți", "ru": "меннонитство", "sl": "menonitizem", + "sq": "mennonitët", "sv": "mennoniterna", "tr": "mennonitler", "uk": "меноніти", @@ -19822,6 +22172,7 @@ "fa": "یهودیت موعودباور", "fi": "messiaaninen juutalaisuus", "fr": "judaïsme messianique", + "gl": "xudaísmo mesiánico", "he": "יהדות משיחית", "hr": "mesijanski židovi", "hu": "messiási zsidóság", @@ -19835,7 +22186,7 @@ "pt": "judaísmo messiânico", "ro": "mesianici", "ru": "мессианский иудаизм", - "sl": "mesijanski judje", + "sl": "mesijansko judovstvo", "sv": "messiansk judendom", "ta": "மெசியா நம்பிக்கை யூதம்", "tr": "mesiyanik yahudilik", @@ -19849,6 +22200,7 @@ "bg": "методизъм", "ca": "metodisme", "cs": "metodismus", + "cy": "methodistiaeth", "da": "metodisme", "de": "methodistische und wesleyanische kirchen", "el": "μεθοδισμός", @@ -19858,6 +22210,9 @@ "fa": "متدیست", "fi": "metodismi", "fr": "méthodisme", + "ga": "modhachas", + "gd": "meathodachd", + "gl": "metodismo", "he": "מתודיזם", "hi": "मेथोडिज़्म", "hr": "metodisti", @@ -19868,7 +22223,6 @@ "ko": "감리교", "lt": "metodistai", "lv": "metodisms", - "ms": "metodisme", "nb": "metodisme", "nl": "methodisme", "pl": "metodyzm", @@ -19877,6 +22231,7 @@ "ru": "методизм", "sk": "metodizmus", "sl": "metodizem", + "sq": "metodistët", "sv": "metodism", "ta": "மெதடிசம்", "tr": "metodizm", @@ -19898,6 +22253,7 @@ "bg": "мормонизъм", "ca": "mormonisme", "cs": "mormonismus", + "cy": "mormoniaeth", "da": "mormonisme", "de": "mormonentum", "el": "μορμονισμός", @@ -19907,6 +22263,9 @@ "fa": "مورمونیسم", "fi": "mormonismi", "fr": "mormonisme", + "ga": "mormannachas", + "gd": "mormonachd", + "gl": "mormonismo", "he": "הכנסייה המורמונית", "hr": "mormon", "hu": "mormonizmus", @@ -19924,7 +22283,9 @@ "ru": "мормонизм", "sk": "mormonizmus", "sl": "mormonska cerkev", + "sq": "mormonët", "ta": "மொர்மனியம்", + "te": "మోర్మన్ మతం", "tr": "mormonluk", "uk": "мормонізм", "ur": "مورمنیت", @@ -19933,6 +22294,7 @@ }, "nazarene": { "ca": "església del natzarè", + "cy": "eglwys y nasaread", "da": "nazaréens kirke", "de": "kirche des nazareners", "el": "εκκλησία του ναζωραίου", @@ -19960,6 +22322,7 @@ "et": "uusapostlik kirik", "fi": "uusapostolinen kirkko", "fr": "église néo-apostolique", + "gl": "nova igrexa apostólica", "he": "הכנסייה האפוסטולית החדשה", "hr": "novoapostolska crkva", "hu": "új apostoli egyház", @@ -20048,6 +22411,7 @@ "bg": "обаку", "ca": "obaku", "cs": "óbaku", + "cy": "obaku", "de": "ōbaku-shū", "en": "ōbaku", "es": "obaku", @@ -20056,15 +22420,18 @@ "ja": "黄檗宗", "pt": "obaku", "ru": "обаку", + "sl": "obaku", "vi": "hoàng bá tông", "zh": "黄檗宗" }, "old_believers": { "af": "ougelowiges", + "ar": "مؤمنون قديمون", "be": "стараверства", "bg": "старообредство", "ca": "vells creients", "cs": "starověrci", + "cy": "hen gredwyr", "da": "gammeltroende", "de": "altorthodoxe", "el": "παλαιοί πιστοί", @@ -20074,6 +22441,7 @@ "fa": "باورمندان کهن", "fi": "vanhauskoisuus", "fr": "orthodoxes vieux-croyants", + "gl": "vellos crentes", "he": "אדוקי האמונה הישנה", "hu": "óhitűek", "id": "gereja pemercaya lama", @@ -20112,6 +22480,7 @@ "es": "iglesia veterocatólica", "fi": "vanhakatolinen kirkko", "fr": "église vieille-catholique", + "gl": "igrexas veterocatólicas", "hr": "starokatolička crkva", "hu": "ókatolikusok", "id": "gereja katolik lama", @@ -20128,6 +22497,7 @@ "sk": "starokatolícka cirkev", "sl": "starokatoliška cerkev", "sv": "gammalkatolska kyrkor", + "te": "పాత కాథలిక్ చర్చి", "uk": "старокатолицтво", "vi": "giáo hội công giáo cổ", "zh": "舊天主教會" @@ -20139,6 +22509,7 @@ "bg": "ортодоксален юдаизъм", "ca": "judaisme ortodox", "cs": "ortodoxní judaismus", + "cy": "iddewiaeth uniongred", "da": "ortodoks jødedom", "de": "orthodoxes judentum", "el": "ορθόδοξος ιουδαϊσμός", @@ -20150,6 +22521,8 @@ "fa": "یهودیت ارتودوکس", "fi": "ortodoksijuutalaisuus", "fr": "judaïsme orthodoxe", + "ga": "giúdach ceartchreidmheach", + "gl": "xudaísmo ortodoxo", "he": "יהדות אורתודוקסית", "hi": "पूर्वी ऑर्थोडॉक्स चर्च", "hr": "ortodoksni judaizam", @@ -20163,7 +22536,6 @@ "lv": "ortodoksālais jūdaisms", "ml": "പൗരസ്ത്യ ഓർത്തഡോക്സ് സഭ", "mr": "सनातनी ज्यूडिझम", - "ms": "yahudi ortodoks", "nb": "ortodoks jødedom", "nl": "orthodox jodendom", "pl": "judaizm ortodoksyjny", @@ -20173,6 +22545,7 @@ "ru": "ортодоксальный иудаизм", "sk": "ortodoxný judaizmus", "sl": "ortodoksno judovstvo", + "sq": "kisha ortodokse", "sv": "ortodox judendom", "ta": "மரபுவழி யூதம்", "th": "อีสเทิร์นออร์ทอดอกซ์", @@ -20199,6 +22572,7 @@ "bg": "петдесятничество", "ca": "moviment carismàtic", "cs": "charismatické hnutí", + "cy": "pentecostaidd", "da": "pinsebevægelsen", "de": "charismatische bewegung", "el": "χαρισματικό κίνημα", @@ -20208,6 +22582,9 @@ "fa": "جنبش کاریزماتیک", "fi": "karismaattinen liike", "fr": "mouvement charismatique", + "ga": "cincíseachas", + "gd": "caingeiseachd", + "gl": "pentecostalismo", "he": "פנטקוסטליזם", "hr": "karizmatski pokret", "hu": "karizmatikus mozgalom", @@ -20226,6 +22603,7 @@ "ru": "харизматическое движение", "sk": "charizmatické hnutie", "sl": "karizmatično gibanje", + "sq": "komuniteti pfingst", "sv": "karismatisk kristendom", "ta": "பெந்தகோஸ்து சபை இயக்கம்", "tr": "karizmatik hareket", @@ -20258,6 +22636,7 @@ }, "pkn": { "be": "пратэстанцкая царква нідэрландаў", + "bg": "нидерландска протестантска църква", "ca": "església protestant dels països baixos", "cs": "protestantská církev v nizozemí", "da": "protestantiske kirke i nederlanderne", @@ -20267,6 +22646,8 @@ "es": "iglesia protestante en los países bajos", "fi": "hollannin protestanttikirkko", "fr": "église protestante dans les pays-bas", + "ga": "eaglais phrotastúnach na hísiltíre", + "gl": "igrexa protestante nos países baixos", "he": "הכנסייה הפרוטסטנטית של הולנד", "id": "gereja protestan di belanda", "it": "chiesa protestante nei paesi bassi", @@ -20288,6 +22669,7 @@ "de": "polnisch-katholische kirche", "en": "polish catholic church", "fr": "église polonaise-catholique", + "gl": "igrexa polaco-católica", "it": "chiesa polacco-cattolica", "ja": "ポーランド・カトリック教会", "pl": "kościół polskokatolicki w rp", @@ -20300,6 +22682,7 @@ "en": "polish national catholic church", "es": "iglesia católica nacional polaca", "fr": "église catholique nationale polonaise", + "gl": "igrexa católica nacional polonesa", "it": "chiesa cattolica nazionale polacca", "pl": "polski narodowy kościół katolicki", "pt": "igreja católica nacional polonesa", @@ -20314,6 +22697,7 @@ "bg": "презвитерианство", "ca": "presbiterianisme", "cs": "presbyterianismus", + "cy": "presbyteriaeth", "da": "presbyterianisme", "de": "presbyterianismus", "el": "πρεσβυτεριανισμός", @@ -20323,6 +22707,9 @@ "fa": "پرسبیتری", "fi": "presbyteerinen kirkko", "fr": "presbytérianisme", + "ga": "preispitéireachas", + "gd": "seanaireachd", + "gl": "presbiterianismo", "he": "פרסביטריאניזם", "hu": "presbiteriánizmus", "id": "gereja presbiterian", @@ -20332,7 +22719,6 @@ "lt": "presbiterionai", "lv": "prezbiterānisms", "mr": "प्रेस्बिटेरियन", - "ms": "gereja presbyterian", "nb": "presbyterianisme", "nl": "presbyterianisme", "pl": "prezbiterianizm", @@ -20356,6 +22742,7 @@ "bg": "протестантство", "ca": "protestantisme", "cs": "protestantismus", + "cy": "protestaniaeth", "da": "protestantisme", "de": "protestantismus", "el": "προτεσταντισμός", @@ -20364,6 +22751,9 @@ "fa": "پروتستانتیسم", "fi": "protestantismi", "fr": "protestantisme", + "ga": "an protastúnachas", + "gd": "pròstanachas", + "gl": "protestantismo", "he": "נצרות פרוטסטנטית", "hi": "प्रोटेस्टैंट", "hr": "protestantizam", @@ -20376,7 +22766,6 @@ "lv": "protestantisms", "ml": "പ്രൊട്ടസ്റ്റന്റ് സഭകൾ", "mr": "प्रोटेस्टंट पंथ", - "ms": "protestan", "nb": "protestantisme", "nl": "protestantisme", "pl": "protestantyzm", @@ -20384,12 +22773,14 @@ "ru": "протестантизм", "sk": "protestantizmus", "sl": "protestantizem", + "sq": "protestantizëm", "ta": "சீர்திருத்தத் திருச்சபை", + "te": "ప్రొటెస్టంటు", "th": "โปรเตสแตนต์", "tr": "protestanlık", "uk": "протестантизм", "ur": "پروٹسٹنٹ", - "vi": "tin lành", + "vi": "kháng cách", "zh": "新教" }, "pure_land": { @@ -20404,11 +22795,12 @@ "fa": "آیین بودای پاک بوم", "fi": "puhtaan maan buddhalaisuus", "fr": "terre pure", + "gd": "an tìr glan", "he": "בודהיזם הארץ הטהורה", "hr": "amidizam", "hu": "tiszta föld buddhizmus", "id": "buddha tanah murni", - "it": "buddhismo della terra pura", + "it": "buddismo della terra pura", "ja": "浄土教", "ko": "정토교", "nb": "det rene lands buddhisme", @@ -20432,6 +22824,7 @@ "bg": "квакери", "ca": "societat religiosa d'amics", "cs": "kvakeři", + "cy": "crynwyr", "da": "kvæker", "de": "quäkertum", "el": "κουάκεροι", @@ -20441,6 +22834,9 @@ "fa": "کواکرها", "fi": "kveekarit", "fr": "société religieuse des amis", + "ga": "cumann na gcarad", + "gd": "comann nan caraid", + "gl": "sociedade relixiosa dos amigos", "he": "קווייקרים", "hr": "kvekeri", "hu": "kvékerek", @@ -20448,8 +22844,8 @@ "it": "quaccherismo", "ja": "クエーカー", "ko": "퀘이커", + "lt": "kvakeriai", "lv": "kvēkerisms", - "ms": "quaker", "nb": "vennenes samfunn", "nl": "genootschap der vrienden", "pl": "religijne towarzystwo przyjaciół", @@ -20458,6 +22854,7 @@ "ru": "квакеры", "sk": "kvakeri", "sl": "kvekerji", + "sq": "kuakerët", "sv": "kväkare", "ta": "நண்பர்களின் சமய சமூகம்", "th": "เควกเกอร์", @@ -20479,6 +22876,7 @@ "fa": "بازسازی خواهی در یهودیت", "fi": "rekonstruktionistinen juutalaisuus", "fr": "judaïsme reconstructionniste", + "gl": "xudaísmo reconstrucionista", "he": "יהדות רקונסטרוקטיבית", "it": "ebraismo ricostruzionista", "ja": "再建派", @@ -20488,6 +22886,7 @@ "pl": "judaizm rekonstrukcjonistyczny", "pt": "judaísmo reconstrucionista", "ru": "реконструктивистский иудаизм", + "sl": "rekonstrukcijsko judovstvo", "sv": "rekonstruktionistisk judendom", "ta": "மீளமைத்தல் யூதம்", "tr": "yeniden yapılanmacı yahudilik", @@ -20500,16 +22899,23 @@ "bg": "калвинизъм", "ca": "calvinisme", "cs": "kalvinismus", + "cy": "calfiniaeth", "da": "calvinisme", "de": "calvinismus", "el": "καλβινισμός", - "en": "calvinism", + "en": "reformed christianity", + "en-ca": "calvinism", + "en-gb": "calvinism", "es": "calvinismo", "et": "kalvinism", "fa": "کالونیسم", "fi": "kalvinismi", "fr": "calvinisme", + "ga": "cailvíneachas", + "gd": "calbhanachas", + "gl": "calvinismo", "he": "קלוויניזם", + "hi": "कैल्विनवाद", "hr": "kalvinizam", "hu": "kálvinizmus", "id": "calvinisme", @@ -20519,14 +22925,15 @@ "lt": "kalvinizmas", "lv": "kalvinisms", "ml": "കാൽവിൻവാദം", - "ms": "calvinisme", "nb": "kalvinisme", - "nl": "calvinisme", + "nl": "gereformeerd protestantisme", "pl": "kalwinizm", "pt": "calvinismo", + "ro": "calvinism", "ru": "кальвинизм", "sk": "kalvinizmus", "sl": "kalvinizem", + "sq": "kalvinizmi", "sv": "reformert kristendom", "ta": "கால்வினிசம்", "th": "ลัทธิคาลวิน", @@ -20554,6 +22961,7 @@ "bg": "риндзай", "ca": "escola rinzai", "cs": "rinzai šú", + "cy": "rinzai", "de": "rinzai-shū", "en": "rinzai school", "es": "rinzai", @@ -20590,21 +22998,66 @@ "ko": "율종", "pt": "ritsu", "ru": "риссю", + "sl": "rišu", "th": "นิกายวินัย", "uk": "риссю", "vi": "luật tông", "zh": "律宗" }, + "roman_catholic": { + "af": "latynse kerk", + "ar": "الكنيسة اللاتينية", + "be": "лацінская царква", + "ca": "església catòlica llatina", + "cs": "římskokatolická církev", + "da": "latinske kirke", + "de": "römisch-katholische kirche des lateinischen ritus", + "el": "λατινική εκκλησία", + "en": "latin church", + "es": "iglesia latina", + "fa": "کلیسای لاتین", + "fr": "église latine", + "ga": "an eaglais laidine", + "gl": "igrexa católica latina", + "he": "הכנסייה הרומית-קתולית", + "hr": "latinska crkva", + "hu": "latin rítusú katolikus egyház", + "id": "gereja latin", + "it": "chiesa latina", + "ja": "ラテン教会", + "ko": "라틴 교회", + "lt": "lotynų bažnyčia", + "lv": "latīņu baznīca", + "ml": "ലത്തീൻ കത്തോലിക്കാസഭ", + "nb": "latinske kirke", + "nl": "latijnse kerk", + "pl": "kościół łaciński", + "pt": "igreja católica de rito latino", + "ro": "biserica romano-catolică", + "ru": "латинская церковь", + "sk": "latinská cirkev", + "sl": "latinska cerkev", + "sv": "latinska kyrkan", + "th": "คริสตจักรละติน", + "tr": "latin kilisesi", + "uk": "латинська церква", + "ur": "لاطینی کلیسیا", + "vi": "giáo hội latinh", + "zh": "拉丁禮教會" + }, "romanian_catholic": { + "ar": "الكنيسة الرومانية البيزنطية الكاثوليكية", "be": "румынская грэка-каталіцкая царква", "bg": "румънска гръкокатолическа църква", "ca": "església romanesa unida a roma", "cs": "rumunská řeckokatolická církev", "da": "rumænske græsk-katolske kirke", "de": "rumänische griechisch-katholische kirche", + "el": "ρουμανική ελληνοκαθολική εκκλησία", "en": "romanian greek catholic church", "es": "iglesia greco-católica rumana", "fr": "église grecque-catholique roumaine", + "gl": "igrexa católica bizantina romanesa", "he": "הכנסייה היוונית-קתולית הרומנית", "hr": "rumunjska grkokatolička crkva", "hu": "román görögkatolikus egyház", @@ -20629,6 +23082,7 @@ "bg": "румънска православна църква", "ca": "església ortodoxa romanesa", "cs": "rumunská pravoslavná církev", + "cy": "eglwys uniongred rwmania", "da": "rumænsk-ortodokse kirke", "de": "rumänisch-orthodoxe kirche", "el": "ρουμανική ορθόδοξη εκκλησία", @@ -20638,6 +23092,9 @@ "fa": "کلیسای ارتدکس رومانی", "fi": "romanian patriarkaatti", "fr": "église orthodoxe roumaine", + "ga": "eaglais cheartchreidmheach na rómáine", + "gd": "eaglais ortodogsach romàinia", + "gl": "igrexa ortodoxa romanesa", "he": "הכנסייה האורתודוקסית הרומנית", "hr": "rumunjska pravoslavna crkva", "hu": "román ortodox egyház", @@ -20653,6 +23110,7 @@ "ru": "румынская православная церковь", "sk": "rumunská pravoslávna cirkev", "sl": "romunska pravoslavna cerkev", + "sq": "kisha ortodokse rumune", "sv": "rumänsk-ortodoxa kyrkan", "th": "คริสตจักรออร์ทอดอกซ์โรมาเนีย", "tr": "romanya ortodoks kilisesi", @@ -20667,6 +23125,7 @@ "bg": "руска православна църква", "ca": "església ortodoxa russa", "cs": "ruská pravoslavná církev", + "cy": "eglwys uniongred rwsia", "da": "den russisk-ortodokse kirke", "de": "russisch-orthodoxe kirche", "el": "ρωσική ορθόδοξη εκκλησία", @@ -20676,6 +23135,9 @@ "fa": "کلیسای ارتدكس روسی", "fi": "moskovan ja koko venäjän patriarkaatti", "fr": "église orthodoxe russe", + "ga": "eaglais cheartchreidmheach na rúise", + "gd": "eaglais ortodogsach na ruise", + "gl": "igrexa ortodoxa rusa", "he": "הכנסייה האורתודוקסית הרוסית", "hi": "रूसी पारम्परिक ईसाई", "hr": "ruska pravoslavna crkva", @@ -20686,7 +23148,6 @@ "ko": "러시아 정교회", "lt": "rusijos stačiatikių bažnyčia", "lv": "krievijas pareizticīgo baznīca", - "ms": "gereja ortodoks rusia", "nb": "den russisk-ortodokse kirke", "nl": "russisch-orthodoxe kerk", "pl": "rosyjski kościół prawosławny", @@ -20695,6 +23156,7 @@ "ru": "русская православная церковь", "sk": "ruská pravoslávna cirkev", "sl": "ruska pravoslavna cerkev", + "sq": "kisha ruse", "sv": "rysk-ortodoxa kyrkan", "ta": "உருசிய மரபுவழித் திருச்சபை", "th": "ศาสนจักรออร์โธดอกซ์รัสเซีย", @@ -20705,10 +23167,12 @@ "zh": "俄罗斯正教会" }, "salvation_army": { + "af": "heilsleër", "ar": "جيش الخلاص", "bg": "армия на спасението", "ca": "exèrcit de salvació", "cs": "armáda spásy", + "cy": "byddin yr iachawdwriaeth", "da": "frelsens hær", "de": "heilsarmee", "el": "στρατός της σωτηρίας", @@ -20718,6 +23182,7 @@ "fa": "سپاه رستگاری", "fi": "pelastusarmeija", "fr": "armée du salut", + "gl": "exército de salvación", "he": "צבא הישע", "hi": "मुक्ति सेना", "hr": "vojska spasa", @@ -20735,8 +23200,10 @@ "ru": "армия спасения", "sk": "armáda spásy", "sl": "vojska odrešitve", + "sq": "ushtria e shpëtimit", "sv": "frälsningsarmén", "ta": "இரட்சணிய சேனை", + "te": "సాల్వేషన్ ఆర్మీ", "tr": "selâmet ordusu", "uk": "армія спасіння", "ur": "سپاۂ نجات", @@ -20751,6 +23218,7 @@ "bg": "самаряни", "ca": "samaritans", "cs": "samaritáni", + "cy": "samariaid", "da": "samaritaner", "de": "samaritaner", "el": "σαμαρείτες", @@ -20759,6 +23227,7 @@ "fa": "سامریها", "fi": "samarialaiset", "fr": "samaritains", + "gl": "samaritanos", "he": "שומרונים", "hr": "samaritanci", "hu": "szamaritánusok", @@ -20769,7 +23238,6 @@ "lt": "samariečiai", "lv": "samarieši", "ml": "ശമരിയർ", - "ms": "orang samaria", "nb": "samaritaner", "nl": "samaritanen", "pl": "samarytanie", @@ -20794,12 +23262,15 @@ "ja": "サント・ダイミ" }, "scottish_episcopal": { + "ar": "الكنيسة الأسقفية الإسكتلندية", "cs": "skotská episkopální církev", + "cy": "eglwys esgobol yr alban", "en": "scottish episcopal church", "es": "iglesia episcopal escocesa", "fa": "کلیسای اسقفی اسکاتلند", "fi": "skotlannin episkopaalinen kirkko", "fr": "église épiscopalienne écossaise", + "gd": "eaglais easbaigeach na h-alba", "he": "הכנסייה האפיסקופלית הסקוטית", "id": "gereja episkopal skotlandia", "it": "chiesa episcopale scozzese", @@ -20809,6 +23280,7 @@ "pt": "igreja episcopal escocesa", "ro": "biserica episcopală scoțiană", "ru": "шотландская епископальная церковь", + "sl": "škotska episkopalna cerkev", "sv": "skotska episkopalkyrkan", "uk": "шотландська єпископальна церква", "vi": "giáo hội giám nhiệm scotland", @@ -20830,6 +23302,8 @@ "fa": "کلیسای ارتدکس صربی", "fi": "serbian ortodoksinen kirkko", "fr": "église orthodoxe serbe", + "ga": "eaglais cheartchreidmheach na seirbia", + "gl": "igrexa ortodoxa serbia", "he": "הכנסייה האורתודוקסית הסרבית", "hr": "srpska pravoslavna crkva", "hu": "szerb ortodox egyház", @@ -20838,6 +23312,7 @@ "ja": "セルビア正教会", "ko": "세르비아 정교회", "lt": "serbijos stačiatikių bažnyčia", + "lv": "serbijas pareizticīgā baznīca", "nb": "den serbisk-ortodokse kirke", "nl": "servisch-orthodoxe kerk", "pl": "serbski kościół prawosławny", @@ -20846,6 +23321,7 @@ "ru": "сербская православная церковь", "sk": "srbská pravoslávna cirkev", "sl": "srbska pravoslavna cerkev", + "sq": "kisha ortodokse serbe", "sv": "serbisk-ortodoxa kyrkan", "th": "คริสตจักรออร์ทอดอกซ์เซอร์เบีย", "tr": "sırp ortodoks kilisesi", @@ -20861,6 +23337,7 @@ "bg": "църква на адвентистите от седмия ден", "ca": "església adventista del setè dia", "cs": "adventisté sedmého dne", + "cy": "eglwys adfentydd y seithfed dydd", "da": "syvende dags adventistkirken", "de": "siebenten-tags-adventisten", "el": "εκκλησία αντβεντιστών της εβδόμης ημέρας", @@ -20870,6 +23347,8 @@ "fa": "کلیسای منتظران ظهور روز هفتم", "fi": "seitsemännen päivän adventismi", "fr": "église adventiste du septième jour", + "ga": "eaglais ateachtach an tseachtú lá", + "gl": "igrexa adventista do sétimo día", "he": "הכנסייה האדוונטיסטית של היום השביעי", "hr": "adventisti sedmog dana", "hu": "hetednapi adventista egyház", @@ -20880,7 +23359,6 @@ "lt": "septintosios dienos adventistai", "lv": "septītās dienas adventisti", "ml": "ശാബത് സഭ", - "ms": "gereja advent hari ketujuh", "nb": "syvendedagsadventister", "nl": "zevendedagsadventisten", "pl": "kościół adwentystów dnia siódmego", @@ -20913,6 +23391,7 @@ "fa": "شیواپرستی", "fi": "shaivismi", "fr": "shivaïsme", + "gl": "shivaísmo", "he": "שיוויזם", "hi": "शैव", "hu": "saivizmus", @@ -20925,7 +23404,6 @@ "lv": "šivaisms", "ml": "ശൈവമതം", "mr": "शैव पंथ", - "ms": "saivisme", "nb": "shaivisme", "nl": "shaivisme", "pl": "śiwaizm", @@ -20934,7 +23412,9 @@ "ru": "шиваизм", "sk": "šivaizmus", "sl": "šivaizem", + "sq": "shaivizmi", "ta": "சைவ சமயம்", + "te": "శైవము", "th": "ลัทธิไศวะ", "tr": "şaivizm", "uk": "шайвізм", @@ -20956,6 +23436,7 @@ "fa": "شاکتیپرستی", "fi": "shaktismi", "fr": "shaktisme", + "gl": "shaktismo", "he": "שאקטיזם", "hi": "शाक्त", "hr": "šaktizam", @@ -20968,7 +23449,6 @@ "lt": "šaktizmas", "ml": "ശാക്തേയം", "mr": "शाक्त पंथ", - "ms": "syaktisme", "nb": "shaktisme", "nl": "shaktisme", "pl": "śaktyzm", @@ -20976,7 +23456,9 @@ "ru": "шактизм", "sk": "šaktizmus", "sl": "šaktizem", + "sq": "shaktizmi", "ta": "சாக்தம்", + "te": "శక్తి ఆరాధన", "th": "ลัทธิศักติ", "tr": "şaktizm", "uk": "шактизм", @@ -20990,6 +23472,7 @@ "bg": "шиитски ислям", "ca": "xiïsme", "cs": "ší'itský islám", + "cy": "shia", "da": "shia-islam", "de": "schia", "el": "σιιτισμός", @@ -20999,6 +23482,8 @@ "fa": "شیعه", "fi": "šiialaisuus", "fr": "chiisme", + "ga": "siach", + "gl": "xiísmo", "he": "אסלאם שיעי", "hi": "शिया इस्लाम", "hr": "šijitizam", @@ -21011,7 +23496,6 @@ "lv": "šiītu islāms", "ml": "ഷിയാ ഇസ്ലാം", "mr": "शिया इस्लाम", - "ms": "syiah", "nb": "sjiaislam", "nl": "sjiisme", "pl": "szyizm", @@ -21019,20 +23503,23 @@ "ro": "șiism", "ru": "шиизм", "sk": "šiitizmus", - "sl": "šiizem", + "sl": "šiitizem", "sv": "shia", "ta": "சியா இசுலாம்", + "te": "షియా ఇస్లాం", "th": "ชีอะฮ์", "tr": "şia", "uk": "шиїти", "ur": "اہل تشیع", "vi": "hồi giáo shia", - "zh": "什叶派" + "zh": "什叶派", + "zh-tw": "什葉派" }, "shingon_shu": { "bg": "шингон", "ca": "shingon", "cs": "šingon", + "cy": "shingon", "da": "shingon skolen", "de": "shingon-shū", "en": "shingon buddhism", @@ -21044,7 +23531,7 @@ "he": "שינגון", "hu": "singon buddhizmus", "id": "buddhisme shingon", - "it": "buddhismo shingon", + "it": "buddismo shingon", "ja": "真言宗", "ko": "진언종", "mr": "शिंगॉन", @@ -21056,7 +23543,7 @@ "ru": "сингон", "sl": "šingonski budizem", "sv": "shingon", - "th": "ชิงงน", + "th": "ชิงงง", "tr": "shingon budizmi", "uk": "секта сінґон", "vi": "chân ngôn tông", @@ -21069,6 +23556,7 @@ "bg": "славянска религия", "ca": "mitologia eslava", "cs": "slovanská mytologie", + "cy": "mytholeg slafaidd", "da": "slavisk mytologi", "de": "slawische mythologie", "el": "σλαβική μυθολογία", @@ -21122,8 +23610,11 @@ "pl": "smartyzm", "pt": "smarta", "ru": "смартизм", + "sl": "smarta", "sv": "smartism", "ta": "ஸ்மார்த்தம்", + "te": "స్మార్తం", + "tr": "smartizm", "uk": "смартизм", "ur": "سمارت سوتر", "zh": "师摩多派" @@ -21132,10 +23623,12 @@ "bg": "сото", "ca": "soto zen", "cs": "sótó", + "cy": "soto", "de": "sōtō-shū", "el": "σότο ζεν", "en": "sōtō", "fa": "سوتو", + "gl": "zen soto", "hu": "szótó", "id": "soto", "it": "sōtō-shū", @@ -21146,6 +23639,7 @@ "pt-br": "sōtō-shū", "ru": "сото-сю", "sk": "sótó zen", + "sl": "soto", "uk": "секта сото", "vi": "tào động tông", "zh": "日本曹洞宗", @@ -21166,6 +23660,8 @@ "fa": "روح گرایی", "fi": "spiritismi", "fr": "spiritisme", + "ga": "spioradachas", + "gl": "espiritismo", "hr": "spiritizam", "hu": "spiritizmus", "id": "spiritisme", @@ -21192,6 +23688,7 @@ "bg": "суфизъм", "ca": "sufisme", "cs": "súfismus", + "cy": "swffïaeth", "da": "sufisme", "de": "sufismus", "el": "σουφισμός", @@ -21200,6 +23697,9 @@ "fa": "تصوف", "fi": "suufilaisuus", "fr": "soufisme", + "ga": "sufaisteachas", + "gd": "sùfaidheachd", + "gl": "sufismo", "he": "סופיות", "hi": "सूफ़ीवाद", "hr": "sufizam", @@ -21213,7 +23713,6 @@ "lv": "sūfisms", "ml": "സൂഫി", "mr": "सूफी पंथ", - "ms": "tasawuf", "nb": "sufisme", "nl": "soefisme", "pl": "sufizm", @@ -21221,7 +23720,9 @@ "ru": "суфизм", "sk": "sufizmus", "sl": "sufizem", + "sq": "sufizmi", "ta": "சூபியம்", + "te": "సూఫీ తత్వము", "th": "ลัทธิศูฟี", "tr": "tasavvuf", "uk": "суфізм", @@ -21235,6 +23736,7 @@ "bg": "сунитски ислям", "ca": "sunnisme", "cs": "sunnitský islám", + "cy": "sunni", "da": "sunni-islam", "de": "sunniten", "el": "σουνιτισμός", @@ -21244,6 +23746,9 @@ "fa": "سنی", "fi": "sunnalaisuus", "fr": "sunnisme", + "ga": "an tioslam sunnaíoch", + "gd": "ioslam sunnitheach", + "gl": "sunnismo", "he": "אסלאם סוני", "hi": "सुन्नी इस्लाम", "hr": "sunizam", @@ -21257,7 +23762,6 @@ "lv": "sunnītu islāms", "ml": "സുന്നി", "mr": "सुन्नी इस्लाम", - "ms": "ahli sunah waljamaah", "nb": "sunniislam", "nl": "soennisme", "pl": "sunnizm", @@ -21266,8 +23770,10 @@ "ru": "суннизм", "sk": "sunnitský islam", "sl": "sunitizem", + "sq": "islami sunnit", "sv": "sunniislam", "ta": "சுன்னி இஸ்லாம்", + "te": "సున్నీ ఇస్లాం", "th": "ซุนนี", "tr": "sünni i̇slam", "uk": "сунізм", @@ -21277,8 +23783,9 @@ "zh-cn": "逊尼派" }, "svetambara": { + "ca": "śvētāmbara", "de": "shvetambaras", - "en": "śvētāmbara", + "en": "śvetāmbara", "en-ca": "svetambara", "en-gb": "svetambara", "es": "svetambara", @@ -21309,6 +23816,8 @@ "en": "syro-malabar church", "es": "iglesia católica siro-malabar", "fr": "église catholique syro-malabare", + "ga": "an eaglais chaitliceach shiri-mhalabrach", + "gl": "igrexa católica siro-malabar", "hr": "siro-malabarska katolička crkva", "hu": "szír-malabár katolikus egyház", "id": "gereja katolik suriah-malabar", @@ -21336,6 +23845,7 @@ "en": "tiantai", "es": "escuela budista del tiantai", "fa": "تیانتای", + "he": "טיאנטאי", "hu": "tientaj", "it": "buddhismo tiāntái", "ja": "天台宗", @@ -21353,6 +23863,7 @@ "bg": "тибетски будизъм", "ca": "budisme tibetà", "cs": "tibetský buddhismus", + "cy": "bwdhaeth dibetaidd", "da": "tibetansk buddhisme", "de": "buddhismus in tibet", "el": "λαμαϊσμός", @@ -21362,18 +23873,20 @@ "fa": "بودیسم تبتی", "fi": "tiibetinbuddhalaisuus", "fr": "bouddhisme tibétain", + "ga": "búdachas tibéadach", + "gd": "budastachd thibeiteach", + "gl": "budismo tibetano", "he": "בודהיזם טיבטי", "hi": "तिब्बती बौद्ध धर्म", "hr": "tibetanski budizam", "hu": "tibeti buddhizmus", "id": "buddhisme tibet", - "it": "buddhismo tibetano", + "it": "buddismo tibetano", "ja": "チベット仏教", "ko": "티베트 불교", "lt": "lamaizmas", "lv": "lamaisms", "mr": "तिबेटी बौद्ध धर्म", - "ms": "buddhisme tibet", "nb": "tibetansk buddhisme", "nl": "tibetaans boeddhisme", "pl": "buddyzm tybetański", @@ -21382,6 +23895,7 @@ "ru": "тибетский буддизм", "sk": "tibetský budhizmus", "sl": "tibetanski budizem", + "sq": "budizmi tibetian", "sv": "tibetansk buddhism", "ta": "திபெத்திய பௌத்தம்", "th": "ศาสนาพุทธแบบทิเบต", @@ -21397,6 +23911,7 @@ "bg": "украинска гръкокатолическа църква", "ca": "església grecocatòlica ucraïnesa", "cs": "ukrajinská řeckokatolická církev", + "cy": "eglwys gatholig roegaidd wcráin", "da": "den ukrainske græsk-katolske kirke", "de": "ukrainische griechisch-katholische kirche", "el": "ουκρανική ελληνοκαθολική εκκλησία", @@ -21405,6 +23920,7 @@ "et": "ukraina kreekakatoliku kirik", "fi": "ukrainan kreikkalaiskatolinen kirkko", "fr": "église grecque-catholique ukrainienne", + "gl": "igrexa católica bizantina ucraína", "he": "הכנסיה היוונית קתולית אוקראינית", "hr": "ukrajinska grkokatolička crkva", "hu": "ukrán görögkatolikus egyház", @@ -21421,6 +23937,7 @@ "ru": "украинская грекокатолическая церковь", "sk": "ukrajinská gréckokatolícka cirkev", "sl": "ukrajinska grškokatoliška cerkev", + "sq": "kisha greko-katolike ukrainase", "sv": "ukrainska grekisk-katolska kyrkan", "tr": "ukrayna rum katolik kilisesi", "uk": "українська греко-католицька церква", @@ -21429,6 +23946,49 @@ "zh-hk": "烏克蘭希臘禮天主教會", "zh-tw": "烏克蘭希臘禮天主教會" }, + "ukrainian_orthodox": { + "af": "ortodokse kerk in oekraïne", + "ar": "الكنيسة الأوكرانية الأرثوذكسية", + "be": "праваслаўная царква украіны", + "bg": "православна църква на украйна", + "ca": "església ortodoxa d'ucraïna", + "cs": "pravoslavná církev ukrajiny", + "da": "ukrainske ortodokse kirke", + "de": "orthodoxe kirche der ukraine", + "el": "ορθόδοξη εκκλησία της ουκρανίας", + "en": "orthodox church of ukraine", + "es": "iglesia ortodoxa de ucrania", + "et": "ukraina õigeusu kirik", + "fa": "کلیسای ارتدکس اوکراین", + "fi": "ukrainan ortodoksinen kirkko", + "fr": "église orthodoxe d'ukraine", + "ga": "eaglais cheartchreidmheach na húcráine", + "gl": "igrexa ortodoxa de ucraína", + "he": "הכנסייה האורתודוקסית של אוקראינה", + "hr": "ukrajinska pravoslavna crkva", + "hu": "ukrán ortodox egyház", + "id": "gereja ortodoks ukraina", + "it": "chiesa ortodossa dell'ucraina", + "ja": "ウクライナ正教会", + "ko": "우크라이나 정교회", + "lt": "ukrainos stačiatikių bažnyčia", + "lv": "ukrainas pareizticīgā baznīca", + "nb": "den ukrainske ortodokse kirke", + "nl": "oekraïens-orthodoxe kerk", + "pl": "kościół prawosławny ukrainy", + "pt": "igreja ortodoxa da ucrânia", + "pt-br": "igreja", + "ro": "biserica ortodoxă a ucrainei", + "ru": "православная церковь украины", + "sk": "pravoslávna cirkev na ukrajine", + "sl": "pravoslavna cerkev ukrajine", + "sv": "ukrainska ortodoxa kyrkan", + "th": "คริสตจักรออร์ทอดอกซ์แห่งยูเครน", + "tr": "ukrayna ortodoks kilisesi", + "uk": "православна церква україни", + "vi": "giáo hội chính thống giáo ukraina", + "zh": "烏克蘭正教會" + }, "ultra_orthodox": { "ar": "يهودية حريدية", "ca": "haredim", @@ -21443,6 +24003,7 @@ "fr": "haredim", "he": "יהדות חרדית", "hr": "haredi", + "hu": "haredi judaizmus", "id": "yudaisme haredi", "it": "charedì", "ja": "超正統派", @@ -21455,6 +24016,7 @@ "ro": "iudaism ultraortodox", "ru": "харедим", "sl": "haredsko judovstvo", + "sq": "judaizmi haredi", "ta": "நெறி வழுவா யூதம்", "tr": "haredi yahudilik", "uk": "харедім", @@ -21463,12 +24025,14 @@ }, "united": { "ar": "الكنيسة المتحدة لكندا", + "ca": "església unida del canadà", "cs": "sjednocená církev kanady", "en": "united church of canada", "es": "iglesia unida de canadá", "fa": "کلیسای یونایتد کانادا", "fi": "kanadan yhdistynyt kirkko", "fr": "église unie du canada", + "gl": "igrexa unida do canadá", "hu": "kanadai egyesült egyház", "it": "chiesa unita del canada", "ja": "カナダ合同教会", @@ -21505,6 +24069,7 @@ "en": "united free church of scotland", "fi": "skotlannin yhdistynyt vapaakirkko", "fr": "église libre unie d'écosse", + "gd": "an eaglais shaor aonaichte", "pt": "igreja livre unida da escócia" }, "united_methodist": { @@ -21519,6 +24084,9 @@ "et": "ühinenud metodisti kirik", "fi": "yhdistynyt metodistikirkko", "fr": "église méthodiste unie", + "ga": "eaglais mheitidisteach aontaithe", + "gd": "an eaglais mheathodach aonaichte", + "gl": "igrexa metodista unida", "he": "הכנסייה המתודיסטית המאוחדת", "hu": "egyesült metodista egyház", "id": "gereja metodis", @@ -21538,6 +24106,7 @@ }, "united_reformed": { "cs": "spojená reformovaná církev", + "cy": "eglwys ddiwygiedig unedig", "en": "united reformed church", "fi": "yhdistynyt reformoitu kirkko", "he": "הכנסייה הרפורמית המאוחדת", @@ -21570,6 +24139,7 @@ "fa": "ویشنوپرستی", "fi": "vaishnavismi", "fr": "vaishnava", + "gl": "vishnuísmo", "he": "וישנויזם", "hi": "वैष्णव सम्प्रदाय", "hu": "vaisnavizmus", @@ -21582,7 +24152,6 @@ "lv": "višnuisms", "ml": "വൈഷ്ണവമതം", "mr": "वैष्णव पंथ", - "ms": "vaishnavisme", "nb": "vaishnavisme", "nl": "vaishnavisme", "pl": "wisznuizm", @@ -21590,7 +24159,9 @@ "ru": "вишнуизм", "sk": "višnuizmus", "sl": "višnuizem", + "sq": "vaishnavizmi", "ta": "வைணவ சமயம்", + "te": "వైష్ణవం", "th": "ลัทธิไวษณพ", "tr": "vaiśeṣika", "uk": "вайшнавізм", @@ -21612,7 +24183,7 @@ "hr": "vađrajana", "hu": "vadzsrajána", "id": "wajrayana", - "it": "buddhismo vajrayana", + "it": "buddismo vajrayana", "ja": "密教", "ko": "밀교", "lt": "vadžrajana", @@ -21624,6 +24195,7 @@ "sk": "vadžrajána", "sl": "vadžrajana", "ta": "வச்ரயான பௌத்தம்", + "te": "వజ్రయానం", "th": "วัชรยาน", "uk": "ваджраяна", "ur": "وجریان", @@ -21633,7 +24205,9 @@ "wicca": { "ar": "ويكا", "bg": "уика", + "cy": "wica", "en": "wicca", + "es": "wiccanismo", "fa": "ویکا", "he": "ויקה", "ja": "ウィッカ", @@ -21708,6 +24282,7 @@ "ru": "дзэн", "sk": "zen-budhizmus", "ta": "சென் புத்தமதம்", + "te": "జెన్", "th": "เซน", "uk": "дзен", "ur": "زین بدھ مت", @@ -21717,6 +24292,18 @@ "zh-tw": "禪宗" } }, + "denotation": { + "urban": { + "da": "bytræ", + "de": "stadtbaum", + "en": "urban tree", + "es": "árbol urbano", + "fr": "arbre urbain", + "hu": "városi fa", + "it": "albero da alberatura urbana", + "sl": "urbano drevo" + } + }, "departures_board": { "realtime": { "ar": "نظام معلومات المسافرين الديناميكي", @@ -21730,20 +24317,25 @@ "area_of_outstanding_natural_beauty": { "ar": "منطقة ذات جمال طبيعي أخاذ", "ca": "àrea de bellesa natural excepcional", + "cy": "ardal o harddwch naturiol eithriadol", "en": "area of outstanding natural beauty", "es": "área de destacada belleza natural", "fa": "ناحیه زیبای طبیعی برجسته", + "gl": "área de salientable beleza natural", "he": "אזור יופי טבעי יוצא דופן", "ja": "特別自然美観地域", "ko": "자연절경지역", "lt": "išskirtinio natūralaus grožio sritis", "ru": "зона выдающейся природной красоты", + "sl": "območje izjemne naravne lepote", "th": "เขตธรรมชาติงดงามดีเด่น", + "tr": "olağanüstü doğal güzellik alanı", "zh": "美麗風光保留區" }, "civil_parish": { "ca": "parròquia civil", "cs": "civilní farnost", + "cy": "plwyf sifil", "de": "parish", "el": "ενορία", "en": "civil parish", @@ -21751,6 +24343,9 @@ "es": "parroquia civil", "fa": "پریش (تقسیمات اداری)", "fr": "paroisse civile", + "ga": "paróiste sibhialta", + "gl": "parroquia civil", + "he": "קהילה אזרחית", "hu": "község", "it": "parrocchia civile", "ja": "行政教区", @@ -21769,6 +24364,7 @@ }, "common": { "ar": "أرض مشتركة", + "cy": "tir comin", "da": "fælled", "de": "allmende", "en": "common land", @@ -21791,10 +24387,13 @@ "community": { "af": "community (wallis)", "ca": "comunitat", + "cy": "cymuned", "de": "community in wales", "en": "community", "es": "comunidad", "fr": "communauté", + "ga": "comhphobal", + "gl": "comunidade", "he": "קהילה", "it": "comunità del galles", "ja": "コミュニティ", @@ -21813,26 +24412,31 @@ "be": "метрапольны бора", "ca": "districte metropolità", "cs": "anglické metropolitní distrikty", + "cy": "bwrdeistref fetropolitan", "da": "metropolitan boroughs", + "el": "μητροπολιτικό διαμέρισμα", "en": "metropolitan borough", "es": "borough metropolitano", "et": "linnkrahvkonna linnaosa", "fa": "کلانشهر مستقل", "fr": "district métropolitain", + "ga": "buirg chathrach", + "gl": "distrito metropolitano", "he": "רובע באנגליה", "hr": "metropolitanski okruzi", "id": "distrik metropolitan", "it": "distretto metropolitano d'inghilterra", "ja": "首都バラ", "ko": "도시 자치구", + "lv": "metropoles boro", "pl": "dystrykt metropolitalny", "pt": "distrito metropolitano", "ro": "district metropolitan", "ru": "метропольный боро в англии", - "sl": "metropolitanski borough", + "sl": "metropolitanski okraj", "sv": "storstadsdistrikt", "tr": "metropolitan kent", - "uk": "метрополітенські райони англії", + "uk": "метропольний район англії", "ur": "شہری بورو", "vi": "khu tự quản vùng đô thị", "zh": "都市自治市" @@ -21840,6 +24444,7 @@ "non_metropolitan_county": { "ca": "comtat no metropolità", "cs": "anglické nemetropolitní hrabství", + "cy": "sir an-fetropolitan", "de": "nicht-metropolen-landkreis", "el": "μη-μητροπολιτική κομητεία", "en": "non-metropolitan county", @@ -21847,12 +24452,15 @@ "et": "mittelinnkrahvkond", "fi": "shire-kreivikunta", "fr": "comté non métropolitain", + "ga": "contae neamhchathrach", + "gl": "condado non metropolitano", "he": "מחוז לא-מטרופוליטני", "hr": "nemetropolitanske grofovije", "hu": "anglia shire megyéi", "it": "contea non metropolitana", "ja": "シャイア・カウンティ", "ko": "비도시주", + "lv": "anglijas nemetropoles grāfistes", "pl": "hrabstwo niemetropolitalne", "pt": "condado não-metropolitano", "ro": "comitat nemetropolitan", @@ -21871,21 +24479,26 @@ "be": "неметрапольны раён", "ca": "districte no metropolità", "cs": "anglické nemetropolitní distrikty", + "cy": "ardal an-fetropolitan", "el": "μη-μητροπολιτική περιφέρεια", "en": "non-metropolitan district", "es": "distrito no metropolitano", + "fa": "منطقه غیر کلانشهری", "fr": "district non métropolitain", + "ga": "ceantar neamhchathrach", + "gl": "distrito non metropolitano", "he": "נפה לא-מטרופוליטנית", "hr": "nemetropolitanski okruzi", "it": "distretto non metropolitano dell'inghilterra", "ja": "非都市ディストリクト", "ko": "비도시 자치구", + "lv": "nemetropoles distrikts", "pl": "dystrykt niemetropolitalny", "pt": "distrito não-metropolitano", "pt-br": "distrito não metropolitano", "ro": "district nemetropolitan", "ru": "неметропольный район", - "sl": "nemetropolitansko okrožje", + "sl": "nemetropolitanski distrikt", "tr": "metropol olmayan bölge", "uk": "неметропольний район", "ur": "غیر میٹروپولیٹن ضلع", @@ -21908,6 +24521,7 @@ "en": "vegan restaurant", "es": "restaurante vegano", "it": "ristorante vegano", + "ja": "ヴィーガンレストラン", "lv": "vegānu restorāns", "nl": "veganistische eetgelegenheid", "pt": "restaurante vegano", @@ -21930,14 +24544,15 @@ "fa": "کنسولگری", "fi": "konsulaatti", "fr": "consulat", + "gl": "consulado", "he": "קונסוליה", + "hi": "वाणिज्य दूतावास", "hu": "konzulátus", "id": "konsulat", "it": "consolato", "ja": "領事館", "ko": "영사관", "lv": "konsulāts", - "ms": "konsulat", "nb": "konsulat", "nl": "consulaat", "pl": "urząd konsularny", @@ -21966,12 +24581,13 @@ "es": "consulado general", "fi": "pääkonsulaatti", "fr": "consulat général", + "gl": "consulado xeral", "he": "קונסוליה כללית", "hu": "főkonzulátus", "id": "konsulat jenderal", + "it": "consolato generale", "ja": "総領事館", "ko": "총영사관", - "ms": "konsulat jeneral", "nb": "generalkonsulat", "nl": "consulaat-generaal", "pl": "konsulat generalny", @@ -21991,6 +24607,7 @@ "bg": "посолство", "ca": "ambaixada", "cs": "ambasáda", + "cy": "llysgenhadaeth", "da": "ambassade", "de": "botschaft", "el": "πρεσβεία", @@ -22000,6 +24617,8 @@ "fa": "سفارت", "fi": "suurlähetystö", "fr": "ambassade", + "ga": "ambasáid", + "gl": "embaixada", "he": "שגרירות", "hr": "veleposlanstvo", "hu": "nagykövetség", @@ -22009,7 +24628,6 @@ "ko": "대사관", "lt": "ambasada", "lv": "vēstniecība", - "ms": "kedutaan besar", "nb": "ambassade", "nl": "ambassade", "pl": "ambasada", @@ -22018,6 +24636,7 @@ "ru": "посольство", "sk": "veľvyslanectvo", "sl": "veleposlaništvo", + "sq": "ambasadë", "sv": "ambassad", "th": "สถานเอกอัครราชทูต", "tr": "sefaret", @@ -22046,6 +24665,7 @@ "liaison": { "en": "liaison office", "es": "oficina de enlace", + "it": "ufficio di collegamento", "ja": "連絡事務所", "pt": "gabinete de ligação", "zh": "联络办事处", @@ -22054,6 +24674,7 @@ "permanent_mission": { "be": "пастаяннае прадстаўніцтва", "cs": "stálé zastoupení", + "da": "fast repræsentation", "de": "ständige vertretung", "en": "permanent mission", "es": "misión permanente", @@ -22082,6 +24703,7 @@ "bg": "слънчев часовник", "ca": "rellotge de sol", "cs": "sluneční hodiny", + "cy": "deial haul", "da": "solur", "de": "sonnenuhr", "el": "ηλιακό ρολόι", @@ -22091,6 +24713,9 @@ "fa": "ساعت آفتابی", "fi": "aurinkokello", "fr": "cadran solaire", + "ga": "clog gréine", + "gd": "uaireadair-grèine", + "gl": "reloxo de sol", "he": "שעון שמש", "hi": "सौर घड़ी", "hr": "sunčani sat", @@ -22102,7 +24727,6 @@ "lt": "saulės laikrodis", "lv": "saules pulkstenis", "ml": "സൂര്യഘടികാരം", - "ms": "jam matahari", "nb": "solur", "nl": "zonnewijzer", "pl": "zegar słoneczny", @@ -22111,8 +24735,10 @@ "ru": "солнечные часы", "sk": "slnečné hodiny", "sl": "sončna ura", + "sq": "meridian", "sv": "solur", "ta": "சூரிய மணி காட்டி", + "te": "పలభా యంత్రము", "th": "นาฬิกาแดด", "tr": "güneş saati", "uk": "сонячний годинник", @@ -22130,69 +24756,68 @@ "es": "destilería de whisky", "fi": "viskitislaamo", "fr": "distillerie de whisky", + "ga": "drioglann uisce beatha", "he": "מזקקת ויסקי", "it": "distilleria di whisky", "ja": "ウイスキー蒸留所", "nl": "whisky-destilleerderij", "pt": "destilaria de whisky", "ru": "вискодельня", + "sl": "destilarna viskija", "sv": "whiskydestilleri" } }, "disused": { "": { - "ar": "سجن قديم", - "ca": "antiga estació de ferrocarril", - "cs": "zrušená železniční zastávka", - "da": "tidligere fængsel", - "de": "ehemalige apotheke", + "ar": "منظمة توقّف نشاطها", + "be": "расфармаваная арганізацыя", + "ca": "organització dissolta", + "cs": "zaniklá organizace", + "cy": "hen warws", + "da": "tidligere organisation", + "de": "ehemalige organisation", "el": "πρώην σιδηροδρομικός σταθμός", - "en": "former pharmacy", - "en-gb": "disused railway station", - "es": "antigua farmacia", - "fi": "entinen varasto", - "fr": "ancienne pharmacie", - "he": "תחנת רכבת לשעבר", - "hu": "megszűnt börtön", - "it": "fermata ferroviaria dismessa", - "ja": "かつての鉄道駅", - "ko": "없어진 철도역", - "nb": "tidligere jernbanestasjon", - "nl": "voormalige apotheek", - "pl": "dawny przystanek kolejowy", - "pt": "antiga prisão", - "ru": "бывший (заброшенный) остановочный пукт", - "sl": "nekdanji zapor", - "sv": "nerlagd järnvägsstation", + "en": "defunct organization", + "en-gb": "defunct organisation", + "es": "organización desaparecida", + "fi": "entinen organisaatio", + "fr": "organisation dissoute", + "ga": "eagraíocht éagtha", + "gl": "organización disolta", + "he": "אירגון לשעבר", + "hu": "megszűnt szervezet", + "it": "organizzazione soppressa", + "ja": "現存しない組織", + "ko": "해산된 단체", + "nb": "oppløst organisasjon", + "nl": "opgeheven organisatie", + "pl": "rozwiązana organizacja", + "pt": "organização extinta", + "ru": "расформированная организация", + "sl": "nekdanja organizacija", + "sv": "upplöst organisation", "tr": "eski tren istasyonu", - "uk": "колишня залізнична станція", - "zh": "已停运车站" + "uk": "колишня організація", + "zh": "已废止组织", + "zh-tw": "已廢止組織" }, "blockpost": { "de": "ehemalige blockstelle", - "en": "former block post" - }, - "halt": { - "cs": "zrušená železniční zastávka", - "de": "ehemaliger haltepunkt", - "en": "former railway stop", - "es": "apeadero antiguo", - "fr": "ancienne halte ferroviaire", - "hu": "megszűnt vasúti megállóhely", - "it": "fermata ferroviaria dismessa", - "nl": "voormalige spoorweghalte", - "pl": "dawny przystanek kolejowy", - "ru": "бывший (заброшенный) остановочный пукт", - "sl": "nekdanje železniško postajališče" + "en": "former block post", + "nb": "nedlagt blokkpost", + "sl": "nekdanja kretnica" }, "junction": { "de": "ehemalige abzweigstelle", - "en": "former junction" + "en": "former junction", + "fr": "ancienne jonction", + "sl": "nekdanje stičišče" }, "station": { "ar": "محطة قطار سابقة", "ca": "antiga estació de ferrocarril", "cs": "zrušená železniční stanice", + "cy": "cyn orsaf reilffordd", "da": "nedlagt jernbanestation", "de": "ehemaliger bahnhof", "el": "πρώην σιδηροδρομικός σταθμός", @@ -22201,12 +24826,14 @@ "es": "estación del ferrocarril antigua", "fi": "entinen rautatieasema", "fr": "ancienne gare ferroviaire", + "ga": "iarstáisiún traenach", + "gl": "antiga estación de ferrocarril", "he": "תחנת רכבת לשעבר", "hu": "megszűnt vasútállomás", "it": "stazione ferroviaria dismessa", "ja": "かつての鉄道駅", "ko": "없어진 철도역", - "nb": "tidligere jernbanestasjon", + "nb": "nedlagt jernbanestasjon", "nl": "voormalig spoorwegstation", "pl": "była stacja kolejowa", "pt": "antiga estação ferroviária", @@ -22221,6 +24848,8 @@ "ca": "casa desocupada", "de": "leerstehendes haus", "en": "vacant house", + "ja": "空き家", + "sl": "prazna hiša", "sv": "övergivet hus" } }, @@ -22232,6 +24861,7 @@ "bg": "сух док", "ca": "dic sec", "cs": "suchý dok", + "cy": "doc sych", "da": "tørdok", "de": "trockendock", "en": "dry dock", @@ -22241,15 +24871,16 @@ "fa": "حوض شناور", "fi": "kuivatelakka", "fr": "cale sèche", + "gl": "dique seco", "he": "מבדוק יבש", "hu": "szárazdokk", "id": "gudi", "it": "bacino di carenaggio", "ja": "乾ドック", + "kn": "ಒಣಕಟ್ಟೆ", "ko": "건선거", "lt": "sausasis dokas", "ml": "ഡ്രൈഡോക്ക്", - "ms": "limbungan kering", "nb": "tørrdokk", "nl": "droogdok", "pl": "suchy dok", @@ -22279,6 +24910,7 @@ "de": "hunde verboten", "en": "no dogs signs", "fr": "panneau chiens interdits", + "it": "cartello di divieto di accesso ai cani", "nl": "verboden voor honden", "ru": "без собак", "sl": "znaki za prepoved vstopa psov", @@ -22288,6 +24920,7 @@ "yes": { "de": "hunde erlaubt", "en": "dogs allowed", + "it": "accesso permesso ai cani", "nl": "honden toegestaan", "sl": "psi so dovoljeni", "vi": "cho phép mang chó" @@ -22304,22 +24937,32 @@ "fa": "سینما ماشین", "fi": "drive-in-teatteri", "fr": "ciné-parc", + "ga": "pictiúrlann ghluaisteán", "he": "דרייב אין", "id": "bioskop drive-in", "ja": "ドライブインシアター", "ko": "자동차 극장", "ml": "ഡ്രൈവ്-ഇൻ സിനിമ", - "ms": "panggung wayang pandu masuk", "nb": "drive-in-kino", "nl": "drive-in bioscoop", "pl": "kino samochodowe", "pt": "cinema drive-in", "ru": "автокинотеатр", + "sl": "drive-in kino", "sv": "drive-in-biograf", "uk": "автокінотеатр", "zh": "汽車戲院" } }, + "drive_through": { + "yes": { + "de": "drive-in-restaurant", + "en": "drive-in restaurant", + "fi": "drive-in -ravintola", + "nb": "drive-in-restaurant", + "sv": "drive-in-restaurang" + } + }, "electricity": { "solar": { "af": "sonkrag", @@ -22334,6 +24977,7 @@ "et": "päikeseenergeetika", "fa": "توان خورشیدی", "fr": "puissance solaire", + "ga": "grianchumhacht", "hi": "सौर शक्ति", "hu": "napenergia", "id": "tenaga surya", @@ -22347,8 +24991,10 @@ "ro": "energie electrică solară", "ru": "солнечная энергетика", "sl": "sončna elektrarna", + "sq": "energjia solare", "sv": "solkraft", "ta": "சூரிய மின் ஆற்றல்", + "te": "సౌర శక్తి", "th": "พลังแสงอาทิตย์", "uk": "сонячна енергетика", "vi": "điện mặt trời", @@ -22356,6 +25002,12 @@ } }, "electrified": { + "": { + "de": "deckenstromschiene", + "en": "overhead conductor rail", + "fr": "profil aérien de contact", + "sv": "kontaktskena ovanför fordon" + }, "4th_rail": { "ca": "electrificació ferroviària de 630 v de cc", "en": "fourth rail", @@ -22376,6 +25028,7 @@ "bg": "контактна мрежа", "ca": "electrificació ferroviària de 25 kv a 50 hz de ca", "cs": "25 kv, 50 hz", + "cy": "llinell uwchben", "da": "køreledning", "de": "elektrifizierung mit 25 kv einphasenwechselspannung mit 50 hz", "de-ch": "oberleitung", @@ -22388,6 +25041,7 @@ "fa": "سیم بالاسر", "fi": "rautateiden 25 kv:n ja 50 hz:n vaihtovirtasähköistys", "fr": "électrification ferroviaire 25 kv 50 hz", + "gl": "catenaria", "hi": "अतिरिक्त रेखा", "hu": "25 kv 50 hz-es villamos vontatás", "id": "listrik aliran atas", @@ -22395,7 +25049,6 @@ "ja": "交流25kv 50hz鉄道電化", "ko": "가공 전차선", "lv": "kontakttīkls", - "ms": "talian atas", "nb": "kontaktledning", "nl": "bovenleiding", "pl": "przewody trakcyjne", @@ -22431,7 +25084,7 @@ "ro": "stream", "ru": "750 в пост.", "sl": "talna elektrifikacija", - "tr": "750 v da demiryolu elektrifikasyonu", + "tr": "yerden besleme güç kaynağı", "uk": "постійний струм, 750 в", "zh": "地面供电系统", "zh-tw": "750伏直流電鐵路電氣化" @@ -22442,10 +25095,12 @@ "de": "nicht elektrifiziert", "en": "non‐electrified railway system", "es": "no electrificado", + "fi": "sähköistämätön rautatie", "fr": "pas d'électrification ferroviaire", "he": "קו רכבת שאינו מחושמל", "hu": "nem villamosított vasútvonal", "ja": "非電化", + "nb": "ikke-elektrifisert jernbane", "nl": "niet-geëlektrificeerd spoorwegsysteem", "ru": "неэлектрифицированная железная дорога", "sl": "neelektrificirani železniški sistem", @@ -22472,9 +25127,8 @@ "it": "elettrificazione ferroviaria 750 v cc", "ja": "直流750v鉄道電化", "ko": "750 v dc 철도 통전", - "ms": "rel ketiga", "nb": "strømskinne", - "nl": "derde rail", + "nl": "750 v gelijkstroom", "pl": "elektryfikacja prądem stałym o napięciu 750 v", "pt": "terceiro carril", "pt-br": "terceiro trilho", @@ -22493,6 +25147,7 @@ }, "elevator": { "": { + "be": "патэрностар", "bg": "патерностер", "ca": "ascensor paternoster", "cs": "páternoster", @@ -22519,19 +25174,24 @@ "be": "насып", "ca": "terraplè", "cs": "násyp", - "de": "damm", - "en": "embankment", + "cy": "arglawdd", + "en": "thoroughfare embankment", + "en-ca": "embankment", + "en-gb": "embankment", "es": "terraplén", "fa": "خاکریز", "fr": "terre-plein", "id": "embarang", "it": "rilevato", "ja": "盛土", + "lv": "uzbērums", "nl": "weglichaam", "pl": "nasyp", "ro": "rambleu", "ru": "насыпь", + "sl": "prometni nasip", "sv": "bank", + "uk": "насип", "zh": "路堤" } }, @@ -22541,6 +25201,7 @@ "fi": "valtuuskunta", "fr": "délégation", "it": "delegazione", + "lv": "delegācija", "nb": "delegasjon" }, "high_commission": { @@ -22555,10 +25216,11 @@ "id": "komisariat tinggi", "ja": "高等弁務官事務所", "ko": "고등판무관 사무소", - "ms": "suruhanjaya tinggi", "pt": "alto comissariado", + "ru": "представительство высокого комиссара", "sl": "visoka komisija", "sv": "högkommission", + "uk": "представництво високого комісара", "zh": "高級專員公署" }, "residence": { @@ -22590,42 +25252,41 @@ "en": "emergency assembly point", "es": "punto de reunión", "it": "area di attesa di emergenza", + "ja": "一時集合場所", "ru": "место встречи", + "sl": "evakuacijsko mesto", "vi": "điểm tập trung khẩn cấp" }, "defibrillator": { - "ar": "مزيل الرجفان", - "be": "дэфібрылятар", - "ca": "desfibril·lador", - "cs": "defibrilátor", - "da": "hjertestarter", - "el": "απινιδωτής", - "en": "defibrillator", - "es": "desfibrilador", - "et": "defibrillaator", + "ar": "مزيل الرجفان الخارجي الآلي", + "ca": "desfibril·lador extern automàtic", + "cs": "automatizovaný externí defibrilátor", + "da": "automatisk ekstern defibrillator", + "de": "automatisierter externer defibrillator", + "el": "αυτόματος εξωτερικός απινιδωτής", + "en": "automated external defibrillator", + "es": "desfibrilador externo automático", + "et": "automaatne väline defibrillaator", "fa": "دفیبریلاتور خارجی خودکار", - "fi": "sydäniskuri", - "fr": "défibrillateur cardiaque", - "he": "דפיברילטור", - "hr": "defibrilator", + "fi": "automaattinen ulkoinen defibrillaattori", + "fr": "défibrillateur automatique", + "he": "דפיברילטור אוטומטי חיצוני", "hu": "defibrillátor", - "id": "defibrilator", - "it": "defibrillatore", - "ja": "除細動器", - "ko": "제세동기", + "it": "defibrillatore semiautomatico", + "ja": "自動体外式除細動器", + "ko": "자동 제세동기", "lv": "automatizētais ārējais defibrilators", - "ms": "defibrilator", - "pl": "defibrylator", + "nl": "automatische externe defibrillator", + "pl": "automatyczny defibrylator zewnętrzny", "pt": "desfibrilador automático externo", "ro": "defibrilator extern automat", - "ru": "дефибриллятор", - "sk": "defibrilátor", - "sl": "defibrilator", + "ru": "автоматический наружный дефибриллятор", + "sk": "automatický externý defibrilátor", + "sl": "avtomatski zunanji defibrilator", "sv": "hjärtstartare", "th": "เครื่องกระตุกหัวใจไฟฟ้าชนิดอัตโนมัติ", - "tr": "defibrilator", - "uk": "дефібрилятор", - "zh": "除顫器", + "uk": "автоматичний зовнішній дефібрилятор", + "zh": "自動體外心臟去顫器", "zh-cn": "自动体外除颤器" }, "disaster_help_point": { @@ -22634,9 +25295,9 @@ }, "disaster_response": { "ar": "الهيئة الاتحادية للإسناد التقني", + "be": "бяспека жыццядзейнасці", "bg": "гражданска отбрана", "ca": "protecció civil", - "da": "civilforsvar", "el": "πολιτική προστασία", "en": "technisches hilfswerk", "et": "tsiviilkaitse", @@ -22649,7 +25310,7 @@ "ko": "민방위", "lt": "civilinė sauga", "pt-br": "defesa civil", - "ru": "безопасность жизнедеятельности", + "ru": "организация технической помощи", "sk": "bundesanstalt technisches hilfswerk", "sl": "civilna zaščita", "uk": "безпека життєдіяльності", @@ -22663,11 +25324,13 @@ "cs": "urgentní příjem pacientů", "da": "skadestue", "de": "notaufnahme", + "el": "τμήμα επειγόντων περιστατικών", "en": "emergency department", "es": "departamento de emergencia", "fa": "بخش اورژانس", "fi": "päivystyspoliklinikka", "fr": "accueil et traitement des urgences", + "ga": "rannóg éigeandála", "he": "חדר מיון", "hu": "sürgősségi osztály", "id": "unit gawat darurat", @@ -22676,10 +25339,10 @@ "ko": "응급실", "lv": "neatliekamās medicīniskās palīdzības dienests", "ml": "അത്യാഹിത വിഭാഗം", - "nb": "legevakt", + "nb": "akuttmottak", "nl": "spoedeisende hulp", "pl": "szpitalny oddział ratunkowy", - "pt": "departamento de emergência", + "pt": "serviço de urgência", "ro": "unitate de primiri urgențe", "ru": "отделение неотложной помощи", "sl": "urgentni oddelek", @@ -22689,8 +25352,8 @@ "uk": "відділення екстреної допомоги", "ur": "شعبۂ عاجلہ", "vi": "khoa cấp cứu", - "zh": "急症室", - "zh-cn": "急诊室", + "zh": "急诊室", + "zh-hk": "急症室", "zh-tw": "急診室" }, "eye_wash": { @@ -22711,6 +25374,7 @@ "fa": "خاموشکنندههای دستی آتش", "fi": "palosammutin", "fr": "extincteur", + "gl": "extintor", "he": "מטפה", "hi": "अग्निशमन यंत्र", "hu": "tűzoltó készülék", @@ -22721,7 +25385,6 @@ "ko": "소화기", "lt": "gesintuvas", "lv": "ugunsdzēšamais aparāts", - "ms": "pemadam api", "nb": "brannslokningsapparat", "nl": "brandblusser", "pl": "gaśnica", @@ -22730,8 +25393,10 @@ "ru": "огнетушитель", "sk": "hasiaci prístroj", "sl": "gasilnik", + "sq": "aparati për shuarjen e zjarrit", "sv": "brandsläckare", "ta": "தீயணைப்பான்", + "te": "మంటలను ఆర్పేది", "th": "ถังดับเพลิง", "tr": "yangın söndürücü", "uk": "вогнегасник", @@ -22799,7 +25464,6 @@ "ko": "소화전", "lt": "gaisrinis hidrantas", "lv": "hidrants", - "ms": "pili bomba", "nb": "hydrant", "nl": "brandkraan", "pl": "hydrant", @@ -22833,14 +25497,15 @@ "ja": "救急箱", "kn": "ಪ್ರಥಮ ಚಿಕಿತ್ಸಾ ಕಿಟ್", "ko": "구급 상자", - "ms": "peti pertolongan cemas", "nl": "ehbo-koffer", "pl": "apteczka", "pt": "kit de primeiros socorros", "ru": "аптечка", "sl": "prva pomoč za policijo", + "sq": "paketa e ndihmës së parë", "sv": "första hjälpen-väska", "ta": "முதலுதவி கருவிப் பெட்டி", + "te": "ప్రథమ చికిత్స వస్తు సామగ్రి", "th": "ชุดปฐมพยาบาล", "tr": "i̇lk yardım kiti", "uk": "аптечка", @@ -22849,7 +25514,8 @@ "landing_site": { "de": "notlandeplatz", "en": "emergency landing site", - "fr": "site d'atterissage d'urgence" + "fr": "site d'atterrissage d'urgence", + "sl": "mesto za pristanek v sili" }, "life_ring": { "ar": "طافية النجاة", @@ -22887,6 +25553,7 @@ "ar": "منقذ بحري", "ca": "socorrista", "cs": "plavčík", + "cy": "achubwr bywyd", "da": "livredder", "de": "rettungsschwimmer", "el": "ναυαγοσώστης", @@ -22895,6 +25562,8 @@ "fa": "نجات غریق", "fi": "uimavalvoja", "fr": "nageur sauveteur", + "ga": "garda tarrthála", + "gl": "socorrista", "he": "מציל", "hu": "vízimentő", "id": "perenang penyelamat", @@ -22942,6 +25611,7 @@ "en": "emergency telephone", "fi": "hätäpuhelin", "fr": "borne d’appel", + "id": "telepon darurat", "ja": "非常電話", "nb": "nødtelefon", "nl": "praatpaal", @@ -22963,13 +25633,14 @@ "en": "emergency shower", "es": "ducha de emergencia", "fr": "douche fixe de premiers secours", + "it": "doccia d'emergenza", "nl": "nooddouche", "zh": "緊急沖淋裝置" }, "siren": { "af": "sirene", "ar": "صفارة إنذار", - "bg": "сирена (аларма)", + "bg": "сирена", "ca": "sirena", "cs": "siréna", "da": "sirene", @@ -22988,7 +25659,6 @@ "ja": "サイレン", "ko": "사이렌", "lt": "sirena", - "ms": "semboyan", "nb": "sirene", "nl": "sirene", "pl": "syrena", @@ -23001,6 +25671,10 @@ "vi": "còi báo động", "zh": "警笛" }, + "suction_point": { + "de": "saugstelle", + "en": "drafting site" + }, "water_tank": { "ar": "خزان مياه", "ca": "dipòsit d'aigua", @@ -23020,7 +25694,7 @@ "hu": "hidroglóbusz", "id": "tangki air", "it": "serbatoio", - "ja": "防火水そう", + "ja": "防火水槽", "ko": "저수조", "ml": "വാട്ടർ ടാങ്ക്", "nl": "watertank", @@ -23040,7 +25714,8 @@ "ar": "خدمات الطوارئ", "ca": "servei d'emergències", "cs": "integrovaný záchranný systém", - "da": "beredskabet", + "cy": "gwasanaeth brys", + "da": "beredskab", "de": "behörden und organisationen mit sicherheitsaufgaben", "el": "υπηρεσία εκτάκτης ενάγκης", "en": "emergency service", @@ -23049,18 +25724,21 @@ "fa": "مرکز مدیریت حوادث و فوریتهای پزشکی", "fi": "pelastuspalvelut", "fr": "secours d'urgence", + "ga": "seirbhís éigeandála", + "gl": "servizo de emerxencia", "he": "שירותי חירום", "hu": "sürgősségi szolgálat", "id": "layanan darurat", "it": "servizio d'emergenza", "ja": "緊急通報受理機関", - "ms": "perkhidmatan kecemasan", + "ko": "응급 서비스", + "lt": "avarinė tarnyba", "nb": "nødetat", "nl": "hulpdienst", "pl": "służba ratunkowa", "pt": "serviço de emergência", "ro": "servicii de urgență din românia", - "ru": "экстренные службы", + "ru": "экстренная служба", "sk": "integrovaný záchranný systém", "sl": "urgentna služba", "sv": "räddningstjänst", @@ -23080,6 +25758,7 @@ "bg": "естуар", "ca": "estuari", "cs": "estuár", + "cy": "aber", "da": "æstuarium", "de": "ästuar", "el": "εκβολή", @@ -23089,6 +25768,8 @@ "fa": "خلیج دهانهای", "fi": "estuaari", "fr": "estuaire", + "ga": "inbhear", + "gl": "estuario", "he": "שפך נהר", "hi": "ज्वारनदमुखी डेल्टा", "hr": "estuarij", @@ -23101,7 +25782,6 @@ "lt": "estuarija", "lv": "grīva", "ml": "അഴിമുഖം", - "ms": "muara", "nb": "estuar", "nl": "estuarium", "pl": "estuarium", @@ -23110,6 +25790,7 @@ "ru": "эстуарий", "sk": "estuár", "sl": "estuarij", + "sq": "estuarët", "sv": "estuarium", "ta": "கயவாய்", "th": "ชะวากทะเล", @@ -23121,6 +25802,7 @@ }, "expressway": { "yes": { + "ca": "carretera d'accés limitat", "cs": "silnice s omezeným přístupem", "de": "kraftfahrstraße", "de-ch": "autostrasse", @@ -23130,7 +25812,6 @@ "hr": "brza cesta", "ja": "自動車専用道路", "ko": "자동차 전용 도로", - "ms": "kawalan masuk jalan raya", "nl": "autoweg", "pl": "droga o ograniczonym dostępie", "ro": "autostradă cu acces limitat", @@ -23145,6 +25826,7 @@ "be": "медыцынская навучальная ўстанова", "ca": "escola de medicina", "cs": "lékařská škola", + "cy": "coleg meddygol", "da": "medicinsk fakultet", "de": "medizinische fakultät", "el": "ιατρική σχολή", @@ -23153,6 +25835,8 @@ "fa": "دانشکده پزشکی", "fi": "lääketieteellinen tiedekunta", "fr": "école de médecine", + "ga": "scoil leighis", + "gl": "escola de medicina", "he": "בית ספר לרפואה", "hu": "orvosegyetem", "id": "sekolah kedokteran", @@ -23167,13 +25851,16 @@ "ro": "facultate de medicină", "ru": "медицинское учебное заведение", "sk": "lekárska fakulta", - "sl": "medicinska fakulteta", + "sl": "medicinska šola", + "sq": "fakulteti i mjekësisë", "sv": "medicinsk fakultet", "ta": "மருத்துவக் கல்லூரி", + "te": "వైద్య కళాశాల", "th": "คณะแพทยศาสตร์", "tr": "tıp fakültesi", "uk": "медичний коледж", "ur": "طبی درس گاہ", + "vi": "trường y", "zh": "醫學院", "zh-cn": "医学院" }, @@ -23188,6 +25875,8 @@ "fa": "دانشکده پرستاری و مامائی", "fi": "sairaanhoito-oppilaitos", "fr": "école de soins infirmiers", + "ga": "scoil altranais", + "gl": "escola de enfermaría", "he": "בית ספר לסיעוד", "ja": "看護学校", "ko": "간호전문학교", @@ -23205,6 +25894,7 @@ "en": "feedlot", "fa": "حیاط خوراک", "fr": "feedlots", + "he": "פיטום בקר", "ja": "フィードロット", "ko": "비육장", "ro": "oborul de vite", @@ -23224,12 +25914,14 @@ "ca": "cantina", "cs": "kafeteria", "de": "kantine", + "el": "κυλικείο", "en": "cafeteria", "es": "cafetería", "et": "söökla", "fa": "کافه تریا", "fi": "kafeteria", "fr": "cafétéria", + "ga": "caifitéire", "he": "קפיטריה", "hu": "iskolai vagy üzemi étkezde", "id": "kantin", @@ -23237,12 +25929,11 @@ "ja": "カフェテリア", "ko": "카페테리아", "lt": "valgykla", - "ms": "kantin", "nb": "kafeteria", "pl": "stołówka", "ro": "cantină", "ru": "столовая", - "sl": "kafeterija", + "sl": "menza", "tr": "kafeterya", "uk": "їдальня", "ur": "کیفے ٹیریا", @@ -23262,6 +25953,7 @@ "et": "tasuta", "fi": "ilmainen", "fr": "gratuité", + "ga": "saor in aisce", "he": "חינם", "hi": "मुफ़्त", "hu": "ingyenes", @@ -23270,7 +25962,6 @@ "ko": "무료", "lv": "bez maksas", "ml": "സൗജന്യം", - "ms": "percuma", "pl": "darmowe", "pt": "grátis", "ru": "бесплатно", @@ -23291,9 +25982,11 @@ "et": "tasuline", "fi": "maksullinen", "fr": "payant", + "ga": "íoctha", + "he": "בתשלום", "hu": "fizetős", "id": "berbayar", - "it": "a pagamento", + "it": "pagamento", "ja": "有料", "ko": "유료", "lv": "maksas", @@ -23329,6 +26022,7 @@ "bg": "държавно знаме", "ca": "bandera municipal", "cs": "obecní vlajka", + "cy": "baner cenedlaethol", "da": "kommuneflag", "de": "kommerzielle flagge", "el": "εθνική σημαία", @@ -23338,6 +26032,9 @@ "fa": "پرچم ملی", "fi": "kansallislippu", "fr": "drapeau municipal", + "ga": "bratach náisiúnta", + "gd": "bratach na dùthcha", + "gl": "bandeira municipal", "he": "דגל עירוני", "hi": "राष्ट्रीय ध्वज", "hr": "državna zastava", @@ -23351,17 +26048,18 @@ "lv": "valsts karogs", "ml": "ദേശീയപതാക", "mr": "राष्ट्रीय ध्वज", - "ms": "bendera kebangsaan", "nb": "kommuneflagg", "nl": "gemeentevlag", "pl": "flaga gminy/miasta", "pt": "bandeira municipal", "pt-br": "bandeira nacional", "ro": "drapel național", - "ru": "военный флаг", + "ru": "коммерческий флаг", "sl": "komercialna zastava", - "sv": "nationalflagga", + "sq": "flamuri kombëtar", + "sv": "kommersiella flagga", "ta": "தேசியக் கொடி", + "te": "జాతీయ జెండా", "th": "ธงประจำเมือง", "tr": "belediye bayrağı", "uk": "прапор населеного пункту", @@ -23373,6 +26071,14 @@ "zh-tw": "國旗" } }, + "flood_prone": { + "yes": { + "en": "flood-prone area", + "es": "terreno inundable", + "fi": "tulva-altis alue", + "sv": "område med översvämningsrisk" + } + }, "floor": { "": { "da": "trægulve", @@ -23381,11 +26087,12 @@ "en": "wood flooring", "et": "puitpõrand", "id": "lantai kayu", - "ja": "フローリング", + "ja": "床板", "nl": "houten vloer", "pt": "piso de madeira", "ro": "deck din lemn", "ru": "деревянный пол", + "sl": "lesena tla", "sv": "trägolv", "vi": "sàn gỗ", "zh": "木製地板" @@ -23403,7 +26110,8 @@ "cs": "přechod pro chodce", "da": "fodgængerfelt", "de": "fußgängerübergang", - "de-ch": "fussgängerüberweg", + "de-at": "schutzweg", + "de-ch": "fussgängerstreifen", "el": "διάβαση πεζών", "en": "pedestrian crossing", "es": "paso de peatones", @@ -23411,6 +26119,7 @@ "fa": "گذرگاه عابران پیاده", "fi": "suojatie", "fr": "passage pour piétons en france", + "gd": "àite coise", "he": "מעבר חצייה", "hr": "pješački prijelaz", "hu": "gyalogos-átkelőhely", @@ -23420,12 +26129,12 @@ "ko": "횡단보도", "lt": "pėsčiųjų perėja", "lv": "gājēju pāreja", - "ms": "lintasan pejalan kaki", "nb": "fotgjengerovergang", "nl": "oversteekplaats", "pl": "przejście dla pieszych", "pt": "passadeira de peões", "pt-br": "faixa de pedestres", + "ro": "trecere de pietoni", "ru": "пешеходный переход", "sk": "priechod pre chodcov", "sl": "prehod za pešce", @@ -23441,6 +26150,7 @@ "bg": "тротоар", "ca": "vorera", "cs": "chodník", + "cy": "llwybr troed", "da": "fortov", "de": "gehweg", "de-ch": "trottoir", @@ -23452,6 +26162,9 @@ "fa": "پیادهرو", "fi": "jalkakäytävä", "fr": "trottoir", + "ga": "cosán", + "gd": "cabhsair", + "gl": "beirarrúa", "he": "מדרכה", "hi": "पैदलपथ", "hr": "nogostup", @@ -23462,7 +26175,6 @@ "ko": "보도", "lt": "šaligatvis", "lv": "ietve", - "ms": "laluan jalan kaki", "nb": "fortau", "nl": "trottoir", "pl": "chodnik", @@ -23471,6 +26183,7 @@ "ro": "trotuar", "ru": "тротуар", "sl": "pločnik", + "sq": "trotuari", "sv": "trottoar", "tr": "yaya kaldırımı", "uk": "тротуар", @@ -23482,10 +26195,12 @@ "stepping_stones": { "ca": "passera de pedres", "cs": "přechod po kamenech", + "cy": "cerrig llam", "de": "trittstein", "en": "stepping stones", "fa": "سنگراهه", "fr": "pierres de gué", + "gl": "pasadoiro", "he": "גשר אבני מדרך", "ja": "飛び石 (橋)", "ko": "징검다리", @@ -23499,6 +26214,7 @@ "bg": "брод", "ca": "gual", "cs": "brod", + "cy": "rhyd", "da": "vadested", "de": "furt", "el": "κοιτόστρωση", @@ -23509,6 +26225,9 @@ "fa": "گدار", "fi": "kahluupaikka", "fr": "gué", + "ga": "áth", + "gd": "beul-àtha", + "gl": "vao", "he": "מעברה", "hu": "gázló", "id": "arungan", @@ -23518,7 +26237,6 @@ "ko": "여울", "lt": "brasta", "lv": "brasls", - "ms": "harungan", "nb": "vadested", "nl": "voorde", "pl": "bród", @@ -23538,6 +26256,7 @@ "be": "чатырохвугольны шанец", "bg": "градище", "ca": "castre (fortificació)", + "cy": "bryngaer", "da": "voldsted", "de-ch": "wallburg", "el": "οχυρωμένος λόφος", @@ -23549,6 +26268,8 @@ "fa": "تپهقلعه", "fi": "muinaislinna", "fr": "enclos quadrangulaire", + "ga": "dún", + "gl": "castro", "he": "מבצר גבעה", "hi": "पर्वतदुर्ग", "hr": "gradina", @@ -23559,7 +26280,7 @@ "lt": "piliakalnis", "lv": "pilskalns", "nb": "bygdeborg", - "nl": "walburcht", + "nl": "heuvelfort", "pl": "czworokątny szaniec", "pt": "castro", "ro": "deal fortificat", @@ -23576,8 +26297,10 @@ "fountain": { "bubbler": { "ar": "مبقبق", + "bg": "чешма", "ca": "font d'aigua", "cs": "pítko", + "cy": "pistyll", "de": "trinkbrunnen", "el": "κρήνη πόσιμου νερού", "en": "drinking fountain", @@ -23589,6 +26312,7 @@ "it": "fontanella", "ja": "水飲み場", "ko": "음수대", + "nb": "drikkefontene", "nl": "drinkfontein", "pl": "pitnik", "pt": "fontanário", @@ -23599,12 +26323,6 @@ "sv": "dricksfontän", "zh": "公共飲水機" }, - "nasone": { - "en": "nasone", - "fr": "nasoni", - "ja": "ナゾーネ", - "ko": "나소네" - }, "nozzle": { "af": "spuitstuk", "ar": "منفث", @@ -23620,10 +26338,11 @@ "fa": "نازل", "fi": "suutin", "fr": "tuyère", + "ga": "soc", "hr": "mlaznica", "hu": "fúvóka", "id": "nosel", - "it": "ugello di scarico", + "it": "ugello", "ja": "ノズル", "ko": "노즐", "ml": "നോസ്സിൽ", @@ -23631,6 +26350,7 @@ "nl": "spuitmond", "pl": "dysza", "pt": "tubeira", + "ro": "ajutaj", "ru": "сопло", "sk": "dýza", "sl": "šoba", @@ -23651,7 +26371,10 @@ }, "splash_pad": { "en": "splash pad", - "ru": "сухой фонтан" + "fr": "fontaine terrasse", + "pl": "brodzik", + "ru": "сухой фонтан", + "uk": "пішохідний фонтан" }, "toret": { "en": "torèt", @@ -23669,9 +26392,10 @@ "it": "elettrificazione ferroviaria 750 v cc", "ja": "直流630v鉄道電化", "ko": "630 v dc 철도 통전", + "nl": "750 v gelijkstroom", "pl": "elektryfikacja prądem stałym o napięciu 750 v", "ru": "630 в пост.", - "sl": "železniška elektrifikacija s 750 v dc", + "sl": "železniška elektrifikacija 630 v dc", "tr": "750 v da demiryolu elektrifikasyonu", "uk": "постійний струм, 750 в", "zh": "750伏直流電鐵路電氣化" @@ -23731,7 +26455,9 @@ "gambling": { "bingo": { "ca": "bingo", + "cy": "neuadd bingo", "en": "bingo hall", + "ga": "halla biongó", "nl": "bingohal", "ro": "sală de bingo" }, @@ -23739,6 +26465,7 @@ "ar": "باتشينكو", "cs": "pačinko", "en": "pachinko", + "he": "פצ'ינקו", "hu": "pacsinko", "ja": "パチンコ", "ko": "파친코", @@ -23756,6 +26483,7 @@ "bg": "китайска градина", "ca": "jardí xinès", "cs": "čínská zahrada", + "cy": "gardd gegin", "da": "kinesisk have", "de": "gartenkunst in china", "de-ch": "rosarium", @@ -23765,9 +26493,11 @@ "en-gb": "japanese garden", "es": "jardín chino", "et": "hiina aed", - "fa": "باغ ژاپنی", + "fa": "باغ انگلیسی", "fi": "kiinalainen puutarha", "fr": "jardin chinois", + "ga": "gairdín sasanach", + "gl": "xardín chinés", "he": "גן סיני", "hi": "जापानी उद्यान-कला", "hr": "kineski vrt", @@ -23780,7 +26510,6 @@ "lt": "japoniškas sodas", "lv": "ķīniešu dārzs", "ml": "ചൈനീസ് പൂന്തോട്ടം", - "ms": "taman cina", "nb": "kinesisk hage", "nl": "chinese tuin", "pl": "ogród chiński", @@ -23789,10 +26518,11 @@ "ro": "grădină japoneză", "ru": "китайский сад", "sk": "anglický park", - "sl": "angleški park", - "sv": "engelsk park", + "sl": "kitajski vrt", + "sq": "kopshti botanik", + "sv": "kinesisk trädgårdskonst", "ta": "சீனப் பூங்கா", - "th": "สวนเซ็นญี่ปุ่น", + "th": "สวนภูมิทัศน์อังกฤษ", "tr": "çin bahçesi", "uk": "китайський сад", "ur": "انگریزی باغ", @@ -23817,7 +26547,6 @@ "it": "scartamento metrico", "ja": "メートルゲージ", "ko": "미터 궤간", - "ms": "tolok meter", "nb": "meterspor", "nl": "meterspoor", "pl": "rozstaw metrowy", @@ -23839,6 +26568,7 @@ }, "1055": { "de": "algerische meterspur (1055 mm)", + "en": "1055 mm track gauge", "sl": "tirna širina 1055 mm" }, "1067": { @@ -23862,6 +26592,7 @@ "pl": "rozstaw przylądkowy", "pt": "bitola 1067 mm", "ru": "капская колея", + "sl": "tirna širina 1067 mm", "sv": "1067 mm", "tr": "cape hat açıklığı", "uk": "капська колія", @@ -23894,6 +26625,7 @@ "hu": "1432 mm", "nl": "1432 mm spoorwijdte", "pt-br": "bitola 1432 mm", + "sl": "tirna širina 1432 mm", "zh": "1432毫米窄轨", "zh-hk": "1432毫米窄軌" }, @@ -23904,15 +26636,18 @@ "bg": "1435 mm междурелсие", "ca": "ample ferroviari estàndard", "cs": "rozchod 1435 mm", + "cy": "1435 mm", "da": "normalspor", - "de": "regelspur", + "de": "normalspur", "el": "σιδηροδρομική γραμμή κανονικού εύρους", - "en": "1435 mm track gauge", + "en": "standard-gauge railway", + "en-gb": "1435 mm track gauge", "es": "ancho de vía estándar", "et": "standardrööpmeline raudtee", "fa": "ریل استاندارد", "fi": "normaaliraideleveys", "fr": "écartement standard", + "gl": "largo internacional", "he": "1435 מ\"מ", "hi": "मानक गेज", "hr": "1435 mm", @@ -23922,9 +26657,9 @@ "ja": "標準軌", "ko": "표준궤", "lt": "1435 mm vėžė", + "lv": "normālplatuma dzelzceļš", "ml": "സ്റ്റാൻഡേർഡ് ഗേജ്", "mr": "प्रमाण गेज", - "ms": "tolok piawai", "nb": "normalspor", "nl": "normaalspoor", "pl": "kolej normalnotorowa", @@ -23953,6 +26688,7 @@ "it": "scartamento da 1445 mm", "nl": "1445 mm spoorwijdte", "ru": "1445-мм колея", + "sl": "tirna širina 1445 mm", "uk": "1445 мм" }, "1450": { @@ -23982,6 +26718,7 @@ "ja": "5フィート軌間", "ko": "러시아 궤간", "lt": "1520 mm vėžė", + "lv": "platsliežu dzelzceļš", "mr": "रशियन गेज", "nb": "russisk sporvidde", "nl": "1520 mm spoorwijdte", @@ -24037,6 +26774,7 @@ "pt": "bitola larga brasileira", "pt-br": "bitola irlandesa", "ru": "колея 1600 мм", + "sl": "irska tirna širina", "uk": "колія 1600 мм", "zh": "1600毫米宽轨" }, @@ -24049,14 +26787,16 @@ "es": "ancho ibérico", "et": "pürenee rööpmelaius", "fr": "voie ibérique", + "gl": "largo ibérico", "he": "1668 מ\"מ", "hu": "ibériai nyomtávolság", "it": "scartamento iberico", "ja": "イベリア軌間", "ko": "이베리아 궤간", - "nl": "1688 mm spoorwijdte", + "nl": "1668 mm spoorwijdte", "pt": "bitola ibérica", "ru": "колея 1668 мм", + "sl": "tirna širina 1668 mm", "tr": "i̇ber hat açıklığı", "uk": "іберійська колія", "zh": "1668毫米寬軌" @@ -24174,6 +26914,7 @@ "bg": "фотоволтаична електроцентрала", "ca": "hort solar", "cs": "fotovoltaická elektrárna", + "cy": "tyrbin gwynt", "da": "vindkraftværk", "de": "photovoltaik-freiflächenanlage", "de-ch": "wärmekraftwerk", @@ -24186,6 +26927,8 @@ "fa": "نیروگاه حرارتی", "fi": "aurinkopuisto", "fr": "centrale solaire photovoltaïque", + "ga": "stáisiún cumhachta teirmí", + "gl": "horta solar", "he": "תחנת כוח פוטו-וולטאית", "hi": "ऊष्मीय शक्ति संयंत्र", "hr": "fotonaponska elektrana", @@ -24198,7 +26941,6 @@ "lv": "fotoelementu elektrostacija", "ml": "കാറ്റാടിയന്ത്രം", "mr": "औष्णिक वीजनिर्मिती प्रकल्प", - "ms": "stesen kuasa terma", "nb": "varmekraftverk", "nl": "fotovoltaïsche krachtcentrale", "pl": "elektrownia słoneczna", @@ -24208,8 +26950,10 @@ "ru": "фотоэлектрическая солнечная электростанция", "sk": "slnečná elektráreň", "sl": "fotovoltaična elektrarna", + "sq": "elektrana fotovoltaike", "sv": "solcellsanläggning", "ta": "அனல் மின் நிலையம்", + "te": "కాంతివిపీడన విద్యుత్ కేంద్రం", "th": "กังหันลม", "tr": "fotovoltaik enerji santrali", "uk": "сонячна електростанція", @@ -24220,6 +26964,49 @@ "zh-tw": "太陽能光電發電場" } }, + "genus": { + "Tilia": { + "ar": "زيزفون", + "be": "ліпа", + "bg": "липа", + "ca": "til·ler", + "cs": "lípa", + "da": "lind", + "de": "linde", + "de-ch": "linden", + "el": "φιλύρα", + "en": "tilia", + "et": "pärn", + "fa": "نمدار", + "fi": "lehmukset", + "fr": "tilleul", + "ga": "teile", + "gl": "tileiro", + "he": "טיליה", + "hr": "lipa", + "hu": "hárs", + "ja": "シナノキ属", + "ko": "피나무", + "lt": "liepa", + "lv": "liepas", + "nb": "lindeslekta", + "nl": "linde", + "pl": "lipa", + "ro": "tei", + "ru": "липа", + "sk": "lipa", + "sl": "lipa", + "sq": "bliri", + "sv": "lindsläktet", + "tr": "ihlamur", + "uk": "липа", + "vi": "chi đoạn", + "zh": "椴属", + "zh-cn": "椴树属", + "zh-hk": "椴樹屬", + "zh-tw": "椴樹屬" + } + }, "geological": { "hoodoo": { "bg": "еолични стълбове", @@ -24230,6 +27017,7 @@ "fa": "دودکش جن", "fi": "hoodoo (geologia)", "fr": "cheminée de fée", + "gl": "cheminea de fadas", "hu": "tündérkémény", "id": "batuan julang", "it": "camini delle fate", @@ -24245,6 +27033,49 @@ "uk": "ерозійний стовп", "zh": "帐篷岩" }, + "meteor_crater": { + "af": "impakkrater", + "ar": "فوهة صدمية", + "be": "астраблема", + "bg": "ударен кратер", + "ca": "cràter d'impacte", + "cs": "impaktní kráter", + "da": "nedslagskrater", + "de": "einschlagkrater", + "el": "κρατήρας πρόσκρουσης", + "en": "impact crater", + "es": "cráter de impacto", + "et": "impaktkraater", + "fa": "دهانه برخوردی", + "fi": "törmäyskraatteri", + "fr": "cratère d'impact", + "gl": "cráter de impacto", + "he": "מכתש פגיעה", + "hi": "प्रहार क्रेटर", + "hr": "udarni krater", + "hu": "becsapódási kráter", + "id": "kawah tabrakan", + "it": "cratere meteoritico", + "ja": "クレーター", + "ko": "충돌구", + "lt": "smūginis krateris", + "lv": "triecienkrāteris", + "ml": "ഉൽക്കാഗർത്തം", + "nb": "nedslagskrater", + "nl": "inslagkrater", + "pl": "krater uderzeniowy", + "pt": "cratera de impacto", + "ro": "crater", + "ru": "ударный кратер", + "sk": "impaktný kráter", + "sl": "udarni krater", + "sv": "nedslagskrater", + "ta": "விண்கல் வீழ் பள்ளம்", + "tr": "çarpma krateri", + "uk": "метеоритний кратер", + "vi": "hố va chạm", + "zh": "撞擊坑" + }, "moraine": { "af": "morene", "ar": "ركام جليدي", @@ -24252,14 +27083,17 @@ "bg": "морена", "ca": "morrena", "cs": "moréna", + "cy": "marian", "da": "moræne", "de": "moräne", "el": "λιθώνας", "en": "moraine", "es": "morrena", "et": "moreenne pinnavorm", - "fa": "دشت یخرفتهای", + "fa": "یخرُفت", "fi": "moreenimuodostuma", + "ga": "moiréan", + "gl": "morena", "he": "מורנה", "hr": "morena", "hu": "moréna", @@ -24268,7 +27102,6 @@ "ko": "빙퇴석", "lt": "morena", "lv": "morēna", - "ms": "morain", "nb": "morene", "nl": "morene", "pl": "morena", @@ -24277,6 +27110,7 @@ "ru": "морена", "sk": "moréna", "sl": "morena", + "sq": "morena", "sv": "morän", "ta": "பனிப்பாறைக்கழிவடை", "tr": "moren", @@ -24286,6 +27120,7 @@ "outcrop": { "af": "dagsoom", "ar": "تفجر أرضي", + "bg": "оголване (геология)", "ca": "aflorament", "cs": "výchoz", "de": "aufschluss", @@ -24294,6 +27129,8 @@ "et": "paljand", "fa": "برونزد", "fr": "affleurement", + "ga": "lomán", + "gl": "afloramento", "he": "מחשוף", "hi": "उभरी तलशिला", "id": "singkapan", @@ -24301,7 +27138,7 @@ "ja": "露頭", "ko": "노두", "lt": "atodanga", - "lv": "atsegumi", + "lv": "atsegums", "nb": "fjellutspring", "nl": "ontsluiting", "pl": "wychodnia", @@ -24309,6 +27146,7 @@ "ro": "afloriment", "ru": "обнажение", "sk": "odkryv", + "sl": "izdanek", "sv": "berg i dagen", "th": "หินโผล่", "tr": "mostra", @@ -24324,14 +27162,105 @@ "es": "yacimiento paleontológico", "fi": "paleontologinen paikka", "fr": "site paléontologique", + "ga": "suíomh pailé-ointeolaíoch", + "gl": "sitio paleontolóxico", "he": "אתר פלאונטולוגי", + "hu": "őslénytani lelőhely", "it": "sito paleontologico", "ja": "古生物学的遺跡", - "nl": "paleontologische site", + "nl": "paleontologische vindplaats", "pl": "stanowisko paleontologiczne", "pt": "jazida paleontológica", "ru": "место останков", - "sl": "paleontološko najdišče" + "sl": "paleontološko najdišče", + "zh": "古生物遗址" + }, + "volcanic_caldera_rim": { + "af": "kaldera", + "ar": "كالديرا", + "be": "кальдэра", + "bg": "калдера", + "ca": "caldera volcànica", + "cs": "kaldera", + "cy": "callor", + "el": "καλδέρα", + "en": "caldera", + "es": "caldera volcánica", + "et": "kaldeera", + "fa": "کاسه آتشفشانی", + "fi": "kaldera", + "fr": "caldeira", + "ga": "caildéara", + "gl": "caldeira volcánica", + "he": "קלדרה", + "hi": "ज्वालामुख-कुण्ड", + "hr": "kaldera", + "hu": "kaldera", + "id": "kaldera", + "ja": "カルデラ", + "ko": "칼데라", + "lt": "kaldera", + "lv": "kaldera", + "ml": "കാൽഡെറ", + "nb": "kaldera", + "pl": "kaldera", + "pt": "caldeira vulcânica", + "ro": "calderă", + "ru": "кальдера", + "sk": "kaldera", + "sl": "kaldera", + "sv": "kaldera", + "th": "แอ่งยุบปากปล่อง", + "tr": "kaldera", + "uk": "кальдера", + "vi": "hõm chảo", + "zh": "破火山口" + } + }, + "golf": { + "bunker": { + "be": "перашкода", + "de": "bunker", + "en": "hazard", + "es": "obstáculo (golf)", + "fr": "bunker", + "it": "bunker", + "ja": "バンカー", + "nb": "bunker", + "nl": "bunker", + "sv": "bunker", + "zh": "障礙 (哥爾夫球)" + }, + "driving_range": { + "en": "driving range", + "fr": "practice", + "ja": "ゴルフ練習場", + "nl": "drivingrange", + "ru": "драйвинг-рейндж", + "zh": "高爾夫練習場" + }, + "fairway": { + "en": "fairway", + "ja": "フェアウェイ", + "sv": "fairway (golf)", + "zh": "球道" + }, + "green": { + "de": "grün", + "en": "green", + "fi": "viheriö", + "ja": "グリーン", + "sl": "zelenica", + "zh": "果岭", + "zh-hk": "果嶺" + }, + "practice": { + "en": "driving range", + "fr": "practice", + "ja": "ゴルフ練習場", + "nl": "drivingrange", + "ru": "драйвинг-рейндж", + "zh": "高爾夫練習場" } }, "government": { @@ -24340,12 +27269,15 @@ "be": "касмічнае агенцтва", "ca": "agència espacial", "cs": "kosmická agentura", + "cy": "asiantaeth ofod", "de": "weltraumorganisation", "el": "διαστημική υπηρεσία", "en": "space agency", "es": "agencia espacial", "fi": "avaruusjärjestö", "fr": "agence spatiale", + "ga": "gníomhaireacht spáis", + "gl": "axencia espacial", "he": "סוכנות חלל", "it": "agenzia spaziale", "ja": "宇宙機関", @@ -24369,18 +27301,22 @@ "af": "regeringsagentskap", "ar": "مؤسسة حكومية", "be": "орган улады", - "bg": "държавна агенция", + "bg": "държавна институция", "ca": "agència governamental", "cs": "orgán státní správy", + "cy": "asiantaeth lywodraethol", "da": "myndighed", "de": "behörde", "el": "κρατική υπηρεσία", "en": "government agency", + "en-gb": "government department", "es": "organismo público", "et": "asutus", "fa": "سازمان دولتی", "fi": "viranomainen", "fr": "agence publique", + "ga": "gníomhaireacht rialtais", + "gl": "axencia gobernamental", "he": "רשות ממשלתית", "hi": "सरकारी संस्थान", "hu": "állami szerv", @@ -24392,7 +27328,6 @@ "lv": "valdības aģentūra", "ml": "സർക്കാർ വിഭാഗം", "mr": "सरकारी संस्था", - "ms": "agensi kerajaan", "nb": "etat", "nl": "overheidsagentschap", "pl": "instytucja państwowa", @@ -24426,6 +27361,8 @@ "it": "archivio", "ja": "公文書館建築物", "nl": "archiefgebouw", + "pt-br": "arquivo (edificação)", + "ru": "здание архива", "sl": "arhivska stavba", "sv": "arkivbyggnad" }, @@ -24442,6 +27379,7 @@ "nl": "rekenhof", "pt": "tribunal de contas", "ru": "счётная палата", + "sl": "računsko sodišče", "tr": "sayıştay", "zh": "審計機關" }, @@ -24457,6 +27395,7 @@ "fa": "کنترل مرزی", "fi": "rajavalvonta", "fr": "contrôle frontalier", + "ga": "rialú teorann", "he": "ביקורת גבולות", "hr": "granični nadzor", "id": "kontrol perbatasan", @@ -24477,15 +27416,16 @@ "zh": "邊境管制" }, "cadaster": { + "cs": "katastrální úřad", "de": "vermessungsamt", "en": "cadastral office" }, "chamber_of_commerce": { "ar": "غرفة تجارة", "ca": "cambra de comerç", - "cs": "hospodářská komora", + "cs": "obchodní komora", "da": "handelskammer", - "de": "industrie- und handelskammer", + "de": "handelskammer", "el": "εμπορικό επιμελητήριο", "en": "chamber of commerce", "es": "cámara de comercio", @@ -24498,17 +27438,16 @@ "it": "camera di commercio", "ja": "商工会議所", "ko": "상공회의소", - "lt": "pramonės ir prekybos rūmai", + "lt": "prekybos rūmai", "nb": "handelskammer", "nl": "kamer van koophandel", - "pl": "izba gospodarcza", + "pl": "izba handlowa", "pt": "câmaras de comércio", "ro": "camera de comerț", "ru": "торговая палата", - "sl": "trgovinska zbornica", + "sl": "gospodarska zbornica", "sv": "handelskammare", "tr": "ticaret odası", - "uk": "торгово-промислова палата", "zh": "商會" }, "culture": { @@ -24516,14 +27455,18 @@ "be": "культурная ўстанова", "ca": "institució cultural", "cs": "kulturní instituce", + "cy": "sefydliad diwylliannol", "da": "kulturinstitution", - "de": "kulturinstitut", + "de": "kulturelle organisation", "el": "πολιτιστικό ίδρυμα", "en": "cultural institution", "es": "institución cultural", "et": "kultuuriorganisatsioon", + "fa": "موسسه فرهنگی", "fi": "kulttuurilaitos", "fr": "institution culturelle", + "ga": "institiúid chultúrtha", + "gl": "institución cultural", "he": "אגודה תרבותית", "hr": "kulturna ustanova", "hu": "kulturális intézmény", @@ -24531,17 +27474,17 @@ "ja": "文化機関", "ko": "문화 시설", "lv": "kultūras institūcija", - "ms": "institusi budaya", "nb": "kulturinstitusjon", "nl": "cultureel instituut", "pl": "instytucja kultury", "pt": "instituição cultural", "ro": "instituție culturală", - "ru": "культурный институт", + "ru": "учреждение культуры", "sk": "kultúrna inštitúcia", "sl": "kulturna ustanova", "sv": "kulturinstitution", "ta": "கலாச்சார நிறுவனம்", + "th": "สถาบันทางวัฒนธรรม", "tr": "kültürel oluşum", "uk": "інституція культури", "ur": "ثقافتی ادارہ", @@ -24555,7 +27498,8 @@ "be": "мытня", "bg": "митница", "ca": "duana", - "cs": "celní správa", + "cs": "celní orgán", + "cy": "asiantaeth tollau", "da": "toldvæsen", "de": "zollverwaltung", "de-ch": "zoll", @@ -24568,6 +27512,8 @@ "fa": "گمرک", "fi": "tulli", "fr": "douane", + "gd": "cuspainn", + "gl": "alfándega", "he": "מכס", "hi": "अभ्यास", "hu": "vám", @@ -24585,6 +27531,7 @@ "ru": "таможня", "sk": "colná správa", "sl": "carinska služba", + "sq": "dogana", "sv": "tullmyndighet", "ta": "சுங்கம்", "tr": "gümrük", @@ -24608,6 +27555,7 @@ "ko": "데이터 보호 기관", "nb": "databeskyttelsesautoritet", "nl": "gegevensbeschermingsautoriteit", + "pl": "urząd ochrony danych osobowych", "sl": "organ za varstvo podatkov", "sv": "dataskyddsmyndighet", "zh": "数据保护机构" @@ -24638,8 +27586,10 @@ "pt": "comissão eleitoral", "ru": "избирательная комиссия", "sl": "volilna komisija", + "te": "ఎన్నికల కమిషన్", "tr": "seçim komisyonu", "uk": "виборча комісія", + "vi": "ủy ban bầu cử", "zh": "選舉委員會" }, "healthcare": { @@ -24653,6 +27603,7 @@ "ko": "보건소", "pt": "ministério da saúde", "ru": "департамент здравоохранения", + "sl": "zdravstveni oddelek", "vi": "bộ y tế", "zh": "衛生部" }, @@ -24662,6 +27613,7 @@ "bg": "специални служби", "ca": "servei d'intel·ligència", "cs": "zpravodajská služba", + "cy": "asiantaeth cudd-wybodaeth", "da": "efterretningstjeneste", "de": "nachrichtendienst", "el": "υπηρεσία πληροφοριών", @@ -24671,17 +27623,18 @@ "fa": "سازمان اطلاعاتی", "fi": "tiedustelupalvelu", "fr": "service de renseignement", + "ga": "gníomhaireacht faisnéise", + "gl": "servizo de intelixencia", "he": "ארגון ביון", "hi": "आसूचना संस्था", "hr": "tajna služba", - "hu": "hírszerző ügynökség", + "hu": "hírszerző szolgálat", "id": "badan intelijen", "it": "agenzia di spionaggio", "ja": "情報機関", "ko": "정보기관", "lt": "specialiosios tarnybos", "lv": "izlūkošanas dienests", - "ms": "agensi perisikan", "nb": "etterretningsbyrå", "nl": "inlichtingendienst", "pl": "służba wywiadowcza", @@ -24690,6 +27643,7 @@ "ru": "спецслужба", "sk": "spravodajská služba", "sl": "obveščevalna služba", + "sq": "agjencia e inteligjencës", "sv": "underrättelsetjänst", "th": "หน่วยสืบราชการลับ", "tr": "i̇stihbarat teşkilatı", @@ -24705,25 +27659,32 @@ "bg": "законодателен орган", "ca": "assemblea legislativa", "cs": "zákonodárný sbor", + "cy": "tŷ deddfwriaethol", "da": "lovgivende forsamling", "de": "legislative", "en": "legislative house", "es": "cámara legislativa", "fi": "lainsäädännöllinen toimielin", "fr": "assemblée législative", + "ga": "teach reachtaíochta", + "gl": "cámara lexislativa", + "he": "בית מחוקק", "hu": "törvényhozó testület", "it": "assemblea legislativa", "ja": "議院", "kn": "ಶಾಸಕಾಂಗ ಮನೆ", + "ko": "원", "lv": "likumdevēja iestāde", "nb": "lovgivende forsamling", "nl": "wetgevend orgaan", + "pl": "izba ustawodawcza", "pt": "câmara legislativa", "ro": "adunare legislativă", "ru": "законодательный орган", "sk": "zákonodarný zbor", "sl": "zakonodajni dom", "sv": "lagstiftande församling", + "te": "శాసన సభ", "tr": "yasama meclisi", "uk": "законодавчий орган", "zh": "国会议院" @@ -24739,7 +27700,8 @@ "ja": "官製地図作成機関", "nb": "nasjonal kartmyndighet", "pt": "agência cartográfica nacional", - "sl": "nacionalna geografska agencija", + "sl": "državni kartografski zavod", + "uk": "національна картографічна служба", "zh": "国家测绘机构" }, "ministry": { @@ -24748,6 +27710,7 @@ "bg": "министерство", "ca": "ministeri", "cs": "ministerstvo", + "cy": "llywodraeth", "da": "ministerium", "de": "ministerium", "el": "υπουργείο", @@ -24757,6 +27720,8 @@ "fa": "وزارت", "fi": "ministeriö", "fr": "ministère", + "ga": "aireacht", + "gl": "ministerio", "he": "משרד ממשלתי", "hi": "मंत्रालय", "hr": "ministarstvo", @@ -24768,7 +27733,6 @@ "lt": "ministerija", "lv": "ministrija", "mr": "मंत्रालय", - "ms": "kementerian", "nb": "ministerium", "nl": "ministerie", "pl": "ministerstwo", @@ -24777,7 +27741,9 @@ "ru": "министерство", "sk": "ministerstvo", "sl": "ministrstvo", + "sq": "ministri", "sv": "ministerium", + "te": "మంత్రిత్వ శాఖ", "th": "กระทรวง", "tr": "bakanlık", "uk": "міністерство", @@ -24791,45 +27757,36 @@ "be": "омбудсман", "bg": "омбудсман", "ca": "síndic de greuges", - "cs": "ombudsman", + "cy": "ombwdsman", "da": "ombudsmand", "de": "ombudsmann", "el": "συνήγορος του πολίτη", - "en": "ombudsperson", - "en-ca": "ombudsman", - "en-gb": "ombudsman", + "en": "ombudsman", + "en-us": "ombudsperson", "es": "defensor del pueblo", "et": "õigusvahemees", "fa": "دادآور", "fi": "asiamies", - "fr": "ombudsman", + "gl": "valedor do pobo", "he": "נציב קבילות הציבור", "hi": "लोकपाल", "hr": "pučki pravobranitelj", - "hu": "ombudsman", - "id": "ombudsman", "it": "difensore civico", "ja": "オンブズマン", "ko": "옴부즈만", "lt": "ombudsmenas", "lv": "tiesībsargs", "ml": "ഓംബുഡ്സ്മാൻ", - "ms": "ombudsman", "nb": "ombud", "nl": "ombudspersoon", - "pl": "ombudsman", "pt": "ouvidor", - "pt-br": "ombudsman", - "ro": "ombudsman", "ru": "омбудсмен", "sk": "verejný ochranca práv", "sl": "varuh človekovih pravic", - "sv": "ombudsman", + "sq": "avokati i popullit", "ta": "குறைகேள் அதிகாரி", "th": "ผู้ตรวจการแผ่นดิน", - "tr": "ombudsman", "uk": "омбудсмен", - "vi": "ombudsman", "zh": "申訴專員", "zh-cn": "申诉专员" }, @@ -24840,6 +27797,7 @@ "bg": "парламент", "ca": "parlament", "cs": "parlament", + "cy": "senedd", "da": "parlament", "de": "parlament", "el": "κοινοβούλιο", @@ -24849,6 +27807,9 @@ "fa": "مجلس", "fi": "parlamentti", "fr": "parlement", + "ga": "parlaimint", + "gd": "pàrlamaid", + "gl": "parlamento", "he": "פרלמנט", "hi": "संसद", "hr": "parlament", @@ -24861,7 +27822,6 @@ "lt": "parlamentas", "lv": "parlaments", "mr": "संसद", - "ms": "parlimen", "nb": "parlament", "nl": "parlement", "pl": "parlament", @@ -24870,8 +27830,10 @@ "ru": "парламент", "sk": "parlament", "sl": "parlament", + "sq": "kuvend", "sv": "parlament", "ta": "நாடாளுமன்றம்", + "te": "పార్లమెంట్లు", "th": "รัฐสภา", "tr": "parlamento", "uk": "парламент", @@ -24887,6 +27849,7 @@ "bg": "официална резиденция", "ca": "residència oficial", "cs": "oficiální sídlo", + "cy": "preswylfa swyddogol", "da": "tjenestebolig", "de": "amtssitz", "el": "επίσημη κατοικία", @@ -24895,6 +27858,8 @@ "et": "residents", "fi": "virka-asunto", "fr": "résidence officielle", + "ga": "áras oifigiúil", + "gl": "residencia oficial", "he": "מעון רשמי", "hi": "आधिकारिक आवास", "hr": "službena rezidencija", @@ -24904,7 +27869,6 @@ "ja": "官邸", "ko": "관저", "lv": "oficiālā rezidence", - "ms": "kediaman rasmi", "nb": "embetsbolig", "nl": "ambtswoning", "pl": "oficjalna rezydencja", @@ -24912,7 +27876,7 @@ "ro": "reședință oficială", "ru": "официальная резиденция", "sl": "uradna rezidenca", - "sv": "officiell residens", + "sv": "officiellt residens", "ta": "அலுவல்பூர்வ தங்குமிடம்", "tr": "resmî ikametgâh", "uk": "офіційна резиденція", @@ -24926,6 +27890,7 @@ "bg": "прокурор", "ca": "fiscal", "cs": "prokurátor", + "cy": "erlynydd", "da": "anklager", "de": "staatsanwalt", "el": "εισαγγελέας", @@ -24935,24 +27900,28 @@ "fa": "دادستان", "fi": "syyttäjä", "fr": "procureur ou procureure", + "ga": "ionchúisitheoir", + "gd": "neach-casaid", + "gl": "fiscal", "he": "תובע פלילי", "hi": "सरकारी वकील", "hr": "tužiteljstvo", "hu": "ügyész", "id": "jaksa", + "it": "procuratore", "ja": "検察官", "ko": "검사", "lt": "prokuroras", "lv": "prokurors", - "ms": "pendakwa", "nb": "aktor", "nl": "openbaar aanklager", "pl": "prokurator", "pt": "promotor de justiça", - "pt-br": "procurador fiscal", "ro": "procuror", "ru": "прокурор", + "sk": "prokurátor", "sl": "državni tožilec", + "sq": "prokurori", "sv": "åklagare", "th": "พนักงานอัยการ", "tr": "savcı", @@ -24960,7 +27929,8 @@ "ur": "پراسیکیوٹر", "vi": "công tố viên", "zh": "檢察官", - "zh-cn": "检察官" + "zh-cn": "检察官", + "zh-hk": "主控官" }, "register_office": { "ar": "مكتب الأحوال المدنية", @@ -24974,6 +27944,7 @@ "es": "oficina de registro", "fa": "اداره ثبت", "fr": "bureau de l'état civil", + "gl": "rexistro civil", "he": "מרשם האוכלוסין", "hu": "anyakönyvi hivatal", "id": "catatan sipil", @@ -24993,19 +27964,25 @@ "ar": "خدمات اجتماعية", "ca": "serveis socials", "cs": "sociální služby", + "da": "sociale tjenester", "de": "sozialleistung", "en": "social services", "es": "servicios sociales", "fi": "sosiaalipalvelut", "fr": "services sociaux", + "ga": "seirbhísí sóisialta", + "hu": "szociális szolgáltatások", "it": "servizi sociali", "ja": "社会福祉事業", + "lv": "sociālais pakalpojums", "nb": "sosialtjenester", + "nl": "sociale diensten", "pt": "serviço social", "ro": "servicii sociale", "ru": "социальная услуга", "sl": "socialne službe", "sv": "social service", + "te": "సామాజిక సేవా సంస్థలు", "uk": "соціальні послуги", "vi": "dịch vụ xã hội", "zh": "社會服務", @@ -25019,18 +27996,21 @@ "es": "bienestar social", "et": "sotsiaalhoolekanne", "fr": "service d'aide sociale", + "gl": "benestar social", "he": "רווחה חברתית", "ja": "社会福祉学", "ko": "사회복지학", "pt": "bem-estar social", + "ru": "социальное благополучие", "sl": "socialno skrbstvo", - "zh": "社會福祉學" + "zh": "社會福利學" }, "statistics": { "ar": "خدمة إحصائية", "be": "статыстычная служба", "ca": "servei d'estadística", "cs": "statistická služba", + "cy": "gwasanaeth ystadegau", "da": "statistikbureau", "de": "statistischer dienst", "el": "στατιστική υπηρεσία", @@ -25040,6 +28020,8 @@ "fa": "خدمات آماری", "fi": "tilastollinen viranomaispalvelu", "fr": "institut officiel de statistique", + "ga": "seirbhís staitistiúil", + "gl": "instituto de estatística", "he": "שירות סטטיסטי", "hu": "statisztikai szervezet", "id": "badan statistik", @@ -25047,8 +28029,7 @@ "ja": "統計局", "ko": "통계국", "lv": "statistikas aģentūra", - "ms": "perkhidmatan perangkaan", - "nb": "statistisk byrå", + "nb": "statistikkbyrå", "nl": "bureau voor statistiek", "pl": "służba statystyczna", "pt": "instituto de estatística", @@ -25074,15 +28055,16 @@ "fa": "خدمات درآمد", "fi": "veroviranomainen", "fr": "administration fiscale", + "gl": "servizo de administración tributaria", "he": "רשות מסים", "hu": "adóhivatal", "it": "agenzia fiscale", "ja": "歳入庁", "ko": "세무서", - "ms": "perkhidmatan hasil", "nb": "skatteetat", "nl": "belastingdienst", "pl": "urząd skarbowy", + "pt": "autoridade de arrecadação tributária", "ru": "налоговые органы", "sl": "davčna uprava", "sv": "skattemyndighet", @@ -25092,8 +28074,11 @@ }, "transportation": { "ca": "autoritat del transport", - "en": "transportation authority", + "da": "offentligt trafikselskab", + "en": "public transportation authority", "fr": "autorité organisatrice des transports", + "ga": "údarás iompair", + "he": "רשות התחבורה הציבורית", "ja": "交通地区", "nl": "ov-autoriteit", "pl": "organizator publicznego transportu zbiorowego", @@ -25124,11 +28109,114 @@ "ja": "児童相談所" } }, + "hairdresser": { + "barber": { + "ca": "barberia", + "cs": "holičství", + "da": "barbersalon", + "de": "barbierstube", + "en": "barbershop", + "es": "barbería", + "hu": "borbélyüzlet", + "ja": "理容所", + "ko": "이발소", + "lt": "barzdaskutykla", + "nb": "barbersalong", + "ru": "барбершоп", + "sl": "brivnica", + "uk": "барбершоп", + "zh": "理髮店", + "zh-cn": "理发店" + } + }, + "harassment_prevention": { + "ask_angela": { + "en": "ask for angela", + "fr": "demandez angela" + } + }, "hazard": { "animal_crossing": { "en": "animal crossing", "sl": "živalski prehod", "sv": "viltpassage" + }, + "flooding": { + "af": "oorstroming", + "ar": "فيضان", + "be": "паводка", + "bg": "наводнение", + "ca": "inundació", + "cs": "povodeň", + "cy": "llifogydd", + "da": "oversvømmelse", + "de": "überschwemmung", + "el": "πλημμύρα", + "en": "flood", + "es": "inundación", + "et": "üleujutus", + "fa": "سیل", + "fi": "tulva", + "fr": "inondation", + "ga": "tuile", + "gd": "dìle", + "gl": "inundación", + "he": "שיטפון", + "hi": "बाढ़", + "hr": "poplava", + "hu": "árvíz", + "id": "banjir", + "it": "inondazione", + "ja": "洪水", + "kn": "ಪ್ರವಾಹ", + "ko": "홍수", + "lt": "potvynis", + "lv": "plūdi", + "ml": "വെള്ളപ്പൊക്കം", + "mr": "पूर", + "nb": "flom", + "nl": "overstroming", + "pl": "powódź", + "pt": "inundação", + "ro": "inundație", + "ru": "наводнение", + "sk": "povodeň", + "sl": "poplava", + "sq": "përmbytja", + "sv": "översvämning", + "ta": "வெள்ளம்", + "te": "వరద", + "th": "น้ำท่วม", + "tr": "sel", + "uk": "повідь", + "ur": "سیلاب", + "vi": "lụt", + "zh": "洪灾" + }, + "minefield": { + "ar": "حقل ألغام", + "cs": "minové pole", + "da": "minefelt", + "de": "minensperre", + "el": "ναρκοπέδιο", + "en": "minefield", + "fi": "miinoite", + "fr": "champ de mines", + "it": "campo minato", + "nb": "minefelt", + "nl": "mijnenveld", + "sk": "mínové pole", + "sl": "minsko polje", + "sv": "minspärr", + "uk": "мінне поле" + }, + "washout": { + "ar": "انجراف", + "ca": "reble", + "en": "washout", + "es": "abarrancamiento", + "fr": "ravinement", + "ja": "ウォッシュアウト" } }, "health_facility": { @@ -25142,9 +28230,11 @@ "es": "dispensario", "et": "dispanser", "fr": "dispensaire", + "hr": "dispanzer", "it": "dispensario", "ja": "ディスペンサリー", "nl": "dispensarium", + "pl": "ambulatorium", "pt": "dispensário", "ro": "dispensar", "ru": "диспансер", @@ -25152,7 +28242,8 @@ "sv": "dispensär", "tr": "dispanser", "uk": "диспансер", - "ur": "دواخانہ" + "ur": "دواخانہ", + "zh": "药房" } }, "healthcare": { @@ -25163,6 +28254,7 @@ "bg": "акупунктура", "ca": "acupuntura", "cs": "akupunktura", + "cy": "aciwbigo", "da": "akupunktur", "de": "akupunktur", "de-at": "immunologie", @@ -25175,6 +28267,9 @@ "et": "akupunktuur", "fa": "طب سوزنی", "fi": "akupunktio", + "ga": "snáthaidpholladh", + "gd": "eòlas-bodhaig", + "gl": "acupuntura", "he": "דיקור סיני", "hi": "एक्यूपंक्चर", "hr": "akupunktura", @@ -25188,7 +28283,6 @@ "lv": "akupunktūra", "ml": "അക്യുപങ്ചർ", "mr": "ॲक्युपंक्चर", - "ms": "akupunktur", "nb": "akupunktur", "nl": "acupunctuur", "pl": "akupunktura", @@ -25198,8 +28292,10 @@ "ru": "акупунктура", "sk": "akupunktúra", "sl": "akupunktura", + "sq": "akupunkturë", "sv": "akupunktur", "ta": "குத்தூசி மருத்துவம்", + "te": "ఆక్యుపంక్చర్", "th": "การฝังเข็ม", "tr": "akupunktur", "uk": "акупунктура", @@ -25216,6 +28312,7 @@ "bg": "алтернативна медицина", "ca": "medicina alternativa", "cs": "alternativní medicína", + "cy": "meddygaeth amgen", "da": "alternativ behandling", "de": "alternativmedizin", "el": "εναλλακτική ιατρική", @@ -25225,6 +28322,8 @@ "fa": "پزشکی جایگزین", "fi": "uskomuslääkintä", "fr": "médecine non conventionnelle", + "ga": "míochaine mhalartach", + "gl": "medicina alternativa", "he": "רפואה אלטרנטיבית", "hi": "वैकल्पिक चिकित्सा", "hr": "alternativna medicina", @@ -25237,7 +28336,6 @@ "lt": "alternatyvioji medicina", "lv": "komplementārā un alternatīvā medicīna", "ml": "ബദൽചികിത്സ", - "ms": "perubatan alternatif", "nb": "alternativ medisin", "nl": "alternatieve geneeswijze", "pl": "medycyna niekonwencjonalna", @@ -25260,6 +28358,7 @@ "ca": "audiòleg", "cs": "audiolog", "de": "audiologe", + "el": "ακοολόγος", "en": "audiologist", "es": "audiólogo", "fi": "audiologi", @@ -25267,6 +28366,7 @@ "he": "אודיולוג", "hu": "audiológus", "it": "audiologo", + "ja": "聴能学", "nl": "audioloog", "pl": "audiolog", "pt": "audiologista", @@ -25304,37 +28404,44 @@ "fa": "بانک خون", "fi": "veripankki", "fr": "banque du sang", + "ga": "banc fola", "he": "בנק דם", "hi": "रक्त कोष", "it": "banca del sangue", - "ja": "血液センター", + "ja": "血液バンク", "ko": "혈액은행", "ml": "രക്തബാങ്ക്", "nb": "blodbank", "nl": "bloedbank", "pl": "bank krwi", "pt": "banco de sangue", - "ru": "станция переливания крови", + "ru": "банк крови", "sl": "krvna banka", "sv": "blodbank", "ta": "இரத்த வங்கி", + "te": "రక్త నిధి", "vi": "ngân hàng máu", "zh": "臨床血庫學" }, "blood_donation": { "en": "blood collection centre", + "en-us": "blood collection center", "es": "centro de transfusiones", "ja": "献血ルーム", + "ko": "헌혈소", "nl": "bloeddonorcentrum", + "ru": "центр сдачи крови", "sl": "center za zbiranje krvi" }, "clinic": { "af": "kliniek", "ar": "عيادة", + "be": "клініка", "ca": "clínica", "cs": "ambulantní klinika", + "cy": "clinig", "da": "ambulatorium", - "de": "klinik", + "de": "ambulanz (einrichtung)", "el": "κλινική", "en": "clinic", "es": "clínica", @@ -25342,6 +28449,8 @@ "fa": "درمانگاه", "fi": "klinikka", "fr": "clinique", + "ga": "clinic sláinte", + "gl": "centro de saúde", "he": "מרפאה", "hr": "klinika", "hu": "klinika", @@ -25350,9 +28459,9 @@ "ja": "診療所", "kn": "ಚಿಕಿತ್ಸಾಲಯ", "ko": "진료소", + "lt": "klinika", "ml": "ക്ലിനിക്ക്", "mr": "चिकित्सालय", - "ms": "klinik", "nb": "klinikk", "nl": "kliniek", "pl": "przychodnia lekarska", @@ -25361,6 +28470,7 @@ "ru": "клиника", "sk": "klinika", "sl": "klinika", + "sq": "klinika", "sv": "klinik", "tr": "klinik", "uk": "клініка", @@ -25373,6 +28483,7 @@ "bg": "стоматолог", "ca": "odontòleg", "cs": "zubní lékař", + "cy": "deintydd", "da": "tandlæge", "de": "zahnarzt", "el": "οδοντίατρος", @@ -25381,7 +28492,10 @@ "et": "hambaarst", "fa": "دندانپزشک", "fi": "hammaslääkäri", - "fr": "dentiste", + "fr": "chirurgien-dentiste", + "ga": "fiaclóir", + "gd": "fiaclair", + "gl": "odontólogo", "he": "רופא שיניים", "hr": "zubar", "hu": "fogorvos", @@ -25389,8 +28503,8 @@ "it": "dentista", "ja": "歯科医師", "ko": "치과의사", + "lt": "odontologas", "lv": "zobārsts", - "ms": "doktor gigi", "nb": "tannlege", "nl": "tandarts", "pl": "lekarz stomatolog", @@ -25414,6 +28528,7 @@ "bg": "лекарски кабинет", "ca": "metge", "cs": "lékař", + "cy": "meddygfa", "da": "læge", "de": "arztpraxis", "de-at": "arzt", @@ -25428,6 +28543,9 @@ "fa": "مطب", "fi": "lääkäri", "fr": "cabinet médical", + "ga": "dochtúir leighis", + "gd": "lighiche", + "gl": "médico", "he": "רופא", "hi": "चिकित्सक", "hr": "liječnik", @@ -25436,12 +28554,11 @@ "it": "medico", "ja": "診察室", "kn": "ವೈದ್ಯ", - "ko": "의사", + "ko": "개인 병원", "lt": "gydytojas", "lv": "ārsts", "ml": "ഡോക്ടർ", "mr": "डॉक्टर", - "ms": "pengamal perubatan", "nb": "lege", "nl": "arts", "pl": "lekarz", @@ -25451,8 +28568,10 @@ "ru": "врачебный кабинет", "sk": "lekár", "sl": "splošna ambulanta", + "sq": "mjek", "sv": "läkare", "ta": "மருத்துவர்", + "te": "వైద్యుడు", "th": "แพทย์", "tr": "doktor", "uk": "лікар", @@ -25464,7 +28583,7 @@ "zh-tw": "醫生" }, "hospice": { - "ar": "مستشفى الحالات النهائية", + "ar": "مستشفى المحتضرين", "be": "хоспіс", "bg": "уикипедия:инкубатор/статии/хоспис", "ca": "hospici", @@ -25475,6 +28594,7 @@ "et": "hospiits", "fa": "مراقبت سرا", "fi": "saattokoti", + "ga": "ospís", "he": "הוספיס", "hr": "hospicij", "it": "ospizio", @@ -25498,6 +28618,7 @@ "be": "бальніца", "bg": "болница", "cs": "nemocnice", + "cy": "ysbyty", "da": "sygehus", "de": "krankenhaus", "de-ch": "spital", @@ -25507,6 +28628,7 @@ "fa": "بیمارستان", "fi": "sairaala", "fr": "hôpital", + "ga": "ospidéal", "he": "בית חולים", "hi": "चिकित्सालय", "hr": "bolnica", @@ -25527,8 +28649,10 @@ "ru": "больница", "sk": "nemocnica", "sl": "bolnišnica", + "sq": "spital", "sv": "sjukhus", "ta": "மருத்துவமனை", + "te": "వైద్యశాల", "th": "โรงพยาบาล", "tr": "hastane", "uk": "лікарня", @@ -25543,6 +28667,7 @@ "bg": "акушерство", "ca": "llevadora", "cs": "porodní asistentka", + "cy": "bydwreigiaeth", "da": "jordemoder", "de": "hebamme", "el": "μαία", @@ -25552,6 +28677,8 @@ "fa": "مامایی", "fi": "kätilö", "fr": "sage-femme", + "ga": "cnáimhseach", + "gl": "matrona", "he": "מיילד", "hi": "प्रसूतिविद्या", "hu": "bába", @@ -25564,7 +28691,6 @@ "lv": "akušiere", "ml": "വയറ്റാട്ടി", "mr": "प्रसूतिशास्त्र", - "ms": "bidan", "nb": "jordmor", "nl": "verloskundige", "pl": "położna", @@ -25573,6 +28699,7 @@ "ru": "акушерка", "sk": "pôrodná asistentka", "sl": "babica", + "sq": "mamitë xherahe", "sv": "barnmorska", "th": "หมอตำแย", "tr": "ebelik", @@ -25584,6 +28711,7 @@ "occupational_therapist": { "ar": "أخصائي العلاج الوظيفي", "ca": "terapeuta ocupacional", + "cy": "therapydd galwedigaethol", "da": "ergoterapeut", "de": "ergotherapeut", "el": "εργοθεραπευτής", @@ -25591,11 +28719,13 @@ "es": "terapeuta ocupacional", "fi": "toimintaterapeutti", "fr": "ergothérapeute", + "gl": "terapeuta ocupacional", "he": "מרפא בעיסוק", "hu": "foglalkozási és munkaterapeuta", "it": "terapista occupazionale", "ja": "作業療法士", "ko": "작업치료사", + "lt": "ergoterapeutas", "nb": "ergoterapeut", "nl": "ergotherapeut", "pl": "terapeuta zajęciowy", @@ -25610,14 +28740,18 @@ "optometrist": { "ca": "optometrista", "cs": "optometrista", + "cy": "optometrydd", "el": "οπτομέτρης", "en": "optometrist", "es": "optometrista", + "fa": "دیدآزما", "fi": "optometristi", "fr": "optométriste", + "ga": "optaiméadraí", "he": "אופטומטריסט", "hu": "optometrista", "it": "optometrista", + "lt": "optometristas", "ru": "оптометрист", "uk": "оптометрист", "zh": "視光師", @@ -25634,6 +28768,7 @@ "bg": "физиотерапия", "ca": "fisioteràpia", "cs": "fyzioterapie", + "cy": "ffisiotherapi", "da": "fysioterapi", "de": "physiotherapie", "el": "φυσικοθεραπεία", @@ -25644,6 +28779,9 @@ "fa": "فیزیوتراپی", "fi": "fysioterapia", "fr": "physiothérapie", + "ga": "fisiteiripe", + "gd": "leasaiche-cuirp", + "gl": "fisioterapia", "he": "פיזיותרפיה", "hi": "भौतिक चिकित्सा", "hu": "gyógytestnevelés", @@ -25655,15 +28793,16 @@ "lv": "fizioterapija", "ml": "ഫിസിക്കൽ തെറാപ്പി", "mr": "भौतिकोपचार शास्त्र", - "ms": "terapi fizikal", "nb": "fysioterapi", "nl": "fysiotherapie", "pl": "fizjoterapia", "pt": "fisioterapia", "pt-br": "fisioterapeuta", + "ro": "fizioterapie", "ru": "медицинская физическая реабилитация (лфк)", "sk": "fyzioterapia", "sl": "fizioterapija", + "sq": "terapia fizike", "sv": "sjukgymnastik", "ta": "உடலியக்க மருத்துவம்", "th": "กายภาพบำบัด", @@ -25701,6 +28840,7 @@ "be": "псіхатэрапеўт", "ca": "psicoterapeuta", "cs": "psychoterapeut", + "cy": "seicotherapydd", "da": "psykoterapeut", "de": "psychotherapeut", "el": "ψυχοθεραπευτής", @@ -25709,11 +28849,15 @@ "fa": "روان درمانگر", "fi": "psykoterapeutti", "fr": "psychothérapeute", + "ga": "síciteiripeoir", + "gd": "teiripiche-inntinn", + "gl": "psicoterapeuta", "he": "פסיכותרפיסט", "hr": "psihoterapeut", "hu": "pszichoterapeuta", "it": "psicoterapeuta", "ja": "心理療法士", + "lt": "psichoterapeutas", "lv": "psihoterapeits", "nb": "psykoterapeut", "nl": "psychotherapeut", @@ -25731,13 +28875,16 @@ "ar": "معالج النطق واللغة", "ca": "logopeda", "cs": "logoped", + "cy": "therapydd lleferydd ac iaith", "da": "talepædagog", "de": "logopäde", + "el": "λογοθεραπευτής", "en": "speech and language therapist", "es": "logopeda", "et": "logopeed", "fi": "puheterapeutti", "fr": "orthophoniste", + "gl": "logopeda", "he": "קלינאי תקשורת", "hu": "logopédus", "it": "logopedista", @@ -25761,22 +28908,29 @@ "bg": "списък на световното културно и природно наследство на юнеско", "ca": "patrimoni cultural d'àustria", "cs": "památkově chráněný objekt v rakousku", + "cy": "monument historique", "da": "monument historique", "de": "denkmalgeschütztes objekt in österreich", "de-ch": "denkmalgeschützte objekte in österreich", "el": "προστατευόμενο μνημείο", - "en": "denkmalgeschütztes objekt", + "en": "listed objects in austria", + "en-ca": "denkmalgeschütztes objekt", + "en-gb": "denkmalgeschütztes objekt", "en-us": "unesco world heritage site", "es": "bien de interés patrimonial de austria", "et": "unesco maailmapärandi nimistu", "fa": "میراث جهانی یونسکو", "fi": "national register of historic places -luetteloitu kohde", - "fr": "objet classé monument historique", + "fr": "objet autrichien classé monument historique", + "ga": "denkmalgeschütztes objekt", + "gd": "làrach dhualchas na cruinne", + "gl": "monumento histórico de francia", "he": "מונומנט היסטורי", "hi": "विश्व धरोहर", "hr": "svjetska baština", "hu": "műemlékileg védett objektum", "id": "monumen perjuangan rakyat", + "it": "denkmalgeschütztes objekt", "ja": "重要文化財", "kn": "ವಿಶ್ವ ಪರಂಪರೆಯ ತಾಣ", "ko": "역사기념물", @@ -25784,7 +28938,6 @@ "lv": "unesco pasaules mantojuma objekts", "ml": "ലോകപൈതൃകസ്ഥാനം", "mr": "जागतिक वारसा स्थान", - "ms": "monumen sejarah", "nb": "denkmalgeschütztes objekt in österreich", "nl": "beschermd monument in oostenrijk", "pl": "monument historique", @@ -25793,9 +28946,11 @@ "ro": "patrimoniu mondial unesco", "ru": "объект архитектурного наследия австрии", "sk": "monument historique", - "sl": "zaščiteni kulturni spomenik v avstriji", + "sl": "spomeniško zavarovani objekt v avstriji", + "sq": "vende të trashëgimisë botërore", "sv": "monument historique", "ta": "உலகப் பாரம்பரியக் களம்", + "te": "ప్రపంచ వారసత్వ ప్రదేశం", "th": "อนุสรณ์สถานทางประวัติศาสตร์แห่งฝรั่งเศส", "tr": "tarihi yerler ulusal kayıtları'nda listeli", "uk": "пам'ятка культурної спадщини", @@ -25805,17 +28960,6 @@ "zh-cn": "法国国家文物保护单位", "zh-hk": "世界遺產", "zh-tw": "世界遺產" - }, - "2": { - "ar": "رايكس مونيومنت", - "be": "аб'ект культурнай спадчыны нідэрландаў", - "ca": "monument nacional", - "el": "εθνικό μνημείο της ολλανδίας", - "en": "rijksmonument", - "he": "רייקסמונומנט", - "ja": "国家遺産", - "ru": "объект культурного наследия нидерландов", - "uk": "національна пам'ятка нідерландів" } }, "highway": { @@ -25823,7 +28967,7 @@ "af": "ruiterpad", "cs": "hipostezka", "de": "saumpfad", - "en": "chukar trail", + "en": "horse riding allowed", "es": "sendero ecuestre", "fr": "sentier équestre", "hu": "málhás út", @@ -25836,13 +28980,36 @@ "zh": "骑马专用道" }, "bus_guideway": { - "en": "guided busway" + "bg": "направляван автобус", + "ca": "autobús guiat", + "cs": "autobusová dráha", + "de": "spurbus", + "en": "guided busway", + "es": "autobús guiado", + "fr": "autobus guidé", + "he": "אוטובוס מונחה", + "hu": "kötöttpályás busz", + "it": "autobus guidato", + "ja": "ガイドウェイバス", + "ko": "유도버스", + "nb": "sporbuss", + "nl": "geleide bus", + "pl": "autobus torowy", + "pt": "autocarro guiado", + "ro": "autobuz ghidat", + "ru": "направляемый автобус", + "sv": "spårbuss", + "tr": "kılavuzlu otobüs", + "zh": "導向巴士", + "zh-cn": "导向客车", + "zh-tw": "導向公車" }, "bus_stop": { "ar": "محطة حافلات", "be": "аўтобусны прыпынак", "ca": "parada d'autobús", "cs": "autobusová zastávka", + "cy": "safle bws", "da": "busstoppested", "de": "bushaltestelle", "en": "bus stop (symbol) - no standing any time", @@ -25853,6 +29020,7 @@ "fa": "ایستگاه اتوبوس", "fi": "linja-autopysäkki", "fr": "arrêt de bus", + "ga": "stad bus", "he": "תחנת אוטובוס", "hr": "autobusna postaja", "hu": "buszmegálló", @@ -25861,8 +29029,7 @@ "ja": "バス停留所", "ko": "버스 정류장", "lt": "autobusų stotelė", - "lv": "pietura", - "ms": "perhentian bas", + "lv": "autobusa pietura", "nb": "bussholdeplass", "nl": "bushalte", "pl": "przystanek autobusowy", @@ -25871,10 +29038,13 @@ "ru": "автобусная остановка", "sk": "autobusová zastávka", "sl": "avtobusno postajališče", + "sq": "ndalesë autobusi", "sv": "busshållplats", "ta": "பேருந்து நிறுத்தம்", + "te": "బస్ స్టాప్", "tr": "otobüs durağı", "uk": "автобусна зупинка", + "ur": "بس اسٹاپ", "vi": "điểm dừng xe buýt", "zh": "巴士站", "zh-cn": "公交车站", @@ -25884,7 +29054,8 @@ "en": "busway", "es": "vía de autobús", "fr": "voie de bus", - "ja": "バス専用道路" + "ja": "バス専用道路", + "sl": "avtobusna cesta" }, "corridor": { "ar": "قاعة", @@ -25899,7 +29070,10 @@ "et": "koridor", "fi": "käytävä", "fr": "couloir", + "ga": "dorchla", + "gl": "andadeiro", "he": "פרוזדור", + "hr": "hodnik", "hu": "folyosó", "id": "lorong", "it": "corridoio", @@ -25912,9 +29086,11 @@ "pt": "corredor", "ru": "коридор", "sl": "kuloar", + "sq": "japia", "sv": "korridor", "tr": "koridor", "uk": "коридор", + "vi": "hành lang", "zh": "廊" }, "crossing": { @@ -25925,7 +29101,8 @@ "cs": "přechod pro chodce", "da": "fodgængerfelt", "de": "fußgängerübergang", - "de-ch": "fussgängerüberweg", + "de-at": "schutzweg", + "de-ch": "fussgängerstreifen", "el": "διάβαση πεζών", "en": "pedestrian crossing", "es": "paso de peatones", @@ -25933,6 +29110,7 @@ "fa": "گذرگاه عابران پیاده", "fi": "suojatie", "fr": "passage pour piétons en france", + "gd": "àite coise", "he": "מעבר חצייה", "hr": "pješački prijelaz", "hu": "gyalogos-átkelőhely", @@ -25942,12 +29120,12 @@ "ko": "횡단보도", "lt": "pėsčiųjų perėja", "lv": "gājēju pāreja", - "ms": "lintasan pejalan kaki", "nb": "fotgjengerovergang", "nl": "oversteekplaats", "pl": "przejście dla pieszych", "pt": "passadeira de peões", "pt-br": "faixa de pedestres", + "ro": "trecere de pietoni", "ru": "пешеходный переход", "sk": "priechod pre chodcov", "sl": "prehod za pešce", @@ -25963,6 +29141,7 @@ "bg": "велосипедна алея", "ca": "carril bici", "cs": "stezka pro cyklisty", + "cy": "llwybr beic", "da": "cykelsti", "de": "fahrradweg", "el": "ποδηλατόδρομος", @@ -25970,9 +29149,11 @@ "en-gb": "cycle path", "es": "ciclovía", "et": "jalgrattatee", - "fa": "زیرساخت دوچرخهسواری", + "fa": "مسیر دوچرخه", "fi": "pyörätie", "fr": "piste cyclable", + "ga": "raon rothar", + "gl": "carril bici", "he": "שביל אופניים", "hr": "biciklistička staza", "hu": "kerékpárút", @@ -25981,7 +29162,7 @@ "ja": "自転車道", "ko": "자전거 길", "lv": "veloceliņš", - "nb": "sykkelvei", + "nb": "sykkelveg", "nl": "fietspad", "pl": "droga dla rowerów", "pt": "ciclovia", @@ -26003,6 +29184,7 @@ "bg": "асансьор", "ca": "ascensor", "cs": "výtah", + "cy": "esgynnydd", "de": "aufzug", "el": "ανελκυστήρας", "en": "elevator", @@ -26012,6 +29194,9 @@ "fa": "آسانسور", "fi": "hissi", "fr": "ascenseur", + "ga": "ardaitheoir", + "gd": "àrdaichear", + "gl": "ascensor", "he": "מעלית", "hi": "उत्थापक", "hr": "dizalo", @@ -26025,7 +29210,6 @@ "lv": "lifts", "ml": "എലിവേറ്റർ", "mr": "उद्वाहक", - "ms": "lif", "nb": "heis", "nl": "lift", "pl": "winda", @@ -26034,6 +29218,7 @@ "ru": "лифт", "sk": "výťah", "sl": "dvigalo", + "sq": "ashensori", "sv": "hiss", "ta": "உயர்த்தி", "th": "ลิฟต์", @@ -26060,9 +29245,9 @@ "en": "runaway truck ramp", "es": "zona de frenado de emergencia", "fr": "voie de détresse", + "gl": "zona de freada de emerxencia", "it": "uscita di scampo", "ja": "緊急退避所", - "ms": "lorong kecemasan lori", "nl": "noodstopstrook", "pt": "área de escape", "ro": "rampă de urgență", @@ -26077,18 +29262,20 @@ "be": "праход", "ca": "passatge", "cs": "pěšina", + "cy": "rhoddfa", "da": "passage", "de": "passage", "el": "στοά", - "en": "chukar trail", + "en": "hiking allowed", "es": "pasaje", "fa": "پیاده راه", "fi": "jalankulkukäytävä", "fr": "passage", + "gl": "senda", "he": "מסדרון", "hi": "पैदलपथ", "hr": "pješačka staza", - "hu": "gyalogút", + "hu": "átjáró", "id": "jalan setapak", "it": "passaggio", "ja": "フットパス", @@ -26106,7 +29293,7 @@ "tr": "yaya geçidi", "uk": "прохід", "vi": "đường đi bộ", - "zh": "步道" + "zh": "穿越处" }, "give_way": { "ar": "أعط الأفضلية", @@ -26118,9 +29305,9 @@ "fi": "väistämisvelvollisuus", "fr": "panneau de signalisation de cédez-le-passage", "he": "זכות קדימה", + "hu": "elsőbbségadás kötelező tábla", "it": "segnale di dare precedenza", "ko": "양보 표지", - "ms": "papan tanda beri laluan", "nb": "vikepliktsskilt", "nl": "voorrangsbord", "pl": "znak ustąp pierwszeństwa", @@ -26156,8 +29343,8 @@ "bg": "уикипедия:инкубатор/статии/жилищна зона", "ca": "carrer residencial", "cs": "obytná zóna", - "de": "verkehrsberuhigter bereich", - "de-ch": "begegnungszone", + "de": "wohnstraße", + "de-ch": "wohnstrasse", "en": "living street", "es": "calle residencial", "et": "õueala", @@ -26183,6 +29370,7 @@ "en": "highway location marker", "es": "hito kilométrico", "fr": "pierre du kilomètre", + "gl": "marco quilométrico", "it": "segnale di progressiva chilometrica", "ja": "距離標", "nl": "afstandspaal", @@ -26204,6 +29392,7 @@ "bg": "автомагистрала", "ca": "autopista", "cs": "dálnice", + "cy": "traffordd", "da": "motorvej", "de": "autobahn", "el": "αυτοκινητόδρομος", @@ -26214,6 +29403,8 @@ "fa": "آزادراه", "fi": "moottoritie", "fr": "autoroute", + "ga": "mótarbhealach", + "gl": "autoestrada", "he": "כביש מהיר", "hr": "autocesta", "hu": "autópálya", @@ -26224,7 +29415,6 @@ "lt": "automagistralė", "lv": "automaģistrāle", "mr": "नियंत्रित-प्रवेश महामार्ग", - "ms": "lebuh raya capaian terkawal", "nb": "motorvei", "nl": "autosnelweg", "pl": "autostrada", @@ -26233,6 +29423,7 @@ "ru": "автомагистраль", "sk": "diaľnica", "sl": "avtocesta", + "sq": "autoudhë", "sv": "motorväg", "th": "ทางด่วน", "tr": "otoyol", @@ -26247,6 +29438,7 @@ "de-ch": "verzweigung", "en": "junction", "fr": "sortie", + "it": "svincolo", "ja": "ジャンクション", "nl": "aansluiting", "pl": "węzeł drogowy", @@ -26262,7 +29454,8 @@ "en": "ramp", "fa": "رمپ راستگرد", "fr": "bretelle", - "nb": "filterfelt" + "nb": "filterfelt", + "sl": "priključek" }, "passing_place": { "de": "ausweichstelle", @@ -26272,15 +29465,20 @@ }, "path": { "ar": "مسلك", + "be": "сцежка", "ca": "camí", "cs": "stezka", + "cy": "llwybr", "da": "sti", - "de": "weg", + "de": "pfad", + "el": "πεζοπορικά μονοπάτια", "en": "path", "es": "camino", "fa": "تریل", "fi": "polku", "fr": "chemin", + "ga": "cosán", + "gl": "camiño", "he": "שביל", "hu": "ösvény", "id": "jalan setapak", @@ -26291,10 +29489,9 @@ "nl": "voetpad", "pl": "ścieżka", "pt": "caminho", - "pt-br": "trilha", "ru": "пешеходная тропа", "sl": "pot", - "sv": "gångstig", + "sv": "gång", "tr": "patika", "uk": "стежка", "ur": "جادہ", @@ -26339,14 +29536,16 @@ "primary_link": { "en": "slip lane", "fa": "رمپ راستگرد", - "nb": "filterfelt" + "nb": "filterfelt", + "sl": "lijak" }, "raceway": { "ar": "حلبة سباق", "be": "аўтадром", "bg": "писта за автомобилни състезания", - "ca": "circuit", + "ca": "circuit de curses", "cs": "závodiště", + "cy": "trac rasio", "da": "væddeløbsbane", "de": "rennstrecke", "de-ch": "motorsport-rennstrecke", @@ -26357,6 +29556,8 @@ "fa": "میدان مسابقه", "fi": "kilparata", "fr": "circuit", + "ga": "ráschúrsa", + "gl": "autódromo", "he": "מסלול מרוצים", "hu": "versenypálya", "id": "tempat balap", @@ -26364,7 +29565,6 @@ "ja": "レース場", "ko": "경주로", "lv": "sacīkšu trase", - "ms": "balapan lumba", "nb": "racerbane", "nl": "circuit", "pl": "tor wyścigowy", @@ -26374,14 +29574,18 @@ "sl": "dirkališče", "sv": "racerbana", "tr": "yarış pisti", + "uk": "гоночний трек", "vi": "đường đua", "zh": "賽車場" }, "residential": { "de": "anliegerstraße", + "de-at": "anrainerstraße", + "de-ch": "anstösserstrasse", "en": "residential street", "es": "calle residencial", "fr": "rue résidentielle", + "hu": "lakónegyedbeli utca", "it": "strada residenziale", "ja": "住宅地区内の道路", "pt": "rua residencial" @@ -26403,7 +29607,6 @@ "it": "area di servizio", "ja": "休憩所 (道路施設)", "ko": "고속도로 휴게소", - "ms": "kawasan rehat", "nb": "rasteplass", "nl": "verzorgingsplaats", "pl": "miejsce obsługi podróżnych", @@ -26425,6 +29628,7 @@ "bg": "път", "ca": "carretera", "cs": "silnice", + "cy": "ffordd", "da": "vej", "de": "straße", "de-ch": "strasse", @@ -26435,6 +29639,9 @@ "fa": "راه", "fi": "tie", "fr": "route", + "ga": "bóthar", + "gd": "rathad", + "gl": "estrada", "he": "כביש", "hi": "सड़क", "hr": "cesta", @@ -26448,7 +29655,6 @@ "lv": "ceļš", "ml": "റോഡ്", "mr": "रस्ते", - "ms": "jalan raya", "nb": "vei", "nl": "weg", "pl": "droga", @@ -26457,8 +29663,10 @@ "ru": "дорога", "sk": "cesta", "sl": "cesta", + "sq": "rruga", "sv": "väg", "ta": "சாலை", + "te": "రహదారి", "th": "ถนน", "tr": "yol", "uk": "дорога", @@ -26474,13 +29682,15 @@ "secondary_link": { "en": "slip lane", "fa": "رمپ راستگرد", - "nb": "filterfelt" + "nb": "filterfelt", + "sl": "lijak" }, "speed_camera": { "ar": "كاميرا مراقبة السرعة", "bg": "спийд камери", "ca": "radar de trànsit", "cs": "detektor rychlosti", + "cy": "camera ffordd", "da": "automatisk trafikkontrol", "de": "geschwindigkeitsüberwachung", "en": "traffic enforcement camera", @@ -26496,9 +29706,8 @@ "it": "autovelox", "ja": "速度違反自動取締装置", "lv": "fotoradars", - "ms": "perangkap laju", "nb": "automatisk trafikkontroll", - "nl": "flitspaal", + "nl": "verkeersradar", "pl": "fotoradar", "ru": "камера безопасности дорожного движения", "sl": "kamera za nadzor prometa", @@ -26522,6 +29731,7 @@ "bg": "стълбище", "ca": "escala", "cs": "schodiště", + "cy": "grisiau", "da": "trappe", "de": "treppe", "de-at": "stiege", @@ -26532,6 +29742,8 @@ "fa": "پلکان", "fi": "portaat", "fr": "escalier", + "ga": "staighre", + "gl": "escaleira", "he": "מדרגות", "hr": "stubište", "hu": "lépcső", @@ -26542,7 +29754,6 @@ "ko": "계단", "lt": "laiptinė", "lv": "kāpnes", - "ms": "tangga", "nb": "trapp", "nl": "trap", "pl": "schody", @@ -26553,6 +29764,7 @@ "sl": "stopnice", "sv": "trappa", "ta": "படிக்கட்டு", + "te": "మెట్టు", "th": "บันได", "tr": "merdiven", "uk": "сходи", @@ -26564,6 +29776,7 @@ "stop": { "af": "stopteken", "ar": "علامة قف", + "be": "рух без прыпынку забаронены", "ca": "estop", "de": "stoppschild", "en": "stop sign", @@ -26578,7 +29791,6 @@ "ja": "一時停止標識", "ko": "정지 표지판", "lv": "stop zīme", - "ms": "papan tanda berhenti", "nb": "stoppskilt", "nl": "stopbord", "pl": "znak stop", @@ -26599,6 +29811,7 @@ "bg": "улично осветление", "ca": "enllumenat públic", "cs": "lampa veřejného osvětlení", + "cy": "golau stryd", "da": "gadebelysning", "de": "straßenlaterne", "de-ch": "strassenbeleuchtung", @@ -26608,12 +29821,15 @@ "fa": "روشنایی معابر", "fi": "katuvalo", "fr": "réverbère", + "ga": "solas sráide", + "gl": "alumbrado público", "he": "פנס רחוב", + "hi": "बिजली का खंबा", + "hu": "utcai lámpa", "id": "lampu jalan", "it": "lampione", "ja": "街灯", "ko": "가로등", - "ms": "lampu jalan", "nb": "gatebelysning", "nl": "straatverlichting", "pl": "latarnia uliczna", @@ -26632,12 +29848,14 @@ "ca": "camí d'accés", "en": "access road", "es": "vía de acceso", - "hu": "bekötőút" + "hu": "bekötőút", + "sl": "priključna cesta" }, "tertiary_link": { "en": "slip lane", "fa": "رمپ راستگرد", - "nb": "filterfelt" + "nb": "filterfelt", + "sl": "lijak" }, "toll_gantry": { "de": "mautbrücke", @@ -26645,12 +29863,14 @@ }, "track": { "ar": "مسلك", - "be": "грунтавая дарога", + "be": "сцежка", "bg": "черен път", "ca": "sender", "cs": "stezka", + "cy": "trywydd", "da": "sti", - "de": "weg", + "de": "trampelpfad", + "el": "πεζοπορικά μονοπάτια", "en": "4wd trail", "en-ca": "dirt road", "en-gb": "dirt road", @@ -26659,6 +29879,7 @@ "fa": "تریل", "fi": "polku", "fr": "sentier", + "gl": "sendeiro", "he": "שביל", "hr": "zemljana cesta", "hu": "út", @@ -26666,14 +29887,13 @@ "ja": "トレイル", "ko": "트레일", "lt": "gruntinis kelias", - "ms": "jalan tanah", "nb": "traktorvei", "nl": "pad", "pl": "ścieżka", "pt": "percurso pedestre", "pt-br": "trilha", "ru": "тропа", - "sl": "steza", + "sl": "pešpot", "sv": "gångstig", "tr": "patika", "uk": "стежка", @@ -26683,6 +29903,7 @@ "traffic_mirror": { "de": "verkehrsspiegel", "en": "traffic mirror", + "fr": "miroir de trafic", "ja": "道路反射鏡", "pl": "lustro drogowe", "pt": "espelho rodoviário", @@ -26695,6 +29916,7 @@ "bg": "светофар", "ca": "semàfor", "cs": "světelné signalizační zařízení", + "cy": "goleuadau traffig", "da": "trafiksignal", "de": "ampel", "el": "φωτεινός σηματοδότης", @@ -26704,6 +29926,8 @@ "fa": "چراغ راهنمایی", "fi": "liikennevalo", "fr": "feu de circulation", + "ga": "soilse tráchta", + "gl": "semáforo", "he": "רמזור", "hr": "semafor", "hu": "közlekedési lámpa", @@ -26714,7 +29938,6 @@ "lt": "šviesoforas", "lv": "luksofors", "ml": "ട്രാഫിക് ലൈറ്റ്", - "ms": "lampu isyarat", "nb": "trafikklys", "nl": "verkeerslicht", "pl": "sygnalizacja świetlna", @@ -26723,6 +29946,7 @@ "ru": "cветофор", "sk": "svetelné signalizačné zariadenia", "sl": "semafor", + "sq": "semafori", "sv": "trafiksignal", "ta": "சைகை விளக்கு", "th": "ไฟจราจร", @@ -26736,14 +29960,18 @@ "trailhead": { "af": "spoorkop", "ca": "sortida de sender", + "de": "ausgangspunkt", "en": "trailhead", + "es": "punto de partida", "fr": "départ de sentier", - "sl": "začetek poti" + "sl": "začetek poti", + "sv": "utgångspunkt" }, "trunk": { "ar": "طريق رئيسية", "ca": "carretera troncal", "cs": "dálková silnice", + "cy": "cefnffordd", "da": "motortrafikvej", "de": "fernstraße", "de-ch": "fernstrasse", @@ -26774,7 +30002,8 @@ "en": "ramp", "fa": "رمپ راستگرد", "fr": "bretelle", - "nb": "filterfelt" + "nb": "filterfelt", + "sl": "priključek" }, "turning_loop": { "de": "wendestelle", @@ -26804,6 +30033,7 @@ "bg": "древен египет", "ca": "antic egipte", "cs": "starověký egypt", + "cy": "yr hen aifft", "da": "oldtidens kina", "de": "chinesisches altertum", "de-ch": "antikes griechenland", @@ -26811,11 +30041,15 @@ "en": "ancient china", "en-ca": "ancient egypt", "en-gb": "ancient egypt", - "es": "antiguo egipto", + "en-us": "alexander the great", + "es": "antigua china", "et": "vana-hiina", "fa": "مصر باستان", "fi": "muinainen egypti", "fr": "égypte antique", + "ga": "an tsean-éigipt", + "gd": "an èipheit àrsaidh", + "gl": "antigo exipto", "he": "סין העתיקה", "hi": "प्राचीन मिस्र", "hr": "drevni egipat", @@ -26829,7 +30063,6 @@ "lv": "senā ķīna", "ml": "ഈജിപ്ഷ്യൻ സംസ്കാരം", "mr": "प्राचीन इजिप्त संस्कृती", - "ms": "mesir purba", "nb": "oldtidens egypt", "nl": "oud china", "pl": "starożytny egipt", @@ -26838,8 +30071,10 @@ "ru": "древний китай", "sk": "staroveký egypt", "sl": "antična kitajska", + "sq": "egjipti i lashtë", "sv": "antikens kina", "ta": "பண்டைய எகிப்து", + "te": "పురాతన ఈజిప్టు", "th": "อียิปต์โบราณ", "tr": "antik mısır", "uk": "стародавній єгипет", @@ -26857,15 +30092,18 @@ "bg": "археологически обект", "ca": "jaciment arqueològic", "cs": "archeologická lokalita", + "cy": "safle archaeolegol", "da": "arkæologisk område", "de": "archäologische stätte", "el": "αρχαιολογική θέση", "en": "archaeological site", "es": "yacimiento arqueológico", "et": "muistis", - "fa": "منطقه باستانی", + "fa": "محوطه باستانی", "fi": "arkeologinen kohde", "fr": "site archéologique", + "ga": "suíomh seandálaíochta", + "gl": "xacemento arqueolóxico", "he": "אתר ארכאולוגי", "hi": "पुरातत्व स्थल", "hr": "arheološko nalazište", @@ -26878,7 +30116,6 @@ "lv": "arheoloģiskais piemineklis", "ml": "പുരാവസ്തു കേന്ദ്രം", "mr": "पुरातत्व स्थळ", - "ms": "tapak arkeologi", "nb": "arkeologisk funnsted", "nl": "archeologische vindplaats", "pl": "stanowisko archeologiczne", @@ -26887,8 +30124,10 @@ "ru": "археологическое место", "sk": "archeologická lokalita", "sl": "arheološko najdišče", + "sq": "lokalitet arkeologjik", "sv": "arkeologisk lokal", "ta": "தொல்லியல் களம்", + "te": "పురాతత్వ ప్రదేశం", "th": "โบราณสถาน", "tr": "arkeolojik sit", "uk": "археологічна пам'ятка", @@ -26927,6 +30166,8 @@ "fa": "جبهه", "fi": "sotatoimialue", "fr": "théâtre militaire", + "ga": "láthair chogaidh", + "gl": "teatro de operacións", "he": "זירה", "hr": "ratište", "hu": "hadszíntér", @@ -26937,7 +30178,6 @@ "lt": "karo teatras", "lv": "karadarbības teātris", "ml": "രംഗഭൂമി (യുദ്ധം)", - "ms": "kancah", "nb": "region", "nl": "strijdtoneel", "pl": "teatr działań wojennych", @@ -26946,6 +30186,7 @@ "ru": "театр военных действий", "sk": "dejisko bojových operácií", "sl": "vojskovališče", + "sq": "teatri i luftës", "sv": "krigsskådeplats", "tr": "askerî saha", "uk": "театр військових дій", @@ -26959,6 +30200,7 @@ "bg": "топ", "ca": "canó", "cs": "kanón", + "cy": "canon (arf)", "da": "kanon", "de": "kanone", "el": "κανόνι", @@ -26968,6 +30210,7 @@ "fa": "توپ", "fi": "kanuuna", "fr": "canon", + "gl": "canón", "he": "תותח", "hi": "तोप", "hr": "top", @@ -26981,7 +30224,6 @@ "lv": "lielgabals", "ml": "പീരങ്കി", "mr": "तोफ", - "ms": "meriam", "nb": "kanon", "nl": "kanon", "pl": "armata", @@ -26990,8 +30232,10 @@ "ru": "пушка", "sk": "kanón", "sl": "top", + "sq": "topi", "sv": "kanon", "ta": "பீரங்கி", + "te": "ఫిరంగి", "th": "ปืนใหญ่ลำกล้อง", "tr": "savaş topu", "uk": "гармата", @@ -26999,6 +30243,48 @@ "vi": "súng thần công", "zh": "加农炮" }, + "caravanserai": { + "af": "karavanserai", + "ar": "خان", + "bg": "кервансарай", + "ca": "caravanserrall", + "cs": "karavanseráj", + "da": "karavanserai", + "de": "karawanserei", + "el": "καραβανσεράι", + "en": "caravanserai", + "es": "caravasar", + "fa": "کاروانسرا", + "fi": "karavaaniseralji", + "fr": "caravansérail", + "gl": "caravasar", + "he": "חאן", + "hi": "कारवां सराय", + "hr": "karavan-saraj", + "hu": "karavánszeráj", + "id": "karavanserai", + "it": "caravanserraglio", + "ja": "キャラバンサライ", + "ko": "캐러밴서라이", + "lt": "karavansarajus", + "lv": "karavānserāls", + "nb": "karavaneserai", + "nl": "karavanserai", + "pl": "karawanseraj", + "pt": "caravançarai", + "ru": "караван-сарай", + "sk": "karavanserail", + "sl": "karavanseraj", + "sq": "karvansarai", + "sv": "karavanseraj", + "ta": "கேரவன்செராய்", + "th": "สถานีคาราวาน", + "tr": "kervansaray", + "uk": "караван-сарай", + "ur": "کارواں سرائے", + "vi": "du lịch caravan", + "zh": "商隊旅館" + }, "castle": { "af": "kasteel", "ar": "قلعة", @@ -27006,6 +30292,7 @@ "bg": "замък", "ca": "castell", "cs": "hrad", + "cy": "castell", "da": "borg", "de": "burg", "el": "κάστρο", @@ -27015,6 +30302,8 @@ "fa": "دژ", "fi": "linna", "fr": "château fort", + "ga": "caisleán", + "gl": "castelo", "he": "טירה", "hi": "गढ़", "hr": "utvrda", @@ -27026,7 +30315,6 @@ "lt": "pilis", "lv": "viduslaiku pils", "mr": "गढी", - "ms": "istana kota", "nb": "borg", "nl": "burcht", "pl": "zamek", @@ -27035,6 +30323,7 @@ "ru": "замок", "sk": "hrad", "sl": "grad", + "sq": "kala", "sv": "borg", "ta": "கோட்டையகம்", "th": "ปราสาท", @@ -27049,18 +30338,22 @@ "en": "cattle crush", "es": "potro de herrar", "fr": "travail à ferrer", + "gl": "potro", "id": "kandang jepit", "it": "arle travaglio", "nl": "klauwbekapbox", "pl": "poskrom", "pt": "brete", + "sl": "boks za nego kopit", "uk": "станок (тваринництво)" }, "city_gate": { + "af": "stadspoort", "ar": "بوابة مدينة", "be": "гарадскія вароты", "ca": "porta de ciutat", "cs": "městská brána", + "cy": "porth dinas", "da": "byport", "de": "stadttor", "el": "πύλη της πόλης", @@ -27070,6 +30363,7 @@ "fa": "دروازه شهر", "fi": "kaupungin portti", "fr": "porte de ville", + "ga": "geata cathrach", "he": "שער העיר", "hu": "városkapu", "id": "gerbang kota (kuno)", @@ -27085,6 +30379,7 @@ "sk": "mestská brána", "sl": "mestna vrata", "sv": "stadsport", + "te": "నగర పొలిమేర", "tr": "şehir kapısı", "uk": "міська брама", "ur": "دروازہ شہر", @@ -27096,6 +30391,7 @@ "be": "гарадскія сцены", "ca": "muralla urbana", "cs": "městské hradby", + "cy": "muriau dinas", "da": "bymur", "de": "stadtmauer", "el": "τείχη της πόλης", @@ -27106,6 +30402,8 @@ "fa": "دیوارهای شهر", "fi": "kaupunginmuuri", "fr": "rempart de ville", + "ga": "ballaí baile", + "gl": "murallas da cidade", "he": "חומות עיר", "hu": "városfal", "it": "mura cittadine", @@ -27122,26 +30420,55 @@ "ur": "فصیل شہر", "zh": "城墙" }, + "district": { + "ar": "مقاطعة تاريخية", + "be": "гістарычны раён", + "ca": "districte històric", + "cy": "dosbarth hanesyddol", + "de": "historisches gebiet", + "el": "ιστορική συνοικία", + "en": "historic district", + "es": "centro histórico", + "fa": "بافت تاریخی", + "fr": "secteur historique", + "ga": "ceantar stairiúil", + "gl": "distrito histórico", + "he": "מחוז היסטורי", + "it": "distretto storico", + "ja": "歴史地区", + "kn": "ಐತಿಹಾಸಿಕ ಜಿಲ್ಲೆ", + "nl": "historisch district", + "pt": "distrito histórico", + "ro": "centru istoric", + "ru": "исторический район", + "sl": "zgodovinsko območje", + "sv": "historiskt distrikt", + "uk": "історична місцевість", + "ur": "تاریخی ضلع" + }, "epigraph": { "ar": "نقش", "be": "надпіс", "bg": "надпис", "ca": "inscripció", "cs": "nápis", + "cy": "arysgrif", "da": "indskrift", "de": "inschrift", "el": "επιγραφή", "en": "inscription", "es": "inscripción", "et": "raidkiri", + "fa": "سنگنوشته", "fi": "piirtokirjoitus", + "ga": "inscríbhinn", + "gl": "inscrición", "he": "כתובת", "hr": "natpis", "hu": "felirat", "id": "prasasti", "it": "iscrizione", "ja": "碑文", - "ms": "ukiran", "nb": "inskripsjon", "nl": "inscriptie", "pl": "inskrypcja", @@ -27158,10 +30485,13 @@ "ar": "حصن", "be": "форт", "bg": "форт", + "cy": "caer", "el": "οχυρό", "en": "fort", "es": "fuerte", "fi": "linnake", + "ga": "dún", + "gl": "forte", "he": "מצודה", "hr": "utvrda", "hu": "erőd", @@ -27172,9 +30502,10 @@ "lt": "fortas", "lv": "forts", "ml": "കോട്ട", - "ms": "kubu", "pt": "forte", "ru": "форт", + "sl": "utrdba", + "sq": "fortesë", "ta": "கோட்டை", "th": "ป้อม", "tr": "hisar", @@ -27183,11 +30514,12 @@ "zh": "堡" }, "heritage": { - "ar": "التراث الثقافي", + "ar": "تراث ثقافي", "be": "культурная спадчына", "bg": "културно наследство", "ca": "patrimoni cultural", "cs": "kulturní dědictví", + "cy": "treftadaeth ddiwylliannol", "da": "kulturarv", "de": "kulturerbe", "el": "πολιτιστική κληρονομιά", @@ -27197,6 +30529,8 @@ "fa": "میراث فرهنگی", "fi": "kulttuuriperintö", "fr": "patrimoine culturel", + "ga": "oidhreacht chultúrtha", + "gl": "patrimonio cultural", "he": "מורשת תרבותית", "hr": "kulturna baština", "hu": "kulturális örökség", @@ -27206,7 +30540,6 @@ "ko": "문화유산", "lt": "kultūros paveldas", "lv": "kultūras mantojums", - "ms": "warisan budaya", "nb": "kulturarv", "nl": "cultureel erfgoed", "pl": "dziedzictwo kulturowe", @@ -27216,6 +30549,7 @@ "ru": "культурное наследие", "sk": "kultúrne dedičstvo", "sl": "kulturna dediščina", + "sq": "trashëgimi kulturore", "sv": "kulturarv", "ta": "பண்பாட்டு மரபுவளம்", "th": "มรดกทางวัฒนธรรม", @@ -27226,11 +30560,24 @@ "zh": "文化遺產", "zh-cn": "文化遗产" }, + "locomotive": { + "de": "museumslokomotive", + "en": "preserved locomotive", + "fi": "museoveturi", + "fr": "locomotive préservée", + "ja": "保存された機関車", + "ko": "보존된 기관차", + "pl": "zachowana lokomotywa spalinowa", + "ru": "музейный локомотив", + "sl": "ohranjena lokomotiva", + "sv": "museilok" + }, "manor": { "ar": "قصر مالك العزبة", "be": "сядзібны дом", "ca": "casa pairal", "cs": "panské sídlo", + "cy": "maenordy", "da": "herregård", "de": "herrenhaus", "el": "αγροτική έπαυλη", @@ -27239,6 +30586,8 @@ "et": "härrastemaja", "fi": "kartanon päärakennus", "fr": "manoir", + "ga": "mainéar", + "gl": "casa señorial", "he": "אחוזה", "hr": "kurija", "hu": "udvarház", @@ -27248,7 +30597,6 @@ "ko": "매너하우스", "lt": "dvaras", "lv": "muižas dzīvojamā ēka", - "ms": "rumah manor", "nb": "herregård", "nl": "manoir", "pl": "dwór", @@ -27267,6 +30615,7 @@ "be": "мемарыял", "bg": "мемориал", "cs": "památník", + "cy": "cofeb", "da": "mindesmærke", "de": "gedenkstätte", "el": "μνημείο", @@ -27276,11 +30625,13 @@ "fa": "یادواره", "fi": "muistomerkki", "fr": "mémorial", + "ga": "cuimhneachán", + "gl": "monumento conmemorativo", "he": "אתר הנצחה", "hr": "spomenik", "hu": "emlékhely", "it": "monumento commemorativo", - "ja": "記念物", + "ja": "記念碑", "ko": "기념물", "lt": "memorialas", "lv": "memoriāls", @@ -27291,6 +30642,7 @@ "pt": "monumento comemorativo", "ru": "мемориал", "sl": "obeležje", + "sq": "përmendore", "sv": "minnesmärke", "th": "อนุสรณ์", "uk": "меморіал", @@ -27302,15 +30654,15 @@ "bg": "километричен камък", "ca": "fita", "cs": "milník", + "cy": "carreg filltir", "da": "milepæl", - "de": "königlich-sächsischer meilenstein", + "de": "meilenstein", "el": "μιλιόπετρα", - "en": "royal saxon milestone", - "en-gb": "milestone", + "en": "milestone", "es": "miliario", - "fa": "milestone", "fi": "kilometripylväs", "fr": "borne routière", + "gl": "marco quilométrico", "he": "אבן מיל", "hi": "संगमील", "hr": "miljokaz", @@ -27321,7 +30673,6 @@ "ko": "이정표", "ml": "മൈൽകുറ്റി", "mr": "मैलदगड", - "ms": "batu penanda", "nb": "milepæl", "nl": "mijlpaal", "pl": "słup milowy", @@ -27340,6 +30691,7 @@ "ar": "رحى", "ca": "mola de molí", "cs": "mlýnský kámen", + "cy": "melinfaen", "da": "møllesten", "de": "mühlstein", "el": "μυλόπετρα", @@ -27349,6 +30701,7 @@ "fa": "سنگ آسیاب", "fi": "myllynkivi", "fr": "meule", + "gl": "moa", "he": "רחיים", "hr": "žrvanj", "hu": "malomkő", @@ -27364,6 +30717,7 @@ "pt": "mó", "ru": "жёрнов", "sk": "mlynský kameň", + "sl": "mlinski kamen", "sv": "kvarnsten", "uk": "жорно", "vi": "cối giã", @@ -27374,6 +30728,7 @@ "be": "помнік", "bg": "паметник", "cs": "pomník", + "cy": "cofadeilad", "de": "denkmal", "el": "μνημείο", "en": "monument", @@ -27381,6 +30736,8 @@ "et": "mälestusmärk", "fa": "یادمانی", "fi": "monumentti", + "ga": "leacht cuimhneacháin", + "gl": "monumento", "he": "מונומנט", "hi": "स्मारक", "hr": "spomenik", @@ -27394,14 +30751,13 @@ "lv": "piemineklis", "ml": "സ്മാരകം", "mr": "स्मारक", - "ms": "tugu", "nl": "gedenkmonument", "pl": "pomnik", "pt": "monumento", "ru": "памятник", "sl": "spomenik", - "sv": "minnesmärke", "ta": "நினைவுச் சின்னம்", + "te": "స్మారకచిహ్నం", "th": "อนุสรณ์สถาน", "tr": "anıt", "uk": "пам'ятник", @@ -27409,12 +30765,42 @@ "vi": "tượng đài", "zh": "紀念建築物" }, + "optical_telegraph": { + "ar": "خط الإشارة", + "ca": "telegrafia òptica", + "da": "optisk telegraf", + "de": "optische telegrafie", + "en": "semaphore line", + "es": "telégrafo óptico", + "et": "semafor", + "fi": "optinen lennätin", + "fr": "sémaphore", + "gl": "telegrafía óptica", + "he": "סמפור", + "hi": "सिकंदरा लाइन", + "id": "telegrafi optis", + "it": "telegrafo di chappe", + "ja": "腕木通信", + "kn": "ಸೆಮಾಫೋರ್ ಲೈನ್", + "ko": "시각전신", + "lv": "optiskais telegrāfs", + "nb": "optisk telegraf", + "nl": "semafoor", + "pl": "telegraf optyczny", + "pt": "telegrafia visual", + "ru": "оптический телеграф", + "sv": "optisk telegraf", + "uk": "оптичний телеграф", + "vi": "semaphore", + "zh": "擺臂式信號" + }, "palace": { "ar": "قصر", "be": "палац", "bg": "дворец", "ca": "palau", "cs": "palác", + "cy": "palas", "da": "palads", "de": "palast", "el": "ανάκτορο", @@ -27424,6 +30810,8 @@ "fa": "کاخ", "fi": "palatsi", "fr": "palais", + "ga": "pálás", + "gl": "palacio", "he": "ארמון", "hi": "महल", "hr": "palača", @@ -27436,7 +30824,6 @@ "lt": "rūmai", "lv": "pils", "ml": "കൊട്ടാരം", - "ms": "istana", "nb": "palass", "nl": "paleis", "pl": "pałac", @@ -27445,8 +30832,10 @@ "ru": "дворец", "sk": "palác", "sl": "palača", + "sq": "pallat", "sv": "palats", "ta": "அரண்மனை", + "te": "ప్యాలెస్", "th": "วัง", "tr": "saray", "uk": "палац", @@ -27468,6 +30857,7 @@ "et": "häbipost", "fa": "تختهبند", "fr": "pilori", + "gl": "picota", "he": "עמוד הקלון", "hr": "stup srama", "hu": "pellengér", @@ -27485,6 +30875,21 @@ "uk": "ганебний стовп", "zh": "頸手枷" }, + "pound": { + "cy": "ffald", + "en": "animal pound", + "ga": "póna", + "ru": "пинфолд", + "ta": "பவுண்டு", + "zh": "畜栏" + }, + "railway_car": { + "de": "museal erhaltenes schienenfahrzeug", + "en": "preserved rolling stock", + "ja": "保存された鉄道車両", + "ko": "보존된 철도 차량", + "sl": "ohranjeno tirno vozilo" + }, "ruins": { "af": "ruïne", "ar": "أنقاض", @@ -27492,6 +30897,7 @@ "bg": "развалина", "ca": "ruïna", "cs": "zřícenina", + "cy": "adfeilion", "da": "ruin", "de": "ruine", "el": "ερείπια", @@ -27501,6 +30907,8 @@ "fa": "ویرانه", "fi": "raunio", "fr": "ruine", + "ga": "fothracha", + "gl": "ruína", "he": "חורבות", "hi": "खंडहर", "hr": "ruševine", @@ -27511,7 +30919,6 @@ "ko": "폐허", "lt": "griuvėsiai", "lv": "drupas", - "ms": "puing", "nb": "ruiner", "nl": "ruïne", "pl": "ruiny", @@ -27543,13 +30950,13 @@ "fa": "سنگ رونی", "fi": "riimukivi", "fr": "pierre runique norroise", + "gl": "pedra rúnica nórdica", "he": "אבן רונה", "id": "batu rune", "it": "pietra runica", "ja": "ルーン石碑", "ko": "룬돌", "lt": "runų akmuo", - "ms": "batu rune", "nb": "runestein", "nl": "noorse runensteen", "pl": "kamienie runiczne", @@ -27573,6 +30980,7 @@ "en": "museum ship", "es": "barco museo", "et": "muuseumlaev", + "fa": "کشتیموزه", "fi": "museolaiva", "fr": "navire musée", "he": "ספינת מוזיאון", @@ -27580,7 +30988,6 @@ "it": "nave museo", "ja": "博物館船", "ko": "박물관 배", - "ms": "kapal muzium", "nb": "museumsfartøy", "nl": "museumschip", "pl": "statek muzeum", @@ -27599,6 +31006,7 @@ "bg": "гробница", "ca": "tomba", "cs": "hrobka", + "cy": "beddrod", "da": "gravmæle", "de": "grab", "el": "τάφος", @@ -27607,6 +31015,8 @@ "fa": "آرامگاه", "fi": "hautakammio", "fr": "tombeau", + "ga": "tuama", + "gl": "tumba", "he": "קבר", "hr": "grobnica", "hu": "sírkamra", @@ -27615,7 +31025,6 @@ "ja": "墓", "ko": "무덤", "mr": "थडगे", - "ms": "makam", "nb": "gravmæle", "nl": "graftombe", "pl": "grobowiec", @@ -27627,7 +31036,7 @@ "sv": "gravvård", "ta": "கல்லறை", "th": "ที่เก็บศพ", - "tr": "türbe", + "tr": "mezar odası", "uk": "усипальниця", "ur": "مقبرہ", "vi": "ngôi mộ", @@ -27643,11 +31052,14 @@ "wayside_cross": { "ca": "creu de terme", "cs": "kříž u cesty", + "cy": "croes min ffordd", "da": "vejsidekors", "de": "flurkreuz", "en": "wayside cross", "es": "cruz de término", "fr": "croix de chemin", + "ga": "crois taobh bealaigh", + "gl": "cruz de termo", "hr": "križ krajputaš", "hu": "út menti kereszt", "it": "croce votiva", @@ -27659,6 +31071,7 @@ "ro": "troiță", "ru": "придорожный крест", "sl": "obpotni križ", + "tr": "yol kenarındaki çapraz", "zh": "十字路碑" }, "wayside_shrine": { @@ -27669,13 +31082,14 @@ "el": "εικονοστάσιο στη άκρη του δρόμου", "en": "wayside shrine", "es": "peto de ánimas", - "fr": "bildstock", + "fr": "potale", + "gl": "peto de ánimas", "id": "tempat suci pinggir jalan", "it": "capitello votivo", "ja": "道端の祠", "lt": "koplytėlė", "lv": "ceļmalas kapela", - "nl": "wegkant-schrijn", + "nl": "kapelletje", "pl": "kapliczka przydrożna", "pt": "nicho", "ru": "придорожная часовня", @@ -27685,10 +31099,12 @@ "zh": "路邊神龕" }, "wreck": { + "af": "skipbreuk", "ar": "حطام سفينة", "be": "абломкі судна", "ca": "derelicte", "cs": "lodní vrak", + "cy": "llongddrylliad", "da": "skibsvrag", "de": "schiffswrack", "el": "ναυάγιο", @@ -27697,12 +31113,14 @@ "et": "laevavrakk", "fi": "hylky", "fr": "épave", + "ga": "long bhriste", "he": "אונייה טרופה", "hr": "brodolom", "hu": "hajóroncs", + "id": "bangkai kapal", "it": "relitto navale", "ja": "難破船", - "ko": "선박 사고", + "ko": "난파선", "nb": "skipsvrak", "nl": "scheepswrak", "pl": "wrak", @@ -27721,7 +31139,8 @@ "aluminium_smelting": { "en": "aluminium smelter", "fr": "aluminerie", - "nl": "aluminiumsmelter" + "nl": "aluminiumsmelter", + "ru": "завод по производству алюминия" }, "bakery": { "be": "хлебазавод", @@ -27729,8 +31148,10 @@ "en": "wholesale bakery", "et": "leivatehas", "fr": "boulangerie industrielle", + "he": "סיטונאות מאפים", "nb": "engrosbakeri", "ru": "хлебозавод", + "sl": "industrijska pekarna", "uk": "хлібзавод" }, "brickyard": { @@ -27738,6 +31159,7 @@ "be": "фарначэ", "ca": "bòbila", "cs": "cihelna", + "cy": "gwaith brics", "da": "teglværk", "de": "ziegelei", "en": "brickworks", @@ -27760,6 +31182,22 @@ "sv": "tegelbruk", "zh": "製磚廠" }, + "concrete_plant": { + "ar": "محطة خرسانة", + "cs": "betonárna", + "de": "betonmischanlage", + "en": "concrete plant", + "fa": "ایستگاه تولید بتن", + "fr": "machine des fabrication des blocs et paves", + "he": "מפעל בטון", + "ja": "コンクリートプラント", + "nl": "betonfabriek", + "pl": "betonownia", + "pt-br": "central_dosadora", + "ru": "бетонный завод", + "sl": "betonarna", + "tr": "beton santrali" + }, "depot": { "ar": "مرأب الحافلات", "be": "аўтобусны парк", @@ -27769,10 +31207,11 @@ "da": "busgarage", "de": "busdepot", "el": "αμαξοστάσιο λεωφορείων", - "en": "bus depot", + "en": "bus garage", "es": "cocheras", "et": "depoo", "fr": "dépôt d'autobus", + "ga": "garáiste bus", "he": "חניון אוטובוסים", "hu": "autóbuszgarázs", "id": "depo bus", @@ -27791,13 +31230,16 @@ }, "distributor": { "ca": "distribuïdor", + "cy": "dosbarthwr", "en": "distributor", "fr": "distributeur", + "ga": "dáileoir", "he": "מפיץ", - "ms": "pengedar", + "hu": "forgalmazó", + "pl": "dystrybutor", "sl": "distributer", "uk": "бізнес-модель дистрибуції", - "zh-tw": "經銷商" + "zh": "經銷商" }, "factory": { "af": "fabriek", @@ -27806,6 +31248,7 @@ "bg": "завод", "ca": "fàbrica", "cs": "továrna", + "cy": "ffatri", "da": "fabrik", "de": "fabrik", "el": "εργοστάσιο", @@ -27815,6 +31258,9 @@ "fa": "کارخانه", "fi": "tehdas", "fr": "usine", + "ga": "monarcha", + "gd": "factoraidh", + "gl": "fábrica", "he": "בית חרושת", "hi": "कारखाना", "hr": "tvornica", @@ -27827,7 +31273,6 @@ "lt": "gamykla", "lv": "rūpnīca", "mr": "कारखाना", - "ms": "kilang", "nb": "fabrikk", "nl": "fabriek", "pl": "fabryka", @@ -27836,8 +31281,10 @@ "ru": "фабрика", "sk": "továreň", "sl": "tovarna", + "sq": "fabrikë", "sv": "fabrik", "ta": "தொழிற்சாலை", + "te": "కర్మాగారము", "th": "โรงงาน", "tr": "fabrika", "uk": "фабрика", @@ -27851,6 +31298,7 @@ "bg": "хранително-вкусова промишленост", "ca": "indústria alimentària", "cs": "potravinářství", + "cy": "y diwydiant bwyd", "da": "fødevareindustri", "de": "lebensmittelindustrie", "el": "βιομηχανία τροφίμων", @@ -27860,6 +31308,8 @@ "fa": "علوم و صنایع غذایی", "fi": "elintarviketeollisuus", "fr": "industrie alimentaire", + "ga": "tionscal an bhia", + "gl": "sector agroalimentario", "he": "תעשיית המזון", "hi": "खाद्य उद्योग", "hr": "prehrambena industrija", @@ -27871,7 +31321,6 @@ "ko": "식품산업", "lt": "maisto pramonė", "lv": "pārtikas rūpniecība", - "ms": "industri makanan", "nb": "næringsmiddelindustri", "nl": "levensmiddelenindustrie", "pl": "przemysł spożywczy", @@ -27880,6 +31329,7 @@ "ru": "пищевая промышленность", "sk": "potravinársky priemysel", "sl": "živilska industrija", + "sq": "industria ushqimore", "sv": "svensk livsmedelsindustri", "ta": "உணவுத் தொழிற்சாலை", "tr": "gıda endüstrisi", @@ -27906,6 +31356,7 @@ "be": "млын", "ca": "molí fariner", "cs": "obilný mlýn", + "cy": "melin flawd", "da": "møllebrug", "de": "getreidemühle", "el": "αλευρόμυλος", @@ -27919,7 +31370,7 @@ "he": "טחנת קמח", "hi": "आटा चक्की", "hu": "gabonaőrlő malom", - "it": "mulino", + "it": "mulino per farina", "ja": "製粉所", "ko": "제분소", "nb": "møllebruk", @@ -27950,11 +31401,13 @@ "pt": "fábrica de gelo" }, "machine_shop": { + "ar": "ورشة الآلات", "ca": "fabricant de màquines eina", "da": "maskinfabrik", "de": "fertigungshalle", "el": "μηχανουργείο", "en": "machine shop", + "fa": "کارگاه ماشینکاری", "fi": "konepaja", "fr": "atelier d'usinage", "nb": "mekanisk verksted", @@ -27969,12 +31422,15 @@ "bg": "моята", "ca": "mina", "cs": "důl", + "cy": "mwynglawdd", "de": "bergwerk", "el": "ορυχείο", "en": "mine", "es": "mina", "et": "kaevandus", "fi": "kaivos", + "ga": "mianach", + "gl": "mina", "he": "מכרה", "hr": "rudnik", "hu": "bánya", @@ -27983,7 +31439,6 @@ "ja": "鉱山", "ko": "광산", "ml": "ഖനി", - "ms": "lombong", "nb": "bergverk", "nl": "mijn", "pl": "kopalnia", @@ -27992,6 +31447,7 @@ "ru": "рудник", "sk": "baňa", "sl": "rudnik", + "sq": "miniera", "sv": "gruva", "uk": "копальня", "vi": "mỏ", @@ -28014,6 +31470,7 @@ "fa": "صنعت نفت", "fi": "öljyteollisuus", "fr": "industrie pétrolière", + "gl": "industria do petróleo", "he": "תעשיית הנפט", "hi": "पेट्रोलियम उद्योग", "hu": "olajipar", @@ -28023,7 +31480,6 @@ "ko": "석유 산업", "lt": "naftos pramonė", "lv": "naftas pārstrāde", - "ms": "industri petroleum", "nb": "petroleumsindustri", "nl": "olie-industrie", "pl": "przemysł petrochemiczny", @@ -28033,6 +31489,7 @@ "sl": "naftna industrija", "sv": "oljeindustri", "ta": "நில எண்ணெய் தொழிற்சாலை", + "te": "petrolium", "th": "อุตสาหกรรมปิโตรเลียม", "tr": "petrol endüstrisi", "uk": "нафтова промисловість", @@ -28049,6 +31506,7 @@ "es": "almazara", "fa": "عصارخانه", "fr": "moulin à huile", + "gl": "muíño de aceite", "he": "בית בד", "hr": "uljara", "it": "torchio oleario", @@ -28087,48 +31545,14 @@ "ro": "port fluvial", "ru": "речной порт", "sl": "notranje pristanišče", + "th": "ท่าเรือภายในประเทศ", "uk": "річковий порт", - "zh": "河港" + "zh": "内陆港" }, "rice_mill": { "en": "rice mill", - "fa": "شالیکوبی", - "fr": "moulin à riz" - }, - "salt_pond": { - "ar": "ملاحات", - "bg": "солници", - "ca": "salina", - "cs": "salina", - "de": "saline", - "el": "αλυκή", - "en": "salt evaporation pond", - "es": "salina", - "fa": "حوضچه تبخیر نمک", - "fi": "suolan haihdutuslampi", - "fr": "marais salant", - "he": "בריכת אידוי למלח", - "hr": "solana", - "hu": "szalina", - "id": "tambak garam", - "it": "salina", - "ja": "塩田", - "ko": "염전", - "ml": "ഉപ്പളം", - "mr": "मिठागरे", - "nl": "zoutpan", - "pl": "salina", - "pt": "salina", - "ru": "соляной пруд", - "sl": "solina", - "sv": "salin", - "ta": "உப்புத் தொழில்", - "th": "นาเกลือ", - "tr": "tuzla (tuz üretimi)", - "uk": "соляний ставок", - "vi": "ruộng muối", - "zh": "鹽田", - "zh-cn": "盐田" + "fr": "moulin à riz", + "zh": "碾米" }, "sawmill": { "ar": "منشرة", @@ -28145,6 +31569,7 @@ "fa": "کارخانه چوب بری والوارسازی", "fi": "saha", "fr": "scierie", + "gl": "serradoiro", "he": "מנסרה", "hi": "आरा मिल", "hr": "pilana", @@ -28159,6 +31584,7 @@ "pl": "tartak", "pt": "serração", "pt-br": "serraria", + "ro": "fabrică de cherestea", "ru": "лесопилка", "sk": "píla", "sl": "žaga", @@ -28177,9 +31603,11 @@ "et": "autolammutuskoda", "fi": "romuttamo", "fr": "casse automobile", + "hu": "autóbontó telep", "ja": "解体屋", "nb": "opphuggeri", "nl": "autosloop", + "pt": "ferro velho", "ru": "автосвалка", "sv": "bildemontering", "th": "ป่าช้ารถ", @@ -28192,6 +31620,7 @@ "bg": "корабостроителница", "ca": "drassana", "cs": "loděnice", + "cy": "iard longau", "da": "værft", "de": "werft", "el": "ναυπηγείο", @@ -28201,6 +31630,7 @@ "fa": "کارخانه کشتیسازی", "fi": "telakka", "fr": "chantier naval", + "gl": "estaleiro", "he": "מספנה", "hi": "डॉकयार्ड", "hr": "brodogradilište", @@ -28209,7 +31639,6 @@ "it": "cantiere navale", "ja": "造船所", "ko": "조선소", - "ms": "limbungan kapal", "nb": "skipsverft", "nl": "scheepswerf", "pl": "stocznia", @@ -28219,11 +31648,13 @@ "ru": "верфь", "sk": "lodenica", "sl": "ladjedelnica", + "sq": "kantieri detar", "sv": "skeppsvarv", "th": "อู่ต่อเรือ", "tr": "tersane", "uk": "корабельня", - "zh": "造船厂" + "zh": "造船厂", + "zh-tw": "造船廠" }, "slaughterhouse": { "af": "slagpale", @@ -28231,6 +31662,7 @@ "bg": "кланица", "ca": "escorxador", "cs": "jatka", + "cy": "lladd-dy", "da": "slagteri", "de": "schlachthof", "el": "σφαγείο", @@ -28240,6 +31672,7 @@ "fa": "کشتار جانوران", "fi": "teurastamo", "fr": "abattoir", + "ga": "seamlas", "he": "בית מטבחיים", "hu": "vágóhíd", "id": "rumah potong hewan", @@ -28279,6 +31712,7 @@ "bg": "склад", "ca": "magatzem", "cs": "sklad", + "cy": "warws", "da": "magasin", "de": "lagerhaus", "el": "αποθήκη", @@ -28288,10 +31722,11 @@ "fa": "انبار", "fi": "varasto", "fr": "entrepôt", + "gl": "almacén", "he": "מחסן", "hi": "मालगोदाम", "hr": "skladište", - "hu": "raktározás", + "hu": "raktár", "id": "gudang", "it": "magazzino", "ja": "倉庫", @@ -28307,7 +31742,9 @@ "ro": "depozit", "ru": "склад", "sl": "skladišče", + "sq": "depoja", "sv": "magasinsbyggnad", + "te": "గిడ్డంగి", "th": "คลังสินค้า", "tr": "antrepo", "uk": "склад", @@ -28315,6 +31752,14 @@ "vi": "nhà kho", "zh": "倉庫", "zh-cn": "仓库" + }, + "winery": { + "ca": "cooperativa vinícola", + "de": "winzergenossenschaft", + "en": "winemaking cooperative", + "fr": "cave coopérative de vinification", + "it": "cantina sociale", + "pl": "spółdzielnia winiarska" } }, "information": { @@ -28326,6 +31771,8 @@ "es": "audioguía", "et": "audiogiid", "fr": "audioguide", + "gl": "audioguía", + "hi": "ऑडियो टूर", "hr": "audio obilazak", "it": "audioguida", "ja": "音声ガイド", @@ -28347,6 +31794,8 @@ "de": "infotafel", "en": "information board", "es": "tablón informativo", + "fr": "panneau d'information", + "hu": "tájékoztató tábla", "it": "pannello informativo", "ja": "案内板", "nl": "informatiebord", @@ -28358,10 +31807,12 @@ "guidepost": { "ca": "pal indicador", "cs": "rozcestník", + "cy": "arwyddbost", "de": "wegweiser", "en": "signpost", "es": "señalizar", "et": "teeviit", + "fi": "tienviitta", "fr": "panneau de signalisation directionnelle", "hu": "útjelző tábla", "ja": "道標", @@ -28381,11 +31832,42 @@ "de": "wanderkarte", "en": "tourist map", "es": "mapa para senderismo", + "fi": "retkeilykartta", "lv": "tūristu karte", + "nb": "turkart", "pl": "mapa turystyczna", "pt": "mapa turístico", "sk": "turistická mapa", - "sl": "pohodniška karta" + "sl": "turistični zemljevid", + "sv": "turistkarta" + }, + "office": { + "ar": "مركز زوار", + "ca": "oficina de turisme", + "cs": "turistické informační centrum", + "cy": "canolfan ymwelwyr", + "da": "turistbureau", + "de": "fremdenverkehrsamt", + "el": "κέντρο επισκεπτών", + "en": "tourism office", + "es": "oficina de turismo", + "et": "turismiinfokeskus", + "fi": "matkailuneuvonta", + "fr": "office de tourisme", + "gl": "oficina de turismo", + "he": "מרכז מבקרים", + "hr": "centar za posjetitelje", + "it": "ufficio turistico", + "ja": "観光案内所", + "ko": "관광 안내소", + "nb": "turistinformasjon", + "nl": "informatiecentrum voor toeristen", + "pt": "posto de turismo", + "ru": "информационно-туристический центр", + "sl": "turistični urad", + "sv": "turistbyrå", + "tr": "turizm danışma bürosu", + "zh": "游客中心" }, "tactile_map": { "de": "blindenkarte", @@ -28396,6 +31878,7 @@ "sv": "reliefkarta" }, "tactile_model": { + "cs": "hmatový model", "de": "tastmodell", "en": "tactile model", "he": "דגם מישושי", @@ -28405,6 +31888,7 @@ "ar": "مركز استعلام", "ca": "centre de visitants", "cs": "informační centrum", + "cy": "canolfan croeso", "da": "besøgscenter", "de": "besucherzentrum", "en": "visitor center", @@ -28418,11 +31902,12 @@ "it": "centro visitatori", "ja": "ビジターセンター", "ko": "관광청", - "nl": "toerismebureau", + "nl": "bezoekerscentrum", "pt": "centro de visitantes", "ru": "агентство по туризму", "sl": "središče za obiskovalce", "sv": "besökscentrum", + "tr": "ziyaretçi merkezi", "uk": "туристично-інформаційний центр", "zh": "遊客中心" } @@ -28434,16 +31919,19 @@ "es": "intermitencia", "hu": "időszakosság", "it": "intermittenza", + "ja": "間欠性", "nl": "intermittentie", "pl": "intermitencja", "ru": "перемежаемость", "sl": "intermitenca", + "uk": "переміжність", "zh": "陣發混沌", "zh-cn": "间歇性" } }, "internet_access": { "wired": { + "ca": "accés a internet per cable", "en": "cable internet access", "es": "acceso a internet por cable", "he": "אינטרנט בכבלים", @@ -28453,6 +31941,41 @@ "sk": "káblové pripojenie", "tr": "kablo internet", "zh": "有线互联网接入" + }, + "wlan": { + "ar": "واي فاي", + "be": "wi-fi", + "bg": "wi-fi", + "ca": "wi-fi", + "cs": "wi-fi", + "da": "wi-fi", + "de": "wlan", + "el": "wi-fi", + "en": "wi-fi access", + "es": "wifi", + "fa": "دسترسی به وایفای", + "fi": "wlan:in saatavuus", + "fr": "accès wi-fi", + "gl": "wi-fi", + "he": "wi-fi", + "hu": "wi-fi", + "id": "akses wi-fi", + "it": "wi-fi", + "ja": "wi-fi", + "ko": "무선 인터넷 제공 여부", + "lt": "wi-fi", + "lv": "wi-fi piekļuve", + "nb": "trådløsnett", + "nl": "wi-fi", + "pl": "wi-fi", + "pt": "internet sem fio", + "ru": "wi-fi", + "sl": "dostop wi-fi", + "sv": "wifi-tillgänglighet", + "tr": "kablosuz internet", + "uk": "wi-fi", + "zh": "wi-fi访问", + "zh-tw": "是否提供 wi-fi" } }, "irrigation": { @@ -28467,7 +31990,7 @@ "fr": "irrigation à pivot central", "hu": "középtengelyes öntözés", "it": "irrigazione a perno centrale", - "ja": "センターピボット", + "ja": "センターピボット灌漑", "nl": "cirkelirrigatie", "pl": "nawadnianie centralne", "pt": "pivô central de irrigação", @@ -28484,19 +32007,24 @@ "bg": "основно училище", "ca": "escola primària", "cs": "základní škola", + "cy": "ysgol gynradd", "da": "grundskole", "de": "grundschule", "el": "δημοτικό σχολείο", "en": "primary school", "en-ca": "elementary school", + "en-us": "elementary school", "es": "escuela primaria", "et": "algkool", "fa": "دبستان", "fi": "ala-aste", "fr": "école primaire", + "ga": "bunscoil", + "gd": "bunsgoil", + "gl": "escola primaria", "he": "בית ספר יסודי", "hr": "osnovna škola", - "hu": "alapfokú oktatás", + "hu": "általános iskola", "id": "sekolah dasar", "it": "scuola primaria", "ja": "小学校", @@ -28506,7 +32034,6 @@ "lv": "sākumskola", "ml": "പ്രാഥമിക വിദ്യാലയം", "mr": "प्राथमिक शाळा", - "ms": "sekolah rendah", "nb": "grunnskole", "nl": "basisschool", "pl": "szkoła podstawowa", @@ -28515,6 +32042,7 @@ "ru": "начальная школа", "sk": "základná škola", "sl": "osnovna šola", + "sq": "shkollë fillore", "sv": "grundskola", "ta": "தொடக்கப்பள்ளி", "th": "โรงเรียนประถม", @@ -28539,17 +32067,19 @@ "es": "categoría ii de la uicn: parque nacional", "et": "iucn-i kategooria ii: rahvuspark", "fr": "catégorie ii : parc national", + "ga": "catagóir ii iucn: páirc náisiúnta", + "gl": "categoría ii da uicn: parque nacional", "id": "kategori iucn ii: taman nasional", "it": "categoria iucn ii: parco nazionale", "ja": "iucnカテゴリーii:国立公園", "ko": "iucn 카테고리 ii: 국립공원", - "ms": "kategori ii iucn: taman negara", "nb": "iucn-kategori ii: nasjonalpark", "nl": "iucn categorie ii: nationaal park", "pl": "kategoria iucn: park narodowy", "pt-br": "uicn categoria ii: parque nacional", "ru": "категория мсоп ii: национальный парк", "sl": "iucn-kategorija ii: narodni park", + "sq": "iucn kategoria ii: park kombëtar", "sv": "iucn-kategori ii: nationalpark", "uk": "категорія мсоп — ii (національний парк)", "zh": "iucn分类ii:国家公园", @@ -28563,6 +32093,7 @@ "en": "iucn category iii: natural monument or feature", "es": "categoría iii de la uicn: monumento o característica natural", "fr": "catégorie iii : monument ou élément naturel", + "gl": "iucn categoría iii: monumento natural", "id": "kategori iucn iii: monumen alami", "it": "categoria iucn iii: monumento naturale", "ja": "iucnカテゴリーiii:天然記念物", @@ -28579,6 +32110,7 @@ "junction": { "ddi": { "en": "diverging diamond interchange", + "fr": "carrefour à l'indonésienne", "he": "מחלף יהלום מתחלף", "nl": "divergerende diamantaansluiting", "uk": "дивергентна алмазна розв'язка", @@ -28597,6 +32129,7 @@ "bg": "кръгово движение", "ca": "rotonda", "cs": "kruhový objezd", + "cy": "cylchfan", "da": "rundkørsel", "de": "kreisverkehr", "en": "roundabout", @@ -28604,6 +32137,8 @@ "fa": "فلکه", "fi": "kiertoliittymä", "fr": "carrefour giratoire", + "ga": "timpeallán", + "gl": "rotonda", "he": "מעגל תנועה", "hi": "गोल चक्कर", "hr": "cestovni rotor", @@ -28613,7 +32148,6 @@ "ja": "ラウンドアバウト", "ko": "회전교차로", "lt": "žiedinė sankryža", - "ms": "bulatan", "nb": "rundkjøring", "nl": "rotonde", "pl": "rondo", @@ -28623,6 +32157,7 @@ "ru": "круговой перекрёсток", "sk": "kruhový objazd", "sl": "krožišče", + "sq": "rrethrrotullimi", "sv": "cirkulationsplats", "ta": "சுற்றுச்சந்தி", "tr": "dönel kavşak", @@ -28643,17 +32178,19 @@ "uncontrolled": { "en": "uncontrolled intersection", "ja": "無信号交差点", - "pl": "skrzyżowanie równorzędne" + "pl": "skrzyżowanie równorzędne", + "sl": "nenadzorovano križišče" }, "yes": { "ca": "intersecció de carretera", + "cy": "cyffordd", "da": "vejkryds", "de": "kreuzung", "el": "διασταύρωση", "en": "road junction", "es": "cruce", "fr": "carrefour", - "hu": "kereszteződés", + "hu": "közúti csomópont", "it": "intersezione stradale", "ja": "ジャンクション", "ko": "고속도로 분기점", @@ -28677,6 +32214,7 @@ "en": "kerb ramp", "en-us": "curb cut", "es": "rebaje del bordillo", + "fa": "جدول شیبدار", "fr": "bateau", "he": "הנמכת מדרכה", "nb": "nedsenket fortauskant", @@ -28693,6 +32231,7 @@ "en": "kerb ramp", "en-us": "curb cut", "es": "rebaje del bordillo", + "fa": "جدول شیبدار", "fr": "bateau", "he": "הנמכת מדרכה", "nb": "nedsenket fortauskant", @@ -28709,13 +32248,17 @@ "ar": "قمين الجير", "ca": "forn de calç", "cs": "vápenka", + "cy": "odyn galch", "da": "kalkovn", "de": "kalkofen", "en": "lime kiln", "es": "horno de cal", + "et": "lubjaahi", "fa": "کوره پخت آهک", "fi": "kalkkiuuni", "fr": "four à chaux", + "ga": "áith aoil", + "gl": "forno de cal", "he": "כבשן סיד", "hu": "mészégető kemence", "it": "calcara", @@ -28732,7 +32275,8 @@ "landcover": { "gravel": { "de": "lockergestein", - "en": "loose stone" + "en": "loose stone", + "ja": "ルース・ストーン" } }, "landform": { @@ -28743,6 +32287,7 @@ "bg": "дюна", "ca": "duna", "cs": "duna", + "cy": "twyn tywod", "da": "klit", "de": "düne", "el": "αμμόλοφος", @@ -28753,6 +32298,8 @@ "fa": "تلماسه", "fi": "dyyni", "fr": "dune", + "ga": "dumhach", + "gl": "duna", "he": "חולית", "hi": "बालुका स्तूप", "hr": "pješčana dina", @@ -28765,7 +32312,6 @@ "lt": "kopa", "lv": "kāpa", "ml": "മണൽക്കുന്ന്", - "ms": "gumuk", "nb": "sanddyne", "nl": "duinensysteem", "pl": "wydma", @@ -28774,6 +32320,7 @@ "ru": "дюна", "sk": "piesočná duna", "sl": "sipina", + "sq": "duna", "sv": "sanddyn", "th": "เนินทราย", "tr": "kumul", @@ -28785,12 +32332,14 @@ "ar": "إسكير", "be": "озы", "bg": "ескер", + "cy": "esgair", "da": "ås", "de": "os", "en": "esker", "et": "oos", "fa": "پشته یخرفتی", "fi": "harju", + "ga": "eiscir", "he": "אסקר", "hi": "एस्कर", "hu": "óz", @@ -28805,6 +32354,7 @@ "zh": "蛇形丘" }, "raised_beach": { + "cy": "cyfordraeth", "en": "raised beach", "es": "terraza costera", "fa": "ساحل برجسته", @@ -28827,8 +32377,11 @@ "es": "huerto familiar", "fi": "siirtolapuutarha", "fr": "jardins familiaux", + "ga": "cuibhreann", + "he": "גינת חלקות קהילתית", "id": "schrebergarten", "ja": "クラインガルテン", + "ko": "시민농장", "nb": "kolonihage", "nl": "volkstuinenpark", "pl": "rodzinny ogród działkowy", @@ -28842,12 +32395,14 @@ "ar": "منحل", "be": "пчальнік", "cs": "včelín", + "da": "bigård", "de": "bienenhaus", "en": "apiary", "es": "apiario", "et": "mesila", "fi": "mehiläistarha", "fr": "rucher", + "gl": "apiario", "he": "מכוורת", "hr": "pčelinjak", "it": "apiario", @@ -28865,27 +32420,78 @@ "uk": "пасіка", "zh": "養蜂場" }, + "aquaculture": { + "af": "akwakultuur", + "ar": "زراعة مائية", + "be": "аквакультура", + "bg": "аквакултура", + "ca": "aqüicultura", + "cs": "akvakultura", + "da": "akvakultur", + "de": "aquakultur", + "el": "υδατοκαλλιέργεια", + "en": "aquaculture", + "es": "acuicultura", + "et": "akvakultuur", + "fa": "آبزیپروری", + "fi": "vesiviljely", + "ga": "dobharshaothrú", + "gl": "acuicultura", + "he": "חקלאות ימית", + "hr": "akvakultura", + "hu": "akvakultúra", + "id": "budidaya perairan", + "it": "acquacoltura", + "ja": "養殖業", + "kn": "ಜಲಚರ ಸಾಕಣೆ", + "ko": "양식업", + "lt": "akvakultūra", + "nb": "akvakultur", + "nl": "aquacultuur", + "pl": "akwakultura", + "pt": "aquacultura", + "ro": "acvacultură", + "ru": "аквакультура", + "sl": "akvakultura", + "sq": "akuakultura", + "sv": "akvakultur", + "ta": "நீர் வேளாண்மை", + "te": "ఆక్వాకల్చర్", + "th": "การเพาะเลี้ยงพืชและสัตว์ในน้ำ", + "tr": "kültür balıkçılığı", + "uk": "аквакультура", + "vi": "nuôi trồng thủy sản", + "zh": "水產養殖", + "zh-cn": "水产养殖" + }, "basin": { "af": "bekken", - "ar": "حوض", + "ar": "حوض التخزين", "ca": "conca", - "cs": "pánev", - "de": "becken", - "en": "basin", + "cs": "retenční nádrž", + "da": "regnvandsbassin", + "de": "regenrückhaltebecken", + "en": "retention basin", "es": "cuenca", - "fr": "bassin", + "fr": "bassin de rétention", + "ga": "imchuach", + "gl": "conca", "hu": "medence", + "id": "embung", "it": "bacino", - "ja": "盆地", + "ja": "洪水貯水池", "ko": "분지", + "lt": "neišleidžiamasis paviršinių nuotekų tvenkinys", "lv": "baseins", "nb": "bekken (geomorfologi)", - "nl": "bekken", - "ru": "впадина", - "sl": "kotanja", - "sv": "bäcken (geografi)", + "nl": "retentiebekken", + "ro": "bazin de acumulare", + "ru": "отстойник", + "sk": "panva", + "sl": "zadrževalni bazen", + "sv": "utjämningsmagasin", "uk": "басейн (геоморфологія)", - "zh": "盆地" + "zh": "調整池" }, "brownfield": { "ar": "أرض ملوثة", @@ -28895,9 +32501,9 @@ "fa": "زمین قهوهای", "fr": "friche industrielle", "hu": "rozsdaövezet", + "it": "area dismessa", "ja": "ブラウンフィールド", "ko": "브라운필드", - "ms": "tanah terbengkalai", "nl": "brownfield", "pl": "teren poprzemysłowy", "pt": "brownfields", @@ -28914,6 +32520,7 @@ "bg": "гробище", "ca": "cementiri", "cs": "hřbitov", + "cy": "mynwent", "da": "gravplads", "de": "friedhof", "el": "κοιμητήριο", @@ -28923,6 +32530,9 @@ "fa": "گورستان", "fi": "hautausmaa", "fr": "cimetière", + "ga": "reilig", + "gd": "cladh", + "gl": "cemiterio", "he": "בית קברות", "hi": "क़ब्रिस्तान", "hr": "groblje", @@ -28934,7 +32544,6 @@ "lt": "kapinės", "lv": "kapsēta", "ml": "ശവക്കോട്ട", - "ms": "perkuburan", "nb": "gravlund", "nl": "begraafplaats", "pl": "cmentarz", @@ -28943,6 +32552,7 @@ "ru": "кладбище", "sk": "cintorín", "sl": "pokopališče", + "sq": "varreza", "sv": "begravningsplats", "ta": "இடுகாடு", "th": "ป่าช้า", @@ -28954,23 +32564,25 @@ "zh-cn": "公墓" }, "commercial": { - "ar": "مجمع الأعمال", + "ar": "حي تسوق", "be": "бізнес-парк", "ca": "districte comercial", "da": "erhvervsområde", - "de": "gewerbegebiet", + "de": "geschäftsviertel", "el": "εμπορική περιοχή", "en": "office plaza", "es": "distrito comercial", "fa": "پارک کسب و کار", "fi": "yrityspuisto", "fr": "quartier commerçant", + "ga": "páirc ghnó", + "gl": "parque empresarial", "he": "פארק משרדים", "hu": "üzleti negyed", + "id": "kawasan bisnis", "ja": "オフィス・プラザ", "ko": "상업 지구", "lv": "biznesa parks", - "ms": "daerah perdagangan", "nb": "handelsdistrikt", "nl": "winkelgebied", "pt": "distrito comercial", @@ -28982,7 +32594,7 @@ "uk": "бізнес-парк", "ur": "تجارتی ضلع", "zh": "商圈", - "zh-cn": "商务园区", + "zh-cn": "商业园区", "zh-tw": "辦公樓廣場" }, "construction": { @@ -28993,19 +32605,41 @@ "de": "baustelle", "en": "construction site", "es": "lugar de construcción", + "fa": "کارگاه عمرانی", "fi": "rakennustyömaa", "fr": "chantier de construction", "hu": "építési terület", "it": "cantiere", "ja": "建設現場", - "ms": "tapak pembinaan", "nb": "byggeplass", - "nl": "constructieplaats", + "nl": "bouwplaats", "pl": "teren budowy", "ru": "строительная площадка", "sl": "gradbišče", + "sq": "kantieri", "sv": "byggarbetsplats", - "uk": "будова" + "uk": "будова", + "zh": "建筑工地" + }, + "fairground": { + "ar": "أرض معارض", + "ca": "recinte firal", + "cs": "výstaviště", + "de": "messegelände", + "el": "εκθεσιακός χώρος", + "en": "fair ground", + "es": "recinto ferial", + "fi": "markkinapaikka", + "fr": "champ de foire", + "ga": "faiche aonaigh", + "gl": "recinto feiral", + "he": "מתחם ירידים", + "hu": "kiállítótér", + "it": "polo fieristico", + "nl": "beursterrein", + "pt": "parque de exposições", + "ru": "место ярмарки", + "sl": "sejmišče" }, "farmland": { "ar": "حقل زراعي", @@ -29013,6 +32647,7 @@ "bg": "нива", "ca": "camp", "cs": "pole", + "cy": "cae", "da": "ager", "de": "acker", "el": "αγρός", @@ -29022,6 +32657,9 @@ "fa": "زمین کشاورزی", "fi": "pelto", "fr": "champ", + "ga": "páirc", + "gd": "achadh", + "gl": "leira", "he": "שדה", "hi": "क्षेत्र", "hr": "oranica", @@ -29043,23 +32681,77 @@ "sl": "polje", "sv": "åker", "ta": "வயல்", + "te": "క్షేత్రం (వ్యవసాయం)", "tr": "tarla", "uk": "поле", "vi": "cánh đồng", "zh": "旱田" }, "farmyard": { - "de": "bauernhof", - "en": "farmyard" + "ar": "ركحة", + "de": "hofstelle", + "en": "barnyard", + "et": "karjaaed", + "fa": "بهاربند", + "fr": "basse-cour d'élevage", + "it": "aia", + "lt": "diendaržis", + "lv": "laidars", + "nl": "boerenerf met schuur", + "ru": "скотный двор", + "uk": "скотний двір" }, "forest": { - "cs": "hospodářský les", - "de": "wirtschaftswald", - "en": "commercial forest", - "fi": "talousmetsä", - "it": "bosco ceduo", - "pl": "las gospodarczy", - "sv": "ekonomiskog" + "af": "woud", + "ar": "غابة", + "be": "лес", + "bg": "гора", + "ca": "bosc", + "cs": "les", + "cy": "coedwig", + "da": "skov", + "de": "wald", + "el": "δάσος", + "en": "forest", + "es": "bosque", + "et": "mets", + "fa": "جنگل", + "fi": "metsä", + "fr": "forêt", + "ga": "foraois", + "gd": "coille", + "gl": "bosque", + "he": "יער", + "hi": "वन", + "hr": "šuma", + "hu": "erdő", + "id": "hutan", + "it": "foresta", + "ja": "森林", + "kn": "ಕಾಡು", + "ko": "숲", + "lt": "miškas", + "lv": "mežs", + "ml": "വനം", + "mr": "वन", + "nb": "skog", + "nl": "bos", + "pl": "las", + "pt": "floresta", + "ro": "pădure", + "ru": "лес", + "sk": "les", + "sl": "gozd", + "sq": "pyll", + "sv": "skog", + "ta": "காடு", + "te": "అడవి", + "th": "ป่าไม้", + "tr": "orman", + "uk": "ліс", + "ur": "جنگل", + "vi": "rừng", + "zh": "森林" }, "grass": { "af": "grasperk", @@ -29068,15 +32760,19 @@ "bg": "тревна площ", "ca": "gespa", "cs": "trávník", + "cy": "lawnt", "da": "græsplæne", "de": "rasen", - "el": "γρασίδι", + "el": "χλοοτάπητας", "en": "lawn", "es": "césped", "et": "muru", "fa": "چمن", "fi": "nurmi", "fr": "gazon", + "ga": "faiche", + "gd": "feur", + "gl": "céspede", "he": "מדשאה", "hi": "घास", "hr": "trava", @@ -29090,7 +32786,6 @@ "lv": "zāliens", "ml": "പുല്ല്", "mr": "गवत", - "ms": "rumput", "nb": "plen", "nl": "gazon", "pl": "trawnik", @@ -29102,6 +32797,7 @@ "sl": "trava", "sv": "gräsmatta", "ta": "புல்", + "te": "గడ్డి", "tr": "çimen", "uk": "газон", "ur": "گھاس", @@ -29139,11 +32835,11 @@ }, "industrial": { "af": "industriële streek", - "ar": "قائمة المدن الصناعية", + "ar": "مدينة صناعية", "be": "прамысловая зона", "bg": "промишлена зона", "ca": "polígon industrial", - "cs": "průmyslová zóna", + "cs": "průmyslový rajón", "da": "industriområde", "de": "industriedistrikt", "el": "βιομηχανικό πάρκο", @@ -29155,6 +32851,7 @@ "fa": "منطقه صنعتی", "fi": "teollisuusalue", "fr": "secteur industriel", + "gl": "polígono industrial", "he": "אזור תעשייה", "hi": "औद्योगिक क्षेत्र", "hr": "industrijska zona", @@ -29164,21 +32861,21 @@ "ja": "工業地帯", "ko": "산업단지", "lv": "rūpniecības reģions", - "ms": "taman industri", "nb": "industriområde", "nl": "industriestad", - "pl": "dystrykt przemysłowy", + "pl": "dzielnica przemysłowa", "pt": "distrito industrial", "pt-br": "parque industrial", "ro": "parc industrial", "ru": "промышленный район", "sl": "industrijska cona", + "sq": "parku industrial", "sv": "industriområde", "tr": "sanayi ilçesi", "uk": "промисловий район", "vi": "cụm công nghiệp", "zh": "工業區", - "zh-cn": "工业园区", + "zh-cn": "工业区", "zh-hk": "工業園區", "zh-tw": "工業園區" }, @@ -29188,6 +32885,7 @@ "bg": "сметище", "ca": "abocador", "cs": "skládka", + "cy": "tirlenwi", "da": "losseplads", "de": "deponie", "el": "χώρος υγειονομικής ταφής απορριμμάτων", @@ -29197,6 +32895,8 @@ "fa": "خاکچال", "fi": "kaatopaikka", "fr": "décharge", + "ga": "láithreán líonta talún", + "gl": "vertedoiro", "he": "מטמנה", "hr": "odlagalište otpada", "hu": "hulladéklerakó hely", @@ -29206,7 +32906,6 @@ "ko": "쓰레기 매립지", "lt": "sąvartynas", "lv": "izgāztuve", - "ms": "tapak pelupusan", "nb": "deponi", "nl": "vuilstortplaats", "pl": "składowisko odpadów", @@ -29236,9 +32935,11 @@ "en": "meadow", "es": "prado", "et": "aas", - "fa": "علفزار", + "fa": "چمنزار", "fi": "niitty", "fr": "prairie", + "ga": "móinéar", + "gl": "prado", "he": "אחו", "hi": "मर्ग", "hr": "livada", @@ -29250,7 +32951,6 @@ "ko": "초지", "lt": "pieva", "lv": "pļava", - "ms": "padang rumput", "nb": "eng", "nl": "made", "pl": "łąka", @@ -29259,6 +32959,7 @@ "ru": "луг", "sk": "lúka", "sl": "travnik", + "sq": "livadhet dhe kullosat", "sv": "äng", "tr": "çayır", "uk": "лука", @@ -29272,6 +32973,7 @@ "bg": "обсерватория", "ca": "observatori", "cs": "observatoř", + "cy": "arsyllfa", "da": "observatorium", "de": "observatorium", "el": "αστεροσκοπείο", @@ -29281,12 +32983,14 @@ "fa": "رصدخانه", "fi": "observatorio", "fr": "observatoire", + "ga": "faireachlann", + "gl": "observatorio", "he": "מצפה", "hi": "वेधशाला", "hr": "opservatorij", "hu": "obszervatórium", "id": "observatorium", - "it": "osservatorio astronomico", + "it": "osservatorio", "ja": "観測所", "kn": "ವೇಧಶಾಲೆ", "ko": "관측소", @@ -29294,7 +32998,6 @@ "lv": "observatorija", "ml": "വാനനിലയം", "mr": "वेधशाळा", - "ms": "balai cerap", "nb": "observatorium", "nl": "observatorium", "pl": "obserwatorium", @@ -29303,8 +33006,10 @@ "ru": "обсерватория", "sk": "observatórium", "sl": "observatorij", + "sq": "observatori", "sv": "observatorium", "ta": "நோக்காய்வகம்", + "te": "ఖగోళ వేధశాల", "th": "หอดูดาว", "tr": "gözlemevi", "uk": "обсерваторія", @@ -29320,6 +33025,7 @@ "bg": "овощна градина", "ca": "verger", "cs": "sad", + "cy": "perllan", "da": "frugthave", "de": "streuobstwiese", "el": "οπωρώνας", @@ -29328,6 +33034,8 @@ "fa": "باغ میوه", "fi": "hedelmänviljely", "fr": "verger", + "ga": "gort", + "gd": "ubhal-ghort", "he": "פרדס", "hi": "फलौद्यान", "hr": "voćnjak", @@ -29337,7 +33045,6 @@ "ko": "과수원", "lv": "augļu dārzs", "ml": "ഫല വൃക്ഷത്തോപ്പ്", - "ms": "dusun", "nl": "boomgaard", "pl": "sad", "pt": "pomar", @@ -29366,6 +33073,7 @@ "fa": "خزانه", "fi": "taimisto", "fr": "pépinière", + "gl": "viveiro", "he": "משתלה", "hi": "पौधशाला", "id": "persemaian", @@ -29373,7 +33081,6 @@ "ja": "育苗場", "ko": "묘포", "lv": "kokaudzētava", - "ms": "semaian tanaman", "nb": "planteskole", "nl": "kwekerij", "pl": "szkółka", @@ -29381,10 +33088,12 @@ "ro": "pepinieră", "ru": "питомник для растений", "sl": "drevesnica", + "sq": "fidanishtja", "sv": "plantskola", "ta": "நாற்றுமேடை", + "te": "మొక్కల నర్సరీ", "tr": "fidanlık", - "uk": "розсадник (садівництво)", + "uk": "розсадник", "zh": "苗圃" }, "quarry": { @@ -29393,8 +33102,9 @@ "bg": "кариера", "ca": "pedrera", "cs": "lom", + "cy": "chwarel", "da": "dagbrud", - "de": "tagebau", + "de": "grube", "el": "ορυχείο", "en": "quarry", "es": "cantera", @@ -29402,6 +33112,9 @@ "fa": "معدن سنگ", "fi": "louhos", "fr": "carrière", + "ga": "cairéal", + "gd": "gairbheal", + "gl": "canteira", "he": "מחצבה", "hi": "खादान", "hu": "kőbánya", @@ -29413,7 +33126,6 @@ "lt": "karjeras", "lv": "karjers", "ml": "ക്വാറി", - "ms": "kuari", "nb": "dagbrudd", "nl": "groeve", "pl": "kamieniołom", @@ -29422,7 +33134,9 @@ "ru": "карьер", "sk": "lom", "sl": "kamnolom", + "sq": "gurorja", "sv": "dagbrott", + "te": "క్వారీ", "tr": "taş ocağı", "uk": "кар'єр", "vi": "mỏ đá", @@ -29435,6 +33149,7 @@ "be": "аб’ект чыгуначнай інфраструктуры", "ca": "infraestructura ferroviària", "cs": "zařízení dráhy", + "da": "jernbaneanlæg", "de": "bahnanlage", "de-ch": "güterbahnhof", "en": "railway facility", @@ -29444,11 +33159,13 @@ "et": "raudteetaristu osa", "fi": "rautatierakennelma", "fr": "installation ferroviaire", - "he": "תחנת משא", + "he": "מתקן רכבת", "hu": "teherpályaudvar", "it": "stazione merci", "ja": "鉄道施設", "ko": "철도 시설", + "lv": "kravas stacija", + "nb": "godsstasjon", "nl": "spoorwegfaciliteit", "pl": "obiekt kolejowy", "pt": "instalação ferroviária", @@ -29462,6 +33179,7 @@ }, "recreation_ground": { "ar": "منطقة ترفيهية", + "bg": "местна зона за отдих", "ca": "zona d'esbarjo", "cs": "rekreační oblast", "da": "fritidsområde", @@ -29469,17 +33187,19 @@ "el": "χώρος αναψυχής", "en": "recreation area", "es": "zona de recreo", - "fi": "suojeltu ulkoilualue", + "fi": "ulkoilualue", "fr": "zone récréative", + "ga": "ceantar fóillíochta", + "gl": "área recreativa", "hu": "üdülőterület", "ja": "レクリエーション・エリア", "lv": "atpūtas vieta", - "ms": "kawasan rekreasi", "nb": "friområde", "nl": "recreatiegebied", "pl": "teren rekreacyjny", "ru": "зона отдыха", "sl": "rekreacijsko območje", + "sq": "zona argëtuese", "sv": "fritidsområde", "tr": "boş alan", "uk": "зона відпочинку" @@ -29499,13 +33219,17 @@ "id": "hutan larangan", "it": "bosco sacro", "ja": "神聖な森", + "ko": "성림", "lt": "šventoji giraitė", "lv": "svētmežs", "mr": "देवराई", "nb": "hellig lund", "nl": "boomheiligdom", - "pl": "święty gaj (antropologia)", + "pl": "święty gaj", "ru": "священная роща", + "sl": "sveti gaj", + "sq": "korijet e shenjta", + "tr": "kutsal koru", "vi": "rừng thiêng", "zh": "神聖樹林", "zh-cn": "神圣橡树" @@ -29516,6 +33240,7 @@ "bg": "язовир", "ca": "embassament", "cs": "přehradní nádrž", + "cy": "cronfa ddŵr", "de": "stausee", "el": "τεχνητή λίμνη", "en": "reservoir", @@ -29524,10 +33249,12 @@ "fa": "مخزن سد", "fi": "patojärvi", "fr": "lac de barrage", + "ga": "taiscumar", + "gl": "encoro", "he": "מאגר מים", "hi": "जलाशय", "hr": "umjetno jezero", - "hu": "víztározó", + "hu": "duzzasztott tó", "id": "waduk", "it": "bacino artificiale", "ja": "貯水池", @@ -29536,7 +33263,6 @@ "lt": "tvenkinys", "lv": "uzpludinājums", "ml": "ജലസംഭരണി", - "ms": "takungan", "nb": "vannmagasin", "nl": "stuwmeer", "pl": "zbiornik zaporowy", @@ -29546,6 +33272,8 @@ "sk": "priehradná nádrž", "sl": "pregradno jezero", "sv": "vattenmagasin", + "ta": "பல்நோக்கு நீர்தேக்கம்", + "te": "జలాశయము", "th": "อ่างเก็บน้ำ", "tr": "baraj gölü", "uk": "водосховище", @@ -29554,19 +33282,21 @@ "zh-cn": "水库" }, "residential": { - "ar": "مشروع كازابلانكا السكني", "be": "сялібныя землі", "bg": "жилищен комплекс", "ca": "polígon d'habitatges", "cs": "sídliště", + "cy": "ystad dai", "da": "boligkompleks", "de": "großwohnsiedlung", - "en": "casablanca compound", + "en": "housing estate", "es": "unidad habitacional", "et": "elamupiirkond", "fa": "منطقه مسکونی", "fi": "asuinalue", "fr": "grand ensemble", + "ga": "limistéar cónaithe", + "gl": "área residencial", "he": "איזור מגורים", "hi": "आवासीय क्षेत्र", "hr": "naseljeno područje", @@ -29575,7 +33305,6 @@ "it": "complesso residenziale", "ja": "住宅団地", "ko": "주택단지", - "ms": "kawasan perumahan", "nb": "boligkompleks", "nl": "wooncomplex", "pl": "wielki zespół mieszkaniowy", @@ -29596,18 +33325,20 @@ }, "retail": { "ar": "منطقة البيع بالتجزئة", + "cy": "ardal siopa", "de": "einkaufsviertel", "el": "εμπορικό διαμέρισμα", "en": "shopping district", "fa": "منطقه تجاری", "fr": "quartier commerçant", + "ga": "ceantar miondíola", "he": "איזור מסחרי", "hi": "वाणिज्य क्षेत्र", "ja": "商業地域", "ko": "상업지구", "nb": "handleområde", "pl": "obszar handlowy", - "sl": "maloprodajno območje", + "sl": "nakupovalna četrt", "th": "ย่านการค้า", "tr": "ticari alan", "uk": "комерційна зона", @@ -29641,7 +33372,8 @@ "ru": "соляной пруд", "sl": "solina", "sv": "salin", - "ta": "உப்புத் தொழில்", + "ta": "உப்பளம்", + "te": "ఉప్పు నీటి కయ్యలు", "th": "นาเกลือ", "tr": "tuzla (tuz üretimi)", "uk": "соляний ставок", @@ -29668,6 +33400,7 @@ "bg": "лозе", "ca": "vinyar", "cs": "vinice", + "cy": "gwinllan", "da": "vingård", "de": "weinberg", "el": "αμπέλι", @@ -29677,14 +33410,15 @@ "fa": "تاکستان", "fi": "viinitila", "fr": "vignoble", + "gl": "viña", "he": "כרם", "hi": "द्राक्षाक्षेत्र", "hr": "vinograd", "id": "kebun anggur", "it": "vigneto", "ja": "葡萄園", + "ko": "포도원", "lv": "vīna dārzs", - "ms": "kebun anggur", "nb": "vingård", "nl": "wijngaard", "pl": "winnica", @@ -29693,11 +33427,49 @@ "ru": "виноградник", "sk": "vinohrad", "sl": "vinograd", + "sq": "vreshti (plantacion)", "sv": "vingård", "tr": "bağ", "uk": "виноградник", "vi": "vườn nho", "zh": "葡萄园" + }, + "winter_sports": { + "ar": "منتجع تزلج", + "bg": "ски курорт", + "ca": "estació d'esquí", + "cs": "lyžařské středisko", + "cy": "cyrchfan sgïo", + "da": "vintersportssted", + "de": "wintersportgebiet", + "el": "χιονοδρομικό κέντρο", + "en": "ski resort", + "es": "estación de esquí", + "et": "suusakuurort", + "fa": "پیست اسکی", + "fi": "talviurheilukeskus", + "fr": "station de sports d'hiver", + "gl": "estación de esquí", + "he": "אתר סקי", + "hu": "síközpont", + "it": "stazione sciistica", + "ja": "スキー場", + "ko": "스키장", + "lv": "slēpošanas kūrorts", + "nb": "skisenter", + "nl": "wintersportgebied", + "pl": "ośrodek narciarski", + "pt": "estância de esqui", + "pt-br": "estação de esqui", + "ro": "stațiune de schi", + "ru": "горнолыжный курорт", + "sk": "lyžiarske stredisko", + "sl": "smučarsko območje", + "sv": "vintersportort", + "tr": "kayak merkezi", + "uk": "гірськолижний курорт", + "zh": "滑雪場", + "zh-cn": "滑雪场" } }, "lawyer": { @@ -29705,9 +33477,12 @@ "af": "advokaat", "ar": "محام بالقضاء العالي", "be": "барыстар", + "cy": "bargyfreithiwr", "el": "δικηγόρος (μπάριστερ)", "en": "barrister", "fa": "وکیل دادگستری", + "ga": "abhcóide", + "gd": "barastair", "he": "פרקליט", "hi": "बैरिस्टर", "hu": "ügyvéd", @@ -29715,27 +33490,30 @@ "ko": "법정 변호사", "lt": "baristeris", "mr": "बॅरिस्टर", - "ms": "barister", "nb": "skrankeadvokat", "ro": "avocat pledant", "ru": "барристер", "sl": "odvetnik", "ta": "பார் அட் லா", + "te": "బారిస్టర్", "th": "เนติบัณฑิต", "uk": "баристер", "ur": "بیرسٹر", + "vi": "luật sư tranh tụng", "zh": "大律師" }, "notary": { "ar": "كاتب عمومي", "bg": "нотариус", - "ca": "notari", + "ca": "escrivà", "cs": "písař", + "cy": "copïydd", "de": "öffentlicher schreiber", "en": "scrivener", "es": "escribano", "fi": "kirjuri", "fr": "écrivain public", + "gl": "escribán", "he": "כותב בקשות", "hu": "írnok", "it": "scrivano", @@ -29751,17 +33529,20 @@ "solicitor": { "ar": "كاتب عدل", "be": "салісітар", + "cy": "cyfreithiwr", "da": "juridisk rådgiver", "el": "δικηγόρος (σολίσιτορ)", "en": "solicitor", "fa": "سلیسیتر", + "fi": "oikeudellinen neuvonantaja", "fr": "solliciteur", + "ga": "dlíodóir", + "gd": "neach-lagha", "he": "פרקליט", "hu": "ügyvéd", "ja": "ソリシター", "ko": "사무 변호사", "lt": "solisitorius", - "ms": "peguam cara", "nl": "juridisch adviseur", "pt": "procurador", "ru": "солиситор", @@ -29789,6 +33570,8 @@ "fa": "برگریز", "fi": "kesävihanta", "fr": "caduc", + "ga": "planda duillsilteach", + "gl": "caducifolio", "he": "נשירים", "hi": "पतझड़ी", "hr": "bjelogorica", @@ -29801,7 +33584,6 @@ "lt": "lapus metantys augalai", "ml": "ഇലപൊഴിയും വനങ്ങള്", "mr": "पानगळ", - "ms": "luruh", "nb": "lauvfellende", "nl": "bladverliezend", "pl": "roślina zrzucająca liście", @@ -29822,7 +33604,7 @@ "ar": "دائم الخضرة", "be": "вечназялёныя расліны", "bg": "вечнозелено растение", - "ca": "perennifoli", + "ca": "planta perennifòlia", "cs": "stálezelená rostlina", "da": "stedsegrøn", "de": "immergrüne pflanze", @@ -29833,6 +33615,8 @@ "fa": "همیشهسبز", "fi": "ainavihanta", "fr": "sempervirent", + "ga": "planda síorghlas", + "gl": "perennifolio", "he": "ירוק-עד", "hi": "सदाबहार", "hr": "zimzelene biljke", @@ -29844,7 +33628,6 @@ "ko": "상록식물", "lt": "visžaliai augalai", "lv": "mūžzaļš augs", - "ms": "malar hijau", "nb": "eviggrønn", "nl": "groenblijvend", "pl": "rośliny wiecznie zielone", @@ -29854,6 +33637,7 @@ "sl": "zimzelena rastlina", "sv": "städsegrön", "ta": "மாறா பசுமை", + "te": "సతత హరితం", "th": "ไม้ไม่ผลัดใบ", "tr": "her dem yeşil", "uk": "вічнозелені рослини", @@ -29890,10 +33674,14 @@ "en": "deciduous forest", "es": "bosque caducifolio", "et": "lehtmets", + "fi": "lehtimetsä", "fr": "forêt décidue", + "hr": "bjelogorična šuma", + "hu": "lombhullató erdő", "it": "foresta decidua", "ja": "落葉樹林", "lt": "lapuočių miškai", + "nb": "løvskog", "nl": "loofbos", "pl": "las liściasty", "ro": "pădure de foioase", @@ -29918,7 +33706,7 @@ "fi": "havumetsä", "fr": "forêt de conifères", "hr": "crnogorična šuma", - "hu": "tűlevelű erdők", + "hu": "tűlevelű erdő", "it": "foresta di conifere", "ja": "針葉樹林", "lt": "spygliuočių miškai", @@ -29950,13 +33738,13 @@ "he": "משחקיית וידאו", "it": "sala giochi", "ja": "ゲームセンター", - "ko": "전자 오락실", - "ms": "arked permainan video", + "ko": "전자오락실", "nb": "spillehall", "nl": "arcadehal", "pt": "salão de jogos", "pt-br": "fliperama", "ru": "зал игровых автоматов", + "sl": "igralnica", "sv": "spelhall", "tr": "atari salonu", "zh": "電子遊樂場" @@ -29968,22 +33756,47 @@ "en": "bandstand", "es": "quiosco de música", "fr": "kiosque à musique", + "gl": "palco da música", "it": "cassa armonica", "ja": "野外音楽堂", "nl": "muziektent", "pl": "estrada", "pt": "coreto", - "ru": "эстрада (павильон)", + "ru": "эстрада", + "sl": "glasbeni paviljon", "sv": "musikpaviljong", "tr": "bando standı", "vi": "bục dàn nhạc", "zh": "演奏台" }, + "bathing_place": { + "ca": "aigua per al bany", + "cs": "koupaliště", + "cy": "dŵr nofio", + "da": "badested", + "de": "badestelle", + "en": "bathing site", + "es": "zona de baño", + "et": "supluskoht", + "fi": "uimapaikka", + "fr": "site de baignade", + "hu": "fürdőhely", + "ja": "水浴場", + "lt": "viešasis paplūdimys", + "nb": "badeplass", + "nl": "badplek", + "pl": "kąpielisko", + "ru": "общественный пляж", + "sl": "kopališče", + "sv": "badplats", + "uk": "місце для купання" + }, "beach_resort": { "ar": "منتجع بحري", "bg": "морски курорт", "ca": "ressort marítim", "cs": "letovisko", + "cy": "cyrchfan lan môr", "da": "badeby", "de": "seebad", "en": "seaside resort", @@ -30019,11 +33832,29 @@ "fa": "پناه پرندگان", "fi": "lintutorni", "fr": "observatoire ornithologique", + "gl": "observatorio ornitolóxico", "ja": "ハイド", "nb": "fugletårn", "nl": "vogelkijkwand", "sk": "pozorovateľňa vtáctva" }, + "bleachers": { + "ar": "مدرجات", + "ca": "grada", + "da": "siddeskråning", + "de": "gradin", + "en": "bleacher", + "es": "grada", + "fi": "katsomo", + "fr": "gradin", + "gl": "bancada", + "it": "gradinata", + "ja": "ブリーチャー", + "ru": "трибуна", + "sl": "tribuna", + "sv": "gradäng", + "zh-cn": "露天看台" + }, "bowling_alley": { "ca": "bowling", "da": "bowlingbane", @@ -30032,16 +33863,19 @@ "es": "bolera", "fi": "keilahalli", "fr": "salle de bowling", - "ja": "ボウリング・アレー", + "gl": "pista de birlos", + "ja": "ボウリング場", "nb": "bowlinghall", "nl": "bowlingbaan", "pl": "kręgielnia", "ru": "боулинг-центр", "sv": "bowlingbana", + "ur": "بولنگ سینٹر", "zh": "保龄球馆" }, "common": { "ar": "أرض مشتركة", + "cy": "tir comin", "da": "fælled", "de": "allmende", "en": "common land", @@ -30071,10 +33905,10 @@ "es": "estudio de baile", "et": "tantsustuudio", "fa": "استودیوی رقص", - "fi": "tanssilava", + "fi": "tanssisali", "fr": "dancing", "he": "בית ספר למחול", - "hu": "tánciskola", + "hu": "táncterem", "it": "scuola di danza", "ja": "ダンスホール", "ko": "무도장", @@ -30114,13 +33948,13 @@ "he": "גינת כלבים", "id": "anjing bisa berenang", "ja": "ドッグラン", - "ms": "taman anjing", "nl": "hondenpark", "pl": "psi park", "pt": "parque para cães", "pt-br": "parque canino", "ru": "собачья площадка", "sv": "hundpark", + "vi": "công viên chó", "zh": "狗公園" }, "escape_game": { @@ -30135,9 +33969,9 @@ "et": "põgenemismängud", "fa": "اتاق فرار", "fi": "pakohuonepeli", - "fr": "jeu d'évasion grandeur nature", + "fr": "jeu d'évasion", "he": "חדר בריחה", - "hu": "szabaduló szoba", + "hu": "szabadulószoba", "id": "permainan kamar gelap", "ja": "脱出ゲーム", "ko": "방탈출 카페", @@ -30150,26 +33984,74 @@ "firepit": { "cs": "ohniště", "da": "kogegrube", - "de": "feuerstelle", + "de": "feuerstelle (lagerfeuer)", "en": "fire pit", "fi": "tulikehä", "fr": "foyer", "he": "בור אש", + "hi": "अग्निकुण्ड", "it": "brace", "ja": "ファイアピット", "nb": "kokegrop", + "sl": "ognjišče", "sv": "kokgrop", "ta": "நெருப்பு குழி", "uk": "пожежна яма", "vi": "hố lửa" }, "fishing": { + "af": "visvang", + "ar": "صيد السمك", + "be": "рыбалоўства", + "bg": "риболов", + "ca": "pesca", + "cs": "rybolov", + "cy": "pysgota", + "da": "fiskeri", "de": "angelplatz", + "de-ch": "fischerei", + "el": "αλιεία", "en": "fishing allowed", + "en-ca": "fishing", + "en-gb": "fishing", + "en-us": "fishing", + "es": "pesca", + "et": "kalapüük", + "fa": "ماهیگیری", + "fi": "kalastus", "fr": "lieu de pêche", + "ga": "iascaireacht", + "gd": "iasgach", + "gl": "pesca", + "he": "דיג", + "hi": "मत्स्य पालन", + "hr": "ribolov", + "hu": "halászat", + "id": "memancing", + "it": "pesca", "ja": "釣り場", + "kn": "ಮೀನುಗಾರಿಕೆ", + "ko": "고기잡이", + "lt": "žūklė", + "lv": "zvejošana", + "ml": "മീൻപിടുത്തം", + "mr": "मासेमारी", + "nb": "fiske", + "nl": "visserij", "pl": "wolno łowić ryby", "pt": "local de pesca", + "pt-br": "pesca", + "ro": "pescuit", + "ru": "рыбная ловля", + "sk": "rybolov", + "sl": "ribolov", + "sv": "fiske", + "ta": "மீன் பிடித்தல்", + "th": "การจับปลา", + "tr": "balıkçılık", + "uk": "рибальство", + "ur": "ماہی گیری", + "vi": "ngư nghiệp", "zh": "游钓场" }, "fitness_centre": { @@ -30177,6 +34059,7 @@ "bg": "фитнес зала", "ca": "centre de fitness", "cs": "posilovna", + "cy": "stiwdio ffitrwydd", "da": "motionscenter", "de": "fitnessstudio", "en": "health club", @@ -30190,6 +34073,7 @@ "id": "pusat kebugaran", "ja": "フィットネスクラブ", "ko": "헬스클럽", + "lt": "sporto centras", "lv": "fitnesa klubs", "nb": "helsestudio", "nl": "sportschool", @@ -30212,16 +34096,21 @@ "el": "υπαίθρια γυμναστήρια", "en": "outdoor gym", "es": "gimnasio al aire libre", + "et": "välijõusaal", "fi": "ulkokuntosali", "fr": "équipement de fitness en extérieur", "he": "חדר כושר חיצוני", "hi": "बाहरी जिम", + "hr": "teretana na otvorenom", + "hu": "szabadtéri edzőterem", "it": "palestra all'aperto", "ja": "アウトドアジム", + "lt": "lauko treniruoklių salė", "nl": "beweegtuin", "pl": "siłownia zewnętrzna", "pt": "academia ao ar livre", "ru": "спортивная площадка", + "sk": "vonkajšia telocvičňa", "sv": "utegym", "th": "ยิมออกแบบในแวดวงการเกี่ยวกับการเดินทาง", "tr": "açık spor salonu", @@ -30229,11 +34118,13 @@ "vi": "sân tập" }, "garden": { + "af": "tuin", "ar": "حديقة", "be": "сад", "bg": "градина", "ca": "jardí", "cs": "zahrada", + "cy": "gardd", "da": "have", "de": "garten", "el": "κήπος", @@ -30243,6 +34134,8 @@ "fa": "باغ", "fi": "puutarha", "fr": "jardin", + "ga": "gairdín", + "gl": "xardín", "he": "גן", "hi": "बाग", "hr": "vrt", @@ -30255,7 +34148,6 @@ "lt": "sodas", "lv": "dārzs", "ml": "പൂന്തോട്ടം", - "ms": "kebun", "nb": "hage", "nl": "tuin", "pl": "ogród", @@ -30264,8 +34156,10 @@ "ru": "сад", "sk": "záhrada", "sl": "vrt", + "sq": "kopsht", "sv": "trädgård", "ta": "தோட்டம்", + "te": "తోట", "th": "สวน", "tr": "bahçe", "uk": "сад", @@ -30278,6 +34172,7 @@ "bg": "голф игрище", "ca": "camp de golf", "cs": "golfové hřiště", + "cy": "cwrs golff", "da": "golfbane", "de": "golfplatz", "en": "golf course", @@ -30286,6 +34181,8 @@ "fa": "زمین گلف", "fi": "golfkenttä", "fr": "terrain de golf", + "ga": "machaire gailf", + "gl": "campo de golf", "hr": "igralište za golf", "hu": "goldpálya", "id": "fairway", @@ -30299,6 +34196,7 @@ "pt": "campo de golfe", "ro": "teren de golf", "ru": "поле для гольфа", + "sl": "igrišče za golf", "sv": "golfbana", "tr": "golf sahası", "uk": "поле для гольфу", @@ -30310,21 +34208,34 @@ "be": "хакерспэйс", "bg": "хакерспейс", "ca": "hacklab", + "cs": "hackerspace", "da": "hacklab", - "de": "hackspace", - "en": "hackerspace", + "en": "hackspace", "es": "hacklab", + "et": "hackerspace", "fa": "هکر اسپیس", "fi": "hacklab", + "fr": "hackerspace", + "gl": "hacklab", "hr": "hacklab", + "hu": "hackerspace", + "it": "hackerspace", "ja": "ハッカースペース", "ko": "해커스페이스", "nb": "skaperverksted", - "sl": "heklab", + "nl": "hackerspace", + "pl": "hackerspace", + "pt": "hackerspace", + "ru": "hackerspace", + "sl": "hekerski prostor", + "sq": "hackerspace", + "sv": "hackerspace", "ta": "கொத்தர்வெளி", "th": "แฮกเกอร์สเปซ", "tr": "hacker kafe", - "zh": "黑客空间" + "uk": "hackerspace", + "zh": "黑客空间", + "zh-tw": "駭客空間" }, "horse_riding": { "ar": "منشأة فروسية", @@ -30337,17 +34248,19 @@ "es": "club de equitación", "fi": "ratsastuskoulu", "fr": "centre équestre", + "ga": "ionad eachaíochta", "it": "impianto sportivo per equitazione", "nb": "rideskole", "nl": "manege", "ru": "конноспортивный комплекс", - "sv": "ridskola" + "sv": "ridanläggning" }, "ice_rink": { "ar": "حلبة تزحلق", "be": "коўзанка", "ca": "pista de gel", "cs": "ledová plocha", + "cy": "llawr sglefrio", "da": "skøjtebane", "de": "eisbahn", "el": "παγοδρόμιο", @@ -30356,6 +34269,8 @@ "et": "liuväli", "fi": "luistinrata", "fr": "patinoire", + "gl": "pista de xeo", + "he": "משטח החלקה על הקרח", "hu": "jégcsarnok", "it": "pista di ghiaccio", "ja": "スケートリンク", @@ -30372,6 +34287,12 @@ "uk": "ковзанка", "zh": "滑冰場" }, + "indoor_play": { + "de": "hallenspielplatz", + "en": "indoor playground", + "fr": "plaine de jeux intérieure", + "nl": "binnenspeeltuin" + }, "marina": { "ar": "مارينا", "ca": "port esportiu", @@ -30384,6 +34305,7 @@ "fa": "مارینا", "fi": "venesatama", "fr": "port de plaisance", + "gl": "porto deportivo", "he": "מרינה", "hu": "jachtkikötő", "it": "porto turistico", @@ -30411,6 +34333,7 @@ "bg": "резерват", "ca": "reserva natural", "cs": "přírodní rezervace", + "cy": "gwarchodfa natur", "da": "naturreservat", "de": "naturschutzgebiet", "el": "φυσικό καταφύγιο", @@ -30420,6 +34343,8 @@ "fa": "ذخیرهگاه طبیعی", "fi": "luonnonpuisto", "fr": "réserve naturelle", + "ga": "anaclann dúlra", + "gl": "reserva natural", "he": "שמורת טבע", "hi": "संरक्षित प्रकृतिक्षेत्र", "hr": "prirodni rezervat", @@ -30430,7 +34355,6 @@ "ko": "자연 보호 구역", "lt": "draustinis", "lv": "dabas rezervāts", - "ms": "cagar alam", "nb": "naturreservat", "nl": "natuurreservaat", "pl": "rezerwat przyrody", @@ -30440,7 +34364,9 @@ "ru": "заповедник", "sk": "prírodná rezervácia", "sl": "naravni rezervat", + "sq": "rezervat natyror", "sv": "naturreservat", + "te": "ప్రకృతి రిజర్వ్", "tr": "doğa koruma alanı", "uk": "природний заповідник", "vi": "khu bảo tồn thiên nhiên", @@ -30453,14 +34379,26 @@ "be": "парк", "bg": "парк", "ca": "parc", + "cs": "park", + "cy": "parc", + "da": "park", + "de": "park", "el": "πάρκο", - "en": "park", + "en": "sitting-out area", + "en-ca": "park", + "en-gb": "park", "es": "parque", + "et": "park", "fa": "بوستان", "fi": "puisto", "fr": "parc", + "ga": "páirc", + "gd": "pàirce", + "gl": "parque", "he": "פארק", "hi": "पार्क", + "hr": "park", + "hu": "park", "id": "taman", "it": "parco", "ja": "公園", @@ -30469,17 +34407,25 @@ "lt": "parkas", "lv": "parks", "ml": "ഉദ്യാനം", - "ms": "taman", + "nb": "park", + "nl": "park", + "pl": "park", "pt": "parque", "ro": "parc", "ru": "парк", + "sk": "park", + "sl": "park", + "sq": "parku", + "sv": "park", "ta": "பூங்கா", "th": "สวนสาธารณะ", + "tr": "park", "uk": "парк", "ur": "پارک", "vi": "công viên", "zh": "公園", - "zh-cn": "公园" + "zh-cn": "公园", + "zh-hk": "休憩處" }, "picnic_table": { "ca": "berenador", @@ -30500,7 +34446,7 @@ "be": "спартыўная пляцоўка", "bg": "тенис корт", "ca": "terreny de joc", - "cs": "hřiště", + "cs": "travnaté hřiště", "da": "petanquebane", "de": "spielfeld", "de-ch": "fussballfeld", @@ -30512,31 +34458,32 @@ "fa": "زمین ورزشی", "fi": "kenttä", "fr": "pétanquodrome", + "gl": "campo de fútbol", "he": "מגרש ספורט", + "hi": "फुटबॉल का मैदान", "hr": "nogometno igralište", "hu": "labdarúgópálya", "id": "lapangan olahraga", - "it": "superficie di gioco", + "it": "campo da petanque", "ja": "ピッチ", "ko": "피치 (필드)", "lt": "teniso kortas", "lv": "sporta laukums", - "ms": "gelanggang tenis", "nb": "idrettsbane", "nl": "sportveld", "pl": "boisko", "pt": "campo desportivo", "pt-br": "quadra esportiva", "ro": "teren de joc", - "ru": "спортивная площадка", + "ru": "площадка для петанка", "sk": "spielfeld", - "sl": "igrišče", + "sl": "igrišče za petanko", "sv": "spelplan", "ta": "காற்பந்தாட்ட ஆடுகளம்", "th": "สนามฟุตบอล", "tr": "saha", "uk": "спортивний майданчик", - "ur": "ایسوسی ایشن فٹ بال پچ", + "ur": "ٹینس کورٹ", "vi": "sân quần vợt", "zh": "田徑場", "zh-cn": "足球场", @@ -30547,6 +34494,7 @@ "bg": "детска площадка", "ca": "pati", "cs": "dětské hřiště", + "cy": "cwrt chwarae", "da": "legeplads", "de": "spielplatz", "el": "παιδική χαρά", @@ -30556,6 +34504,7 @@ "fa": "زمین بازی", "fi": "leikkipuisto", "fr": "terrain de jeux", + "ga": "áit imeartha", "he": "גן שעשועים", "hr": "dječje igralište", "hu": "játszótér", @@ -30565,15 +34514,15 @@ "kn": "ಆಟದ ಮೈದಾನ", "ko": "놀이터", "lv": "rotaļlaukums", - "ms": "taman permainan", "nb": "lekeplass", "nl": "speelplaats", "pl": "plac zabaw", "pt": "parque infantil", "ro": "loc de joacă", - "ru": "детская площадка", + "ru": "игровая площадка", "sk": "detské ihrisko", "sl": "igrišče", + "sq": "sheshi i lojërave", "sv": "lekplats", "ta": "ஆடுகளம்", "th": "สนามเด็กเล่น", @@ -30585,6 +34534,7 @@ }, "recreation_ground": { "ar": "منطقة ترفيهية", + "bg": "местна зона за отдих", "ca": "zona d'esbarjo", "cs": "rekreační oblast", "da": "fritidsområde", @@ -30592,17 +34542,19 @@ "el": "χώρος αναψυχής", "en": "recreation area", "es": "zona de recreo", - "fi": "suojeltu ulkoilualue", + "fi": "ulkoilualue", "fr": "zone récréative", + "ga": "ceantar fóillíochta", + "gl": "área recreativa", "hu": "üdülőterület", "ja": "レクリエーション・エリア", "lv": "atpūtas vieta", - "ms": "kawasan rekreasi", "nb": "friområde", "nl": "recreatiegebied", "pl": "teren rekreacyjny", "ru": "зона отдыха", "sl": "rekreacijsko območje", + "sq": "zona argëtuese", "sv": "fritidsområde", "tr": "boş alan", "uk": "зона відпочинку" @@ -30611,24 +34563,28 @@ "ar": "منطقة حمراء", "bg": "квартал на червените фенери", "ca": "districte vermell", + "cy": "ardal golau coch", "de": "rotlichtviertel", "en": "red-light district", "es": "zona roja", "fa": "منطقه سرخ", "fi": "punaisten lyhtyjen alue", "fr": "quartier chaud", + "ga": "ceantar na soilse dearga", + "gd": "ceàrn dearg", "he": "רובע החלונות האדומים", "hi": "रेड लाइट एरिया", - "hu": "vöröslámpás negyed", + "hr": "crvena četvrt", + "hu": "piroslámpás negyed", "id": "distrik lampu merah", "it": "quartiere a luci rosse", "ja": "風俗街", "ko": "홍등가", - "ms": "daerah lampu merah", "nl": "rosse buurt", "pl": "dzielnica czerwonych latarni", "pt": "zona de meretrício", "ru": "квартал красных фонарей", + "sl": "četrt rdečih luči", "sv": "prostitutionsstråk", "tr": "kırmızı fener mahallesi", "uk": "квартал червоних ліхтарів", @@ -30643,6 +34599,7 @@ "bg": "курорт", "ca": "complex turístic", "cs": "rekreační středisko", + "cy": "cyrchfan", "da": "feriecenter", "el": "θέρετρο", "en": "resort", @@ -30652,6 +34609,7 @@ "fa": "استراحتگاه", "fi": "lomakeskus", "fr": "domaine touristique", + "ga": "ionad saoire", "he": "מתקן נופש", "hr": "odmaralište", "hu": "üdülőhely", @@ -30659,10 +34617,9 @@ "ja": "リゾート", "ko": "리조트", "lv": "kūrorts", - "ms": "tempat peranginan", "nl": "vakantieoord", "pl": "ośrodek wypoczynkowy", - "ru": "пансионат", + "ru": "курорт", "sl": "letovišče", "sv": "semesterort", "th": "สถานพักตากอากาศ", @@ -30675,10 +34632,12 @@ "sauna": { "ar": "ساونا", "bg": "сауна", + "cy": "sawna", "el": "σάουνα", "en": "sauna", "et": "saun", "fa": "سونا", + "ga": "sabhna", "he": "סאונה", "hu": "szauna", "ja": "サウナ風呂", @@ -30735,7 +34694,7 @@ "pt": "estande de tiro", "ro": "poligon de tragere", "ru": "стрельбище", - "sl": "strelišče", + "sl": "strelski poligon", "sv": "skjutbana", "tr": "poligon", "uk": "тир", @@ -30747,6 +34706,7 @@ "be": "стапель", "bg": "стапел", "ca": "grada (nàutica)", + "cy": "llithrfa", "da": "slæbested", "de": "slipanlage", "el": "νεωλκείο", @@ -30770,11 +34730,17 @@ "uk": "стапель", "zh": "滑道" }, + "soccer_golf": { + "de": "fußballgolf-platz", + "en": "soccer golf course" + }, "sports_centre": { "ar": "منشأة رياضية", "be": "спартыўны аб’ект", + "bg": "спортно съоръжение", "ca": "instal·lació esportiva", "cs": "sportoviště", + "cy": "lleoliad chwaraeon", "da": "sportsanlæg", "de": "sportstätte", "el": "αθλητικός χώρος", @@ -30783,6 +34749,8 @@ "es": "instalación deportiva", "fi": "liikuntapaikka", "fr": "installation sportive", + "ga": "ionad spóirt", + "gl": "instalación deportiva", "he": "אולם ספורט", "hr": "sportski objekt", "hu": "sportlétesítmény", @@ -30807,8 +34775,9 @@ "uk": "спортивна споруда", "ur": "کھیلوں کا مقام", "vi": "địa điểm thể thao", - "zh": "体育场地", - "zh-hk": "體育場地" + "zh": "体育场馆", + "zh-hk": "體育場地", + "zh-tw": "運動場館" }, "sports_hall": { "af": "gimnasium", @@ -30816,6 +34785,7 @@ "bg": "спортна зала", "ca": "gimnàs", "cs": "tělocvična", + "cy": "campfa", "da": "idrætshal", "de": "turnhalle", "el": "γυμναστήριο", @@ -30826,6 +34796,7 @@ "et": "võimla", "fi": "voimistelusali", "fr": "gymnase", + "ga": "giomnáisiam", "he": "חדר כושר", "hu": "edzőterem", "id": "gimnasium", @@ -30842,6 +34813,7 @@ "pt": "ginásio", "ru": "спортивный зал", "sl": "telovadnica", + "sq": "palestra", "sv": "gym", "tr": "spor salonu", "uk": "спортивна зала", @@ -30855,6 +34827,7 @@ "bg": "стадион", "ca": "estadi", "cs": "stadion", + "cy": "stadiwm", "da": "stadion", "de": "stadion", "el": "στάδιο", @@ -30864,6 +34837,8 @@ "fa": "ورزشگاه", "fi": "stadion", "fr": "stade", + "ga": "staid", + "gl": "estadio", "he": "אצטדיון", "hi": "क्रीडांगन", "hr": "stadion", @@ -30884,6 +34859,7 @@ "ru": "стадион", "sk": "štadión", "sl": "stadion", + "sq": "stadiumi", "sv": "stadion", "ta": "விளையாட்டரங்கம்", "th": "สนามกีฬา", @@ -30899,12 +34875,14 @@ "bg": "детски лагер", "ca": "colònies d'estiu", "cs": "dětský tábor", + "cy": "gwersyll haf", "da": "feriekoloni", "de": "ferienlager", - "en": "summer camp", + "en": "summer camp program", "es": "campamento educativo", "fi": "kesäsiirtola", "fr": "camp d'été", + "ga": "campa samhraidh", "he": "מחנה קיץ", "hi": "समर कैम्प", "hu": "nyári tábor", @@ -30912,7 +34890,6 @@ "ja": "サマーキャンプ", "ko": "여름 캠프", "lt": "vaikų stovykla", - "ms": "kem musim panas", "nb": "feriekoloni", "nl": "zomerkamp", "pl": "obóz harcerski", @@ -30935,20 +34912,21 @@ "ar": "مسبح", "be": "плавальны басейн", "bg": "плувен басейн", - "ca": "piscina pública", + "ca": "piscina", "cs": "plavecký bazén", + "cy": "pwll nofio", "da": "svømmebassin", - "de": "öffentliches schwimmbad", - "de-ch": "schwimmbecken", + "de": "schwimmbecken", "el": "πισίνα", - "en": "private swimming pool", - "en-ca": "swimming pool", - "en-gb": "swimming pool", + "en": "swimming pool", "es": "piscina", "et": "ujumisbassein", "fa": "استخر", "fi": "uima-allas", - "fr": "piscine privée", + "fr": "piscine", + "ga": "linn snámha", + "gd": "amar-snàmh", + "gl": "piscina", "he": "בריכת שחייה", "hi": "तरण ताल", "hr": "bazen", @@ -30961,24 +34939,24 @@ "lv": "peldbaseins", "ml": "നീന്തൽക്കുളം", "mr": "जलतरण तलाव", - "ms": "kolam renang", "nb": "svømmebasseng", "nl": "zwembad", "pl": "basen pływacki", "pt": "piscina", "ro": "tavan", - "ru": "частный бассейн", + "ru": "плавательный бассейн", "sk": "plavecký bazén", - "sl": "bazen", + "sl": "plavalni bazen", + "sq": "banjë noti", "sv": "simbassäng", "ta": "நீச்சற் குளம்", + "te": "ఈత కొలను", "th": "สระว่ายน้ำ", "tr": "havuz", - "uk": "приватний басейн", + "uk": "плавальний басейн", "ur": "تیرتال", "vi": "hồ bơi", - "zh": "游泳池", - "zh-tw": "公共游泳池" + "zh": "游泳池" }, "tanning_salon": { "ar": "جهاز تسمير البشرة", @@ -30993,6 +34971,7 @@ "et": "solaarium", "fi": "solariumi", "fr": "solarium", + "gl": "solario", "he": "מיטת שיזוף", "hr": "solarij", "hu": "szolárium", @@ -31006,6 +34985,8 @@ "pl": "solarium", "pt": "câmara de bronzeamento", "ru": "солярий", + "sk": "solárium", + "sl": "solarij", "sv": "solarium", "tr": "solaryum", "uk": "солярій", @@ -31022,6 +35003,8 @@ "es": "pista de atletismo", "fi": "juoksurata", "fr": "piste d'athlétisme", + "gl": "pista de atletismo", + "he": "מסלול אתלטי", "hu": "futószámok (atlétika)", "it": "pista di atletica leggera", "ja": "競走用トラック", @@ -31035,6 +35018,13 @@ "uk": "бігова доріжка", "zh": "跑道" }, + "trampoline_park": { + "de": "trampolinpark", + "en": "trampoline park", + "ja": "トランポリン施設", + "nl": "trampolinepark", + "ru": "батутный парк" + }, "turkish_bath": { "af": "turkse bad", "ar": "حمام عام", @@ -31048,6 +35038,7 @@ "et": "türgi saun", "fa": "حمام ترکی", "fi": "turkkilainen sauna", + "gl": "baño turco", "he": "חמאם", "hi": "हमाम", "hr": "hamam", @@ -31062,6 +35053,7 @@ "pt": "banho turco", "ru": "хаммам", "sl": "hamam", + "sq": "hamami", "sv": "hamam", "tr": "hamam", "uk": "хамам", @@ -31089,7 +35081,7 @@ "ja": "ウォーター・パーク", "ko": "워터파크", "lt": "vandens parkas", - "ms": "taman tema air", + "lv": "akvaparks", "nb": "badeland", "nl": "waterpark", "pl": "aquapark", @@ -31125,10 +35117,13 @@ "de-at": "erdgeschoß", "el": "ισόγειο", "en": "ground floor", + "en-us": "first floor", "es": "planta baja", "fa": "طبقه همکف", "fr": "rez-de-chaussée", + "ga": "urlár na talún", "he": "קומת קרקע", + "hu": "földszint", "it": "pianterreno", "ja": "1階", "ml": "ഭൂനിരപ്പുനില", @@ -31149,11 +35144,12 @@ "en": "lgbt place", "es": "lugar lgbt", "fr": "lieu lgbtqi+", + "hu": "lmbt-helyszín", "it": "luogo lgbt", "nl": "lgbti-locatie", "pt": "espaço lgbt", "ru": "место для лгбт", - "sl": "lgbt-kraj" + "sl": "kraj lgbt" } }, "lifeguard": { @@ -31162,7 +35158,8 @@ "en": "lifeguard tower", "fa": "برج نجات غریق", "he": "מגדל מציל", - "nl": "toren van reddingsbrigade" + "nl": "toren van reddingsbrigade", + "pt": "guarita de guarda-vidas" } }, "line": { @@ -31173,6 +35170,7 @@ "es": "barra colectora", "fa": "شینه", "fr": "jeu de barres", + "gl": "barra eléctrica", "he": "פס צבירה", "hi": "बसबार", "hu": "gyűjtősín", @@ -31191,12 +35189,16 @@ "listed_status": { "Category_A": { "ca": "edifici categoria a", + "cy": "adeilad rhestredig categori a", "de": "denkmalgeschützte gebäude der kategorie a", "el": "διατηρητέο κτίριο κατηγορίας a", "en": "category a listed building", "es": "edificio categoría a", "fi": "luokan a suojeltu rakennus skotlannissa", "fr": "monument classé de catégorie a", + "ga": "foirgneamh liostaithe, catagóir a", + "gd": "togalach clàraichte roinn-seòrsa a", + "gl": "edificio categoría a", "he": "בניין רשום בדרגה a", "it": "monumento classificato di categoria a", "ja": "a類指定建築物", @@ -31212,12 +35214,14 @@ "ar": "بناء مدرج من الفئة ب", "ca": "edifici categoria b", "cs": "listed building kategorie b", + "cy": "adeilad rhestredig categori b", "de": "denkmalgeschützte gebäude der kategorie b", "el": "διατηρητέο κτίριο κατηγορίας b", "en": "category b listed building", "es": "edificio categoría b", "fi": "luokan b suojeltu rakennus skotlannissa", "fr": "monument classé de catégorie b", + "ga": "foirgneamh liostaithe, catagóir b", "he": "בניין רשום בדרגה b", "it": "monumento classificato di categoria b", "ja": "b類指定建築物", @@ -31230,11 +35234,13 @@ }, "Category_C": { "ca": "edifici categoria c", + "cy": "adeilad rhestredig categori c", "el": "διατηρητέο κτίριο κατηγορίας c", "en": "category c listed building", "es": "edificio categoría c", "fi": "luokan c suojeltu rakennus skotlannissa", "fr": "monument classé de catégorie c", + "ga": "foirgneamh liostaithe, catagóir c", "he": "בניין רשום בדרגה c", "it": "monumento classificato di categoria c", "ja": "c類指定建築物", @@ -31248,6 +35254,8 @@ "ar": "مبان مصنفة من الدرجة الأولى", "be": "рэестравы будынак 1 ступені", "ca": "monument classificat com a grau i", + "cs": "památkově chráněná budova i. třídy", + "cy": "adeilad rhestredig gradd i", "da": "grade i-bygning", "de": "grade-i-bauwerk", "el": "διατηρητέο κτίριο βαθμού 1", @@ -31256,6 +35264,8 @@ "fa": "ساختمان فهرست شده در درجه i", "fi": "luokan i suojeltu rakennus britanniassa", "fr": "monument classé de grade i", + "ga": "foirgneamh liostaithe ghrád i", + "gl": "monumento clasificado como grao i", "he": "בניין רשום בדרגה i", "hu": "i. osztályba sorolt műemlék", "it": "monumento classificato di categoria i", @@ -31273,12 +35283,15 @@ "Grade_II": { "ar": "بناء مدرج من الدرجة الثانية", "ca": "immoble registrat grau ii", + "cy": "adeilad rhestredig gradd ii", "de": "grade-ii-bauwerk", "el": "διατηρητέο μνημείο β' βαθμού", "en": "grade ii listed building", "es": "edificio protegido de grado ii", "fi": "luokan ii suojeltu rakennus britanniassa", "fr": "monument classé de grade ii", + "ga": "foirgneamh liostaithe ghrád ii", + "gl": "edificio protexido de grao ii", "he": "בניין רשום בדרגה ii", "hu": "ii. osztályba sorolt műemlék", "id": "bangunan kelas pangkat ii", @@ -31298,12 +35311,14 @@ "ar": "الدرجة الثانية * مبنى مدرج", "ca": "monument classificat com a grau ii*", "cs": "registrovaná stavba ii* stupně", + "cy": "adeilad rhestredig gradd ii*", "de": "grade-ii*-bauwerk", "el": "διατηρητέο κτίριο βαθμού 2*", "en": "grade ii* listed building", "es": "monumento clasificado grado ii*", "fi": "luokan ii* suojeltu rakennus britanniassa", "fr": "monument classé de grade ii*", + "ga": "foirgneamh liostaithe ghrád ii*", "he": "בניין רשום בדרגה ii*", "it": "monumento classificato di categoria ii*", "ja": "第ニ*級指定建築物", @@ -31319,7 +35334,10 @@ }, "locality": { "townland": { + "cy": "trefgordd", "en": "townland", + "ga": "baile fearainn", + "gd": "baile fearainn", "ja": "タウンランド", "ru": "таунленд", "uk": "таунленд", @@ -31341,7 +35359,8 @@ "pt": "em recinto coberto", "ru": "в помещении", "sl": "znotraj", - "sv": "inomhus" + "sv": "inomhus", + "zh": "室内" }, "outdoor": { "ca": "a l'aire lliure", @@ -31361,7 +35380,8 @@ "ru": "на открытом воздухе", "sl": "na prostem", "sv": "utomhus", - "uk": "просто неба" + "uk": "просто неба", + "zh": "户外" }, "underground": { "ar": "قبو", @@ -31375,6 +35395,7 @@ "et": "maa-alune ruum", "fi": "maanalainen tila", "fr": "souterrain", + "ga": "spás faoi thalamh", "he": "תת־קרקע", "hu": "felszín alatti tér", "id": "bawah tanah", @@ -31386,6 +35407,7 @@ "pl": "podziemia", "pt": "estrutura subterrânea", "ru": "подземелье", + "sk": "podzemie", "sl": "podzemlje", "sv": "underjorden", "tr": "yer altı", @@ -31394,13 +35416,16 @@ }, "man_made": { "adit": { + "be": "штольня", "cs": "štola", + "cy": "ceuffordd", "da": "stoll", "de": "stollen", "en": "adit", "fa": "گذرگاه افقی", "fr": "galerie de mine", "hu": "tárna", + "it": "galleria a giorno", "ja": "横坑", "nb": "stoll", "nl": "horizontale schacht", @@ -31417,6 +35442,7 @@ "be": "бакен", "ca": "marca de navegació", "cs": "baken", + "cy": "begwn", "de": "bake", "de-ch": "schifffahrtszeichen", "en": "beacon", @@ -31425,6 +35451,7 @@ "et": "paak", "fi": "merimerkki", "fr": "balisage", + "gl": "baliza", "he": "משואה", "hi": "ध्यानाकर्षक बत्ती", "id": "sinyal pandu", @@ -31435,6 +35462,7 @@ "pt": "balizagem marítima", "ru": "бакен", "sl": "signalno znamenje", + "sq": "shenjë e detare", "sv": "signalanordning", "uk": "бакен", "zh": "烽火臺" @@ -31444,6 +35472,7 @@ "bg": "пчелен кошер", "ca": "rusc", "cs": "včelí úl", + "cy": "cwch gwenyn", "da": "bistade", "de": "bienenstock", "el": "κυψέλη", @@ -31453,6 +35482,9 @@ "fa": "کندو", "fi": "mehiläispesä", "fr": "ruche", + "ga": "coirceog", + "gd": "beach-lann", + "gl": "colmea", "he": "כוורת", "hi": "bee hive", "hr": "košnica", @@ -31465,7 +35497,6 @@ "lt": "avilys", "lv": "bišu strops", "mr": "मधमाशांचे पोळे", - "ms": "rumah lebah", "nb": "bikube", "nl": "bijenkorf", "pl": "ul", @@ -31474,6 +35505,7 @@ "ru": "улей", "sk": "úľ", "sl": "čebelji panj", + "sq": "kosherja", "sv": "bikupa", "tr": "arı kovanı", "uk": "вулик", @@ -31485,6 +35517,7 @@ "bg": "вълнолом", "ca": "escullera", "cs": "vlnolam", + "cy": "morglawdd", "da": "mole", "de": "wellenbrecher", "el": "κυματοθραύστης", @@ -31493,6 +35526,8 @@ "fa": "موجشکن", "fi": "aallonmurtaja", "fr": "brise-lames", + "ga": "tonnchosc", + "gl": "quebraondas", "he": "שובר גלים", "hi": "तरंगरोध", "hu": "hullámtörő", @@ -31512,6 +35547,7 @@ "ru": "волнолом", "sk": "vlnolam", "sl": "valobran", + "sq": "valëthyesi", "sv": "vågbrytare", "tr": "dalgakıran", "uk": "хвилеріз", @@ -31525,6 +35561,7 @@ "bg": "мост", "ca": "pont", "cs": "most", + "cy": "pont", "da": "bro", "de": "brücke", "el": "γέφυρα", @@ -31534,6 +35571,9 @@ "fa": "پل", "fi": "silta", "fr": "pont", + "ga": "droichead", + "gd": "drochaid", + "gl": "ponte", "he": "גשר", "hi": "सेतु", "hr": "most", @@ -31547,7 +35587,6 @@ "lv": "tilts", "ml": "പാലം", "mr": "पूल", - "ms": "jambatan", "nb": "bro", "nl": "brug", "pl": "most", @@ -31556,8 +35595,10 @@ "ru": "мост", "sk": "most", "sl": "most", + "sq": "urë", "sv": "bro", "ta": "பாலம்", + "te": "వంతెన", "th": "สะพาน", "tr": "köprü", "uk": "міст", @@ -31586,6 +35627,8 @@ "et": "tugipiilar", "fa": "پشتبند", "fr": "contrefort", + "ga": "taca", + "gl": "contraforte", "hr": "kontrafor", "hu": "támpillér", "it": "contrafforte", @@ -31608,11 +35651,14 @@ "cairn": { "ar": "رجوم", "cs": "mužik", + "cy": "carnedd", "da": "varde", "de": "steinmännchen", "en": "cairn", "fa": "سنگچین", "fi": "röykkiö", + "ga": "carn", + "gl": "amilladoiro (túmulo)", "he": "רוג'ום", "hi": "केअर्न", "id": "tugu penanda jejak", @@ -31628,10 +35674,12 @@ "sl": "možic", "sv": "stenröse", "ta": "கற்குவை", + "tr": "yığma mezar", "uk": "тур", "zh": "石冢" }, "campanile": { + "ar": "برج أجراس", "be": "кампаніла", "cs": "kampanila", "da": "kampanile", @@ -31664,6 +35712,7 @@ "bg": "комин", "ca": "xemeneia", "cs": "komín", + "cy": "simnai", "da": "skorsten", "de": "schornstein", "el": "καπνοδόχος", @@ -31673,6 +35722,8 @@ "fa": "دودکش", "fi": "savupiippu", "fr": "cheminée", + "ga": "simléar", + "gl": "cheminea", "he": "ארובה", "hi": "चिमनी", "hr": "dimnjak", @@ -31692,8 +35743,10 @@ "ru": "дымовая труба", "sk": "komín", "sl": "dimnik", + "sq": "kamishi", "sv": "skorsten", "ta": "புகைக்கூண்டு", + "te": "చిమ్నీ", "th": "ปล่องไฟ", "tr": "baca", "uk": "димова труба", @@ -31701,6 +35754,10 @@ "zh-hk": "煙囪", "zh-tw": "煙囪" }, + "clarifier": { + "en": "clarifier", + "fi": "jälkiselkeytysallas" + }, "clearcut": { "ar": "إزالة الأشجار", "cs": "mýcení", @@ -31740,11 +35797,13 @@ "fa": "گلباد", "fi": "kompassiruusu", "fr": "rose des vents", + "gl": "rosa dos ventos", "he": "שושנת הרוחות", "hu": "szélrózsa", "id": "mawar kompas", "it": "rosa dei venti", "ja": "羅針図", + "ko": "나침도", "lv": "kompasa roze", "nb": "kompassrose", "nl": "windroos", @@ -31752,7 +35811,9 @@ "pt": "rosa dos ventos", "ro": "roza vânturilor", "ru": "роза ветров", + "sl": "vetrovnica", "sv": "kompassros", + "te": "అష్ట దిక్కులు", "uk": "роза вітрів", "zh": "羅盤玫瑰" }, @@ -31762,13 +35823,16 @@ "bg": "охладителна кула", "ca": "torre de refrigeració", "cs": "chladicí věž", + "cy": "tŵr oeri", "de": "kühlturm", + "el": "πύργος ψύξης", "en": "cooling tower", "es": "torre de refrigeración", "et": "jahutustorn", "fa": "برج خنککننده", "fi": "jäähdytystorni", "fr": "tour aéroréfrigérante", + "gl": "torre de refrixeración", "he": "מגדל קירור", "hi": "कूलिंग टॉवर", "hr": "rashladni toranj", @@ -31778,7 +35842,6 @@ "kn": "ಶೈತ್ಯಗೋಪುರ", "ko": "냉각탑", "lv": "dzesēšanas tornis", - "ms": "menara penyejuk", "nb": "kjøletårn", "nl": "koeltoren", "pl": "chłodnia kominowa", @@ -31800,6 +35863,7 @@ "bg": "вътрешен двор", "ca": "pati", "cs": "nádvoří", + "cy": "libart", "da": "baggård", "de": "hof", "en": "courtyard", @@ -31808,6 +35872,8 @@ "fa": "حیاط", "fi": "sisäpiha", "fr": "cour d'immeuble", + "ga": "clós", + "gl": "patio", "he": "חצר פנימית", "hu": "udvar", "id": "pelataran", @@ -31815,7 +35881,6 @@ "ja": "中庭", "ko": "안마당", "ml": "അങ്കണം", - "ms": "laman dalam", "nb": "borggård", "nl": "binnenplaats", "pl": "dziedziniec", @@ -31837,6 +35902,7 @@ "bg": "кран", "ca": "grua", "cs": "jeřáb", + "cy": "craen", "da": "kran", "de": "kran", "el": "γερανός", @@ -31846,6 +35912,8 @@ "fa": "جرثقیل", "fi": "nosturi", "fr": "grue", + "ga": "craein", + "gl": "guindastre", "he": "עגורן", "hi": "क्रेन", "hr": "dizalica", @@ -31856,7 +35924,6 @@ "ko": "기중기", "lt": "kranas", "lv": "celtnis", - "ms": "kren (mesin)", "nb": "heisekran", "nl": "kraan", "pl": "żuraw", @@ -31865,8 +35932,10 @@ "ru": "грузоподъёмный кран", "sk": "žeriav", "sl": "žerjav", + "sq": "vinçi (makinë)", "sv": "lyftkran", "ta": "பாரந்தூக்கி", + "te": "క్రేన్", "tr": "vinç", "uk": "підйомний кран", "ur": "کرین", @@ -31882,14 +35951,16 @@ "bg": "христиански кръст", "ca": "creu monumental", "cs": "monumentální kříž", + "cy": "croes gristnogol", "da": "kristent kors", "de": "monumentalkreuz", "el": "χριστιανικός σταυρός", "en": "monumental cross", "es": "cruz monumental", - "fa": "صلیب مسیحی", + "fa": "صلیب قله", "fi": "kristinuskon risti", "fr": "croix monumentale", + "gl": "cruz monumental", "hi": "christian about symbol", "hr": "križ", "id": "salib puncak", @@ -31899,7 +35970,6 @@ "ko": "십자가", "lt": "krikščionių kryžius", "lv": "kristiešu krusts", - "ms": "salib kristian", "nb": "kristent kors", "nl": "monumentaal kruis", "pl": "krzyż-pomnik", @@ -31924,6 +35994,7 @@ "et": "siht", "lt": "proskyna", "ru": "просека", + "sl": "poseka", "uk": "просіка" }, "dyke": { @@ -31933,6 +36004,7 @@ "bg": "дига", "ca": "dic", "cs": "hráz", + "cy": "llifglawdd", "da": "dige", "de": "deich", "el": "ανάχωμα", @@ -31942,6 +36014,8 @@ "fa": "خاکدیوار", "fi": "penger", "fr": "digue", + "ga": "leibhé", + "gl": "dique", "he": "סוללה", "hi": "तटबन्ध", "hr": "nasip", @@ -31952,17 +36026,18 @@ "ko": "제방", "lt": "damba", "lv": "dambis", - "ms": "benteng", "nb": "dike", "nl": "dijk", - "pl": "grobla", + "pl": "tama", "pt": "dique", "ro": "dig", "ru": "дамба", "sk": "hrádza", "sl": "nasip", - "sv": "vall", + "sq": "diga", + "sv": "vall mot översvämning", "ta": "லெவிக்கள்", + "te": "కరకట్ట", "th": "คันดินธรรมชาติ", "tr": "su seti", "uk": "дамба", @@ -31987,9 +36062,10 @@ "id": "tiang bendera", "it": "portabandiera", "ja": "旗竿", - "ms": "tiang bendera", + "lt": "flagštokas", "nb": "flaggstang", "nl": "vlaggenmast", + "pl": "flagsztok", "pt": "mastro de bandeira", "pt-br": "porta-bandeira", "ru": "флагшток", @@ -32009,7 +36085,7 @@ "fr": "gazomètre", "he": "גליל גז", "hi": "गैसधानी", - "hu": "teleszkópos gáztározó", + "hu": "gáztározó", "it": "gasometro", "ja": "ガスタンク", "nb": "gassklokke", @@ -32051,6 +36127,7 @@ "ru": "геоглиф", "sk": "geoglyf", "sl": "geoglif", + "sq": "gjeoglifi", "sv": "geoglyf", "uk": "геогліфи", "zh": "地畫" @@ -32070,7 +36147,7 @@ "hu": "szállítóberendezés", "ja": "コンベア", "ko": "컨베이어 시스템", - "ms": "sistem conveyor", + "nl": "transportsysteem", "pl": "przenośnik", "ru": "конвеер", "sl": "transporterski sistem", @@ -32084,6 +36161,7 @@ "groyne": { "af": "krib", "ar": "مصد الأمواج", + "cy": "grwyn", "da": "høfde", "de": "buhne", "en": "groyne", @@ -32094,7 +36172,6 @@ "it": "pennello a mare", "ja": "水制", "ko": "방사제", - "ms": "benteng hakisan", "nl": "krib", "pl": "ostroga regulacyjna", "ru": "буна", @@ -32131,6 +36208,7 @@ "fa": "یخچال", "fr": "glacière", "he": "בית קרח", + "hu": "jégverem", "it": "neviera", "ja": "氷室", "ko": "빙실", @@ -32142,6 +36220,7 @@ "pt": "casa de gelo", "ro": "ghețărie", "ru": "ледник", + "sl": "ledenica", "sv": "iskällare", "uk": "якчал", "zh": "冰窖" @@ -32152,11 +36231,13 @@ "cs": "hmyzí hotel", "da": "insekthotel", "de": "insektenhotel", + "el": "ξενοδοχείο εντόμων", "en": "insect hotel", "es": "caja de insectos", "et": "putukahotell", "fi": "hyönteishotelli", "fr": "hôtel à insectes", + "gl": "hotel de insectos", "he": "בית מלון לחרקים", "hu": "rovarhotel", "it": "albergo per insetti", @@ -32174,6 +36255,7 @@ "bg": "пещ", "ca": "forn", "cs": "pec", + "cy": "odyn", "de": "brennofen", "el": "καμίνι", "en": "kiln", @@ -32181,6 +36263,8 @@ "fa": "کوره آجرپزی سنتی", "fi": "polttouuni", "fr": "touraille", + "ga": "áith", + "gd": "àth", "hi": "भट्टा", "hu": "égetőkemence", "id": "tanur", @@ -32193,6 +36277,7 @@ "pt": "forno", "ru": "промышленная печь", "sl": "žgalna peč", + "tr": "kireç ocağı", "uk": "промислова піч", "zh": "窯", "zh-cn": "窑" @@ -32211,7 +36296,7 @@ "fr": "aire de lancement", "he": "כן שיגור", "hr": "lansirna rampa", - "hu": "indítóállás", + "hu": "indítóállvány", "it": "rampa di lancio", "ja": "発射台", "ko": "발사대", @@ -32235,6 +36320,7 @@ "bg": "морски фар", "ca": "far", "cs": "maják", + "cy": "goleudy", "da": "fyr", "de": "leuchtturm", "el": "φάρος", @@ -32244,6 +36330,9 @@ "fa": "فانوس دریایی", "fi": "majakka", "fr": "phare", + "ga": "teach solais", + "gd": "taigh-solais", + "gl": "faro", "he": "מגדלור", "hi": "प्रकाशस्तम्भ", "hr": "svjetionik", @@ -32256,7 +36345,6 @@ "lv": "bāka", "ml": "വിളക്കുമാടം", "mr": "दीपगृह", - "ms": "rumah api", "nb": "fyr", "nl": "vuurtoren", "pl": "latarnia morska", @@ -32265,8 +36353,10 @@ "ru": "маяк", "sk": "maják", "sl": "svetilnik", + "sq": "fanar", "sv": "fyr", "ta": "கலங்கரை விளக்கம்", + "te": "దీపస్తంభం", "th": "ประภาคาร", "tr": "deniz feneri", "uk": "маяк", @@ -32291,7 +36381,7 @@ "de": "sendemast", "el": "ιστός αναμετάδοσης", "en": "transmitter mast", - "es": "torre de telecomunicaciones", + "es": "torreta de telecomunicaciones", "et": "saatemast", "fa": "دکل مخابراتی", "fi": "masto", @@ -32303,14 +36393,13 @@ "ja": "電波塔", "ko": "방송탑", "lt": "stiebas", - "ms": "tiang dan menara radio", "nl": "zendmast", "pl": "maszt radiowy", "pt": "torres e antenas de rádio", "ru": "антенно-мачтовое сооружение", "sl": "drog za oddajnik", "sv": "sändarmast", - "tr": "radyo direkleri ve kuleleri", + "tr": "radyo direği", "uk": "радіовежа", "vi": "tháp truyền hình", "zh": "廣播塔", @@ -32324,9 +36413,9 @@ "de": "schacht", "en": "mine shaft", "es": "pozo", - "fr": "puits de mine", + "fr": "puits", "hu": "akna", - "id": "poros tambang", + "id": "poros", "it": "pozzo", "ja": "竪坑", "nb": "sjakt", @@ -32345,8 +36434,11 @@ "es": "estación de monitoreo o control", "fi": "mittausasema", "fr": "station d'observation", + "ga": "stáisiún monatóireachta", "he": "תחנת ניטור", + "hu": "megfigyelőállomás", "ja": "監視局", + "ko": "관측소", "nl": "waarnemingsstation", "sl": "merilna postaja", "sv": "mätningsstation" @@ -32354,7 +36446,40 @@ "nesting_site": { "cs": "hnízdní pomůcka", "de": "nisthilfe", - "en": "nesting aid" + "en": "nesting aid", + "sl": "gnezdilni pripomoček" + }, + "obelisk": { + "ar": "مسلة", + "be": "абеліск", + "bg": "обелиск", + "ca": "obelisc", + "cy": "obelisg", + "el": "οβελίσκος", + "en": "obelisk", + "es": "obelisco", + "fa": "ابلیسک", + "fi": "obeliski", + "fr": "obélisque", + "ga": "oibilisc", + "gl": "obelisco", + "he": "אובליסק", + "hi": "ओबिलिस्क", + "hu": "obeliszk", + "it": "obelisco", + "ja": "オベリスク", + "kn": "ಒಬೆಲಿಸ್ಕ್", + "ko": "오벨리스크", + "lt": "obeliskas", + "lv": "obelisks", + "pt": "obelisco", + "ro": "obelisc", + "ru": "обелиск", + "sq": "obelisku", + "ta": "கல்தூபி", + "tr": "dikilitaş", + "uk": "обеліск", + "zh": "方尖碑" }, "observatory": { "af": "sterrewag", @@ -32363,6 +36488,7 @@ "bg": "обсерватория", "ca": "observatori", "cs": "observatoř", + "cy": "arsyllfa", "da": "observatorium", "de": "observatorium", "el": "αστεροσκοπείο", @@ -32372,12 +36498,14 @@ "fa": "رصدخانه", "fi": "observatorio", "fr": "observatoire", + "ga": "faireachlann", + "gl": "observatorio", "he": "מצפה", "hi": "वेधशाला", "hr": "opservatorij", "hu": "obszervatórium", "id": "observatorium", - "it": "osservatorio astronomico", + "it": "osservatorio", "ja": "観測所", "kn": "ವೇಧಶಾಲೆ", "ko": "관측소", @@ -32385,7 +36513,6 @@ "lv": "observatorija", "ml": "വാനനിലയം", "mr": "वेधशाळा", - "ms": "balai cerap", "nb": "observatorium", "nl": "observatorium", "pl": "obserwatorium", @@ -32394,8 +36521,10 @@ "ru": "обсерватория", "sk": "observatórium", "sl": "observatorij", + "sq": "observatori", "sv": "observatorium", "ta": "நோக்காய்வகம்", + "te": "ఖగోళ వేధశాల", "th": "หอดูดาว", "tr": "gözlemevi", "uk": "обсерваторія", @@ -32411,6 +36540,7 @@ "bg": "нефтена платформа", "ca": "plataforma petroliera", "cs": "ropná plošina", + "cy": "platfform drilio", "da": "olieboreplatform", "de": "bohrplattform", "en": "oil platform", @@ -32418,13 +36548,14 @@ "fa": "سکوی نفت", "fi": "öljynporauslautta", "fr": "plate-forme pétrolière", + "ga": "rige ola", + "gl": "plataforma petrolífera", "he": "אסדת קידוח", "hr": "naftna platforma", "id": "anjungan lepas pantai", "it": "piattaforma petrolifera", "ja": "石油プラットフォーム", "ko": "석유 플랫폼", - "ms": "pelantar minyak", "nb": "oljeplattform", "nl": "productieplatform", "pl": "platforma wiertnicza", @@ -32438,10 +36569,30 @@ "vi": "giàn khoan dầu", "zh": "石油平台" }, + "oxidation_ditch": { + "en": "oxidation ditch" + }, + "paifang": { + "ca": "païfang", + "de": "pailou", + "en": "paifang", + "fr": "païfang", + "ja": "牌坊", + "ko": "패방", + "nb": "pailou", + "nl": "chinese poort", + "ru": "пайлоу", + "sl": "pailou", + "th": "ไผฟาง", + "uk": "пайлоу", + "vi": "cổng làng", + "zh": "牌坊" + }, "petroleum_well": { "ar": "بئر نفط", "ca": "pou petrolífer", "cs": "ropný vrt", + "cy": "ffynnon olew", "de": "ölquelle", "el": "πετρελαιοπηγή", "en": "oil well", @@ -32454,13 +36605,13 @@ "it": "pozzo petrolifero", "ja": "油井", "ko": "유정", - "ms": "telaga minyak", "nb": "oljebrønn", "nl": "oliebron", "pl": "szyb naftowy", "pt": "poço de petróleo", "ru": "нефтяная скважина", "sl": "naftna vrtina", + "sq": "pusi i naftës", "ta": "எண்ணெய்க் கிணறு", "tr": "neft quyusu", "uk": "нафтова свердловина", @@ -32481,6 +36632,8 @@ "fa": "کوتاهاسکله", "fi": "laituri", "fr": "estacade", + "ga": "caladh", + "gl": "embarcadoiro", "he": "מזח", "id": "kade", "it": "pontile", @@ -32500,12 +36653,12 @@ "tr": "i̇skele", "uk": "пірс", "ur": "پن توڑ پشتہ", - "zh": "栈桥", + "zh": "突堤碼頭", "zh-hk": "碼頭" }, "pipeline": { "af": "pypleiding", - "ar": "جعبة", + "ar": "شبكة أنابيب", "be": "трубаправод", "bg": "тръбопровод", "ca": "canonada", @@ -32519,9 +36672,10 @@ "fa": "لولهکشی", "fi": "putkisto", "fr": "canalisation", + "ga": "píobánra", "he": "צנרת", "hr": "cjevovod", - "hu": "vízvezeték", + "hu": "csővezeték", "id": "pipa air", "it": "sistemi di tubazioni", "ja": "配管", @@ -32543,9 +36697,11 @@ }, "planter": { "ar": "حاوية نبات", + "cs": "pěstební nádoby", "de": "pflanzgefäß", "en": "plant container", "fr": "bac à plantes", + "hu": "növénytartó", "it": "fioriera", "lv": "augu konteiners", "nl": "plantenbak", @@ -32554,40 +36710,48 @@ "quay": { "ar": "رصيف بحري", "be": "прыстань", - "bg": "кей", + "bg": "причал", "ca": "moll", "cs": "přístaviště", + "cy": "pier", "da": "kaj", - "de": "kai", + "de": "bootssteg", + "de-ch": "kai", "el": "αποβάθρα", - "en": "wharf", - "es": "muelle", + "en": "berth", + "en-ca": "wharf", + "en-gb": "wharf", + "es": "atraque", "et": "kai", "fa": "بندرگاه", "fi": "satamalaituri", - "fr": "quai", - "he": "רציף ימי", - "hu": "rakpart", - "id": "dermaga", - "it": "banchina", - "ja": "埠頭", - "ko": "부두", - "lt": "molas", + "fr": "poste d'amarrage", + "ga": "caladh", + "gl": "atracadoiro", + "he": "מרצף", + "hu": "kikötőhely", + "id": "punggahan", + "it": "ancoraggio", + "ja": "係留施設", + "ko": "선착장", + "lt": "laivavietė", "mr": "धक्का", - "ms": "dermaga", "nb": "kai", "nl": "kade", "pl": "nabrzeże", - "pt": "ancoradouro", + "pt": "atracadouro", + "pt-br": "ancoradouro", "ro": "cheu", - "ru": "пристань", - "sl": "nabrežje", + "ru": "причал", + "sl": "privez", "sv": "kaj", + "th": "ที่จอดเรือ", "tr": "iskele", - "uk": "пірс", + "uk": "причал", "ur": "گودی", - "vi": "khu bến cảng", - "zh": "碼頭" + "vi": "bến cảng", + "zh": "泊位", + "zh-hk": "碼頭" }, "satellite_dish": { "ar": "طبق القمر الصناعي", @@ -32598,15 +36762,17 @@ "es": "antena parabólica", "et": "satelliiditaldrik", "fa": "دیش ماهواره", + "fi": "satelliittiantenni", "he": "צלחת לוויין", "ja": "衛星放送受信用アンテナ", "ml": "സാറ്റലൈറ്റ് ഡിഷ്", - "ms": "piring satelit", "nb": "parabolantenne", "nl": "schotelantenne", "pl": "antena satelitarna", + "pt-br": "antena parabólica", "ru": "спутниковая антенна", - "sl": "satelitski krožnik", + "sl": "satelitska antena", + "sv": "satellitantenn", "th": "จานดาวเทียม", "uk": "супутникова антена", "ur": "سیارچی وصولہ", @@ -32614,10 +36780,11 @@ "zh-cn": "卫星锅" }, "sewer_vent": { - "en": "sewer vent" + "en": "sewer vent", + "ga": "píopa bréantais" }, "silo": { - "ar": "صومعة غلال", + "ar": "صومعة", "bg": "силоз", "ca": "sitja", "el": "σιλό", @@ -32658,6 +36825,7 @@ "bg": "терикон", "ca": "amàs d'escòries", "cs": "výsypka", + "cy": "tomen rwbel", "de": "abraumhalde", "en": "spoil tip", "es": "escombrera", @@ -32669,6 +36837,7 @@ "pl": "hałda", "ro": "haldă", "ru": "террикон", + "sl": "jalovišče", "uk": "терикон", "zh": "煤渣山" }, @@ -32685,6 +36854,8 @@ "fa": "مخازن اتمسفریک", "fi": "neste- tai kaasusäiliö", "fr": "réservoir", + "ga": "taiscumar", + "gl": "tanque", "hu": "gyűjtőtartály", "it": "serbatoio", "ja": "貯蔵タンク", @@ -32703,7 +36874,9 @@ "de": "straßenschrank", "en": "street cabinet", "fr": "armoire de rue", - "ja": "屋外収納キャビネット" + "it": "armadio stradale", + "ja": "屋外収納キャビネット", + "sv": "buntlåda" }, "surveillance": { "af": "waarneming", @@ -32714,10 +36887,13 @@ "da": "overvågning", "de": "überwachung", "en": "surveillance", + "en-gb": "security camera", + "en-us": "security camera", "es": "vigilancia", "et": "varjatud jälgimine", "fa": "نظارت", "fi": "valvonta", + "ga": "faireachas", "he": "מעקב", "hu": "megfigyelés", "id": "pengawasan", @@ -32725,13 +36901,14 @@ "ja": "サーベイランス", "ko": "감시", "lv": "novērošana", - "ms": "pengawasan", "nb": "overvåkning", "pl": "inwigilacja", "pt": "vigilância", "ro": "supraveghere", "ru": "негласное наблюдение", + "sk": "sledovanie", "sl": "nadzor", + "sq": "vëzhgimi", "sv": "övervakning", "tr": "gözetim", "uk": "спостереження (негласне)", @@ -32742,6 +36919,7 @@ }, "survey_point": { "af": "peilmerk", + "ar": "علامة سهمية", "be": "рэпер", "bg": "репер", "ca": "fita geodèsica", @@ -32755,12 +36933,14 @@ "fa": "نقاط مبنا", "fi": "kiintopiste", "fr": "repère de nivellement", + "ga": "marc airde", + "gl": "vértice xeodésico", "hr": "nivelmanski reper", "hu": "földmérési alappont", "id": "tanda patok", "it": "vertice geodetico", "ja": "水準点", - "ms": "tanda aras", + "ko": "수준점", "nb": "fastmerke", "nl": "geodetisch meetpunt", "pl": "reper", @@ -32786,6 +36966,7 @@ "ja": "尾鉱ダム", "pt": "barragem de rejeitos", "ru": "хвостохранилище", + "sv": "slaggdamm", "tr": "atık depolama tesisi", "uk": "хвостосховище", "zh": "尾礦壩" @@ -32797,6 +36978,7 @@ "bg": "телескоп", "ca": "telescopi", "cs": "dalekohled", + "cy": "telesgop", "da": "kikkert", "de": "teleskop", "el": "τηλεσκόπιο", @@ -32806,6 +36988,8 @@ "fa": "تلسکوپ", "fi": "kaukoputki", "fr": "télescope", + "ga": "teileascóp", + "gl": "telescopio", "he": "טלסקופ", "hi": "दूरदर्शी", "hr": "teleskop", @@ -32819,7 +37003,6 @@ "lv": "teleskops", "ml": "ദൂരദർശിനി", "mr": "दुर्बीण", - "ms": "teleskop", "nb": "teleskop", "nl": "telescoop", "pl": "teleskop", @@ -32828,8 +37011,10 @@ "ru": "телескоп", "sk": "teleskop", "sl": "teleskop", + "sq": "teleskopi", "sv": "teleskop", "ta": "தொலைநோக்கி", + "te": "టెలిస్కోపు", "th": "กล้องโทรทรรศน์", "tr": "teleskop", "uk": "телескоп", @@ -32848,6 +37033,7 @@ "es": "era", "et": "rehealune", "fr": "aire de battage", + "gl": "eira", "he": "גורן", "hr": "gumno", "it": "aia (agricoltura)", @@ -32883,53 +37069,51 @@ "af": "toring", "ar": "برج", "be": "вежа", - "bg": "телевизионна кула", - "ca": "torre de tv", - "cs": "televizní věž", - "da": "tv-tårn", - "de": "fernsehturm", - "el": "πύργος τηλεόρασης", - "en": "television tower", - "en-ca": "tower", - "en-gb": "tower", - "es": "torre de telecomunicaciones", - "et": "teletorn", + "bg": "кула", + "ca": "torre", + "cs": "věž", + "cy": "tŵr", + "da": "tårn", + "de": "turm", + "el": "πύργος", + "en": "tower", + "es": "torre", + "et": "torn", "fa": "برج", "fi": "torni", - "fr": "tour de télévision", - "he": "מגדל טלוויזיה", + "fr": "tour", + "ga": "túr", + "gl": "torre", + "he": "מגדל", "hi": "बुर्ज", "hr": "toranj", - "hu": "tévétorony", + "hu": "torony", "id": "menara", - "it": "torre televisiva", - "ja": "テレビ塔", + "it": "torre", + "ja": "塔", "ko": "탑", - "lt": "televizijos bokštas", - "lv": "televīzijas tornis", + "lt": "bokštas", + "lv": "tornis", "ml": "ഗോപുരം", "mr": "मनोरा", - "ms": "menara", - "nb": "tv-tårn", - "nl": "communicatietoren", - "pl": "wieża telewizyjna", - "pt": "torre de telecomunicações", - "pt-br": "torre", + "nb": "tårn", + "nl": "toren", + "pl": "wieża", + "pt": "torre", "ro": "turn", - "ru": "телебашня", - "sk": "televízna veža", - "sl": "televizijski stolp", - "sv": "tv-torn", + "ru": "башня", + "sk": "veža", + "sl": "stolp", + "sq": "kullë", + "sv": "torn", "ta": "கோபுரம்", "th": "หอคอย", - "tr": "televizyon kulesi", - "uk": "телевежа", + "tr": "kule", + "uk": "вежа", "ur": "برج", "vi": "tháp", - "zh": "电视塔", - "zh-cn": "塔式建筑", - "zh-hk": "塔式建築", - "zh-tw": "塔式建築" + "zh": "塔式建築", + "zh-cn": "塔式建筑" }, "urine_deflector": { "ar": "عاكس البول", @@ -32939,12 +37123,13 @@ "it": "deflettore di urina" }, "ventilation_shaft": { + "cy": "siafft awyr", "de": "wetterschacht", "en": "ventilation shaft", "fr": "puit d'aération", "he": "פיר אוורור", "it": "pozzo di ventilazione", - "ja": "換気塔", + "ja": "換気立坑", "nl": "ventilatieschacht", "ru": "вентиляционная шахта", "sl": "prezračevalni jašek", @@ -32956,7 +37141,7 @@ "he": "שלט יישוב" }, "wastewater_plant": { - "ca": "planta de tractament d'aigües residuals", + "ca": "depuradora d'aigües residuals", "cs": "čistírna odpadních vod", "da": "rensningsanlæg", "de": "kläranlage", @@ -32964,21 +37149,25 @@ "es": "planta de tratamiento de aguas residuales", "fi": "jätevedenpuhdistamo", "fr": "station de traitement des eaux usées", + "gl": "estación depuradora de augas residuais", "he": "מכון לטיהור שפכים", "hi": "अपशिष्ट जलोपचार", "id": "instalasi pengolahan air limbah", "it": "impianto di depurazione", "ja": "下水処理場", "ko": "하폐수 처리", + "lv": "notekūdeņu attīrīšanas stacija", "nb": "kloakkanlegg", "nl": "rioolzuiveringsinstallatie", "pl": "oczyszczalnia ścieków", "pt": "estação de tratamento de águas residuais", "ro": "stație de epurare", + "ru": "очистные сооружения", "sk": "čistiareň odpadových vôd", "sl": "čistilna naprava", "sv": "reningsverk", - "vi": "nhà máy xử lý nước thải" + "vi": "nhà máy xử lý nước thải", + "zh-hk": "污水處理廠" }, "water_tap": { "de": "trinkwassersäule", @@ -32995,6 +37184,7 @@ "bg": "водонапорна кула", "ca": "torre d'aigua", "cs": "vodárenská věž", + "cy": "twr dŵr", "da": "vandtårn", "de": "wasserturm", "en": "water tower", @@ -33003,6 +37193,7 @@ "fa": "برج آب", "fi": "vesitorni", "fr": "château d'eau", + "gl": "torre de auga", "he": "מגדל מים", "hr": "vodotoranj", "hu": "víztorony", @@ -33034,6 +37225,7 @@ "bg": "кладенец", "ca": "pou", "cs": "studna", + "cy": "ffynnon", "da": "brønd", "de": "brunnen", "el": "πηγάδι", @@ -33043,6 +37235,8 @@ "fa": "چاه آب", "fi": "kaivo", "fr": "puits à eau", + "ga": "tobar", + "gl": "pozo", "he": "באר מים", "hi": "कूप", "hr": "bunar", @@ -33056,7 +37250,6 @@ "lv": "aka", "ml": "കിണർ", "mr": "विहीर", - "ms": "perigi", "nb": "brønn", "nl": "waterput", "pl": "studnia", @@ -33067,6 +37260,8 @@ "sl": "vodnjak", "sv": "brunn", "ta": "கிணறு", + "te": "బావి", + "tr": "kuyu", "uk": "криниця", "ur": "کنواں", "vi": "giếng khoan", @@ -33083,6 +37278,7 @@ "ja": "浄水場", "nb": "vannverk", "nl": "waterwerk", + "pt": "estação de tratamento de água", "sk": "vodáreň", "sl": "naprava za prečiščevanje pitne vode", "sv": "vattenverk", @@ -33095,6 +37291,7 @@ "bg": "воденица", "ca": "molí hidràulic", "cs": "vodní mlýn", + "cy": "melin ddŵr", "da": "vandmølle", "de": "wassermühle", "el": "νερόμυλος", @@ -33104,6 +37301,7 @@ "fa": "آسیاب آبی", "fi": "vesimylly", "fr": "moulin à eau", + "gl": "muíño de auga", "he": "טחנת מים", "hi": "पनचक्की", "hr": "vodenice", @@ -33115,7 +37313,6 @@ "lt": "vandens malūnas", "lv": "ūdensdzirnavas", "mr": "पाणचक्की", - "ms": "kincir air", "nb": "vannmølle", "nl": "watermolen", "pl": "młyn wodny", @@ -33125,6 +37322,7 @@ "sk": "vodný kolesový mlyn", "sl": "vodni mlin", "sv": "vattenkvarn", + "te": "నీటి మిల్లు", "tr": "su değirmeni", "uk": "водяний млин", "ur": "پن چکی", @@ -33136,6 +37334,8 @@ "be": "флюгер", "bg": "ветропоказател", "ca": "penell", + "cs": "větrná korouhev", + "cy": "ceiliog gwynt", "da": "vindfløj", "de": "windrichtungsgeber", "el": "ανεμοδείκτης", @@ -33146,6 +37346,8 @@ "fa": "بادنما", "fi": "tuuliviiri", "fr": "girouette", + "ga": "eite ghaoithe", + "gl": "cataventos", "he": "שבשבת", "hi": "वात दिग्दर्शक", "hr": "vjetrulja", @@ -33179,6 +37381,7 @@ "fi": "vihersilta", "fr": "écoduc", "he": "מעבר אקולוגי", + "id": "perlintasan satwa liar", "it": "passaggio faunistico", "ja": "動物横断路", "ko": "야생동물 이동 통로", @@ -33203,6 +37406,7 @@ "bg": "вятърна мелница", "ca": "molí de vent", "cs": "větrný mlýn", + "cy": "melin wynt", "da": "vindmølle", "de": "windmühle", "el": "ανεμόμυλος", @@ -33212,6 +37416,8 @@ "fa": "آسیاب بادی", "fi": "tuulimylly", "fr": "moulin à vent", + "ga": "muileann gaoithe", + "gl": "muiño de vento", "he": "טחנת רוח", "hi": "पवनचक्की", "hr": "vjetrenjača", @@ -33224,7 +37430,6 @@ "lt": "vėjo malūnas", "lv": "vējdzirnavas", "mr": "पवनचक्की", - "ms": "kincir angin", "nb": "vindmølle", "nl": "windmolen", "pl": "wiatrak", @@ -33235,6 +37440,7 @@ "sl": "mlin na veter", "sv": "väderkvarn", "ta": "காற்றாலை", + "te": "గాలి మర", "th": "กังหันลมวินด์มิลล์", "tr": "yel değirmeni", "uk": "вітряк", @@ -33268,6 +37474,7 @@ "bg": "завод", "ca": "fàbrica", "cs": "továrna", + "cy": "ffatri", "da": "fabrik", "de": "fabrik", "el": "εργοστάσιο", @@ -33277,6 +37484,9 @@ "fa": "کارخانه", "fi": "tehdas", "fr": "usine", + "ga": "monarcha", + "gd": "factoraidh", + "gl": "fábrica", "he": "בית חרושת", "hi": "कारखाना", "hr": "tvornica", @@ -33289,7 +37499,6 @@ "lt": "gamykla", "lv": "rūpnīca", "mr": "कारखाना", - "ms": "kilang", "nb": "fabrikk", "nl": "fabriek", "pl": "fabryka", @@ -33298,8 +37507,10 @@ "ru": "фабрика", "sk": "továreň", "sl": "tovarna", + "sq": "fabrikë", "sv": "fabrik", "ta": "தொழிற்சாலை", + "te": "కర్మాగారము", "th": "โรงงาน", "tr": "fabrika", "uk": "фабрика", @@ -33321,6 +37532,7 @@ "ml": "ഓപ്പൺസ്ട്രീറ്റ്മാപ്പ്", "mr": "ओपनस्ट्रीट मॅप", "ta": "ஓபன்சிரீட்மேப்", + "te": "ఓపెన్స్ట్రీట్మ్యాప్", "th": "โอเพินสตรีตแมป", "ur": "اوپن اسٹریٹ میپ", "zh": "開放街圖", @@ -33330,6 +37542,7 @@ "map_type": { "topo": { "ar": "خريطة طبوغرافية", + "be": "тапаграфічная карта", "bg": "топографска карта", "ca": "mapa topogràfic", "cs": "topografická mapa", @@ -33341,6 +37554,7 @@ "fa": "نقشه توپوگرافی", "fi": "topografinen kartta", "fr": "carte topographique", + "ga": "léarscáil rilífe", "he": "מפה טופוגרפית", "hi": "स्थलाकृतिक मानचित्र", "hr": "topografski zemljovid", @@ -33351,7 +37565,6 @@ "ko": "지형도", "lv": "topogrāfiskā karte", "ml": "ധരാതലീയ ഭൂപടം", - "ms": "peta rupa bumi", "nb": "topografisk kart", "nl": "topografische kaart", "pl": "mapa topograficzna", @@ -33377,7 +37590,8 @@ "it": "toposcopio", "nb": "retningsskive", "nl": "oriëntatietafel", - "pt": "toposcópio" + "pt": "toposcópio", + "ru": "топоскоп" } }, "maritime": { @@ -33401,7 +37615,6 @@ "ja": "海上境界線", "ko": "해상경계선", "lv": "jūras robeža", - "ms": "sempadan laut", "nb": "maritim grense", "nl": "zeegrens", "pl": "morska granica państwowa", @@ -33439,7 +37652,6 @@ "et": "akupressuur", "fa": "طب فشاری", "fi": "akupainanta", - "fr": "do in", "hi": "एक्युप्रेशर", "hu": "akupresszúra", "id": "akupresur", @@ -33450,7 +37662,6 @@ "nb": "akupressur", "nl": "acupressuur", "pl": "akupresura", - "pt": "do-in", "ro": "acupresură", "ru": "акупрессура", "sk": "akupresúra", @@ -33459,18 +37670,20 @@ "ta": "அக்குபிரசர்", "tr": "akupresür", "uk": "акупресура", + "vi": "bấm huyệt", "zh": "穴位按壓" }, "chinese": { "ar": "تيو نا", "de": "tuina", "en": "tui na", - "fr": "an mo / tui na", + "fi": "tuina-hieronta", "he": "טוינה", "it": "tuina", "ja": "推拿", "ko": "추나의학", "pt": "tuiná", + "sv": "tuinamassage", "tr": "tuina", "zh": "推拿" }, @@ -33479,6 +37692,7 @@ "ar": "معالجة يدوية", "ca": "quiropràctica", "cs": "chiropraxe", + "cy": "ceiropracteg", "da": "kiropraktik", "de": "chiropraktik", "el": "χειροπρακτική", @@ -33488,6 +37702,7 @@ "fa": "کایروپرکتیک", "fi": "kiropraktiikka", "fr": "chiropratique", + "ga": "círichleachtadh", "he": "כירופרקטיקה", "hi": "काइरोप्रेक्टिक", "hu": "kiropraktika", @@ -33496,11 +37711,11 @@ "ja": "カイロプラクティック", "ko": "카이로프랙틱", "lt": "chiropraktika", - "ms": "kiropraktik", "nb": "kiropraktikk", "nl": "chiropraxie", "pl": "chiropraktyka", "pt": "quiropraxia", + "ro": "chiropractica", "ru": "вертебронеурология", "sl": "kiropraktika", "sv": "kiropraktik", @@ -33534,12 +37749,16 @@ "cs": "thajská masáž", "de": "thai-massage", "el": "ταϊλανδέζικο μασάζ", - "en": "thai massage", + "en": "traditional thai massage", + "en-ca": "thai massage", + "en-gb": "thai massage", "es": "masaje thai", "fa": "تای ماساژ", "fi": "thaihieronta", "fr": "massage thaï", + "gl": "masaxe tailandesa", "he": "עיסוי תאילנדי", + "hi": "पारंपरिक थाई मालिश", "hu": "thai masszázs", "id": "pijat thai", "it": "massaggio thai", @@ -33571,12 +37790,14 @@ "fa": "پلی", "fi": "akryyli", "fr": "polyméthacrylate de méthyle", + "ga": "peirspéacs", + "gl": "polimetilmetacrilato", "he": "זכוכית אקרילית", "hi": "पॉलीमेथिल मेथाक्रिलेट", "hu": "poli(metil-metakrilát)", "id": "kaca akrilik", "it": "polimetilmetacrilato", - "ja": "ポリメタクリル酸メチル", + "ja": "ポリ(メタクリル酸メチル)", "kn": "ಅಕ್ರಿಲಿಕ್", "ko": "폴리메틸 메타크릴레이트", "lv": "polimetilmetakrilāts", @@ -33585,6 +37806,7 @@ "nl": "polymethylmethacrylaat", "pl": "poli(metakrylan metylu)", "pt": "acrílico", + "ro": "polimetil metacrilat", "ru": "органическое стекло", "sk": "polymetylmetakrylát", "sl": "polimetilmetaakrilat", @@ -33601,6 +37823,7 @@ "bg": "бетон", "ca": "formigó", "cs": "beton", + "cy": "concrit", "da": "beton", "de": "beton", "el": "σκυρόδεμα", @@ -33610,6 +37833,9 @@ "fa": "بتن", "fi": "betoni", "fr": "béton de ciment", + "ga": "coincréit", + "gd": "cruadhtan", + "gl": "formigón", "he": "בטון", "hi": "कंक्रीट", "hr": "beton", @@ -33622,7 +37848,6 @@ "lt": "betonas", "lv": "betons", "ml": "കോൺക്രീറ്റ്", - "ms": "konkrit", "nb": "betong", "nl": "beton", "pl": "beton", @@ -33632,8 +37857,10 @@ "ru": "бетон", "sk": "betón", "sl": "beton", + "sq": "betoni", "sv": "betong", "ta": "பைஞ்சுதை", + "te": "కాంక్రీటు", "th": "คอนกรีต", "tr": "beton", "uk": "бетон", @@ -33658,6 +37885,8 @@ "fa": "اپوکسی", "fi": "epoksi", "fr": "époxy", + "ga": "roisín eapocsach", + "gl": "epoxi", "he": "אפוקסי", "hr": "epoksidne smole", "hu": "epoxigyanta", @@ -33690,6 +37919,7 @@ "bg": "титан", "ca": "titani", "cs": "titan", + "cy": "titaniwm", "da": "titan", "de": "titan", "el": "τιτάνιο", @@ -33699,6 +37929,8 @@ "fa": "تیتانیم", "fi": "titaani", "fr": "titane", + "ga": "tíotáiniam", + "gl": "titanio", "he": "טיטניום", "hi": "टाइटेनियम", "hr": "titanij", @@ -33718,8 +37950,10 @@ "ru": "титан", "sk": "titán", "sl": "titan", + "sq": "titani", "sv": "titan", "ta": "டைட்டேனியம்", + "te": "టైటానియం", "th": "ไทเทเนียม", "tr": "titanyum", "uk": "титан", @@ -33738,8 +37972,10 @@ "fa": "فولاد هوازده", "fi": "säänkestävä teräs", "fr": "acier corten", + "gl": "aceiro corten", "he": "פלדת בליה", "hr": "cor-ten čelik", + "hu": "corten acél", "it": "acciaio corten", "ja": "耐候性鋼", "nb": "rusttregt stål", @@ -33751,15 +37987,13 @@ "sv": "cortenstål", "uk": "кортенова сталь", "zh": "耐候钢" - }, - "wood": { - "en": "baltimore salt box" } }, "megalith_type": { "alignment": { "ca": "alineament de pedres", "cs": "kamenná řada", + "cy": "aliniad cerrig", "da": "stenrække", "de": "steinreihe", "el": "ογκόλιθοι τοποθετημένοι εν σειρά", @@ -33787,6 +38021,8 @@ "et": "kivikirstkalme", "fa": "گور صندوقی", "fr": "ciste", + "ga": "ciste", + "gl": "cista", "it": "cista", "ja": "石棺", "nb": "hellekiste", @@ -33802,10 +38038,13 @@ "ar": "دُلمَن", "be": "дальмен", "bg": "долмен", + "cy": "cromlech", "da": "dysse", "el": "ντολμέν", "en": "dolmen", "fa": "سنگمیز", + "ga": "dolmain", + "gd": "cromleac", "he": "דולמן", "ja": "支石墓", "ko": "고인돌", @@ -33818,6 +38057,7 @@ "ru": "дольмен", "sv": "dös", "ta": "கல்திட்டை", + "te": "రాక్షస గూళ్లు", "th": "ดอลเมน", "uk": "дольмен", "vi": "mộ đá", @@ -33826,6 +38066,7 @@ "long_barrow": { "ar": "البارو الطويل", "ca": "túmul allargat", + "cy": "siambr gladdu hir", "da": "langdysse", "de": "hünenbett", "en": "long barrow", @@ -33834,6 +38075,7 @@ "fa": "گورپشته کشیده", "fi": "pitkäkumpu", "fr": "tumulus allongé", + "ga": "tulach fhada", "ja": "ロング・バロウ", "nb": "langhaug", "nl": "langgraf", @@ -33846,10 +38088,13 @@ "ar": "شاهد قائم", "be": "менгір", "bg": "менхир", + "cy": "maen hir", "da": "bautasten", "el": "μενίρ", "en": "menhir", "fa": "سنگافراشت", + "ga": "gallán", + "gd": "clach seasamh", "he": "מנהיר", "ja": "メンヒル", "ko": "선돌", @@ -33900,6 +38145,8 @@ "fa": "گور معبری", "fi": "käytävähauta", "fr": "tombe à couloir", + "ga": "tuama pasáiste", + "gl": "tumba de andadeiro", "it": "tomba a corridoio", "ja": "羨道墳", "ko": "연도분", @@ -33913,25 +38160,30 @@ "zh": "石隧墓" }, "ring_cairn": { + "cy": "carnedd gylchog", "en": "ring cairn", "es": "anillo de mojón" }, "round_barrow": { + "cy": "crug crwn", "en": "round barrow", "nb": "rundhaug", "nl": "ronde grafheuvel", "ru": "круглый курган", - "sl": "tumulus" + "sl": "tumul", + "tr": "yuvarlak el arabası" }, "stone_circle": { "ar": "دوائر الحجر", "ca": "cromlec", "cs": "kamenný kruh", + "cy": "cylch cerrig", "de": "steinkreis", "en": "stone circle", "fa": "گرداسنگ", "fi": "kivikehä", "fr": "cercle de pierres", + "ga": "liagchiorcal", "he": "מעגל אבנים", "hi": "शिलावर्त", "hr": "kameni krug", @@ -33986,6 +38238,7 @@ "es": "tholos", "fi": "tholos", "fr": "tholos", + "gl": "tholos", "he": "כוורת", "hu": "tholosz", "it": "thòlos", @@ -34004,8 +38257,10 @@ "well": { "de": "brunnenheiligtum", "en": "nuragic holy well", + "fr": "puits sacré nuragique", "it": "pozzo sacro nuragico", - "ru": "священный источник" + "ru": "священный источник", + "sl": "nuraški sveti vodnjak" } }, "memorial": { @@ -34013,18 +38268,21 @@ "af": "borsbeeld", "ar": "تمثال نصفي", "be": "бюст", - "bg": "бюст (паметник)", + "bg": "бюст", "cs": "busta", + "cy": "penddelw", "da": "buste", - "de": "büste", + "de": "porträtbüste", "el": "προτομή", "en": "bust", "es": "busto", "et": "büst", - "fa": "سردیس", + "fa": "بالاتنه", "fi": "rintakuva", "fr": "buste", - "he": "פרוטומה", + "ga": "dealbh bhrád", + "gl": "busto", + "he": "דיוקן חזה", "hr": "poprsje", "hu": "mellszobor", "id": "patung dada", @@ -34032,13 +38290,14 @@ "ja": "胸像", "kn": "ಭುಜ ಮತ್ತು ಎದೆಯುಳ್ಳ ಪ್ರತಿಮೆ", "ko": "흉상", + "lv": "biste", "nb": "byste", - "nl": "buste", + "nl": "borstbeeld", "pl": "popiersie", "pt": "busto", "ru": "бюст", "sk": "busta", - "sl": "doprsni kip", + "sl": "doprsni portret", "sv": "byst", "tr": "büst", "uk": "погруддя", @@ -34046,6 +38305,8 @@ "zh": "半身像" }, "cross": { + "cs": "pamětní kříž", + "cy": "croes coffa", "de": "gedenkkreuz", "en": "memorial cross", "es": "cruz conmemorativa", @@ -34053,6 +38314,7 @@ "hr": "spomen-križ", "nl": "gedenkkruis", "pl": "krzyż pamiątkowy", + "sl": "spominski križ", "zh": "紀念十字架" }, "ghost_bike": { @@ -34061,10 +38323,12 @@ "en": "ghost bike", "es": "bicianimitas", "fi": "haamupyörä", + "fr": "vélo fantôme", "hu": "szellembicikli", "id": "sepeda hantu", "it": "bici fantasma", "ja": "ゴーストバイク", + "nb": "spøkelsesykkel", "nl": "witte fiets", "pl": "duch roweru", "pt": "bicicleta fantasma", @@ -34074,33 +38338,10 @@ "zh": "幽靈單車", "zh-cn": "幽灵自行车" }, - "obelisk": { - "ar": "مسلة", - "be": "абеліск", - "bg": "обелиск", - "ca": "obelisc", - "el": "οβελίσκος", - "en": "obelisk", - "es": "obelisco", - "fa": "ابلیسک", - "fi": "obeliski", - "fr": "obélisque", - "he": "אובליסק", - "hi": "ओबिलिस्क", - "hu": "obeliszk", - "it": "obelisco", - "ja": "オベリスク", - "kn": "ಒಬೆಲಿಸ್ಕ್", - "ko": "오벨리스크", - "lt": "obeliskas", - "lv": "obelisks", - "pt": "obelisco", - "ro": "obelisc", - "ru": "обелиск", - "ta": "கல்தூபி", - "tr": "dikilitaş", - "uk": "обеліск", - "zh": "方尖碑" + "koshinto": { + "en": "kōshin-tō", + "ja": "庚申塔", + "zh": "庚申塔" }, "plaque": { "ar": "لافتة تاريخية", @@ -34108,6 +38349,7 @@ "bg": "паметна плоча", "ca": "placa commemorativa", "cs": "pamětní deska", + "cy": "plac coffa", "da": "mindetavle", "de": "gedenktafel", "el": "αναμνηστική πλακέτα", @@ -34117,14 +38359,16 @@ "fa": "لوح یادبود", "fi": "muistolaatta", "fr": "plaque commémorative", + "ga": "plaic chuimhneacháin", + "gl": "placa conmemorativa", "he": "לוחית זיכרון", "hr": "spomen-ploča", "hu": "emléktábla", "id": "plakat peringatan", "it": "targa commemorativa", "ja": "銘板", + "ko": "기념 명판", "lv": "piemiņas plāksne", - "ms": "plak peringatan", "nb": "minnetavle", "nl": "gedenkplaat", "pl": "tablica pamiątkowa", @@ -34146,12 +38390,15 @@ "bg": "статуя", "ca": "estàtua", "cs": "socha", + "cy": "cerfddelw", "el": "άγαλμα", "en": "statue", "es": "estatua", "et": "kuju", "fa": "تندیس", "fi": "patsas", + "ga": "dealbh", + "gl": "estatua", "he": "פסל דמות", "hi": "प्रतिमा", "hr": "kip", @@ -34164,7 +38411,6 @@ "lv": "statuja", "ml": "പ്രതിമ", "mr": "पुतळा", - "ms": "patung", "nl": "standbeeld", "pl": "posąg", "pt": "estátua", @@ -34172,8 +38418,10 @@ "ru": "статуя", "sk": "socha", "sl": "kip", + "sq": "statujë", "sv": "staty", "ta": "சிலை", + "te": "విగ్రహం", "th": "รูปปั้น", "tr": "heykel", "uk": "статуя", @@ -34187,6 +38435,7 @@ "bg": "стела", "ca": "estela", "cs": "stéla", + "cy": "coflech", "el": "στήλη", "en": "stele", "es": "estela", @@ -34194,11 +38443,13 @@ "fa": "سنگ یادبود", "fi": "steela", "fr": "stèle", + "ga": "liagán greanta", + "gl": "estela", "he": "אסטלה", "hr": "stela", "hu": "sztélé", "id": "prasasti", - "ja": "石碑", + "ja": "碑", "ko": "비석", "lt": "stela", "ml": "ശിലാഫലകം", @@ -34209,6 +38460,7 @@ "ru": "стела", "sk": "stéla", "sl": "stela", + "sq": "stela", "ta": "சிற்பத்தூண்", "th": "ศิลาจารึก", "tr": "stel", @@ -34219,38 +38471,29 @@ "stolperstein": { "af": "stolpersteine", "be": "камяні спатыкнення", - "ca": "stolpersteine", - "cs": "stolperstein", + "cy": "stolpersteine", "da": "snublesten", - "de": "stolperstein", "de-at": "stolpersteine", "de-ch": "stolpersteine", "el": "λίθοι μνήμης", - "en": "stumbling stone", - "en-ca": "stolperstein", - "en-gb": "stolperstein", + "en": "stolperstein", "es": "adoquín conmemorativo", "et": "stolpersteine", "fa": "سنگ سکندری", "fi": "kompastuskivet", - "fr": "stolperstein", + "ga": "stolpersteine", + "gd": "stolpersteine", + "gl": "stolpersteine", "he": "אבן נגף", - "hr": "stolpersteine", + "hr": "kamen spoticanja", "hu": "botlatókő", - "id": "stolperstein", - "it": "stolperstein", "ja": "つまずきの石", - "ms": "stolpersteine", "nb": "snublestein", - "nl": "stolperstein", - "pl": "stolpersteine", - "pt": "stolperstein", "pt-br": "stolpersteine", "ro": "stolpersteine", "ru": "камни преткновения", "sk": "stolpersteine", "sl": "stolpersteine", - "sv": "stolperstein", "tr": "tökezleyen taş", "uk": "камені спотикання", "vi": "stolpersteine", @@ -34259,6 +38502,7 @@ "stone": { "ca": "pedra commemorativa", "cs": "pamětní kámen", + "cy": "maen goffa", "da": "mindesten", "de": "gedenkstein", "en": "memorial stone", @@ -34267,7 +38511,7 @@ "fi": "muistokivi", "fr": "pierre mémorielle", "hu": "emlékkő", - "it": "cippo commemorativo", + "it": "pietra commemorativa", "ja": "石碑", "nb": "minnestein", "nl": "gedenksteen", @@ -34284,6 +38528,7 @@ "bg": "войнишки паметник", "ca": "memorial de guerra", "cs": "válečný památník", + "cy": "cofeb ryfel", "da": "krigsmindesmærke", "de": "kriegerdenkmal", "el": "μνημείο μνήμης για τον πόλεμο", @@ -34293,6 +38538,8 @@ "fa": "رزمیاد", "fi": "sotamuistomerkki", "fr": "monument aux morts", + "ga": "leacht cuimhneacháin cogaidh", + "gl": "monumento de guerra", "he": "אנדרטת מלחמה", "hu": "háborús emlékmű", "it": "memoriale di guerra", @@ -34324,6 +38571,7 @@ "es": "microcervecería", "fi": "panimoravintola", "fr": "broue-pub", + "ga": "micreaghrúdlann", "he": "מבשלת בוטיק", "hu": "mikrosörfőzde", "id": "kerajinan bir", @@ -34337,7 +38585,8 @@ "pt": "micro-cervejaria", "ro": "bere artizanală", "ru": "крафтовое пивоварение", - "sl": "mikropivovarna", + "sl": "pivovarniški lokal", + "sq": "birra brauhaus", "sv": "mikrobryggeri", "th": "ไมโครบรูอะรี", "tr": "küçük bira fabrikası", @@ -34352,6 +38601,7 @@ "bg": "военна академия", "ca": "acadèmia militar", "cs": "vojenská akademie", + "cy": "academi milwrol", "da": "officersskole", "de": "militärakademie", "el": "στρατιωτική ακαδημία", @@ -34361,6 +38611,8 @@ "fa": "دانشگاه نظامی", "fi": "sotilasakatemia", "fr": "académie militaire", + "ga": "acadamh míleata", + "gl": "academia militar", "he": "אקדמיה צבאית", "hr": "vojna akademija", "hu": "katonai akadémia", @@ -34370,7 +38622,6 @@ "ko": "사관학교", "lv": "militārā akadēmija", "mr": "सैनिकी शाळा", - "ms": "akademi ketenteraan", "nb": "krigsskole", "nl": "militaire academie", "pl": "akademia wojskowa", @@ -34378,6 +38629,7 @@ "ro": "academia militară", "ru": "военная академия", "sl": "vojaška akademija", + "sq": "akademia ushtarake", "sv": "militärhögskola", "tr": "harp akademisi", "uk": "військова академія", @@ -34390,6 +38642,7 @@ "bg": "авиобаза", "ca": "base aèria", "cs": "letecká základna", + "cy": "gorsaf awyr", "da": "flyvestation", "de": "militärflugplatz", "el": "αεροπορική βάση", @@ -34400,6 +38653,8 @@ "fa": "پایگاه هوایی", "fi": "lentotukikohta", "fr": "base aérienne militaire", + "ga": "aerionad", + "gl": "base aérea", "he": "בסיס טיסה", "hr": "vojna zrakoplovna baza", "hu": "légibázis", @@ -34413,9 +38668,10 @@ "pt": "base aérea", "ru": "авиабаза", "sl": "letalsko oporišče", + "sq": "baza ajrore", "sv": "militär flygplats", "ta": "படைத்துறை வானூர்தித் தளம்", - "th": "สนามบินทหาร", + "th": "ฐานทัพอากาศ", "tr": "hava üssü", "uk": "військово-повітряна база", "ur": "عسکری فضاگاہ", @@ -34427,7 +38683,8 @@ "be": "казарма", "bg": "казарма", "ca": "caserna", - "cs": "kasárny", + "cs": "kasárna", + "cy": "barics", "da": "kaserne", "de": "kaserne", "el": "στρατώνας", @@ -34437,7 +38694,10 @@ "fa": "سربازخانه", "fi": "kasarmi", "fr": "caserne", + "ga": "dún míleata", + "gl": "cuartel", "he": "קסרקטין", + "hi": "बराक", "hr": "vojarna", "hu": "laktanya", "id": "tangsi", @@ -34446,7 +38706,6 @@ "ko": "생활관", "lt": "kareivinės", "lv": "kazarmas", - "ms": "berek", "nb": "kaserne", "nl": "kazerne", "pl": "koszary", @@ -34455,7 +38714,9 @@ "ru": "казарма", "sk": "kasárne", "sl": "vojašnica", + "sq": "kazerma", "sv": "kasern", + "ta": "படைவீடு (ஆயுதப்படைகள்)", "th": "ค่ายทหาร", "tr": "kışla", "uk": "казарма", @@ -34468,6 +38729,7 @@ "bg": "военна база", "ca": "base militar", "cs": "vojenská základna", + "cy": "canolfan filwrol", "da": "militærbase", "de": "militärbasis", "el": "στρατιωτική βάση", @@ -34477,6 +38739,7 @@ "fa": "پایگاه نظامی", "fi": "sotilastukikohta", "fr": "base militaire", + "ga": "bunáit mhíleata", "he": "בסיס צבאי", "hi": "सैन्य अड्डा", "hr": "vojna baza", @@ -34493,7 +38756,9 @@ "ro": "bază militară", "ru": "военная база", "sl": "vojaško oporišče", + "sq": "baza ushtarake", "sv": "militär anläggning", + "ta": "இராணுவத் தளம்", "tr": "askerî üs", "uk": "військова база", "ur": "فوجی اڈا", @@ -34513,6 +38778,8 @@ "et": "punker", "fa": "پناهگاه", "fi": "bunkkeri", + "ga": "buncar", + "gl": "búnker", "he": "בונקר", "ja": "掩体壕", "ko": "벙커", @@ -34522,9 +38789,11 @@ "pt": "búnquer", "ro": "buncăr", "ru": "бункер", + "sq": "bunkeri", "sv": "stridsvärn", "tr": "sığınak", "uk": "бункер", + "ur": "بنکر", "vi": "boong ke", "zh": "地堡" }, @@ -34533,6 +38802,7 @@ "bg": "военноморска база", "ca": "base naval", "cs": "námořní základna", + "cy": "canolfan lyngesol", "da": "flådestation", "de": "marinestützpunkt", "el": "ναύσταθμος", @@ -34545,6 +38815,7 @@ "he": "בסיס ימי", "hi": "नौसैनिक अड्डा", "hu": "haditengerészeti bázis", + "id": "pangkalan angkatan laut", "it": "base navale", "ja": "海軍基地", "ko": "해군기지", @@ -34553,8 +38824,10 @@ "pl": "baza morska", "pt": "base naval", "ru": "военно-морская база", - "sl": "pomorsko oporišče", + "sl": "mornariško oporišče", + "sq": "baza detare", "sv": "örlogsbas", + "th": "ฐานทัพเรือ", "tr": "deniz üssü", "uk": "військово-морська база", "ur": "بحری اڈا", @@ -34572,8 +38845,10 @@ "fr": "course à obstacles", "he": "מסלול מכשולים", "ja": "障害物競走", + "nb": "militær hinderløype", "nl": "hindernisbaan", "ru": "полоса препятствий", + "sl": "proga z ovirami", "sv": "hinderbana", "tr": "engel parkuru", "uk": "смуга перешкод", @@ -34591,6 +38866,7 @@ "en-gb": "training area", "es": "campo de maniobras", "et": "polügoon", + "fi": "sotilasharjoitusalue", "fr": "terrain d'essai", "he": "אזור אימונים צבאיים", "hu": "katonai gyakorlótér", @@ -34621,12 +38897,14 @@ "et": "sõjakool", "fi": "sotilaskoulu", "fr": "école militaire", + "ga": "scoil mhíleata", + "gl": "escola militar", "he": "בית ספר צבאי", "hr": "vojna škola", "hu": "katonai iskola", "it": "scuola militare", "ja": "軍学校", - "ko": "군사학교", + "ko": "군사 학교", "lv": "militārā skola", "nb": "militærskole", "nl": "militaire opleidingsfaciliteit", @@ -34653,6 +38931,7 @@ "en-gb": "training area", "es": "campo de maniobras", "et": "polügoon", + "fi": "sotilasharjoitusalue", "fr": "terrain d'essai", "he": "אזור אימונים צבאיים", "hu": "katonai gyakorlótér", @@ -34695,12 +38974,214 @@ "pl": "okop", "pt": "trincheira", "ru": "окоп", + "sl": "strelski rov", "sv": "skyttegrav", "tr": "mevzi savunması", "uk": "окоп", "zh": "散兵坑" } }, + "military_service": { + "air_force": { + "af": "lugmag", + "ar": "سلاح الجو", + "be": "ваенна-паветраныя сілы", + "bg": "военновъздушни сили", + "ca": "força aèria", + "cs": "letectvo", + "cy": "awyrlu", + "da": "luftvåben", + "de": "luftstreitkräfte", + "el": "πολεμική αεροπορία", + "en": "air force", + "es": "fuerza aérea", + "et": "lennuvägi", + "fa": "نیروی هوایی", + "fi": "ilmavoimat", + "fr": "force aérienne", + "ga": "aerfhórsa", + "gl": "forza aérea", + "he": "חיל אוויר", + "hi": "वायुसेना", + "hr": "ratno zrakoplovstvo", + "hu": "légierő", + "id": "angkatan udara", + "it": "aeronautica militare", + "ja": "空軍", + "kn": "ವಾಯುಪಡೆ", + "ko": "공군", + "lt": "karinės oro pajėgos", + "lv": "gaisa spēki", + "ml": "വ്യോമസേന", + "nb": "flyvåpen", + "nl": "luchtmacht", + "pl": "siły powietrzne", + "pt": "força aérea", + "ro": "forță aeriană", + "ru": "военно-воздушные силы", + "sk": "vojenské letectvo", + "sl": "vojno letalstvo", + "sq": "forca ajrore", + "sv": "flygvapen", + "ta": "வான்படை", + "th": "กองทัพอากาศ", + "tr": "hava kuvvetleri", + "uk": "військово-повітряні сили", + "ur": "فضائیہ", + "vi": "không quân", + "zh": "空军", + "zh-hk": "空軍", + "zh-tw": "空軍" + }, + "army": { + "af": "leër", + "ar": "جيش", + "be": "сухапутныя войскі", + "bg": "сухопътни войски", + "ca": "exèrcit de terra", + "cs": "pozemní vojsko", + "cy": "byddin", + "da": "hær", + "de": "heer", + "el": "στρατός ξηράς", + "en": "army", + "es": "ejército de tierra", + "et": "armee", + "fa": "نیروی زمینی", + "fi": "maavoimat", + "fr": "armée de terre", + "ga": "arm", + "gd": "arm", + "gl": "exército de terra", + "he": "צבא יבשה", + "hi": "सेना", + "hr": "kopnena vojska", + "hu": "szárazföldi haderő", + "id": "angkatan darat", + "it": "esercito", + "ja": "陸軍", + "kn": "ಸೈನ್ಯ", + "ko": "육군", + "lt": "armija", + "lv": "sauszemes bruņotie spēki", + "ml": "പട്ടാളം", + "nb": "hær", + "nl": "landmacht", + "pl": "wojska lądowe", + "pt": "exército", + "ro": "armată terestră", + "ru": "сухопутные войска", + "sk": "pozemné vojsko", + "sl": "kopenska vojska", + "sq": "ushtria", + "sv": "armé", + "ta": "தரைப்படை", + "th": "กองทัพบก", + "tr": "ordu", + "uk": "сухопутні війська", + "ur": "بری فوج", + "vi": "lục quân", + "zh": "陆军", + "zh-hk": "陸軍", + "zh-tw": "陸軍" + }, + "marines": { + "ar": "مشاة البحرية", + "be": "марская пяхота", + "bg": "морска пехота", + "ca": "infanteria de marina", + "cs": "námořní pěchota", + "cy": "môr-filwyr", + "da": "marineinfanteri", + "de": "marineinfanterie", + "el": "πεζοναύτες", + "en": "marines", + "es": "infantería de marina", + "fa": "تفنگدار دریایی", + "fi": "merijalkaväki", + "fr": "infanterie de marine", + "he": "חיל נחתים", + "hr": "mornaričko pješaštvo", + "hu": "tengerészgyalogság", + "id": "marinir", + "it": "fanteria di marina", + "ja": "海兵隊", + "ko": "해병", + "lt": "jūrų pėstininkai", + "lv": "jūras kājnieki", + "ml": "മറീൻസ്", + "nb": "marineinfanteri", + "nl": "marinekorps", + "pl": "piechota morska", + "pt": "infantaria de marinha", + "ro": "infanterie marină", + "ru": "морская пехота", + "sk": "námorná pechota", + "sl": "mornariška pehota", + "sq": "marinsat", + "sv": "marinkår", + "ta": "ஈரூடகப்படை", + "th": "นาวิกโยธิน", + "tr": "bahriye kolordusu", + "uk": "морська піхота", + "ur": "بحری پیادہ فوج", + "vi": "thủy quân lục chiến", + "zh": "海軍陸戰隊" + }, + "navy": { + "ar": "قوات بحرية", + "be": "ваенна-марскія сілы", + "bg": "военноморски сили", + "ca": "armada", + "cs": "válečné loďstvo", + "cy": "llynges", + "da": "marine", + "de": "seestreitkräfte", + "de-ch": "marine", + "el": "πολεμικό ναυτικό", + "en": "navy", + "es": "armada", + "et": "merevägi", + "fa": "نیروی دریایی", + "fi": "merivoimat", + "fr": "marine de guerre", + "ga": "cabhlach", + "gd": "cabhlach", + "gl": "armada", + "he": "חיל ים", + "hi": "नौसेना", + "hr": "ratna mornarica", + "hu": "haditengerészet", + "id": "angkatan laut", + "it": "marina militare", + "ja": "海軍", + "ko": "해군", + "lt": "karo laivynas", + "lv": "kara flote", + "ml": "നാവികസേന", + "nb": "marine", + "nl": "marine", + "pl": "marynarka wojenna", + "pt": "marinha de guerra", + "pt-br": "marinha", + "ro": "marina militară", + "ru": "военно-морской флот", + "sk": "vojenské námorníctvo", + "sl": "vojna mornarica", + "sq": "forca detare", + "sv": "örlogsflotta", + "ta": "கடற்படை", + "te": "నౌకాదళం", + "th": "กองทัพเรือ", + "tr": "deniz kuvvetleri", + "uk": "військово-морські сили", + "ur": "بحریہ", + "vi": "hải quân", + "zh": "海军", + "zh-hk": "海軍", + "zh-tw": "海軍" + } + }, "monastery": { "": { "ca": "eremitori", @@ -34712,8 +39193,11 @@ "es": "eremitorio", "fi": "erakkomaja", "fr": "ermitage", + "ga": "díthreabh", + "gl": "eremitorio", "hr": "pustinja", "hu": "remetelak", + "id": "pertapaan", "it": "eremo", "ja": "ハーミテージ", "nb": "eremitage", @@ -34742,6 +39226,7 @@ "ja": "農業博物館", "nb": "landbruksmuseum", "nl": "landbouwmuseum", + "pl": "muzeum rolnictwa", "pt": "museu de agricultura", "sl": "kmetijski muzej", "sv": "lantbruksmuseum", @@ -34755,6 +39240,7 @@ "bg": "археологически музей", "ca": "museu arqueològic", "cs": "archeologické muzeum", + "cy": "amgueddfa archaeolegol", "da": "arkæologisk museum", "de": "archäologisches museum", "el": "αρχαιολογικό μουσείο", @@ -34763,6 +39249,8 @@ "fa": "موزه باستانشناسی", "fi": "arkeologinen museo", "fr": "musée archéologique", + "ga": "músaem seandálaíochta", + "gl": "museo arqueolóxico", "he": "מוזיאון לארכאולוגיה", "hr": "arheološki muzej", "hu": "régészeti múzeum", @@ -34771,7 +39259,6 @@ "ko": "고고학 박물관", "lt": "archeologijos muziejus", "lv": "arheoloģijas muzejs", - "ms": "muzium gali cari", "nb": "arkeologisk museum", "nl": "archeologiemuseum", "pl": "muzeum archeologiczne", @@ -34779,6 +39266,7 @@ "pt-br": "museu arqueológico", "ro": "muzeu arheologic", "ru": "археологический музей", + "sk": "archeologické múzeum", "sl": "arheološki muzej", "sv": "arkeologimuseum", "ta": "தொல்லியல் அருங்காட்சியகம்", @@ -34795,6 +39283,7 @@ "bg": "музей на авиацията", "ca": "museu aeronàutic", "cs": "letecké muzeum", + "cy": "amgueddfa awyrennu", "da": "luftfartsmuseum", "de": "luftfahrtmuseum", "el": "μουσείο αεροπορίας", @@ -34804,12 +39293,12 @@ "fa": "موزه هوانوردی", "fi": "ilmailumuseo", "fr": "musée aéronautique", + "ga": "músaem eitlíochta", "he": "מוזיאון תעופה", "hu": "repüléstörténeti múzeum", "it": "museo dell'aviazione", "ja": "航空博物館", "ko": "항공박물관", - "ms": "muzium penerbangan", "nl": "luchtvaartmuseum", "pl": "muzeum lotnictwa", "pt": "museu da aviação", @@ -34847,23 +39336,27 @@ "bg": "исторически музей", "ca": "museu d'història", "cs": "muzeum historie", + "cy": "amgueddfa hanes", "da": "historisk museum", "de": "historisches museum", "el": "ιστορικό μουσείο", "en": "history museum", "es": "museo de historia", "et": "ajaloomuuseum", + "fa": "موزه تاریخ", "fi": "historiallinen museo", "fr": "musée historique", - "he": "מוזיאון היסטורי", + "ga": "músaem staire", + "gl": "museo de historia", + "he": "מוזיאון להיסטוריה", "hr": "povijesni muzej", "hu": "történeti múzeum", + "id": "museum sejarah", "it": "museo storico", "ja": "歴史博物館", "ko": "역사 박물관", "lt": "istorijos muziejus", "lv": "vēstures muzejs", - "ms": "muzium sejarah", "nb": "historisk museum", "nl": "historisch museum", "pl": "muzeum historyczne", @@ -34884,6 +39377,7 @@ "en": "language museum", "es": "museo de la lengua", "fr": "musée des langues", + "gd": "taigh-tasgaidh cànain", "hu": "nyelvi múzeum", "it": "museo del linguaggio", "ja": "言語博物館", @@ -34891,6 +39385,7 @@ "pl": "muzeum językowe", "pt": "museu de idiomas", "ru": "языковой музей", + "sl": "jezikovni muzej", "zh": "语言博物馆" }, "local": { @@ -34898,6 +39393,7 @@ "be": "краязнаўчы музей", "ca": "museu d’història local", "cs": "muzeum regionální historie", + "cy": "amgueddfa leol", "da": "hjemstavnsmuseum", "de": "heimatmuseum", "el": "τοπικό μουσείο", @@ -34906,6 +39402,7 @@ "et": "koduloomuuseum", "fi": "kotiseutumuseo", "fr": "musée d'histoire locale", + "ga": "músaem áitiúil", "he": "מוזיאון מקומי", "it": "museo locale", "ja": "郷土博物館", @@ -34913,6 +39410,7 @@ "nl": "streekmuseum", "pl": "muzeum regionalne", "pt": "museu de história local", + "ro": "muzeu local", "ru": "краеведческий музей", "sl": "krajevni muzej", "sv": "hembygdsmuseum", @@ -34924,6 +39422,7 @@ "ar": "متحف بحري", "ca": "museu marítim", "cs": "námořní muzeum", + "cy": "amgueddfa forwrol", "da": "søfartsmuseum", "de": "schifffahrtsmuseum", "de-ch": "marinemuseen", @@ -34933,6 +39432,7 @@ "et": "meremuuseum", "fi": "merenkulkumuseo", "fr": "musée maritime", + "ga": "músaem muirí", "he": "מוזיאון ימי", "hr": "pomorski muzej", "hu": "tengerészeti múzeum", @@ -34949,7 +39449,9 @@ "sv": "sjöfartsmuseum", "tr": "denizcilik müzesi", "uk": "морський музей", - "zh": "海事博物館" + "zh": "海事博物馆", + "zh-hk": "海事博物館", + "zh-tw": "海事博物館" }, "military": { "ar": "متحف حربي", @@ -34957,6 +39459,7 @@ "bg": "военен музей", "ca": "museu militar", "cs": "vojenské muzeum", + "cy": "amgueddfa filwrol", "da": "krigsmuseum", "de": "militärmuseum", "el": "στρατιωτικό μουσείο", @@ -34966,6 +39469,8 @@ "fa": "موزه نظامی", "fi": "sotahistoriallinen museo", "fr": "musée militaire", + "ga": "iarsmalann mhíleata", + "gl": "museo militar", "he": "מוזיאון צבאי", "hi": "सैन्य संग्रहालय", "hr": "vojni muzej", @@ -34997,6 +39502,7 @@ "bg": "музей на открито", "ca": "museu a l'aire lliure", "cs": "skanzen", + "cy": "amgueddfa awyr agored", "da": "frilandsmuseum", "de": "freilandmuseum", "el": "υπαίθριο μουσείο", @@ -35005,6 +39511,8 @@ "et": "vabaõhumuuseum", "fi": "ulkomuseo", "fr": "musée en plein air", + "ga": "iarsmalann faoin aer", + "gd": "taigh-tasgaidh air a’ bhlàr a-muigh", "he": "מוזיאון פתוח", "hr": "etnografski muzej na otvorenom", "hu": "szabadtéri néprajzi múzeum", @@ -35038,6 +39546,7 @@ "el": "βιογραφικό μουσείο", "en": "biographical museum", "es": "museo biográfico", + "fa": "موزه زندگینامهای", "fi": "elämäkerrallinen museo", "fr": "musée biographique", "hu": "életrajzi múzeum", @@ -35055,6 +39564,7 @@ "be": "чыгуначны музей", "ca": "museu del ferrocarril", "cs": "železniční muzeum", + "cy": "amgueddfa reilffordd", "da": "jernbanemuseum", "de": "eisenbahnmuseum", "el": "σιδηροδρομικό μουσείο", @@ -35078,7 +39588,9 @@ "ta": "இரயில் அருங்காட்சியகம்", "tr": "demiryolu müzesi", "uk": "музей залізничного транспорту", - "ur": "ریلوے عجائب گھر" + "ur": "ریلوے عجائب گھر", + "zh": "铁路博物馆", + "zh-tw": "鐵路博物館" }, "science": { "ar": "متحف علمي", @@ -35092,16 +39604,17 @@ "fa": "موزه علم", "fi": "tiedemuseo", "fr": "musée scientifique", + "ga": "músaem eolaíochta", + "gl": "museo científico", "he": "מוזיאון מדע, טכנולוגיה וטבע", "hi": "hinde", - "hu": "tudományos központ", + "hu": "tudományos múzeum", "id": "museum ilmu pengetahuan", "it": "museo scientifico", "ja": "科学館", "ko": "과학관", "lt": "mokslo muziejus", "lv": "zinātnes muzejs", - "ms": "muzium sains", "nb": "vitenskapsmuseum", "nl": "wetenschapsmuseum", "pl": "muzeum nauki", @@ -35131,6 +39644,7 @@ "fi": "teknologiamuseo", "fr": "musée des technologies", "he": "מוזיאון טכנולוגיה", + "hu": "műszaki múzeum", "it": "museo della tecnologia", "ja": "科学技術博物館", "lv": "tehnoloģiju muzejs", @@ -35150,6 +39664,7 @@ "be": "музей транспарту", "ca": "museu de transports", "cs": "muzeum dopravy", + "cy": "amgueddfa gludiant", "da": "transportmuseum", "de": "verkehrsmuseum", "el": "μουσείο μεταφορών", @@ -35157,6 +39672,7 @@ "es": "museo de transporte", "fi": "liikennemuseo", "fr": "musée des transports", + "ga": "músaem iompair", "he": "מוזיאון לתחבורה", "hu": "közlekedési múzeum", "it": "museo dei trasporti", @@ -35168,7 +39684,9 @@ "pl": "muzeum transportu", "pt": "museu dos transportes", "ru": "музей транспорта", + "sk": "múzeum dopravy", "sl": "prometni muzej", + "sv": "transportmuseum", "uk": "музей транспорту", "zh": "交通博物館", "zh-cn": "交通博物馆" @@ -35176,6 +39694,7 @@ }, "museum_type": { "municipal": { + "ar": "متحف المدينة", "ca": "museu de la ciutat", "cs": "městské muzeum", "da": "bymuseum", @@ -35200,6 +39719,7 @@ "bg": "национален музей", "ca": "museu nacional", "cs": "národní muzeum", + "cy": "amgueddfa genedlaethol", "da": "nationalt museum", "de": "staatliches museum", "el": "εθνικό μουσείο", @@ -35209,9 +39729,12 @@ "fa": "موزه ملی", "fi": "kansallismuseo", "fr": "musée national", + "ga": "músaem náisiúnta", + "gl": "museo nacional", "he": "מוזיאון לאומי", "hi": "राष्ट्रीय राष्ट्रीय", "hu": "nemzeti múzeum", + "id": "museum nasional", "it": "museo nazionale", "ja": "国立博物館", "ko": "국립박물관", @@ -35225,14 +39748,16 @@ "ru": "национальный музей", "sk": "národné múzeum", "sl": "državni muzej", + "sq": "muze kombëtar", "sv": "nationalmuseum", "ta": "தேசிய அருங்காட்சியகம்", + "te": "జాతీయ మ్యూజియం", "tr": "ulusal müze", "uk": "національний музей", "ur": "قومی عجائب گھر", "vi": "bảo tàng quốc gia", "zh": "國立博物館", - "zh-cn": "国立博物馆" + "zh-cn": "国家博物馆" }, "private": { "ca": "museu privat", @@ -35244,6 +39769,7 @@ "et": "eramuuseum", "fi": "yksityismuseo", "fr": "musée privé", + "gl": "museo privado", "he": "מוזיאון פרטי", "hr": "privatni muzej", "it": "museo privato", @@ -35260,37 +39786,6 @@ "zh-cn": "私人博物馆" } }, - "name": { - "7-Eleven": { - "ar": "7-إلفن", - "en": "7-eleven", - "fa": "سون ایلون", - "he": "סבן אילבן", - "ja": "セブン-イレブン", - "ko": "세븐일레븐", - "th": "เซเว่น อีเลฟเว่น" - }, - "BMO Bank of Montreal": { - "ar": "بنك مونتريال", - "en": "bank of montreal", - "es": "banco de montreal", - "fa": "بانک مونترآل", - "fr": "banque de montréal", - "ja": "モントリオール銀行", - "ko": "몬트리올 은행", - "pt": "banco de montreal", - "ta": "பாங்க் ஆப் மொன்றியல்", - "tr": "montreal bankası", - "zh": "蒙特利尔银行" - }, - "REWE": { - "en": "rewe", - "fa": "سوپرمارکت رو", - "he": "רווה", - "ja": "レーベ", - "zh": "雷弗超市" - } - }, "natural": { "arch": { "ar": "الجسر الطبيعي", @@ -35318,17 +39813,20 @@ "sk": "skalná brána", "sl": "naravni most", "ta": "சிலா தோரணம்", + "te": "శిలాతోరణం", "tr": "doğal kemer", "uk": "природна арка", "zh": "天然拱" }, "arete": { "ar": "رعن", + "ca": "aresta", "cs": "areta", "de": "gebirgsgrat", "en": "arête", "es": "arista", "fa": "کوه تیغ", + "ga": "airéit", "he": "גב חדיד", "hi": "तीक्ष्ण कटक", "hu": "keskeny hegygerinc", @@ -35341,37 +39839,44 @@ }, "bare_rock": { "ar": "صخر أساس", - "be": "карэнная парода", - "ca": "roca mare", - "cs": "mateční hornina", + "be": "скала", + "ca": "roca", + "cs": "skalní útvar", + "cy": "craig", "da": "undergrund", "de": "festgestein", + "el": "βράχος", "en": "fast stone", - "es": "roca madre", - "et": "aluspõhi", + "es": "peña", + "et": "kalju", "fa": "سنگ بستر", - "fi": "kallioperä", - "fr": "roche mère", + "fi": "kallio", + "fr": "rocher", + "ga": "creig", + "gl": "substrato", "he": "סלע שתית", "hi": "तलशिला", "hr": "stjenovito tle", - "hu": "alapkőzet", + "hu": "szikla", "id": "batuan dasar", - "it": "substrato", - "ja": "基盤岩", + "it": "roccia", + "ja": "岩", "ko": "기반암", + "lt": "uola", "lv": "pamatklintājs", - "ms": "batuan dasar", - "nb": "grunnfjell", - "nl": "bedrock", - "pl": "skała macierzysta", + "nb": "knaus", + "nl": "rots", + "pl": "skałka", "pt": "rocha matriz", - "ru": "коренная порода", - "sv": "berggrund", + "ro": "stâncă", + "ru": "скала", + "sk": "bralo", + "sl": "skala", + "sv": "liten holme", "ta": "படுகைப்பாறை", - "uk": "пліт розсипища", + "uk": "скеля", "vi": "móng", - "zh": "基岩", + "zh": "峭壁", "zh-cn": "岩床" }, "bay": { @@ -35381,6 +39886,7 @@ "bg": "залив", "ca": "badia", "cs": "zátoka", + "cy": "bae", "da": "bugt", "de": "bucht", "el": "κόλπος", @@ -35390,6 +39896,9 @@ "fa": "خلیج", "fi": "lahti", "fr": "baie", + "ga": "bá", + "gd": "camas", + "gl": "baía", "he": "מפרץ", "hi": "खाड़ी", "hr": "zaljev", @@ -35402,7 +39911,6 @@ "lt": "įlanka", "lv": "līcis", "mr": "खाडी", - "ms": "teluk", "nb": "vik", "nl": "baai", "pl": "zatoka", @@ -35411,6 +39919,7 @@ "ru": "залив", "sk": "záliv", "sl": "zaliv", + "sq": "gjiret detare", "sv": "vik", "ta": "விரிகுடா", "th": "อ่าว", @@ -35429,6 +39938,7 @@ "bg": "плаж", "ca": "platja", "cs": "pláž", + "cy": "traeth", "da": "strand", "de": "strand", "el": "ακτή", @@ -35438,6 +39948,8 @@ "fa": "کرانه", "fi": "hiekkaranta", "fr": "plage", + "ga": "trá", + "gl": "praia", "he": "חוף", "hi": "समुद्र तट", "hr": "plaža", @@ -35451,7 +39963,6 @@ "lv": "pludmale", "ml": "കടവ്", "mr": "पुळण", - "ms": "pantai", "nb": "strand", "nl": "strand", "pl": "plaża", @@ -35460,8 +39971,10 @@ "ru": "пляж", "sk": "pláž", "sl": "plaža", + "sq": "plazh", "sv": "strand", "ta": "கடற்கரை", + "te": "సముద్రతీరం", "th": "หาด", "tr": "plaj", "uk": "пляж", @@ -35492,6 +40005,7 @@ "bg": "нос", "ca": "cap", "cs": "mys", + "cy": "pentir", "da": "landspids", "de": "kap", "el": "ακρωτήριο", @@ -35501,6 +40015,8 @@ "fa": "دماغه", "fi": "niemi", "fr": "cap", + "ga": "ceann tíre", + "gl": "cabo", "he": "לשון יבשה", "hi": "रास", "hr": "rt", @@ -35513,7 +40029,6 @@ "lt": "kyšulys", "lv": "zemesrags", "mr": "भूशिर", - "ms": "tanjung", "nb": "kapp", "nl": "kaap", "pl": "przylądek", @@ -35522,6 +40037,7 @@ "ru": "мыс", "sk": "mys", "sl": "rt", + "sq": "kepi", "sv": "kap", "th": "แหลม", "tr": "burun", @@ -35534,7 +40050,8 @@ "en": "cave entrance", "fr": "entrée de grotte", "hu": "barlangbejárat", - "ru": "вход в пещеру" + "ru": "вход в пещеру", + "sk": "vchod do jaskyne" }, "cliff": { "af": "krans", @@ -35543,6 +40060,7 @@ "bg": "клиф", "ca": "penya-segat", "cs": "útes", + "cy": "clogwyn", "da": "klippe", "de": "klippe", "de-ch": "kliff", @@ -35553,6 +40071,8 @@ "fa": "دیواره", "fi": "jyrkänne", "fr": "rempart montagneux", + "ga": "aill", + "gl": "cantil", "he": "צוק", "hr": "klȉf", "hu": "szikla", @@ -35583,6 +40103,7 @@ "coastline": { "ar": "خط ساحلي", "be": "берагавая лінія", + "cy": "morlin", "de": "küstenlinie", "en": "coastline", "es": "línea costera", @@ -35610,6 +40131,7 @@ "be": "пустыня", "bg": "пустиня", "cs": "poušť", + "cy": "anialwch", "da": "ørken", "de": "wüste", "el": "έρημος", @@ -35619,6 +40141,9 @@ "fa": "بیابان", "fi": "aavikko", "fr": "désert", + "ga": "fásach", + "gd": "fàsach", + "gl": "deserto", "he": "מדבר", "hi": "मरुस्थल", "hr": "pustinja", @@ -35632,7 +40157,6 @@ "lv": "tuksnesis", "ml": "മരുഭൂമി", "mr": "वाळवंट", - "ms": "gurun", "nb": "ørken", "nl": "woestijn", "pl": "pustynia", @@ -35641,8 +40165,10 @@ "ru": "пустыня", "sk": "púšť", "sl": "puščava", + "sq": "shkretëtira", "sv": "öken", "ta": "பாலைவனம்", + "te": "ఎడారి", "th": "ทะเลทราย", "tr": "çöl", "uk": "пустеля", @@ -35652,14 +40178,17 @@ }, "fell": { "af": "fjell", + "bg": "фелди", "ca": "fjäll", "da": "fjeld", "de": "fjell", "en": "fell", "es": "estiva", + "et": "mägitundra", "fa": "فل", "fi": "tunturi", "fr": "fjäll", + "ga": "sceird", "ja": "高地", "ko": "펠", "lv": "fjelds", @@ -35671,6 +40200,53 @@ "sv": "fjäll", "zh": "高地" }, + "floodplain": { + "ar": "سهل فيضي", + "be": "абалона", + "bg": "заливна тераса", + "ca": "plana d'inundació", + "cs": "údolní niva", + "da": "flodslette", + "de": "niederung", + "de-ch": "flussaue", + "el": "πλημμυρική περιοχή", + "en": "lowland", + "en-ca": "floodplain", + "en-gb": "floodplain", + "es": "llanura de inundación", + "et": "lamm", + "fa": "دشت سیلابی", + "fi": "tulvatasanko", + "fr": "lit", + "gd": "morbhach", + "gl": "chaira de inundación", + "he": "מישור הצפה", + "hi": "पूरभूमि", + "hr": "poplavna nizina", + "hu": "ártér", + "id": "dataran banjir", + "it": "golena", + "ja": "氾濫原", + "ko": "범람원", + "lt": "salpa", + "lv": "paliene", + "mr": "पूर मैदान", + "nb": "elveslette", + "nl": "riviervlakte", + "pl": "terasa zalewowa", + "pt": "planície de inundação", + "ro": "luncă inundabilă", + "ru": "пойма", + "sk": "niva", + "sl": "poplavna ravnica", + "sv": "flodslätt", + "tr": "taşkın yatağı", + "uk": "заплава", + "vi": "bãi bồi", + "zh": "河漫滩", + "zh-hk": "河漫灘", + "zh-tw": "河漫灘" + }, "glacier": { "af": "gletser", "ar": "مثلجة", @@ -35678,6 +40254,7 @@ "bg": "ледник", "ca": "glacera", "cs": "ledovec", + "cy": "rhewlif", "da": "gletsjer", "de": "gletscher", "el": "παγετώνας", @@ -35686,6 +40263,9 @@ "et": "liustik", "fa": "یخچال طبیعی", "fi": "jäätikkö", + "ga": "oighearshruth", + "gd": "eigh-shruth", + "gl": "glaciar", "he": "קרחון", "hi": "हिमनद", "hr": "ledenjak", @@ -35699,7 +40279,6 @@ "lv": "ledājs", "ml": "ഹിമാനി", "mr": "हिमनदी", - "ms": "glasier", "nb": "isbre", "nl": "gletsjer", "pl": "lodowiec", @@ -35709,8 +40288,10 @@ "ru": "ледник", "sk": "ľadovec", "sl": "ledenik", + "sq": "akullnaja", "sv": "glaciär", "ta": "பனியாறு", + "te": "హిమానీనదం", "th": "ธารน้ำแข็ง", "tr": "buzul", "uk": "льодовик", @@ -35718,6 +40299,56 @@ "vi": "sông băng", "zh": "冰川" }, + "gorge": { + "af": "kloof", + "ar": "خانق", + "bg": "каньони", + "ca": "canyó", + "cs": "kaňon", + "cy": "ceunant", + "da": "kløft", + "de": "schlucht", + "el": "φαράγγι", + "en": "canyon", + "en-gb": "gorge", + "es": "cañón", + "et": "kanjon", + "fa": "ژرفدره", + "fi": "kanjoni", + "fr": "gorge", + "ga": "cainneon", + "gd": "gil", + "gl": "canón", + "he": "קניון", + "hi": "तंग घाटी", + "hr": "klanac", + "hu": "kanyon", + "id": "ngarai", + "it": "gola", + "ja": "峡谷", + "kn": "ಕೊರಕಲು", + "ko": "협곡", + "lt": "kanjonas", + "lv": "kanjons", + "nl": "kloof", + "pl": "przełom rzeki", + "pt": "canhão", + "pt-br": "cânion", + "ro": "defileu", + "ru": "каньон", + "sk": "kaňon", + "sl": "kanjon", + "sq": "kanjon", + "sv": "kanjon", + "ta": "செங்குத்துப் பள்ளத்தாக்கு", + "th": "หุบผาชัน", + "tr": "kanyon", + "uk": "каньйон", + "vi": "hẻm núi", + "zh": "峡谷", + "zh-hk": "峽谷", + "zh-tw": "峽谷" + }, "grassland": { "af": "grasveld", "ar": "أرض عشبية", @@ -35730,7 +40361,10 @@ "es": "herbazal", "et": "rohtla", "fa": "چمنزار", + "fi": "nurmimaa", "fr": "pelouse", + "ga": "féarthalamh", + "gl": "pradaría", "he": "ערבה (גאוגרפיה)", "hi": "घासभूमि", "hr": "travnjak", @@ -35741,7 +40375,6 @@ "ko": "초원", "lv": "zālājs", "ml": "പുൽമേടുകൾ", - "ms": "padang rumput", "nb": "gresslette", "nl": "grasland", "pl": "formacje trawiaste", @@ -35761,6 +40394,7 @@ "be": "пустка", "ca": "landa", "cs": "vřesoviště", + "cy": "rhostir", "da": "hede", "de": "heide", "el": "χερσότοπος", @@ -35770,6 +40404,9 @@ "fa": "خلنگزار", "fi": "nummi", "fr": "lande", + "ga": "fraochmhá", + "gd": "y mynydd bychan", + "gl": "uceira", "hu": "fenyér", "id": "lahan kosong", "it": "landa", @@ -35795,6 +40432,7 @@ "bg": "провлак", "ca": "istme", "cs": "pevninská šíje", + "cy": "culdir", "da": "tange", "el": "ισθμός", "en": "isthmus", @@ -35803,6 +40441,8 @@ "fa": "باریکه خاکی", "fi": "kannas", "fr": "isthme", + "gd": "tairbeart", + "gl": "istmo", "he": "מצר יבשה", "hi": "भूडमरुमध्य", "hr": "prevlaka", @@ -35815,7 +40455,6 @@ "lv": "zemes šaurums", "ml": "ഇസ്തുമസ്", "mr": "संयोगभूमी", - "ms": "tanah genting", "nb": "eid", "nl": "landengte", "pl": "przesmyk", @@ -35835,13 +40474,24 @@ "zh-hk": "地峽", "zh-tw": "地峽" }, + "lowland": { + "ca": "terra baixa", + "de": "flachland", + "en": "lowland", + "nl": "laagland", + "sk": "nížina", + "sl": "nižavje" + }, "moor": { "ar": "مورلاند", "be": "верасовая пустэча", + "cy": "gweundir", "en": "moorland", "es": "páramo", "fa": "خلنگزار", "fr": "brande", + "ga": "móinteán", + "gl": "páramo", "hr": "močvirje", "hu": "láprét", "id": "tegalan (bentang alam)", @@ -35850,8 +40500,9 @@ "nb": "lynghei", "nl": "veen", "ru": "вересковая пустошь", - "sl": "močvirje", + "sl": "vresišče", "sv": "ljunghed", + "tr": "kıraç arazi", "uk": "вересове пустище" }, "mountain_range": { @@ -35861,15 +40512,19 @@ "bg": "планинска верига", "ca": "serralada", "cs": "pohoří", + "cy": "cadwyn o fynyddoedd", "da": "bjergkæde", "de": "gebirge", "el": "οροσειρά", - "en": "mountain range", + "en": "mountain system", "es": "cordillera", "et": "mäestik", "fa": "رشتهکوه", "fi": "vuoristo", "fr": "chaîne de montagnes", + "ga": "sliabhraon", + "gd": "sreath bheanntan", + "gl": "cordilleira", "he": "רכס הרים", "hi": "पर्वतमाला", "hr": "gorje", @@ -35882,7 +40537,6 @@ "lv": "kalnu grēda", "ml": "പര്വ്വനിരകള്", "mr": "पर्वतरांग", - "ms": "banjaran", "nb": "fjellkjede", "nl": "gebergte", "pl": "łańcuch górski", @@ -35891,8 +40545,10 @@ "ru": "горный хребет", "sk": "pohorie", "sl": "gorovje", + "sq": "vargmal", "sv": "bergskedja", "ta": "மலைத் தொடர்", + "te": "పర్వత శ్రేణి", "th": "เทือกเขา", "tr": "sıradağ", "uk": "гірський хребет", @@ -35909,10 +40565,10 @@ "bg": "връх", "ca": "cim", "cs": "vrchol", + "cy": "copa", "da": "bjergtop", - "de": "gipfel", + "de": "berggipfel", "de-at": "berg", - "de-ch": "berggipfel", "el": "κορυφή", "en": "summit", "es": "cima", @@ -35920,6 +40576,9 @@ "fa": "قله", "fi": "vuorenhuippu", "fr": "sommet", + "ga": "mullach", + "gd": "bràigh", + "gl": "cumio", "he": "פסגה", "hi": "शिखर (स्थलाकृति)", "hr": "vrh", @@ -35933,7 +40592,6 @@ "lv": "virsotne", "ml": "കൊടുമുടി", "mr": "शिखर", - "ms": "puncak", "nb": "topp", "nl": "top", "pl": "szczyt", @@ -35942,8 +40600,10 @@ "ru": "вершина местности", "sk": "vrchol vrchu", "sl": "vrh", + "sq": "majë", "sv": "bergstopp", "ta": "மலை முகடு", + "te": "కొండ", "th": "ยอดเขา", "tr": "zirve", "uk": "вершина місцевості", @@ -35960,6 +40620,7 @@ "bg": "полуостров", "ca": "península", "cs": "poloostrov", + "cy": "gorynys", "da": "halvø", "de": "halbinsel", "el": "χερσόνησος", @@ -35969,6 +40630,9 @@ "fa": "شبهجزیره", "fi": "niemimaa", "fr": "péninsule", + "ga": "leithinis", + "gd": "leth-eilean", + "gl": "península", "he": "חצי אי", "hi": "प्रायद्वीप", "hr": "poluotok", @@ -35982,7 +40646,6 @@ "lv": "pussala", "ml": "ഉപദ്വീപ്", "mr": "द्वीपकल्प", - "ms": "semenanjung", "nb": "halvøy", "nl": "schiereiland", "pl": "półwysep", @@ -35991,8 +40654,10 @@ "ru": "полуостров", "sk": "polostrov", "sl": "polotok", + "sq": "gadishulli", "sv": "halvö", "ta": "மூவலந்தீவு", + "te": "ద్వీపకల్పము", "th": "คาบสมุทร", "tr": "yarımada", "uk": "півострів", @@ -36002,48 +40667,131 @@ "zh-hk": "半島", "zh-tw": "半島" }, + "plain": { + "af": "vlakte", + "ar": "سهل", + "be": "раўніна", + "bg": "равнина", + "ca": "plana", + "cs": "planina", + "cy": "gwastatir", + "da": "slette", + "de": "ebene", + "el": "πεδιάδα", + "en": "plain", + "es": "llanura", + "et": "tasandik", + "fa": "دشت", + "fi": "tasanko", + "fr": "plaine", + "ga": "machaire", + "gl": "chaira", + "he": "מישור", + "hi": "मैदान", + "hr": "nizina", + "hu": "síkság", + "id": "dataran", + "it": "pianura", + "ja": "平野", + "kn": "ಬಯಲು", + "ko": "평야", + "lt": "lyguma", + "lv": "līdzenums", + "ml": "സമതലം", + "nb": "slette", + "nl": "vlakte", + "pl": "równina", + "pt": "planície", + "ro": "câmpie", + "ru": "равнина", + "sk": "rovina", + "sl": "ravnina", + "sv": "slätt", + "ta": "சமவெளி", + "te": "మైదానం", + "th": "ที่ราบ", + "tr": "ova", + "uk": "рівнина", + "ur": "میدانی علاقہ", + "vi": "đồng bằng", + "zh": "平原" + }, "plateau": { "ar": "هضبة", "be": "плато", "bg": "плато", "ca": "altiplà", - "cs": "náhorní plošina", + "cs": "plošina", + "cy": "llwyfandir", + "da": "plateaubjerg", "de": "hochebene", "el": "οροπέδιο", - "en": "plateau", + "en": "table", + "en-us": "plateau", "es": "meseta", "et": "lavamaa", - "fa": "فلات", + "fa": "تختکوه", "fi": "ylänkö", + "fr": "plateau", + "ga": "ardchlár", + "gd": "àrd-thìr", + "gl": "meseta", "he": "רמה", "hi": "पठार", "hr": "visoravan", "hu": "fennsík", "id": "dataran tinggi", "it": "altopiano", - "ja": "高原", + "ja": "テーブルランド", "kn": "ಪ್ರಸ್ಥಭೂಮಿ", - "ko": "고원", + "ko": "탁상지", "lt": "plynaukštė", "lv": "plakankalne", "ml": "പീഠഭൂമി", "mr": "पठार", - "ms": "penara", - "nb": "høyslette", - "pl": "płaskowyż", + "nb": "platåberg", + "nl": "plateau", + "pl": "góra stołowa", "pt": "planalto", "ro": "podiș", "ru": "плато", - "sk": "náhorná rovina", - "sl": "planota", - "sv": "platå", + "sk": "plošina", + "sl": "plato", + "sq": "pllaja", + "sv": "platåberg", "ta": "பீடபூமி", - "th": "ที่ราบสูง", + "te": "పీఠభూమి", + "th": "เขายอดตัด", "tr": "yayla", "uk": "плато", "ur": "سطح مرتفع", - "vi": "cao nguyên", - "zh": "高原" + "vi": "đài địa", + "zh": "台地" + }, + "platform": { + "ar": "منصة", + "bg": "платформа", + "cs": "platforma", + "de": "tafel", + "el": "τράπεζα", + "en": "platform", + "et": "platvorm", + "fa": "سکو", + "fi": "mannerlaakio", + "fr": "plate-forme", + "ga": "clár", + "he": "משטח יבשתי", + "it": "tavolato", + "ja": "プラットフォーム", + "nb": "plattform", + "pl": "platforma", + "ru": "платформа", + "sk": "tabuľa", + "sl": "plošča", + "sv": "plattform", + "uk": "геологічна платформа", + "vi": "nền", + "zh": "地台" }, "reef": { "ar": "شعاب", @@ -36051,6 +40799,7 @@ "bg": "риф", "ca": "escull", "cs": "rif", + "cy": "riff", "da": "rev", "de": "riff", "el": "ύφαλος", @@ -36060,6 +40809,9 @@ "fa": "آبسنگ", "fi": "riutta", "fr": "récif", + "ga": "sceir", + "gd": "bodha", + "gl": "arrecife", "he": "שונית", "hi": "शैल-भित्ति", "hr": "greben", @@ -36069,7 +40821,6 @@ "ja": "暗礁", "ko": "암초", "lv": "rifs", - "ms": "terumbu", "nb": "rev", "nl": "rif", "pl": "rafa", @@ -36090,10 +40841,12 @@ "ar": "حيد", "be": "краж", "bg": "хребет", - "ca": "cresta", + "ca": "carena", "cs": "hřbet", + "cy": "crib", "da": "højderyg", "de": "gebirgskamm", + "de-ch": "krete", "el": "οροσειρά", "en": "ridge", "es": "cresta", @@ -36101,6 +40854,9 @@ "fa": "خطالرأس", "fi": "selänne", "fr": "crête", + "ga": "droim", + "gd": "aonach", + "gl": "cumio", "he": "רכס", "hi": "चोटी", "hr": "hrbat", @@ -36112,7 +40868,6 @@ "ko": "능선", "lt": "kalvagūbris", "lv": "kore", - "ms": "rabung", "nb": "høydedrag", "nl": "bergkam", "pl": "grzbiet górski", @@ -36122,6 +40877,7 @@ "ru": "кряж", "sk": "chrbát", "sl": "greben", + "sq": "kreshta", "sv": "ås", "ta": "கடலடி மலைத்தொடர்", "th": "สันเขา", @@ -36144,11 +40900,13 @@ "fa": "بستر رودخانه", "fi": "joen uoma", "fr": "lit", + "gl": "leito", "he": "אפיק", + "id": "dasar sungai", "it": "alveo", "ja": "川底", + "ko": "하상", "lt": "upės vaga", - "ms": "dasar sungai", "nb": "elveleie", "nl": "stroombed", "pl": "koryto rzeki", @@ -36168,7 +40926,8 @@ "be": "скала", "bg": "скала", "ca": "roca", - "cs": "útes", + "cs": "skalní útvar", + "cy": "craig", "da": "klippe", "de": "felsen", "de-ch": "gestein", @@ -36179,30 +40938,34 @@ "fa": "سنگ (زمینشناسی)", "fi": "kallio", "fr": "rocher", + "ga": "creig", + "gd": "clach", + "gl": "rocha", "he": "סלע", "hi": "शैल", "hr": "stijena", "hu": "szikla", "id": "batu", "it": "roccia", - "ja": "岩石", + "ja": "岩", "kn": "ಕಲ್ಲು", "ko": "암석", "lt": "uola", "lv": "iezis", "ml": "പാറ", "mr": "खडक", - "ms": "batu", "nb": "knaus", - "nl": "rotsformatie", + "nl": "rots", "pl": "skałka", "pt": "rocha", "ro": "stâncă", "ru": "скала", "sk": "bralo", "sl": "skala", + "sq": "shkëmb", "sv": "liten holme", "ta": "பாறை", + "te": "రాయి", "th": "หิน", "tr": "kayaç", "uk": "скеля", @@ -36216,10 +40979,12 @@ "ca": "collada", "cs": "horské sedlo", "de": "bergsattel", - "en": "saddle", + "en": "mountain saddle", "es": "collado de montaña", "fa": "زین (زمینچهر)", "fr": "selle", + "gl": "portela", + "he": "אוכף", "it": "sella", "ja": "鞍部", "lv": "sedliene", @@ -36234,53 +40999,52 @@ "zh": "鞍部" }, "sand": { - "ar": "بحيرة جافة", + "ar": "حوض الملح (جيولوجيا)", "be": "высахлае возера", - "ca": "llac sec", - "cs": "playa", - "de": "ausgetrockneter see", - "el": "αποξηραμένη λίμνη", - "en": "dry lake", - "es": "categoría:sumideros naturales", - "fa": "چاله", - "fi": "aavikkojärvi", - "fr": "lac asséché", - "he": "אגם יבש", + "ca": "desert de sal", + "cs": "solná pláň", + "da": "saltpande", + "de": "salztonebene", + "en": "salt pan", + "es": "salar", + "fa": "کویر", + "fi": "suolapannu", + "fr": "désert de sel", + "he": "מדבר מלח", "hi": "नमक का मैदान", "hu": "sósivatag", - "id": "playa", - "it": "lago asciutto", - "ja": "プラヤ", - "ko": "건호", + "id": "dataran garam", + "it": "salina", + "ja": "塩類平原", + "ko": "소금 평원", "lt": "druskos lyguma", "ml": "ഉപ്പളം", "nb": "saltslette", "nl": "zoutvlakte", - "pl": "playa", - "pt": "lago seco", - "ro": "playa", - "ru": "бессточная западина", - "sk": "playa", - "sl": "suho jezero", - "sv": "uttorkad sjö", + "pl": "solnisko", + "pt": "deserto de sal", + "ru": "высохшее озеро", + "sl": "slanišče", + "sv": "saltöken", "ta": "உப்புப் படுகை", "th": "ทะเลสาบแห้ง", - "tr": "playa", - "uk": "безстічні западини", - "zh": "內流盆地湖泊" + "tr": "tuz tavası", + "zh": "鹽盤" }, "scree": { "ar": "ركام حصى", "bg": "сипей", "ca": "tartera", "cs": "osyp", + "cy": "sgri", "da": "ur", "de": "talus (schuttfächer)", "el": "κατάπτωση βραχομάζας", "en": "scree", - "es": "talud", + "es": "canchal", "fa": "دامنه واریزهای", "fr": "éboulis", + "ga": "scileach", "he": "דרדרת", "id": "terbis", "it": "ghiaione", @@ -36304,12 +41068,16 @@ "ar": "عيص", "ca": "matollar", "cs": "křovinná vegetace", + "cy": "prysgoed", "de": "buschland", "en": "shrubland", "es": "matorral", - "fa": "بوتهزار", + "fa": "درختچهزار", "fi": "pensasaro", "fr": "fruticée", + "ga": "caschoill", + "gd": "breac-choille", + "gl": "matogueira", "he": "בתה", "hi": "क्षुपभूमि", "hr": "grmovita vegetacija", @@ -36343,11 +41111,13 @@ "fa": "ساحل سنگریزهای", "fi": "pirunpelto", "fr": "plage de galets", + "gl": "praia de seixos", "ja": "礫浜", "ko": "역빈", "nl": "kiezelstrand", "ru": "галечный пляж", "sk": "okruhliaková pláž", + "sl": "prodnata plaža", "sv": "klapperstensfält", "vi": "bãi cuội bờ biển", "zh": "碎石灘" @@ -36356,6 +41126,8 @@ "ar": "حاجز", "bg": "бар", "ca": "barra", + "cs": "písčina", + "cy": "beisle", "da": "sandbanke", "de": "schotterbank", "el": "σύρτη", @@ -36365,23 +41137,26 @@ "fa": "سد شنی", "fi": "särkkä", "fr": "barre", + "ga": "oitir", + "gd": "oitir", + "gl": "baixío", "he": "שרטון", "hi": "रेती", - "hr": "sprud", + "hr": "prud", "hu": "homokpad", "id": "gosong sungai", "it": "bassofondo", "ja": "砂礫堆", "ko": "사주", "lt": "sekluma", - "ms": "gosong", + "lv": "sēklis", "nb": "ør", "nl": "zandbank", "pl": "mielizna", "pt": "barra", "ro": "banc de nisip", "ru": "бар", - "sl": "kleč", + "sl": "sedimentna brežina", "sv": "sandbank", "th": "หาดสันดอน", "tr": "sığlık", @@ -36405,6 +41180,9 @@ "fa": "درختچه", "fi": "pensas", "fr": "arbrisseau", + "ga": "tom", + "gd": "preas", + "gl": "arbusto", "he": "שיח", "hi": "क्षुप", "hr": "grm", @@ -36418,7 +41196,6 @@ "lv": "krūms", "ml": "കുറ്റിച്ചെടി", "mr": "झुडुपे", - "ms": "pokok renek", "nb": "busk", "nl": "struik", "pl": "krzew", @@ -36429,6 +41206,7 @@ "sl": "grmovnica", "sv": "buske", "ta": "புதர்", + "te": "పొద", "th": "ไม้พุ่ม", "tr": "çalı", "uk": "кущ", @@ -36445,6 +41223,7 @@ "bg": "карстова дупка", "ca": "dolina", "cs": "závrt", + "cy": "llyncdwll", "da": "jordfaldshul", "de": "doline", "el": "δολίνη", @@ -36465,7 +41244,6 @@ "lt": "smegduobė", "lv": "karsta kritene", "mr": "विलयछिद्र", - "ms": "lubang benam", "nb": "synkehull", "nl": "doline", "pl": "lej krasowy", @@ -36491,6 +41269,7 @@ "bg": "извор", "ca": "font", "cs": "pramen", + "cy": "ffynnon", "da": "kilde", "de": "quelle", "el": "υδάτινη πηγή", @@ -36500,6 +41279,8 @@ "fa": "چشمه", "fi": "lähde", "fr": "source", + "ga": "fuarán", + "gl": "manancial", "he": "מעיין", "hi": "पानी का चश्मा", "hu": "forrás", @@ -36511,7 +41292,6 @@ "lt": "versmė", "lv": "avots", "ml": "നീരുറവ", - "ms": "mata air", "nb": "kilde", "nl": "bron", "pl": "źródło", @@ -36535,6 +41315,7 @@ "bg": "валун", "ca": "bloc", "cs": "balvan", + "cy": "clogfaen", "da": "stenblok", "de": "felsblock", "el": "ογκόλιθος", @@ -36544,10 +41325,13 @@ "fa": "تختهسنگ", "fi": "lohkare", "fr": "bloc", + "ga": "bollán", "he": "בולדר", "hu": "tömb", + "id": "bongkah", "it": "macigno", "ja": "巨礫", + "ko": "볼더", "lt": "riedulys", "lv": "laukakmens", "nb": "blokk", @@ -36558,7 +41342,7 @@ "sk": "skala", "sl": "balvan", "sv": "block", - "uk": "валуни", + "uk": "валун", "vi": "tảng đá", "zh": "巨石" }, @@ -36569,6 +41353,7 @@ "bg": "проток", "ca": "estret", "cs": "průliv", + "cy": "culfor", "da": "stræde", "de": "meerenge", "el": "πορθμός", @@ -36578,6 +41363,9 @@ "fa": "تنگه", "fi": "salmi", "fr": "détroit", + "ga": "caolas", + "gd": "caol", + "gl": "estreito", "he": "מצר ים", "hi": "जलडमरूमध्य", "hr": "tjesnac", @@ -36590,7 +41378,6 @@ "lv": "jūras šaurums", "ml": "കടലിടുക്ക്", "mr": "सामुद्रधुनी", - "ms": "selat", "nb": "sund", "nl": "zeestraat", "pl": "cieśnina", @@ -36598,9 +41385,11 @@ "ro": "strâmtoare", "ru": "пролив", "sk": "prieliv", - "sl": "morski preliv", + "sl": "preliv", + "sq": "ngushtica", "sv": "sund", "ta": "நீரிணை", + "te": "జలసంధి", "th": "ช่องแคบ", "tr": "boğaz", "uk": "протока", @@ -36611,6 +41400,7 @@ }, "termite_mound": { "cs": "termitiště", + "cy": "tomen dermit", "de": "termitenhügel", "en": "termite mound", "es": "termitero", @@ -36632,6 +41422,7 @@ "bg": "дърво", "ca": "arbre", "cs": "strom", + "cy": "coeden", "da": "træ", "de": "baum", "el": "δέντρο", @@ -36641,6 +41432,9 @@ "fa": "درخت", "fi": "puu", "fr": "arbre", + "ga": "crann", + "gd": "craobh", + "gl": "árbore", "he": "עץ", "hi": "वृक्ष", "hr": "stablo", @@ -36654,7 +41448,6 @@ "lv": "koks", "ml": "മരം", "mr": "झाड", - "ms": "pokok", "nb": "tre", "nl": "boom", "pl": "drzewo", @@ -36663,8 +41456,10 @@ "ru": "дерево", "sk": "strom", "sl": "drevo", + "sq": "pemë", "sv": "träd", "ta": "மரம்", + "te": "చెట్టు", "th": "ต้นไม้", "tr": "ağaç", "uk": "дерево", @@ -36692,6 +41487,40 @@ "zh": "行道树", "zh-hk": "行道樹" }, + "tree_stump": { + "ar": "جذل", + "be": "пень", + "bg": "пън", + "ca": "tronc (botànica)", + "cs": "pařez", + "cy": "bonyn", + "de": "baumstumpf", + "en": "tree stump", + "es": "tocón", + "et": "känd", + "fa": "کنده", + "fi": "kanto (kasvianatomia)", + "fr": "souche", + "gd": "bun-craoibhe", + "hi": "ठूंठ", + "hu": "fatönk", + "id": "tunggul pohon", + "it": "ceppo", + "ja": "切り株", + "ko": "그루터기", + "lt": "kelmas", + "nb": "stubbe", + "nl": "stobbe", + "pl": "pniak", + "pt": "cepo", + "ru": "пень", + "sl": "štor", + "sv": "stubbe", + "tr": "ağaç kütüğü", + "uk": "пеньок", + "vi": "gốc chặt", + "zh": "樹樁" + }, "valley": { "af": "vallei", "ar": "واد", @@ -36699,6 +41528,7 @@ "bg": "долина", "ca": "vall", "cs": "údolí", + "cy": "dyffryn", "da": "dal", "de": "tal", "el": "κοιλάδα", @@ -36708,8 +41538,11 @@ "fa": "دره", "fi": "laakso", "fr": "vallée", + "ga": "gleann", + "gd": "gleann", + "gl": "val", "he": "עמק", - "hi": "घाटी - पर्वतों या उत्थित भागों के बीच निचली ज़मीन वाला हिस्सा, लम्बाई में विस्तार वाला", + "hi": "घाटी", "hr": "dolina", "hu": "völgy", "id": "lembah", @@ -36721,7 +41554,6 @@ "lv": "ieleja", "ml": "താഴ്വര", "mr": "दरी", - "ms": "lembah", "nb": "dal", "nl": "dal", "pl": "dolina", @@ -36730,8 +41562,10 @@ "ru": "долина", "sk": "dolina", "sl": "dolina", + "sq": "luginë", "sv": "dal", "ta": "பள்ளத்தாக்கு", + "te": "లోయ", "th": "หุบเขา", "tr": "vadi", "uk": "долина", @@ -36746,6 +41580,7 @@ "bg": "вулкан", "ca": "volcà", "cs": "sopka", + "cy": "llosgfynydd", "da": "vulkan", "de": "vulkan", "el": "ηφαίστειο", @@ -36755,6 +41590,9 @@ "fa": "آتشفشان", "fi": "tulivuori", "fr": "volcan", + "ga": "bolcán", + "gd": "beinn-theine", + "gl": "volcán", "he": "הר געש", "hi": "ज्वालामुखी", "hr": "vulkan", @@ -36768,7 +41606,6 @@ "lv": "vulkāns", "ml": "അഗ്നിപർവ്വതം", "mr": "ज्वालामुखी", - "ms": "gunung berapi", "nb": "vulkan", "nl": "vulkaan", "pl": "wulkan", @@ -36777,8 +41614,10 @@ "ru": "вулкан", "sk": "sopka", "sl": "vulkan", + "sq": "vullkan", "sv": "vulkan", "ta": "எரிமலை", + "te": "అగ్నిపర్వతం", "th": "ภูเขาไฟ", "tr": "yanardağ", "uk": "вулкан", @@ -36788,20 +41627,23 @@ }, "water": { "af": "watermassa", - "ar": "منتجع كلي شيرانه السياحي", + "ar": "مسطح مائي", "be": "водны аб’ект", "bg": "воден басейн", "ca": "cos d'aigua", "cs": "vodstvo", + "cy": "corff o ddŵr", "da": "vandområde", "de": "gewässer", "el": "υδάτινο σώμα", - "en": "avasheen gelye sherane resort", + "en": "body of water", "es": "cuerpo de agua", "et": "veekogu", "fa": "بدنه آبی", "fi": "vesimuodostuma", "fr": "étendue d'eau", + "ga": "limistéar uisce", + "gl": "corpo de auga", "he": "גוף מים", "hi": "जल निकाय", "hr": "vodena površina", @@ -36814,7 +41656,6 @@ "lv": "ūdenstilpe", "ml": "ജലാശയം", "mr": "जलसाठा", - "ms": "jasad air", "nb": "vannmasse", "nl": "waterlichaam", "pl": "akwen", @@ -36822,8 +41663,10 @@ "ro": "întindere de apă", "ru": "водный объект", "sl": "vodno telo", + "sq": "trup ujor", "sv": "vattensamling", "ta": "நீர்நிலைகள்", + "te": "నీటి రాశి", "th": "แหล่งน้ำ", "tr": "su kütlesi", "uk": "водний об'єкт", @@ -36839,6 +41682,7 @@ "bg": "влажна зона", "ca": "zona humida", "cs": "mokřad", + "cy": "gwlyptir", "da": "vådområde", "de": "feuchtgebiet", "el": "υγροβιότοπος", @@ -36848,6 +41692,9 @@ "fa": "تالاب", "fi": "kosteikko", "fr": "zone humide", + "ga": "bogach", + "gd": "talamh fliuch", + "gl": "zona húmida", "he": "ביצה", "hi": "आर्द्रभूमि", "hr": "vlažno područje", @@ -36860,7 +41707,6 @@ "lv": "mitrājs", "ml": "തണ്ണീർത്തടം", "mr": "पाणथळ जमीन", - "ms": "tanah lembap", "nb": "våtmark", "nl": "drasland", "pl": "mokradło", @@ -36888,6 +41734,7 @@ "bg": "гора", "ca": "bosc sagrat", "cs": "posvátný háj", + "cy": "coedwig", "da": "skov", "de": "baumkult", "de-ch": "wald", @@ -36900,6 +41747,9 @@ "fa": "جنگل", "fi": "pyhä lehto", "fr": "bois sacré", + "ga": "foraois", + "gd": "coille", + "gl": "bosque", "he": "חורשה קדושה", "hi": "पवित्र उपवन", "hr": "šuma", @@ -36908,24 +41758,25 @@ "it": "bosco sacro", "ja": "神聖な森", "kn": "ಕಾಡು", - "ko": "숲", + "ko": "성림", "lt": "šventoji giraitė", "lv": "svētmežs", "ml": "വനം", "mr": "देवराई", - "ms": "hutan", "nb": "hellig lund", "nl": "boomheiligdom", - "pl": "święty gaj (antropologia)", + "pl": "święty gaj", "pt": "floresta", "ro": "pădure", "ru": "священная роща", "sk": "les", - "sl": "gozd", + "sl": "sveti gaj", + "sq": "korijet e shenjta", "sv": "skog", "ta": "காடு", + "te": "అడవి", "th": "ป่าไม้", - "tr": "orman", + "tr": "kutsal koru", "uk": "ліс", "ur": "جنگل", "vi": "rừng thiêng", @@ -36961,6 +41812,7 @@ "ja": "オーストリアの高速道路", "nl": "oostenrijkse autosnelwegen", "pl": "autostrady i drogi ekspresowe w austrii", + "sl": "avtoceste v avstriji", "sv": "motorvägar i österrike", "uk": "автошляхи австрії", "zh": "奧地利高速公路" @@ -36969,7 +41821,8 @@ "en": "brisbane metroads" }, "AX": { - "en": "main roads in åland" + "en": "main roads in åland", + "sl": "glavne ceste na ålandskih otokih" }, "AsianHighway": { "ca": "xarxa de carreteres asiàtiques", @@ -36986,7 +41839,6 @@ "ja": "アジアハイウェイ", "ko": "아시안 하이웨이", "mr": "आशिया महामार्ग", - "ms": "rangkaian lebuh raya asia", "nl": "aziatische weg", "ru": "международная азиатская сеть", "sl": "azijsko cestno omrežje", @@ -37016,6 +41868,12 @@ "sv": "motorväg i belgien", "zh": "比利时高速公路" }, + "BO": { + "de": "nationalstraßen in bolivien", + "en": "national routes of bolivia", + "es": "red vial fundamental de bolivia", + "fr": "route nationale de bolivie" + }, "BR": { "ca": "rutes federals del brasil", "de": "bundesstraßen in brasilien", @@ -37040,6 +41898,7 @@ "pl": "metro w baltimore", "pt": "metro de baltimore", "ru": "метрополитен балтимора", + "sl": "baltimore metro", "th": "รถไฟใต้ดินบอลทิมอร์", "tr": "baltimore metro subway", "uk": "метрополітен балтімора", @@ -37077,7 +41936,7 @@ "pt": "rodovia trans-canadá", "ro": "șoseaua trans-canadiană", "ru": "трансканадское шоссе", - "sl": "transkanadska avtocesta", + "sl": "magistralne ceste v alberti, serija 1–216", "sv": "trans-canada highway", "tr": "trans-kanada karayolu", "uk": "автомагістралі квебеку", @@ -37090,12 +41949,13 @@ "fr": "route nationale du chili" }, "CN": { + "ca": "sistema nacional de carreteres troncals", "de": "autobahnnetz peking", "en": "provincial highways in anhui", "es": "carreteras nacionales de china", "fr": "autoroutes de shanghai", "id": "jalan bebas hambatan terkendali beijing", - "ja": "中国の国道", + "ja": "中国国家高速公路網", "ko": "길림의 고속도로", "nl": "national trunk highway system", "pt": "via expressa em guangdong", @@ -37106,18 +41966,13 @@ "ur": "چین قومی شاہراہیں", "vi": "đường cao tốc trong quảng tây", "zh": "安徽省道", - "zh-hk": "中國國家高速公路網", - "zh-tw": "中國國家高速公路網" + "zh-hk": "中華人民共和國國家高速公路網", + "zh-tw": "中華人民共和國國家高速公路網" }, "Casals i Ateneus dels Països Catalans": { "ca": "casals i ateneus dels països catalans", "en": "network of social centres from the catalan countries" }, - "DE": { - "de-ch": "bundesstrasse", - "en": "bundesstraße", - "ja": "ブンデスシュトラッセ" - }, "DLR": { "en": "docklands light railway station", "fr": "station du métro léger des docklands", @@ -37125,9 +41980,18 @@ }, "DZ": { "ar": "الطرق السيارة في الجزائر", + "de": "nationalstraßen in algerien", "en": "highways in algeria", "fr": "routes nationales d'algérie", - "it": "autostrade in algeria" + "it": "autostrade in algeria", + "sl": "avtoceste v alžiriji" + }, + "EC": { + "en": "national routes of ecuador", + "es": "red vial nacional" + }, + "FO": { + "en": "national highways in the faroe islands" }, "FR": { "ca": "autopista francesa", @@ -37141,6 +42005,7 @@ "nl": "autoroute", "pl": "autostrada we francji", "ru": "автодорога франции", + "sl": "avtocesta v franciji", "uk": "автодорога франції", "zh": "法国高速公路" }, @@ -37156,8 +42021,9 @@ "GR": { "bg": "автомагистрали в гърция", "cs": "dálnice v řecku", - "en": "greek motorways", - "fr": "autoroute grecque", + "el": "αυτοκινητόδρομο", + "en": "motorway", + "fr": "autoroute", "hu": "görögország autópályái", "ru": "автомобильные дороги греции", "sv": "motorvägar i grekland" @@ -37167,6 +42033,22 @@ "en": "hong kong strategic route and exit number system", "zh": "香港幹線編號系統" }, + "HR": { + "bg": "автомагистрали в хърватия", + "cs": "dálnice v chorvatsku", + "de": "kroatische autobahnen", + "en": "highways in croatia", + "fi": "kroatian moottoritieverkko", + "fr": "autoroutes en croatie", + "hr": "autoceste u hrvatskoj", + "hu": "horvátország autópályái", + "it": "autostrade in croazia", + "pl": "autostrady w chorwacji", + "ru": "автомагистрали хорватии", + "sl": "avtoceste na hrvaškem", + "sv": "motorvägar i kroatien", + "zh": "州道" + }, "HT": { "en": "national roads in haiti" }, @@ -37179,12 +42061,13 @@ "en": "national expressways of india", "fi": "intian valtatiet", "hi": "राष्ट्रीय राजमार्ग", - "ja": "インドの高速道路", + "ja": "インドの国道", "kn": "ರಾಷ್ಟ್ರೀಯ ಹೆದ್ದಾರಿ (ಭಾರತ)", "ml": "ഇന്ത്യയിലെ ദേശീയപാതകൾ", "mr": "राष्ट्रीय महामार्ग", "nl": "nationale snelweg", "ta": "இந்தியாவின் நெடுஞ்சாலைகள்", + "te": "భారతదేశ జాతీయ రహదారులు", "uk": "національні автодороги (індія)", "ur": "نیشنل ہائی وے", "vi": "quốc lộ ấn độ", @@ -37208,6 +42091,7 @@ "en": "autostrade in italy", "fi": "italian moottoritieverkko", "fr": "autoroute italienne", + "gl": "autoestradas de italia", "hu": "olaszország autópályái", "it": "autostrade in italia", "ja": "都市外の主要道路", @@ -37232,12 +42116,13 @@ "it": "autostrade in giappone", "ja": "日本の高速道路", "ko": "일본의 고속도로", - "ms": "lebuh raya kebangsaan di jepun", "nl": "japanse autosnelweg", "pl": "droga prefekturalna", "ru": "скоростные дороги японии", + "sl": "avtoceste na japonskem", "th": "ทางด่วนในประเทศญี่ปุ่น", "uk": "швидкісні дороги японії", + "vi": "quốc lộ nhật bản", "zh": "日本高速公路", "zh-hk": "一般國道" }, @@ -37245,14 +42130,13 @@ "ar": "طريق محلية في كوريا الجنوبية", "cs": "dálnice v jižní koreji", "de": "autobahnen in südkorea", - "en": "expressways in south korea", + "en": "expressway in south korea", "es": "autopistas en corea del sur", "et": "lõuna-korea kiirteed", "fr": "réseau autoroutier sud-coréen", "id": "jalan tol korea selatan", "ja": "高速国道", "ko": "대한민국 고속국도", - "ms": "lebuh raya di korea selatan", "nl": "lijst van zuid-koreaanse autosnelwegen", "pl": "droga lokalna w korei południowej", "ru": "дорога местного значения в южной корее", @@ -37265,33 +42149,32 @@ "en": "royal saxon milestone" }, "LU": { - "cs": "dálnice v lucembursku", "de": "nationalstraße (luxemburg)", - "en": "motorways in luxembourg", + "en": "expressway network of luxembourg", "fr": "chemin repris", - "hu": "luxemburg autópályái", - "it": "autostrade in lussemburgo", - "nl": "gebiedsweg", - "pl": "autostrady w luksemburgu", - "sv": "motorvägar i luxemburg" + "nl": "gebiedsweg" }, "MG": { + "en": "national road of madagascar", "fr": "route nationale de madagascar" }, "MX": { - "en": "mexican federal highways", - "es": "carreteras federales de méxico", + "en": "eje viales", + "es": "ejes viales de la ciudad de méxico", "fr": "route fédérale mexicaine", + "nb": "eje vial", "nl": "mexicaanse federale snelweg", "ru": "мексиканское федеральное шоссе", + "sl": "mehiško omrežje zveznih avtocest", + "tr": "eje vial", "zh": "墨西哥聯邦高速公路" }, "MY": { "de": "liste der autobahnen in malaysia", "en": "malaysian expressway system", + "fa": "سیستم بزرگراه در مالزی", "fr": "liste des autoroutes de malaisie", "id": "sistem jalan tol malaysia", - "ms": "sistem lebuh raya malaysia", "nl": "lijst van maleisische autosnelwegen", "sl": "seznam avtocest v maleziji", "ta": "மலேசிய விரைவுச்சாலை முறைமை", @@ -37309,11 +42192,13 @@ "hu": "caracasi metró", "it": "metropolitana di caracas", "ja": "カラカス地下鉄", + "ko": "카라카스 메트로", "nl": "metro van caracas", "pl": "metro w caracas", "pt": "metro de caracas", "pt-br": "metrô de caracas", "ru": "каракасский метрополитен", + "sl": "metro caracas", "sv": "caracas tunnelbana", "th": "รถไฟใต้ดินการากัส", "tr": "caracas metrosu", @@ -37328,7 +42213,8 @@ "es": "metrobús de caracas", "it": "metrobus caracas", "pl": "metrobus caracas", - "pt": "metrobus caracas" + "pt": "metrobus caracas", + "sl": "metrobus caracas" }, "Mitre": { "de": "ferrocarril general bartolomé mitre", @@ -37338,8 +42224,12 @@ "fr": "chemin de fer general bartolomé mitre", "ja": "ミトレ幹線", "nl": "ferrocarril general bartolomé mitre", + "sl": "ferrocarril general bartolomé mitre", "zh": "巴托洛梅·米特雷將軍鐵路線" }, + "NE": { + "en": "national roads in niger" + }, "NL": { "ca": "autopistes dels països baixos", "cs": "dálnice v nizozemsku", @@ -37361,8 +42251,12 @@ "nl": "nationale weg", "ru": "сеть государственных шоссе (новая зеландия)" }, + "PE": { + "en": "departmental road network", + "es": "red vial departamental" + }, "PH": { - "en": "philippine expressway network", + "en": "expressway network of the philippines", "he": "רשת הכביש המהיר הפיליפיני", "th": "ทางด่วนในประเทศฟิลิปปินส์", "zh": "菲律宾高速公路" @@ -37438,6 +42332,7 @@ "bg": "49-милен живописен път", "ca": "carreteres estatals de califòrnia", "cs": "great lakes seaway trail", + "cy": "great lakes seaway trail", "da": "capital beltway", "de": "indian reservation roads program", "de-at": "great lakes seaway trail", @@ -37449,6 +42344,9 @@ "fa": "سامانه بزرگراههای میان ایالتی", "fi": "great lakes seaway trail", "fr": "route de comté de californie", + "ga": "great lakes seaway trail", + "gd": "great lakes seaway trail", + "gl": "great lakes seaway trail", "he": "דרך הנהר הגדולה", "hr": "program cesta u indijanskim rezervatima", "hu": "great lakes seaway trail", @@ -37458,7 +42356,6 @@ "ko": "주간고속도로", "lv": "starpštatu šoseju sistēma", "mr": "आंतरराज्यीय महामार्ग प्रणाली", - "ms": "great lakes seaway trail", "nb": "merritt parkway", "nl": "49-mile scenic drive", "pl": "great lakes seaway trail", @@ -37494,6 +42391,7 @@ "cs": "dálnice v kosovu", "de": "autobahn (kosovo)", "en": "motorways in kosovo", + "sq": "autostradat në kosovë", "zh": "科索沃高速公路" }, "am": { @@ -37522,6 +42420,7 @@ "pl": "autostrady w bułgarii", "ro": "autostrăzi în bulgaria", "ru": "автомагистрали болгарии", + "sq": "autostradat në bullgari", "sv": "motorvägar i bulgarien", "uk": "автомагістралі болгарії" }, @@ -37562,7 +42461,7 @@ "fa": "شبکه بینالمللی ای-جاده", "fi": "eurooppatie", "fr": "route européenne", - "he": "רשת הכבישים האירופית", + "he": "רשת כבישי ה-e הבין-לאומית", "hr": "europska mreža međunarodnih puteva", "hu": "európai úthálózat", "it": "strade europee", @@ -37606,7 +42505,7 @@ "ja": "国道1号", "nl": "nationale weg in finland", "pl": "droga państwowa i klasy", - "sl": "magistralna cesta (1. razred)", + "sl": "povezovalna cesta", "sv": "förbindelseväg", "uk": "автошляхи в фінляндії", "zh": "芬蘭公路" @@ -37631,7 +42530,6 @@ "en": "malaysian federal roads system", "id": "rute federal", "ko": "말레이시아의 연방 도로", - "ms": "jalan persekutuan", "ta": "மலேசிய கூட்டரசு சாலைகள்", "th": "ระบบทางหลวงสหพันธ์มาเลเซีย", "zh": "馬來西亞聯邦公路" @@ -37640,7 +42538,8 @@ "en": "nextbike" }, "np": { - "en": "national highway system of nepal" + "en": "national highway system of nepal", + "hi": "राष्ट्रीय राजमार्ग प्रणाली (नेपाल)" }, "pl": { "bg": "автомагистрали в полша", @@ -37684,6 +42583,7 @@ "nl": "russische federale autowegen", "pl": "droga federalna w rosji", "ru": "автомобильные дороги федерального значения россии", + "sl": "zvezne avtoceste v rusiji", "sv": "motorvägar i ryssland", "uk": "автомобільні дороги федерального значення російської федерації", "zh": "俄罗斯联邦公路" @@ -37692,7 +42592,7 @@ "bg": "автомагистрали в словакия", "ca": "autopistes d'eslovàquia", "cs": "dálnice na slovensku", - "en": "highways in slovakia", + "en": "highway in slovakia", "fi": "slovakian moottoritieverkko", "it": "autostrade in slovacchia", "ja": "スロバキアの高速道路", @@ -37707,6 +42607,9 @@ "stadtradhamburg": { "en": "stadtrad hamburg" }, + "stadtradlueneburg": { + "en": "stadtrad lüneburg" + }, "ua": { "de": "regionalstraße", "en": "international highways in ukraine", @@ -37755,7 +42658,6 @@ "id": "kuldesak", "it": "strada senza uscita", "ja": "クルドサック", - "ms": "jalan mati", "nb": "blindgate", "nl": "doodlopende weg", "pl": "sięgacz", @@ -37786,8 +42688,10 @@ "cs": "bezejmenná entita", "en": "nameless entity", "es": "entidad sin nombre", + "fr": "entité non nommée", "it": "entità senza nome", "ja": "無名のエンティティ", + "lv": "vienība bez nosaukuma", "pl": "nienazwana encja", "pt-br": "ente sem nome", "ru": "безымянная сущность", @@ -37802,6 +42706,7 @@ "be": "астранамічная абсерваторыя", "ca": "observatori astronòmic", "cs": "hvězdárna", + "cy": "arsyllfa seryddol", "da": "astronomisk observatorium", "de": "sternwarte", "el": "αστεροσκοπείο", @@ -37811,18 +42716,21 @@ "fa": "رصدخانه نجومی", "fi": "tähtitorni", "fr": "observatoire astronomique", + "ga": "réadlann", + "gl": "observatorio astronómico", "he": "מצפה כוכבים", "hr": "zvjezdarnica", "hu": "csillagászati obszervatórium", "it": "osservatorio astronomico", "ja": "天文台", "ko": "천문대", + "lt": "astronominė observatorija", "lv": "astronomijas observatorija", - "ms": "balai cerap astronomi", "nb": "astronomisk observatorium", "nl": "astronomisch observatorium", "pl": "obserwatorium astronomiczne", "pt": "observatório astronómico", + "pt-br": "observatório astronômico", "ro": "observator astronomic", "ru": "астрономическая обсерватория", "sk": "astronomické observatórium", @@ -37841,29 +42749,27 @@ "be": "асацыяцыя", "ca": "associació voluntària", "cs": "spolek", + "cy": "mudiad gwirfoddol", "da": "frivillig organisation", - "de": "digitale gesellschaft", - "de-ch": "freiwilligen-verein", + "de": "freiwilligen-verein", "el": "εθελοντικός οργανισμός", - "en": "digital society", - "en-ca": "voluntary association", - "en-gb": "voluntary association", + "en": "voluntary association", "es": "asociación voluntaria", "et": "selts", "fa": "اجتماع داوطلبانه", "fi": "yhdistys", - "fr": "société numérique", + "fr": "association à but non lucratif", + "ga": "eagraíocht shaorálach", + "gl": "asociación", "he": "עמותה", - "hi": "voluntary association", "hr": "udruga", - "hu": "egyesület", + "hu": "önkéntes társulás", "id": "perhimpunan sukarela", "it": "associazione", "ja": "任意団体", "ko": "조합", "lt": "registruotoji draugija", "lv": "biedrība", - "ms": "persatuan sukarela", "nb": "forening", "nl": "vrijwilligersorganisatie", "pl": "stowarzyszenie", @@ -37873,6 +42779,7 @@ "sk": "občianske združenie", "sl": "prostovoljsko združenje", "sv": "frivillig förening", + "ta": "தன்னார்வ அமைப்பு", "th": "สมาคมโดยสมัครใจ", "tr": "dernek", "uk": "асоціація", @@ -37882,6 +42789,7 @@ "zh-cn": "协会" }, "bail_bond_agent": { + "ca": "fiador", "de": "kautionsagent", "en": "bail bondsman", "es": "fiador", @@ -37894,7 +42802,45 @@ "vi": "đại lý bảo lãnh thế chân tại ngoại", "zh": "保释代理人" }, + "call_centre": { + "ar": "مركز اتصالات", + "be": "кол-цэнтр", + "bg": "колцентър", + "ca": "centre d'atenció telefònica", + "cs": "call centrum", + "de": "callcenter", + "el": "τηλεφωνικό κέντρο", + "en": "call center", + "en-ca": "call centre", + "en-gb": "call centre", + "es": "centro de llamadas", + "et": "kõnekeskus", + "fa": "مرکز تماس", + "fi": "yhteyskeskus", + "fr": "centre d'appel", + "ga": "lárionad glaonna", + "he": "מוקד שירות", + "ja": "コールセンター", + "ko": "콜 센터", + "lt": "skambučių centras", + "lv": "zvanu centrs", + "nb": "kundesenter", + "nl": "callcenter", + "pt": "central de atendimento", + "ro": "call centru bazat pe protocoale ip", + "ru": "колл-центр", + "sl": "klicni center", + "sq": "qendra e thirrjeve", + "sv": "callcenter", + "th": "ศูนย์รับเรื่อง", + "tr": "çağrı merkezi", + "uk": "кол-центр", + "ur": "کال سنٹر", + "vi": "trung tâm cuộc gọi", + "zh": "呼叫中心" + }, "chamber": { + "ar": "تنظيم التنظيم الذاتي", "ca": "cos professional", "cs": "samosprávná organizace", "de": "berufsständische körperschaft", @@ -37902,6 +42848,7 @@ "en-gb": "self-regulatory organisation", "es": "cuerpo profesional", "fr": "organisation d'autorégulation", + "hu": "önszabályozó szervezet", "id": "organisasi regulator mandiri", "ja": "自主規制組織", "pl": "samorząd gospodarczy", @@ -37911,6 +42858,48 @@ "uk": "саморегульована організація", "zh": "自律組織" }, + "charity": { + "ar": "منظمة خيرية", + "be": "дабрачынная арганізацыя", + "bg": "благотворителна организация", + "ca": "entitat benèfica", + "cs": "charitativní organizace", + "cy": "elusen", + "da": "velgørende organisation", + "de": "karitative vereinigung", + "el": "φιλανθρωπική οργάνωση", + "en": "charitable organization", + "en-gb": "charitable organisation", + "es": "asociación caritativa", + "fa": "سازمان خیریه", + "fi": "hyväntekeväisyysjärjestö", + "fr": "association caritative", + "ga": "carthanas", + "gd": "buidheann carthanais", + "gl": "entidade filantrópica", + "he": "ארגון צדקה", + "hi": "परोपकारी संस्था", + "hu": "jótékonysági szervezet", + "id": "organisasi amal", + "it": "associazione di beneficenza", + "ja": "慈善団体", + "ko": "자선 단체", + "lv": "labdarības organizācija", + "nb": "veldedig organisasjon", + "nl": "goededoelenorganisatie", + "pl": "organizacja charytatywna", + "pt": "entidade filantrópica", + "ru": "благотворительная организация", + "sl": "dobrodelna organizacija", + "sq": "organizata e bamirësisë", + "sv": "välgörenhetsorganisation", + "tr": "hayır kurumu", + "uk": "благодійна організація", + "vi": "tổ chức từ thiện", + "zh": "慈善组织", + "zh-hk": "慈善組織", + "zh-tw": "慈善組織" + }, "construction_company": { "be": "будаўнічая кампанія", "ca": "empresa de construcció", @@ -37920,23 +42909,49 @@ "el": "εργολάβος κατασκευών", "en": "construction business", "es": "empresa de construcción", + "et": "ehitusettevõte", "fi": "rakennusaliurakoitsija", "fr": "entreprise de construction", "he": "חברת בנייה", "hu": "építési vállalkozás", "it": "impresa edile", "ja": "建設会社", - "ko": "건설업", + "ko": "건설 회사", "nb": "byggefirma", "nl": "bouwbedrijf", "pt": "construtora", "ro": "companie de construcții", "ru": "строительная компания", "sl": "gradbeno podjetje", - "uk": "будівництво", + "uk": "будівельна фірма", "zh": "建筑企业", "zh-tw": "建築企業" }, + "copyright_collective": { + "ar": "حقوق النشر الجماعية", + "ca": "entitat de gestió col·lectiva", + "cs": "kolektivní správce", + "da": "kollektiv ophavsretsorganisation", + "de": "verwertungsgesellschaft", + "en": "copyright collective", + "es": "entidad de gestión colectiva", + "fi": "tekijänoikeusjärjestö", + "fr": "société de gestion des droits d'auteur", + "ga": "comharghrúpa cóipchirt", + "he": "סוכנות איסוף התמלוגים וזכויות היוצרים", + "hu": "közös jogkezelő szervezet", + "it": "società di gestione collettiva di diritti d'autore", + "ja": "著作権管理団体", + "ko": "저작권 신탁 관리 단체", + "nb": "opphavsrettsorganisasjon", + "nl": "collectieve auteursrechtenorganisatie", + "pl": "organizacja zbiorowego zarządzania prawami autorskimi lub prawami pokrewnymi", + "ru": "коллективное управление авторскими и смежными правами", + "sl": "avtorskopravni kolektiv", + "sv": "förvaltningsorganisation för upphovsrätt", + "uk": "товариство з колективного управління авторськими правами", + "zh": "著作權管理團體" + }, "courier": { "de": "kurierdienst", "en": "courier service", @@ -37956,10 +42971,10 @@ "es": "cotrabajo", "fa": "فضای کار مشترک", "fi": "ryhmätyötila", + "ga": "obair chomhionaid", "he": "חלל עבודה משותף", "id": "kerja bersama", "ja": "コワーキング", - "ms": "kerja bersama", "nb": "kontorfellesskap", "nl": "deelkantoor", "ru": "коворкинг", @@ -37977,6 +42992,7 @@ "bg": "дипломатическа мисия", "ca": "missió diplomàtica", "cs": "zastupitelský úřad", + "cy": "llysgenhadaeth", "da": "diplomatisk mission", "de": "auslandsvertretung", "el": "διπλωματική αποστολή", @@ -37986,6 +43002,8 @@ "fa": "سفارت", "fi": "diplomaattinen edustusto", "fr": "mission diplomatique", + "ga": "misean taidhleoireachta", + "gl": "misión diplomática", "he": "נציגות דיפלומטית", "hi": "राजनयिक मिशन", "hr": "veleposlanstvo", @@ -37995,7 +43013,6 @@ "ja": "在外公館", "ko": "외교 공관", "lt": "diplomatinė atstovybė", - "ms": "kedutaan", "nb": "diplomatisk utsending", "nl": "diplomatieke missie", "pl": "misja dyplomatyczna", @@ -38003,6 +43020,7 @@ "ro": "misiune diplomatică", "ru": "дипломатическое представительство", "sl": "veleposlaništvo", + "sq": "misioni diplomatik", "sv": "beskickning", "th": "คณะผู้แทนทางทูต", "tr": "dış temsilcilik", @@ -38030,13 +43048,13 @@ "ja": "職業紹介事業", "ko": "노동거래소", "lt": "įdarbinimo agentūra", - "ms": "agensi pekerjaan", "nb": "arbeidsformindling", "nl": "arbeidsbureau", "pl": "agencja zatrudnienia", "pt": "agência de emprego", "ru": "кадровое агентство", "sl": "najem delovne sile", + "sq": "agjencia e punësimit", "sv": "arbetsförmedling", "uk": "кадрова агенція", "ur": "ملازمتی وکالہ", @@ -38050,6 +43068,7 @@ "bg": "инженер", "ca": "enginyer", "cs": "inženýr", + "cy": "peiriannydd", "da": "ingeniør", "de": "ingenieur", "el": "μηχανικός", @@ -38059,19 +43078,21 @@ "fa": "مهندس", "fi": "insinööri", "fr": "ingénieur ou ingénieure", + "ga": "innealtóir", + "gd": "einnseanair", + "gl": "enxeñeiro", "he": "מהנדס", "hi": "अभियन्ता", "hr": "inženjer", "hu": "mérnök", "id": "insinyur", "it": "ingegnere", - "ja": "工学者", + "ja": "エンジニア", "ko": "기술자", "lt": "inžinierius", "lv": "inženieris", "ml": "എഞ്ചിനീയർ", "mr": "अभियंता", - "ms": "jurutera", "nb": "ingeniør", "nl": "ingenieur", "pl": "inżynier", @@ -38080,8 +43101,10 @@ "ru": "инженер", "sk": "inžinier", "sl": "inženir", + "sq": "inxhinier", "sv": "ingenjör", "ta": "பொறியாளர்", + "te": "ఇంజనీరు", "th": "วิศวกร", "tr": "mühendis", "uk": "інженер", @@ -38105,7 +43128,10 @@ "et": "kinnisvaramaakler", "fa": "دلال بنگاه معاملات ملکی", "fi": "kiinteistönvälittäjä", - "fr": "agent immobilier ou agente immobilière", + "fr": "agent ou agente immobilier", + "ga": "gníomhaire eastáit", + "gd": "bròcair thogalaichean is talmhainn", + "gl": "axente inmobiliario", "he": "סוכן נדל\"ן", "hu": "ingatlanközvetítő", "id": "agen real estat", @@ -38131,6 +43157,7 @@ "ar": "مستشار مالي", "ca": "assessor financer", "cs": "finanční poradce", + "cy": "cynghorwr ariannol", "da": "finansiel rådgiver", "de": "finanzberater", "el": "οικονομικός σύμβουλος", @@ -38154,16 +43181,18 @@ "sv": "ekonomisk rådgivare", "th": "fal", "uk": "фінансовий консалтинг", + "vi": "cố vấn tài chính", "zh": "财务顾问", "zh-cn": "金融咨询师" }, "geodesist": { + "ar": "اختصاصي مسح الأرض", "ca": "geodesista", "cs": "geodet", "da": "geodæt", "de": "geodät", "el": "επιστήμονας της γεωδαισίας", - "en": "geodetic scientist", + "en": "geodesist", "es": "geodesta", "et": "geodeet", "fi": "geodeetti", @@ -38180,20 +43209,72 @@ "uk": "геодезист", "zh": "大地測量學家" }, + "government": { + "af": "regeringsagentskap", + "ar": "مؤسسة حكومية", + "be": "орган улады", + "bg": "държавна институция", + "ca": "agència governamental", + "cs": "orgán státní správy", + "cy": "asiantaeth lywodraethol", + "da": "myndighed", + "de": "behörde", + "el": "κρατική υπηρεσία", + "en": "government agency", + "en-gb": "government department", + "es": "organismo público", + "et": "asutus", + "fa": "سازمان دولتی", + "fi": "viranomainen", + "fr": "agence publique", + "ga": "gníomhaireacht rialtais", + "gl": "axencia gobernamental", + "he": "רשות ממשלתית", + "hi": "सरकारी संस्थान", + "hu": "állami szerv", + "id": "lembaga negara", + "it": "agenzia governativa", + "ja": "政府機関", + "ko": "정부 기관", + "lt": "valdžios institucija", + "lv": "valdības aģentūra", + "ml": "സർക്കാർ വിഭാഗം", + "mr": "सरकारी संस्था", + "nb": "etat", + "nl": "overheidsagentschap", + "pl": "instytucja państwowa", + "pt": "agência governamental", + "ro": "agenție guvernamentală", + "ru": "орган публичной власти", + "sk": "orgán štátnej správy", + "sl": "državni organ", + "sv": "myndighet", + "ta": "அரசு அமைப்பு", + "th": "หน่วยงานราชการ", + "tr": "kamu kurumu", + "uk": "орган державної влади", + "ur": "سرکاری تنظیم", + "vi": "cơ quan công quyền", + "zh": "政府機構", + "zh-cn": "政府机构", + "zh-tw": "政府機關" + }, "insurance": { "ca": "agència asseguradora", "en": "insurance agency", "ja": "保険仲立業", - "sl": "zavarovalna agencija" + "sl": "zavarovalna agencija", + "uk": "страхова аґенція" }, "insurance_adjuster": { "ar": "خبير تسوية المطالبات", "ca": "inspector de sinistres", "cs": "likvidátor pojistných událostí", + "cy": "addasydd hawliadau ariannol", "de": "dispacheur", "en": "claims adjuster", "fi": "merivahingonlaskija", - "fr": "enquêteur d'assurances", + "fr": "enquêteur ou enquêtrice d'assurances", "hu": "kárbecslő", "it": "perito sinistri", "ja": "保険査定員", @@ -38214,6 +43295,7 @@ "bg": "адвокат", "ca": "advocat", "cs": "advokát", + "cy": "cyfreithiwr", "da": "advokat", "de": "rechtsanwalt", "el": "δικηγόρος", @@ -38223,6 +43305,9 @@ "fa": "وکیل", "fi": "lakimies", "fr": "avocat ou avocate", + "ga": "dlíodóir", + "gd": "neach-lagha", + "gl": "avogado", "he": "עורך דין", "hi": "वक़ील", "hr": "odvjetnik", @@ -38236,8 +43321,7 @@ "lv": "advokāts", "ml": "വക്കീൽ", "mr": "वकील", - "ms": "peguam", - "nb": "jurist", + "nb": "advokat", "nl": "advocaat", "pl": "adwokat", "pt": "advogado", @@ -38246,9 +43330,11 @@ "ru": "практикующий юрист", "sk": "advokát", "sl": "pravnik", + "sq": "avokat", "sv": "advokat", "ta": "வழக்கறிஞர்", - "th": "ทนายความ", + "te": "న్యాయవాది", + "th": "นักกฎหมาย", "tr": "avukat", "uk": "адвокат", "ur": "وکیل", @@ -38260,9 +43346,11 @@ "ar": "وكيل شحن", "ca": "comitent", "cs": "přepravce", + "cy": "traddodwr", "da": "speditør", "en": "consignor", "fr": "expéditeur", + "ga": "coinsíneoir", "he": "משלח", "id": "pengamanat barang", "it": "committente", @@ -38278,6 +43366,7 @@ "en": "notary public", "fa": "سردفتري اسنادرسمي", "fr": "notaire public", + "ga": "coimisinéir mionn", "id": "notaris publik", "ja": "公証人", "ko": "공증인", @@ -38293,11 +43382,13 @@ "quango": { "ar": "سلطة إدارية مستقلة", "ca": "organització no governamental quasi-autònoma", + "cy": "sefydliad anllywodraethol lled-ymreolaethol", "de": "mittlerorganisation", "en": "quango", "es": "autoridad administrativa independiente", "fi": "välillinen julkishallinto", "fr": "autorité administrative indépendante", + "ga": "eagraíocht neamhrialtasach atá nach mór uathrialaitheach", "it": "autorità amministrativa indipendente", "ja": "独立行政機関", "nl": "zelfstandig bestuursorgaan", @@ -38310,6 +43401,7 @@ "ar": "مستشار ضريبي", "ca": "assessor fiscal", "cs": "daňový poradce", + "cy": "cynghorydd treth", "da": "skatterådgiver", "de": "steuerberater", "el": "φορολογικός σύμβουλος", @@ -38318,6 +43410,7 @@ "fa": "مشاور مالیاتی", "fi": "veroneuvoja", "fr": "conseiller ou conseillère fiscale", + "gl": "asesor fiscal", "he": "יועץ מס", "hu": "adótanácsadó", "it": "commercialista", @@ -38330,12 +43423,14 @@ "pt": "assessor fiscal", "ru": "налоговый консультант", "sl": "davčni svetovalec", + "sq": "këshilltar tatimor", "sv": "skatterådgivare", "zh": "稅理士" }, "telecommunication": { "ar": "شركة اتصالات", "be": "тэлекамунікацыйная кампанія", + "bg": "телекомуникационна компания", "ca": "companyia de telecomunicacions", "cs": "telekomunikační společnost", "da": "telekommunikationsvirksomhed", @@ -38371,12 +43466,16 @@ "et": "füsioterapeut", "fa": "فیزیوتراپیست", "fi": "fysioterapeutti", - "fr": "physiothérapeute", + "fr": "masseur-kinésithérapeute", + "ga": "fisiteiripeoir", + "gd": "leasaiche-cuirp", + "gl": "fisioterapeuta", "he": "פיזיותרפיסט", "hu": "gyógytornász", "it": "fisioterapista", "ja": "理学療法士", "ko": "물리치료사", + "lt": "fizioterapeutas", "lv": "fizioterapeits", "nb": "fysioterapeut", "nl": "fysiotherapeut", @@ -38386,7 +43485,9 @@ "sk": "fyzioterapeut", "sl": "fizioterapevt", "sv": "sjukgymnast", + "ta": "உடற்பயிற்சி மருத்துவர்", "tr": "fizyoterapist", + "uk": "фізичний терапевт", "zh": "物理治療師" }, "travel_agent": { @@ -38395,7 +43496,8 @@ "en": "travel agent", "es": "agente de viajes", "fa": "مدیر آژانس مسافرتی", - "fr": "agent de voyages", + "fr": "agent ou agente de voyages", + "he": "סוכן נסיעות", "hu": "utazási ügynök", "nl": "reisagent", "pl": "pośrednik turystyczny", @@ -38413,6 +43515,7 @@ "bg": "професионален съюз", "ca": "sindicat", "cs": "odbory", + "cy": "undeb llafur", "da": "fagforening", "de": "gewerkschaft", "el": "συνδικάτο", @@ -38424,6 +43527,9 @@ "fa": "سندیکا", "fi": "ammattiliitto", "fr": "syndicat professionnel", + "ga": "ceardchumann", + "gd": "aonadh-obrach", + "gl": "sindicato", "he": "איגוד עובדים", "hi": "श्रमिक संघ", "hr": "sindikat", @@ -38435,7 +43541,6 @@ "lt": "profesinė sąjunga", "lv": "arodbiedrība", "ml": "തൊഴിലാളിസംഘടന", - "ms": "kesatuan sekerja", "nb": "fagforening", "nl": "vakbond", "pl": "związek zawodowy", @@ -38444,8 +43549,10 @@ "ru": "профессиональный союз", "sk": "odbory", "sl": "sindikat", + "sq": "sindikata e punëtorëve", "sv": "fackförening", "ta": "தொழிற்சங்கம்", + "te": "కార్మిక సంఘాలు", "th": "สหภาพแรงงาน", "tr": "işçi sendikası", "uk": "професійна спілка", @@ -38455,6 +43562,27 @@ "zh-cn": "工会" } }, + "on_demand": { + "yes": { + "cs": "poptávková doprava", + "da": "flextrafik", + "de": "öpnv-sonderformen", + "en": "demand-responsive transport", + "es": "transporte a demanda", + "fa": "حملونقل پاسخگو", + "fi": "kutsuohjattu joukkoliikenne", + "fr": "service de transport à la demande", + "hu": "rugalmas közlekedési rendszer", + "it": "trasporto a chiamata", + "ja": "デマンドバス", + "ko": "drt", + "nl": "vraagafhankelijk openbaar vervoer", + "sl": "prevoz na zahtevo", + "ta": "தேவையுணர்ந்து செயற்படும் போக்குவரத்து", + "uk": "транспорт на вимогу", + "zh": "需求反應式運輸" + } + }, "oneway": { "no": { "ar": "حركة السير ثنائية الاتجاه", @@ -38482,6 +43610,7 @@ "fa": "عبور یکطرفه", "fi": "yksisuuntaisuus", "fr": "circulation en sens unique", + "gd": "sràid aon-slighe", "he": "תנועה חד-סיטרית", "hi": "ek taraf marg", "it": "senso unico", @@ -38492,28 +43621,36 @@ "pl": "ruch jednokierunkowy", "ro": "sens unic", "ru": "одностороннее движение", + "sk": "jednosmerná premávka", "sl": "enosmerni promet", "sv": "enkelriktning", + "te": "ఏకమార్గం", "uk": "односторонній рух", "zh": "单行道" } }, "opening_hours": { "": { + "ar": "مغلق للعامة", + "be": "закрыта для наведвальнікаў", "ca": "tancat al públic", "cs": "zavřeno pro veřejnost", + "cy": "ar gau i'r cyhoedd", "de": "für die öffentlichkeit geschlossen", "el": "κλειστό στο κοινό", "en": "closed to the public", "es": "cerrado al público", "fi": "suljettu yleisöltä", "fr": "fermé au public", + "ga": "gan cead isteach ag an bpobal", "he": "סגור לציבור", "hr": "zatvoren javnosti", "hu": "nem látogatható", + "id": "tertutup untuk umum", "it": "chiuso al pubblico", - "ja": "閉鎖", + "ja": "関係者以外非公開", "ko": "일반인 개방이 무기한 중단됨", + "nb": "stengt for publikum", "nl": "gesloten voor publiek", "pl": "niedostępny publicznie", "pt": "fechado ao público", @@ -38522,7 +43659,8 @@ "sv": "stängd för allmänheten", "tr": "halka kapalı", "uk": "закрито для публіки", - "zh-hk": "不對公眾開放" + "zh": "不對公眾開放", + "zh-cn": "不对公众开放" }, "24/7": { "ar": "خدمة 24/7", @@ -38530,6 +43668,7 @@ "cs": "nonstop", "en": "24/7", "fa": "۲۴ در ۷", + "hu": "nonstop", "id": "layanan 24/7", "it": "24 ore su 24", "ja": "24時間営業", @@ -38537,20 +43676,26 @@ "ur": "24/7 خدمت" }, "off": { + "ar": "مغلق للعامة", + "be": "закрыта для наведвальнікаў", "ca": "tancat al públic", "cs": "zavřeno pro veřejnost", + "cy": "ar gau i'r cyhoedd", "de": "für die öffentlichkeit geschlossen", "el": "κλειστό στο κοινό", "en": "closed to the public", "es": "cerrado al público", "fi": "suljettu yleisöltä", "fr": "fermé au public", + "ga": "gan cead isteach ag an bpobal", "he": "סגור לציבור", "hr": "zatvoren javnosti", "hu": "nem látogatható", + "id": "tertutup untuk umum", "it": "chiuso al pubblico", - "ja": "閉鎖", + "ja": "関係者以外非公開", "ko": "일반인 개방이 무기한 중단됨", + "nb": "stengt for publikum", "nl": "gesloten voor publiek", "pl": "niedostępny publicznie", "pt": "fechado ao público", @@ -38559,17 +43704,19 @@ "sv": "stängd för allmänheten", "tr": "halka kapalı", "uk": "закрито для публіки", - "zh-hk": "不對公眾開放" + "zh": "不對公眾開放", + "zh-cn": "不对公众开放" } }, "operator": { "": { - "af": "nie-regeringsorganisasie", + "af": "koöperasie", "ar": "ائتلاف تجاري", "be": "кансорцыум", "bg": "консорциум", "ca": "consorci", "cs": "konsorcium", + "cy": "consortiwm", "da": "konsortium", "de": "konsortium", "de-ch": "genossenschaft", @@ -38583,6 +43730,8 @@ "fa": "کنسرسیوم", "fi": "konsortio", "fr": "communauté organisée", + "ga": "cuibhreannas", + "gl": "consorcio", "he": "קונסורציום", "hi": "सहकारी समिति", "hr": "konzorcij", @@ -38596,18 +43745,19 @@ "lv": "konsorcijs", "ml": "സഹകരണസംഘം", "mr": "अशासकीय संस्था", - "ms": "konsortium", "nb": "konsortium", "nl": "consortium", "pl": "konsorcjum", "pt": "consórcio", "pt-br": "cooperativismo", - "ro": "cooperativă", + "ro": "consorţiu", "ru": "консорциум", "sk": "konzorcium", "sl": "konzorcij", + "sq": "organizatë qeveritare", "sv": "konsortium", "ta": "கூட்டுறவு", + "te": "సహకార సంఘం", "th": "คอนโซเตียม", "tr": "şirketler birliği", "uk": "консорціум", @@ -38615,33 +43765,22 @@ "vi": "côngxoocxiom", "zh": "聯盟", "zh-cn": "联盟" - }, - "Baltimore City Department of Transportation": { - "en": "baltimore salt box" - }, - "Bundesanstalt Technisches Hilfswerk": { - "ar": "الهيئة الاتحادية للإسناد التقني", - "en": "technisches hilfswerk", - "fa": "سازمان کمک فنی", - "ja": "技術支援隊", - "sk": "bundesanstalt technisches hilfswerk", - "zh": "联邦技术救援局" - }, - "ESRI": { - "ar": "إسري", - "de": "environmental systems research institute", - "el": "arc map", - "en": "esri", - "fa": "ازری", - "fr": "environmental systems research institute", - "hi": "विकि.जीआईएस", - "hu": "environmental systems research institute", - "nb": "ersi", - "zh": "美國環境系統研究所公司" - }, - "Stadtwerke_Lübeck_mobil": { - "en": "stadtwerke lübeck mobil", - "zh": "吕贝克城市交通公司" + } + }, + "outdoor_seating": { + "patio": { + "ca": "pati", + "da": "gårdhave", + "el": "πάτιο", + "en": "patio", + "fa": "نورخان", + "he": "פטיו", + "ja": "パティオ", + "ko": "파티오", + "pt": "pátio", + "ru": "патио", + "sv": "uteplats", + "uk": "патіо" } }, "ownership": { @@ -38651,6 +43790,7 @@ "es": "refugio nacional de vida silvestre", "fa": "پناهگاه ملی حیات وحش", "fr": "refuge faunique national", + "ga": "tearmann náisiúnta fiadhúlra", "ja": "野生生物保護区", "ru": "национальный резерват дикой природы", "sl": "nacionalni rezervat za prostoživeče živali", @@ -38669,6 +43809,7 @@ "es": "parque estatal", "fa": "پارک دولتی", "fr": "plage d'état", + "ga": "páirc stáit", "he": "פארק מדינתי", "it": "parco statale", "ja": "州立公園", @@ -38693,6 +43834,7 @@ "ar": "موقف سيارات متعدد الطوابق", "ca": "edifici d'aparcaments", "cs": "parkovací dům", + "cy": "maes parcio aml-lawr", "da": "parkeringshus", "de": "parkhaus", "en": "parking garage", @@ -38701,6 +43843,7 @@ "fa": "پارکینگ طبقاتی", "fi": "pysäköintitalo", "fr": "stationnement étagé", + "gl": "aparcadoiro", "id": "gedung parkir", "it": "autosilo", "ja": "立体駐車場", @@ -38723,7 +43866,7 @@ "cs": "podzemní garáž", "da": "parkeringskælder", "de": "tiefgarage", - "en": "underground parking space", + "en": "underground parking facility", "fi": "pysäköintiluola", "fr": "parking souterrain", "nl": "ondergrondse parkeergarage", @@ -38738,6 +43881,7 @@ "parking_space": { "disabled": { "cs": "vyhrazené parkoviště", + "cy": "man parcio i'r anabl", "da": "handicapparkeringsplads", "de": "behindertenparkplatz", "el": "θέση στάθμευσης με ειδικές ανάγκες", @@ -38768,6 +43912,9 @@ "ja": "男性専用駐車スペース", "ko": "남성전용 주차공간" }, + "veteran": { + "en": "veteran's parking space" + }, "women": { "ar": "أماكن وقوف السيارات الخاصة بالنساء", "de": "frauenparkplatz", @@ -38802,6 +43949,8 @@ "fa": "کارت اعتباری", "fi": "luottokortti", "fr": "carte de crédit", + "ga": "cárta creidmheasa", + "gl": "tarxeta de crédito", "he": "כרטיס אשראי", "hi": "क्रेडिट कार्ड", "hr": "kreditna kartica", @@ -38814,7 +43963,6 @@ "lt": "kredito kortelė", "lv": "kredītkarte", "ml": "ക്രെഡിറ്റ് കാർഡ്", - "ms": "kad kredit", "nb": "kredittkort", "nl": "creditcard", "pl": "karta kredytowa", @@ -38823,8 +43971,10 @@ "ru": "кредитная карта", "sk": "kreditná karta", "sl": "kreditna kartica", + "sq": "karta e kreditit", "sv": "kreditkort", "ta": "கடன் அட்டை", + "te": "క్రెడిట్ కార్డు", "th": "บัตรเครดิต", "tr": "kredi kartı", "uk": "кредитна картка", @@ -38850,16 +44000,17 @@ "hi": "वैकल्पिक शिक्षा", "ja": "オルタナティブ教育", "ko": "대안 교육", - "ms": "pendidikan alternatif", "nl": "methodeonderwijs", + "ru": "альтернативное образование", "sl": "alternativno izobraževanje", + "sq": "arsimi alternativ", "tr": "alternatif eğitim", "uk": "альтернативна освіта", "zh": "另類教育" }, "montessori": { "af": "montessori-onderwys", - "ar": "منهج مونتيسوري", + "ar": "تعليم مونتيسوري", "ca": "mètode montessori", "cs": "montessoriovská škola", "de": "montessoripädagogik", @@ -38870,6 +44021,7 @@ "fa": "روش مونتهسوری", "fi": "montessoripedagogiikka", "fr": "pédagogie montessori", + "gl": "método montessori", "he": "שיטת מונטסורי", "hi": "मांटेसरी पद्धति", "id": "metode montessori", @@ -38877,7 +44029,6 @@ "ja": "モンテッソーリ教育", "ko": "몬테소리 교육법", "ml": "മോണ്ടിസോറി രീതി", - "ms": "kaedah montessori", "nb": "montessoripedagogikk", "nl": "montessorionderwijs", "pl": "metoda montessori", @@ -38885,8 +44036,10 @@ "ru": "педагогика монтессори", "sk": "montessoriovská škola", "sl": "pedagogika montessori", + "sq": "pedagogjia e montesorit", "sv": "montessoripedagogik", "ta": "மான்டேசொரி கல்வி", + "te": "మాంటిస్సోరి విధానము", "th": "มอนเตสเซอรี่", "tr": "montessori eğitimi", "uk": "педагогіка монтессорі", @@ -38896,6 +44049,7 @@ }, "outdoor": { "ar": "التعليم في الهواء الطلق", + "ca": "educació exterior", "cs": "venkovní vzdělávání", "de": "erlebnispädagogik", "en": "outdoor education", @@ -38903,11 +44057,11 @@ "et": "õuesõpe", "fa": "آموزش در فضای باز", "fr": "éducation extérieure", - "hu": "élménypedagógia", "id": "outbound", "ja": "野外教育", "nl": "openluchtklas", "sl": "pedagogika na prostem", + "sq": "pedagogjia jashtëshkollore", "zh": "戶外教育" }, "reggio_emilia": { @@ -38917,12 +44071,12 @@ "en": "reggio emilia approach", "es": "pedagogía reggio emilia", "fa": "رویکرد رجیو", + "fi": "reggio emilia -pedagogiikka", "fr": "pédagogie reggio", "he": "גישת רג'ו אמיליה", "ja": "レッジョ・エミリア教育", "ko": "레지오에밀리아 접근법", "ml": "ലോരിസ് മലഗോസ്സി", - "ms": "reggio emilia", "nb": "reggio emilias barnehagefilosofi", "nl": "reggio emilia", "pl": "metoda reggio emilia", @@ -38964,6 +44118,7 @@ "fa": "آموزش والدوروف", "fi": "steinerkoulu", "fr": "pédagogie steiner-waldorf", + "gl": "pedagoxía waldorf", "he": "חינוך ולדורף", "hr": "waldorfska pedagogija", "hu": "waldorf-pedagógia", @@ -38980,6 +44135,7 @@ "ru": "вальдорфская педагогика", "sk": "waldorfská pedagogika", "sl": "waldorfsko izobraževanje", + "sq": "pedagogjia valdorfiane", "sv": "waldorfpedagogik", "tr": "waldorf eğitim", "uk": "вальдорфська педагогіка", @@ -38997,6 +44153,7 @@ "bg": "път към сантяго", "ca": "camí de sant jaume", "cs": "svatojakubská cesta", + "cy": "camino de santiago", "da": "jakobsvejen", "de": "jakobsweg", "el": "διαδρομή αγίου ιακώβου της κομποστέλα", @@ -39005,6 +44162,8 @@ "fa": "کامینو د سانتیاگو", "fi": "pyhän jaakobin pyhiinvaellusreitti", "fr": "pèlerinage de saint-jacques-de-compostelle", + "ga": "camino de santiago", + "gl": "camiño de santiago", "he": "דרך סנטיאגו", "hi": "सेन्ट जेम्स का मार्ग", "hr": "put svetog jakova", @@ -39040,6 +44199,8 @@ "es": "ruta de peregrinación", "fi": "pyhiivaellusreitti", "fr": "chemin de pèlerinage", + "ga": "bealach oilithrigh", + "gl": "ruta de peregrinación", "hu": "zarándokútvonal", "it": "via di pellegrinaggio", "ja": "巡礼路", @@ -39047,6 +44208,7 @@ "lv": "svētceļotāju ceļš", "nb": "pilegrimsvei", "nl": "pelgrimsroute", + "pl": "szlak pielgrzymkowy", "pt": "caminho de peregrinos", "ro": "pelerinaj", "ru": "паломнический маршрут", @@ -39068,16 +44230,17 @@ "es": "pista d'esquí alpí", "et": "suusahüppemägi", "fi": "latu", - "fr": "piste noire (allemagne, autriche, suisse)", + "fr": "piste noire (allemagne, autriche, suisse)", + "gl": "pista de esquí negra", "hu": "síugró sánc", "it": "trampolino", "ja": "ロイペ", "ko": "스키점프대", "lv": "tramplīnlēkšanas kalns", - "nb": "hoppbakke", + "nb": "skiløype", "nl": "zwarte piste", "pl": "ośla łączka", - "ru": "лыжный трамплин", + "ru": "трасса для беговых лыж", "sl": "smučarska skakalnica", "sv": "skidspår", "tr": "tramplen", @@ -39085,6 +44248,52 @@ } }, "place": { + "": { + "ar": "مقاطعة في الصين", + "be": "раён гарадскога падпарадкавання кнр", + "bg": "село в китай", + "ca": "districte de la xina", + "cs": "městský obvod v číně", + "cy": "ardal tsieina", + "da": "distrikt i kina", + "de": "bezirk", + "de-ch": "strassenviertel", + "el": "περιφέρειες της κίνας", + "en": "district (china)", + "en-ca": "district", + "en-gb": "district", + "en-us": "district", + "es": "distrito", + "fa": "ناحیه", + "fi": "kylä kiinassa", + "fr": "district", + "ga": "sráidbhaile", + "gl": "vila da china", + "he": "רובע", + "hu": "járás kínában", + "id": "distrik di tiongkok", + "it": "distretto della cina", + "ja": "市轄区", + "ko": "시할구", + "lt": "kaimas", + "lv": "ķīnas pilsētas apgabals", + "nb": "distrikt", + "nl": "district van china", + "pl": "dystrykt w chinach", + "pt-br": "vila chinesa", + "ru": "район городского подчинения кнр", + "sl": "distrikt kitajske", + "sq": "fshat në kinë", + "sv": "stadsdistrikt i kina", + "te": "చైనా గ్రామం", + "tr": "semt", + "uk": "район міського підпорядкування (кнр)", + "ur": "ضلع", + "vi": "khu", + "zh": "区", + "zh-hk": "區", + "zh-tw": "區" + }, "archipelago": { "af": "argipel", "ar": "أرخبيل", @@ -39092,6 +44301,7 @@ "bg": "архипелаг", "ca": "arxipèlag", "cs": "souostroví", + "cy": "ynysfor", "da": "øgruppe", "de": "archipel", "el": "σύμπλεγμα νησιών", @@ -39101,6 +44311,9 @@ "fa": "مجمعالجزایر", "fi": "saaristo", "fr": "archipel", + "ga": "oileánra", + "gd": "innis-mhuir", + "gl": "arquipélago", "he": "ארכיפלג", "hi": "द्वीपसमूह", "hr": "arhipelag", @@ -39114,7 +44327,6 @@ "lv": "arhipelāgs", "ml": "ദ്വീപസമൂഹം", "mr": "द्वीपसमूह", - "ms": "kepulauan", "nb": "arkipel", "nl": "archipel", "pl": "archipelag", @@ -39123,6 +44335,7 @@ "ru": "архипелаг", "sk": "súostrovie", "sl": "otočje", + "sq": "arkipelagu", "sv": "arkipelag", "ta": "தீவுக்கூட்டம்", "th": "กลุ่มเกาะ", @@ -39137,15 +44350,18 @@ "ar": "أقسام إدارية", "be": "бора", "bg": "район", + "cy": "bwrdeistref", "el": "δημοτικό διαμέρισμα", "en": "borough", "fa": "منطقه", + "ga": "buirg", "he": "שכונה", "ja": "バラ", "ko": "자치구", - "ms": "boro", + "lv": "boro", "pt": "burgo", "ru": "боро", + "sl": "okraj", "uk": "боро", "ur": "بورو", "vi": "quận", @@ -39159,6 +44375,7 @@ "bg": "град", "ca": "ciutat", "cs": "město", + "cy": "dinas", "da": "by", "de": "stadt", "el": "πόλη", @@ -39168,6 +44385,9 @@ "fa": "شهر", "fi": "kaupunki", "fr": "ville", + "ga": "cathair", + "gd": "baile mòr", + "gl": "cidade", "he": "עיר", "hi": "शहर", "hr": "grad", @@ -39181,7 +44401,6 @@ "lv": "lielpilsēta", "ml": "നഗരം", "mr": "शहर", - "ms": "bandar", "nb": "by", "nl": "stad", "pl": "miasto", @@ -39190,8 +44409,10 @@ "ru": "город", "sk": "mesto", "sl": "mesto", + "sq": "qytet", "sv": "stad", "ta": "மாநகரம்", + "te": "నగరం", "th": "นคร", "tr": "şehir", "uk": "місто", @@ -39213,19 +44434,21 @@ "fa": "بلوک شهری", "fi": "kortteli", "fr": "îlot urbain", + "ga": "bloc cathrach", + "gl": "bloque", "he": "מבנן", "hu": "háztömb", "id": "blok kota", "it": "isolato", "ja": "街区", "ko": "가곽", - "ms": "blok bandar", + "lv": "kvartāls", "nb": "kvartal", "nl": "huizenblok", - "pl": "kwartał", + "pl": "blok budowlany", "pt": "quarteirão", "ru": "квартал", - "sl": "urbani kompleks", + "sl": "urbani sklop", "sv": "kvarter", "tr": "ada (emlak)", "uk": "квартал", @@ -39238,6 +44461,7 @@ "be": "кантынент", "bg": "континент", "cs": "kontinent", + "cy": "cyfandir", "da": "verdensdel", "de": "kontinent", "el": "ήπειρος", @@ -39246,6 +44470,9 @@ "et": "maailmajagu", "fa": "قاره", "fi": "maanosa", + "ga": "mór-roinn", + "gd": "mòr-roinn", + "gl": "continente", "he": "יבשת", "hi": "महाद्वीप", "hr": "kontinent", @@ -39259,7 +44486,6 @@ "lv": "kontinents", "ml": "ഭൂഖണ്ഡം", "mr": "खंड", - "ms": "benua", "nb": "kontinent", "nl": "werelddeel", "pl": "kontynent", @@ -39267,8 +44493,10 @@ "ru": "континент", "sk": "kontinent", "sl": "celina", + "sq": "kontinenti", "sv": "världsdel", "ta": "கண்டம்", + "te": "ఖండం", "th": "ทวีป", "tr": "kıta", "uk": "материк", @@ -39282,7 +44510,8 @@ "be": "краіна", "bg": "страна", "ca": "país", - "cs": "státní útvar", + "cs": "státní území", + "cy": "gwlad", "da": "land", "de": "land", "el": "χώρα", @@ -39292,6 +44521,9 @@ "fa": "کشور", "fi": "maa", "fr": "pays", + "ga": "tír", + "gd": "dùthaich", + "gl": "país", "he": "ארץ", "hi": "देश", "hr": "zemlja (država)", @@ -39305,7 +44537,6 @@ "lv": "zeme", "ml": "ദേശം", "mr": "देश", - "ms": "negara", "nb": "land", "nl": "land", "pl": "kraj", @@ -39314,8 +44545,10 @@ "ru": "страна", "sk": "krajina", "sl": "država", + "sq": "shtet", "sv": "land", "ta": "நாடு", + "te": "దేశం", "th": "ประเทศ", "tr": "ülke", "uk": "країна", @@ -39331,6 +44564,7 @@ "bg": "графство", "ca": "comtat", "cs": "hrabství", + "cy": "sir", "el": "κομητεία", "en": "county", "es": "condado", @@ -39338,16 +44572,19 @@ "fa": "شهرستان", "fi": "piirikunta", "fr": "comté", + "ga": "contae", + "gd": "ceàrn", + "gl": "condado", "he": "נפה", "hi": "काउण्टी", "hr": "grofovija", "hu": "megye", + "id": "kontas", "it": "contea", "ja": "カウンティ", "ko": "카운티", "lt": "grafystė", "lv": "grāfiste", - "ms": "kaunti", "nb": "fylke", "pl": "hrabstwo", "pt": "condado", @@ -39368,6 +44605,7 @@ "bg": "район", "ca": "districte", "cs": "distrikt", + "cy": "dosbarth", "da": "distrikt", "de": "distrikt", "el": "περιοχή", @@ -39376,6 +44614,9 @@ "et": "ringkond", "fa": "ولسوالی", "fi": "hallintoalue", + "ga": "ceantar", + "gd": "sgìre", + "gl": "distrito", "he": "מחוז", "hi": "ज़िला", "hr": "kotar", @@ -39388,14 +44629,16 @@ "lv": "distrikts", "ml": "ജില്ല", "mr": "जिल्हा", - "ms": "daerah", "nb": "distrikt", "pl": "dystrykt", "pt": "distrito", "ru": "дистрикт", "sk": "dištrikt", "sl": "distrikt", + "sq": "distrikti", "sv": "distrikt", + "ta": "மாவட்டம்", + "te": "జిల్లా", "th": "เขตการปกครอง", "tr": "ilçe", "uk": "дистрикт", @@ -39411,6 +44654,7 @@ "bg": "ферма", "ca": "granja", "cs": "statek", + "cy": "fferm", "da": "gård", "de": "bauernhof", "el": "αγρόκτημα", @@ -39420,17 +44664,19 @@ "fa": "کشتزار", "fi": "maatila", "fr": "ferme", + "ga": "feirm", + "gl": "granxa", "he": "חווה חקלאית", "hi": "खेत", - "hr": "poljoprivredno gospodarstvo", + "hr": "farma", "id": "lahan usaha tani", "it": "fattoria", "ja": "農場", "kn": "ಒಕ್ಕಲು ಜಮೀನು", "ko": "농장", - "lv": "zemnieku saimniecība", + "lt": "ferma", + "lv": "lauku mājas", "mr": "शेत", - "ms": "ladang", "nb": "gård", "nl": "boerenbedrijf", "pl": "farma", @@ -39440,8 +44686,10 @@ "ru": "ферма", "sk": "farma", "sl": "kmetija", + "sq": "ferma", "sv": "gård", "ta": "பண்ணை", + "te": "పొలం", "th": "ฟาร์ม", "tr": "çiftlik", "uk": "ферма", @@ -39457,6 +44705,7 @@ "bg": "махала", "ca": "vilatge", "cs": "osada", + "cy": "pentrefan", "da": "bygd", "de": "weiler", "el": "χωριό", @@ -39466,6 +44715,8 @@ "fa": "آبادی", "fi": "pieni kylä", "fr": "hameau", + "ga": "clochán", + "gl": "aldea", "he": "יישוב כפרי", "hi": "गांव", "hr": "zaselak", @@ -39474,7 +44725,7 @@ "it": "borgata", "ja": "ハムレット", "lt": "kaimelis", - "ms": "dukuh", + "lv": "sādža", "nb": "grend", "nl": "gehucht", "pl": "osada", @@ -39486,6 +44737,7 @@ "sl": "zaselek", "sv": "liten by", "ta": "மனிதக் குடியிருப்பு", + "te": "కుగ్రామం", "th": "หมู่บ้านขนาดเล็ก", "tr": "mezra", "uk": "присілок", @@ -39500,6 +44752,7 @@ "bg": "остров", "ca": "illa", "cs": "ostrov", + "cy": "ynys", "da": "ø", "de": "insel", "el": "νησί", @@ -39509,6 +44762,9 @@ "fa": "جزیره", "fi": "saari", "fr": "île", + "ga": "oileán", + "gd": "eilean", + "gl": "illa", "he": "אי", "hi": "द्वीप", "hr": "otok", @@ -39522,7 +44778,6 @@ "lv": "sala", "ml": "ദ്വീപ്", "mr": "बेट", - "ms": "pulau", "nb": "øy", "nl": "eiland", "pl": "wyspa", @@ -39531,8 +44786,10 @@ "ru": "остров", "sk": "ostrov", "sl": "otok", + "sq": "ishulli", "sv": "ö", "ta": "தீவு", + "te": "ద్వీపం", "th": "เกาะ", "tr": "ada", "uk": "острів", @@ -39545,6 +44802,7 @@ "ar": "جزيرة صغيرة", "ca": "illot", "cs": "ostrůvek", + "cy": "ynysig", "da": "holm", "de": "eiland", "el": "νησίδα", @@ -39554,6 +44812,9 @@ "fa": "جزیره خرد", "fi": "luoto", "fr": "îlot", + "ga": "inseán", + "gd": "innis", + "gl": "illote", "he": "איון", "hi": "द्वीपिका", "hr": "hrid", @@ -39581,7 +44842,7 @@ "isolated_dwelling": { "cs": "samota", "de": "einzelsiedlung", - "en": "hermitage", + "en": "isolated settlement", "fr": "ermitage", "ja": "隠れ家", "sk": "kopanica" @@ -39590,6 +44851,7 @@ "ar": "محلية", "ca": "localitat", "cs": "lokalita", + "cy": "ardal boblog", "da": "lokalitet", "de": "ortschaft", "el": "οικισμός", @@ -39599,18 +44861,21 @@ "fa": "منطقه مسکونی", "fi": "asutus", "fr": "localité", + "ga": "áit", + "gl": "localidade", "he": "נקודת יישוב", "hr": "mjesna zajednica", "hu": "helység", "it": "località", "ja": "地方", - "ms": "petempatan", + "ml": "പ്രദേശം", "nb": "sted", "nl": "bevolkte plaats", "pl": "miejsce zamieszkiwania", "pt": "localidade", "ro": "localitate", "ru": "обжитая местность", + "sk": "lokalita", "sl": "kraj", "sv": "befolkad plats", "tr": "mekân", @@ -39625,6 +44890,7 @@ "bg": "муниципалитет", "ca": "municipi", "cs": "obec", + "cy": "bwrdeistref", "da": "kommune", "de": "gemeinde", "el": "δήμος", @@ -39634,6 +44900,8 @@ "fa": "شهرداری", "fi": "kunta", "fr": "municipalité", + "ga": "bardasacht", + "gl": "concello", "he": "עירייה", "hi": "नगरपालिका", "hr": "općina", @@ -39641,22 +44909,24 @@ "id": "munisipalitas", "it": "comune", "ja": "基礎自治体", - "ko": "지방 자치체", + "ko": "지방자치체", "lt": "savivaldybė", "lv": "pašvaldība", "ml": "നഗരസഭ", "mr": "नगरपालिका", - "ms": "perbandaran", "nb": "kommune", "nl": "gemeente", "pl": "gmina", - "pt": "municipalidade", + "pt": "município", + "pt-br": "municipalidade", "ro": "municipiu", "ru": "муниципалитет", "sk": "obec", "sl": "občina", + "sq": "komunë", "sv": "kommun", "ta": "நகராட்சி", + "te": "పురపాలక సంఘం", "th": "เทศบาล", "tr": "belediye", "uk": "муніципалітет", @@ -39670,6 +44940,7 @@ "bg": "квартал", "ca": "barri", "cs": "čtvrť", + "cy": "cymdogaeth", "da": "bykvarter", "de": "ortsteil", "el": "συνοικία", @@ -39681,6 +44952,8 @@ "fa": "محله", "fi": "naapurusto", "fr": "quartier", + "ga": "comharsanacht", + "gl": "barrio", "he": "שכונה", "hi": "मुहल्ला", "hr": "susjedstvo", @@ -39693,18 +44966,18 @@ "lt": "mikrorajonas", "lv": "apkaime", "mr": "वस्तीचा प्रदेश", - "ms": "kejiranan", "nb": "strøk", "nl": "buurt of wijk", "pl": "część miejscowości", "pt": "bairro", "ro": "cartier", - "ru": "нейборхуд", + "ru": "отдалённая часть города", "sk": "časť obce", "sl": "soseska", + "sq": "lagje", "sv": "område", "th": "ย่าน", - "tr": "mahalle", + "tr": "semt", "uk": "район міста", "ur": "محلہ", "vi": "khu phố", @@ -39725,6 +44998,8 @@ "fa": "قطعه (زمین)", "fi": "tontti", "fr": "parcelle", + "ga": "plásán", + "gl": "parcela", "he": "חלקת קרקע", "hu": "telek", "id": "kaveling", @@ -39746,12 +45021,41 @@ "zh": "地號", "zh-tw": "地段" }, + "polder": { + "ar": "أرض مستصلحة من البحر", + "be": "польдар", + "bg": "полдер", + "ca": "pòlder", + "cy": "tir isel a adenillwyd o’r môr", + "da": "inddæmning", + "el": "πόλντερ", + "en": "polder", + "es": "pólder", + "fa": "پولدر", + "fi": "polderi", + "ga": "poldar", + "gl": "pólder", + "he": "כיבוש הים", + "ja": "干拓", + "ko": "폴더", + "lt": "polderis", + "lv": "polderis", + "pt": "pólder", + "pt-br": "pôlder", + "ru": "польдер", + "uk": "польдер", + "vi": "đất lấn biển", + "zh": "圩", + "zh-cn": "围垦", + "zh-hk": "干拓" + }, "quarter": { "ar": "منطقة حضرية", "be": "частка горада", "bg": "квартал", "ca": "barri administratiu", "cs": "část města", + "cy": "ardal", "da": "bydel", "de": "stadtteil", "el": "διαμέρισμα", @@ -39759,10 +45063,11 @@ "et": "linnaosa", "fi": "kaupunginosa", "fr": "quartier", + "ga": "ceantar", + "gl": "barrio administrativo", "he": "רובע", "hr": "kvart", "hu": "településrész", - "id": "quarter (wilayah administratif)", "it": "quartiere", "ja": "地区", "lt": "kvartalas", @@ -39774,7 +45079,7 @@ "ro": "cartier", "ru": "квартал", "sk": "mestská časť", - "sl": "mestna četrt", + "sl": "mestni predel", "sv": "stadsdel", "tr": "semt", "uk": "квартал", @@ -39787,6 +45092,7 @@ "bg": "площад", "ca": "plaça", "cs": "náměstí", + "cy": "sgwâr", "da": "torv", "de": "platz", "el": "πλατεία", @@ -39797,6 +45103,8 @@ "fa": "میدان", "fi": "tori", "fr": "place", + "ga": "cearnóg", + "gl": "praza", "he": "כיכר עירונית", "hi": "चौक", "hr": "trg", @@ -39808,15 +45116,15 @@ "lt": "aikštė", "lv": "pilsētas laukums", "ml": "നഗരചത്വരം", - "ms": "medan bandar", "nb": "plass", "nl": "plein", "pl": "plac", "pt": "praça", "ro": "piață urbană", - "ru": "городская площадь", + "ru": "площадь", "sk": "námestie", "sl": "trg", + "sq": "shesh", "sv": "torg", "tr": "kent meydanı", "uk": "майдан", @@ -39832,6 +45140,7 @@ "bg": "щат", "ca": "estat federat", "cs": "federovaný stát", + "cy": "talaith", "da": "delstat", "de": "gliedstaat", "el": "ομόσπονδη πολιτεία", @@ -39841,9 +45150,11 @@ "fa": "ایالت", "fi": "osavaltio", "fr": "état fédéré", + "ga": "stát cónaidhmthe", + "gl": "estado federado", "he": "מדינת משנה", "hi": "संघीय राज्य", - "hu": "tagállam", + "hu": "szövetségi állam", "id": "negara bagian", "it": "stato federato", "ja": "連邦構成体", @@ -39852,7 +45163,6 @@ "lt": "valstija", "lv": "federāla valsts", "ml": "സംസ്ഥാനം", - "ms": "negeri bersekutu", "nb": "delstat", "nl": "deelstaat", "pl": "stan", @@ -39885,6 +45195,7 @@ "pl": "taluk", "ru": "техсил", "ta": "வட்டம்", + "te": "మండలం", "uk": "техсіл", "ur": "تحصیل", "zh": "乡", @@ -39898,6 +45209,7 @@ "bg": "предградие", "ca": "suburbi", "cs": "předměstí", + "cy": "maestref", "da": "forstad", "de": "stadtteil", "el": "προάστιο", @@ -39907,6 +45219,8 @@ "fa": "حومه شهر", "fi": "esikaupunki", "fr": "banlieue", + "ga": "bruachbhaile", + "gl": "suburbio", "he": "פרוור", "hi": "उपनगर", "hr": "predgrađe", @@ -39919,7 +45233,6 @@ "lt": "priemiestis", "lv": "priekšpilsēta", "mr": "उपनगर", - "ms": "subbandar", "nb": "forstad", "nl": "buitenwijk", "pl": "przedmieście", @@ -39928,10 +45241,11 @@ "ru": "пригород", "sk": "predmestie", "sl": "predmestje", + "sq": "periferia", "sv": "förort", "ta": "புறநகர்", "th": "ชานเมือง", - "tr": "banliyö", + "tr": "varoş", "uk": "передмістя", "ur": "مضافات", "vi": "ngoại ô", @@ -39941,11 +45255,12 @@ }, "town": { "af": "dorp", - "ar": "بلدة", + "ar": "مدينة", "be": "мястэчка", "bg": "малък град", "ca": "vila", "cs": "malé město", + "cy": "tref", "da": "mindre by", "de": "kleinstadt", "el": "κωμόπολη", @@ -39955,6 +45270,9 @@ "fa": "شهرک", "fi": "pikkukaupunki", "fr": "petite ville", + "ga": "baile", + "gd": "baile", + "gl": "vila", "he": "עיירה", "hi": "नगर", "hr": "gradić", @@ -39967,8 +45285,8 @@ "lt": "mažas miestas", "lv": "mazpilsēta", "ml": "പട്ടണം", - "ms": "pekan", "nb": "mindre by", + "nl": "plaats", "pl": "miasteczko", "pt": "vila", "pt-br": "cidade pequena", @@ -39976,8 +45294,10 @@ "ru": "малый город", "sk": "mesto", "sl": "malo mesto", + "sq": "qytezë", "sv": "småstad", "ta": "நகரம்", + "te": "పట్టణం", "th": "เมือง", "tr": "kasaba", "uk": "містечко", @@ -39988,8 +45308,10 @@ }, "township": { "ar": "بلدة", + "cy": "treflan", "en": "township", "fa": "تاونشیپ (تقسیمات کشوری)", + "ga": "baile", "ja": "タウンシップ制", "ru": "тауншип", "sv": "kommun", @@ -40005,6 +45327,7 @@ "bg": "село", "ca": "poble", "cs": "vesnice", + "cy": "pentref", "da": "landsby", "de": "dorf", "el": "χωριό", @@ -40013,6 +45336,9 @@ "et": "küla", "fa": "روستا", "fi": "kylä", + "ga": "sráidbhaile", + "gd": "clachan", + "gl": "aldea", "he": "כפר", "hi": "गाँव", "hr": "selo", @@ -40026,7 +45352,6 @@ "lv": "ciems", "ml": "ഗ്രാമം", "mr": "गाव", - "ms": "kampung", "nb": "landsby", "nl": "dorp", "pl": "wieś", @@ -40035,8 +45360,10 @@ "ru": "село", "sk": "dedina", "sl": "vas", + "sq": "fshat", "sv": "by", - "ta": "ஊர்", + "ta": "கிராமம்", + "te": "గ్రామం", "th": "หมู่บ้าน", "tr": "köy", "uk": "село", @@ -40053,11 +45380,12 @@ "bg": "хидрокинетична електроцентрала", "ca": "central hidroelèctrica de passada", "cs": "průtočná vodní elektrárna", + "cy": "gorsaf bŵer wedi'i phweru gan lo", "da": "kulkraftværk", "de": "laufwasserkraftwerk", "de-ch": "wasserkraftwerk", "el": "εργοστάσιο ηλεκτροπαραγωγής με καύση άνθρακα", - "en": "run-of-the-river power station", + "en": "run-of-river hydroelectricity", "en-ca": "hydroelectric generating station", "en-gb": "coal power station", "es": "central hidroeléctrica de pasada", @@ -40065,6 +45393,8 @@ "fa": "نیروگاه جریانی روزمینی", "fi": "jokivoimalaitos", "fr": "centrale hydroélectrique au fil de l'eau", + "ga": "stáisiún cumhachta hidrileictreach", + "gl": "central hidroeléctrica", "he": "תחנת כוח פחמית", "hi": "नाभिकीय ऊर्जा संयंत्र", "hr": "plinska elektrana", @@ -40078,7 +45408,6 @@ "lv": "ogļu elektrostacija", "ml": "ജലവൈദ്യുതപദ്ധതി നിലയം", "mr": "अणुऊर्जा प्रकल्प", - "ms": "loji kuasa nuklear", "nb": "elvekraftverk", "nl": "batterijopslagcentrale", "pl": "elektrownia wodna przepływowa", @@ -40088,6 +45417,7 @@ "ru": "русловая гэс", "sk": "uhoľná elektráreň", "sl": "pretočna hidroelektrarna", + "sq": "hidrocentralet", "sv": "strömkraftverk", "ta": "அணு மின் நிலையம்", "th": "โรงไฟฟ้าพลังงานถ่านหิน", @@ -40114,35 +45444,13 @@ "en": "aerial rotator" }, "balancebeam": { - "ar": "عارضة التوازن", - "bg": "греда", - "ca": "barra d'equilibris", + "ca": "barra d’equilibri", "cs": "kladina", - "da": "bom", - "de": "schwebebalken", "en": "balance beam", "es": "viga de equilibrio", - "fa": "چوب موازنه", - "fr": "poutre", - "he": "קורה", - "hu": "gerenda", - "id": "balok keseimbangan", "it": "trave di equilibrio", "ja": "平均台", - "ko": "평균대", - "nb": "bom", - "nl": "evenwichtsbalk", - "pl": "równoważnia", - "pt": "trave olímpica", - "ro": "bârnă", - "ru": "бревно", - "sl": "gred", - "sv": "bom", - "ta": "சமநிலை விட்டம்", - "tr": "denge aleti", - "uk": "колода", - "vi": "cầu thăng bằng", - "zh": "平衡木" + "nb": "bom" }, "basketrotator": { "en": "basket rotator" @@ -40187,16 +45495,21 @@ "el": "υπαίθρια γυμναστήρια", "en": "outdoor gym", "es": "gimnasio al aire libre", + "et": "välijõusaal", "fi": "ulkokuntosali", "fr": "équipement de fitness en extérieur", "he": "חדר כושר חיצוני", "hi": "बाहरी जिम", + "hr": "teretana na otvorenom", + "hu": "szabadtéri edzőterem", "it": "palestra all'aperto", "ja": "アウトドアジム", + "lt": "lauko treniruoklių salė", "nl": "beweegtuin", "pl": "siłownia zewnętrzna", "pt": "academia ao ar livre", "ru": "спортивная площадка", + "sk": "vonkajšia telocvičňa", "sv": "utegym", "th": "ยิมออกแบบในแวดวงการเกี่ยวกับการเดินทาง", "tr": "açık spor salonu", @@ -40222,6 +45535,7 @@ "fa": "لیلی", "fi": "ruutuhyppely", "fr": "marelle", + "gl": "mariola", "he": "קלאס", "hi": "हॉप्सस्कॉच", "hr": "školica", @@ -40230,7 +45544,6 @@ "it": "campana", "ja": "ホップスコッチ", "ko": "사방치기", - "ms": "teng teng", "nb": "hoppe paradis", "nl": "hinkelen", "pl": "gra w klasy", @@ -40240,6 +45553,7 @@ "ru": "классики", "sl": "ristanc", "sv": "hoppa hage", + "te": "తొక్కుడుబిళ్ళ", "th": "ตั้งเต", "tr": "seksek", "uk": "класики", @@ -40252,6 +45566,7 @@ "bg": "лост за набиране", "ca": "barra fixa", "cs": "hrazda", + "cy": "bar llorweddol", "da": "reck", "de": "klimmzugstange", "en": "chin-up bar", @@ -40271,7 +45586,7 @@ "ro": "bară fixă", "ru": "турник", "sl": "drog", - "sv": "räck", + "sv": "chinsstång", "ta": "கிடைச் சட்டம்", "tr": "barfiks", "uk": "перекладина", @@ -40301,12 +45616,14 @@ "roundabout": { "de": "sitzkarussell", "en": "roundabout", + "es": "tiovivo (espacio de recreación)", "fr": "tourniquet", "id": "mangkok putar", "it": "giostra", "nl": "draaimolen", "pt": "gira-gira (playground)", "ru": "карусель", + "sl": "vrtiljak", "zh": "氹氹轉" }, "sandpit": { @@ -40343,10 +45660,11 @@ "zh": "沙池" }, "seesaw": { - "ar": "سيسو", + "ar": "نواسة", "bg": "балансираща люлка", "ca": "palanca", "cs": "páková houpačka", + "cy": "si-so", "de": "wippe", "el": "τραμπάλα", "en": "seesaw", @@ -40365,17 +45683,20 @@ "pl": "huśtawka na desce", "pt": "balancé", "ru": "качели-балансир", - "sl": "nagibna gugalnica", + "sl": "gugalnica prevesnica", "sv": "gungbräda", + "te": "play ground", "th": "กระดานหก", "tr": "tahterevalli", "uk": "гойдалка-балансир", + "vi": "bập bênh", "zh": "蹺蹺板" }, "sledding": { - "ar": "تمزلج", + "ar": "ركوب المزلجة", "ca": "descens en trineu", "cs": "sáňkování", + "cy": "sledio", "de": "rodeln", "el": "ελκηθροδρομία", "en": "sledding", @@ -40383,9 +45704,11 @@ "et": "kelgutamine", "fi": "kelkkailu", "fr": "luge", + "ga": "sleamhnánú", "ja": "そり競技", "lv": "braukšana ar kamanām", "pl": "sanki", + "ru": "катание на санях", "sl": "sankanje", "sv": "kälksport", "ta": "பனி வழுக்கல்", @@ -40396,6 +45719,7 @@ "bg": "пързалка", "ca": "tobogan (joc)", "cs": "skluzavka", + "cy": "llithren", "da": "legetøjsrutsjebane", "de": "rutsche", "el": "τσουλήθρα", @@ -40405,7 +45729,9 @@ "fa": "سرسره", "fi": "liukumäki", "fr": "toboggan", + "gl": "escorregadoiro", "he": "מגלשה", + "hu": "csúszda", "id": "perosotan", "it": "scivolo", "ja": "すべり台", @@ -40422,11 +45748,15 @@ }, "splash_pad": { "en": "splash pad", - "ru": "сухой фонтан" + "fr": "fontaine terrasse", + "pl": "brodzik", + "ru": "сухой фонтан", + "uk": "пішохідний фонтан" }, "springy": { "ca": "balança de molles", "cs": "pružina", + "de": "federwippe", "en": "spring rider", "es": "muelle balancín", "fr": "jeu sur ressort", @@ -40434,6 +45764,7 @@ "nl": "veertoestel", "pl": "bujak sprężynowy", "ru": "качалка на пружине", + "uk": "гойдалка на пружині", "zh": "彈簧椅" }, "swing": { @@ -40442,6 +45773,7 @@ "bg": "люлка", "ca": "gronxador", "cs": "visutá houpačka", + "cy": "siglen", "da": "gynge", "de": "schaukel", "en": "swing", @@ -40450,6 +45782,7 @@ "fa": "تاب", "fi": "keinu", "fr": "balançoire", + "gl": "bambán", "he": "נדנדה תלויה", "hu": "hinta", "id": "ayunan", @@ -40463,9 +45796,10 @@ "pl": "huśtawka wahadłowa", "pt": "balanço", "ru": "качели", - "sl": "viseča gugalnica", + "sl": "gugalnica nihalka", "sv": "gunga", "ta": "ஊஞ்சல்", + "te": "ఊయల", "tr": "salıncak", "uk": "гойдалка", "ur": "جھولا", @@ -40491,6 +45825,7 @@ "bg": "батут", "ca": "llit elàstic", "cs": "trampolína", + "cy": "trampolîn", "da": "trampolin", "de": "trampolin", "en": "trampoline", @@ -40498,14 +45833,15 @@ "et": "batuudi", "fa": "ترامپولین", "fi": "trampoliini", + "gl": "cama elástica", "he": "טרמפולינה", "hr": "trampolin", + "hu": "trambulin", "id": "trampolin", "it": "trampolino", "ja": "トランポリン", "ko": "트램펄린", "lt": "batutas", - "ms": "trampolin", "pl": "batut", "pt": "trampolim", "ru": "батут", @@ -40543,6 +45879,7 @@ "et": "kanton", "fa": "کانتون", "fi": "kantoni", + "gl": "cantón", "he": "קנטון (חלוקה מנהלית)", "hr": "kanton", "id": "kanton", @@ -40557,6 +45894,7 @@ "ru": "кантон", "sk": "kantón", "sl": "kanton", + "sq": "kantoni", "sv": "kanton", "th": "แคนทอน", "tr": "kanton", @@ -40587,11 +45925,14 @@ "en": "insular council", "es": "consejo insular", "fr": "conseil insulaire", - "ru": "островной совет" + "gl": "consello insular", + "ru": "островной совет", + "sl": "otoški svet" }, "linguistic_community": { "af": "gemeenskap", "ca": "comunitat de bèlgica", + "cy": "cymuned yng ngwlad belg", "de": "föderale gemeinschaft in belgien", "el": "κοινότητα του βελγίου", "en": "community of belgium", @@ -40613,13 +45954,15 @@ "en": "subregion", "fr": "sous-région", "nl": "subregio", - "ru": "подрегион" + "ru": "подрегион", + "sl": "podregija" }, "ward": { "af": "kieswyk", "ca": "subdivisió electoral", "en": "ward", "fa": "بخش (بخش انتخاباتی)", + "ga": "barda", "hi": "वॉर्ड (प्रशासनिक विभाग)", "ja": "区", "ko": "워드", @@ -40628,7 +45971,6 @@ "pl": "obwód głosowania", "pt": "ward (subdivisão eleitoral)", "ru": "уорд", - "sl": "volilno okrožje", "tr": "semt", "ur": "وارڈ", "vi": "phường", @@ -40639,16 +45981,17 @@ "en": "functional territorial area", "es": "ámbito funcional territorial", "fr": "domaine fonctionnel territorial", + "gl": "ámbito funcional territorial", "sl": "funkcionalno ozemeljsko območje" } }, "post_box": { "": { "ar": "صندوق بريد عمودي", + "cy": "blwch piler", "de": "säulenbriefkasten", "en": "pillar box", "ja": "ピラーボックス", - "ms": "peti tiang", "ru": "стоячий почтовый ящик", "zh": "郵筒" } @@ -40664,10 +46007,12 @@ "en": "power cable", "es": "cable eléctrico", "et": "elektrikaabel", + "fi": "sähkökaapeli", "fr": "câble électrique", "he": "כבל חשמל", "it": "linea elettrica", "ja": "電力ケーブル", + "ko": "전원 케이블", "nb": "elektrisk ledning", "nl": "elektriciteitsleiding", "pl": "przewód elektryczny", @@ -40676,14 +46021,17 @@ "ru": "силовой кабель", "sk": "vodič", "sl": "napajalni električni vod", + "sq": "kabllo e rrymës", "sv": "elektrisk ledning", "uk": "кабель", "zh": "電纜" }, "cable_distribution_cabinet": { - "en": "power box" + "en": "power box", + "fi": "kaapelijakokaappi" }, "catenary_mast": { + "cs": "trakční podpěra", "de": "oberleitungsmast", "en": "catenary mast", "pl": "słup trakcyjny" @@ -40700,7 +46048,7 @@ "zh": "靜止無功補償裝置" }, "converter": { - "ar": "مبدل القدرة الكهربائية", + "ar": "مبدل قدرة كهربائية", "ca": "convertidor de potència", "cs": "měnič", "da": "omformer", @@ -40716,6 +46064,7 @@ "nl": "omvormer", "sl": "pretvornik električne energije", "sv": "strömriktare", + "uk": "перетворювач електричної енергії", "zh": "高壓直流轉換器" }, "generator": { @@ -40733,6 +46082,8 @@ "fa": "مولد الکتریکی", "fi": "generaattori", "fr": "générateur électrique", + "ga": "gineadóir leictreach", + "gl": "xerador eléctrico", "he": "גנרטור חשמלי", "hi": "विद्युत जनित्र", "hr": "električni generator", @@ -40746,7 +46097,6 @@ "lv": "elektroģenerators", "ml": "വൈദ്യുതജനിത്രം", "mr": "जनित्र", - "ms": "penjana elektrik", "nb": "elektrisk generator", "nl": "elektrische generator", "pl": "prądnica", @@ -40755,8 +46105,10 @@ "ru": "электрический генератор", "sk": "generátor elektrického napätia", "sl": "električni generator", + "sq": "gjeneratori", "sv": "generator", "ta": "மின்னியற்றி", + "te": "ఎలక్ట్రిక్ జనరేటర్", "th": "เครื่องกำเนิดไฟฟ้า", "tr": "elektrik üreteci", "uk": "електричний генератор", @@ -40775,6 +46127,7 @@ "fa": "آفتاب یاب", "fi": "heliostaatti", "fr": "héliostat", + "ga": "héileastat", "he": "הליוסטט", "it": "eliostato", "ja": "ヘリオスタット", @@ -40792,6 +46145,7 @@ "bg": "изолатор", "ca": "aïllant elèctric", "cs": "izolátor", + "cy": "ynysydd", "da": "elektrisk isolator", "de": "nichtleiter", "el": "μονωτής", @@ -40813,7 +46167,6 @@ "lt": "izoliatorius", "lv": "elektriskais izolators", "ml": "വൈദ്യുത അചാലകം", - "ms": "penebat elektrik", "nb": "isolator", "nl": "isolator", "pl": "izolator", @@ -40824,6 +46177,7 @@ "sl": "izolator", "sv": "isolator", "ta": "மின்காப்பான்", + "te": "విద్యుత్ వ్యాప్తి నిరోధం", "th": "ฉนวนไฟฟ้า", "tr": "yalıtkan", "uk": "електроізолятор", @@ -40841,6 +46195,7 @@ "de": "freileitung", "en": "overhead power line", "es": "línea eléctrica aérea", + "et": "elektriliin", "fa": "خط انتقال هوایی", "fi": "sähkölinja", "fr": "ligne électrique aérienne", @@ -40852,7 +46207,6 @@ "it": "elettrodotto", "ja": "架空線", "ko": "송전선", - "ms": "talian kuasa udara", "nl": "bovengrondse elektriciteitsleiding", "pl": "linia elektroenergetyczna napowietrzna", "ro": "linie electroenergetică aeriană", @@ -40874,6 +46228,7 @@ "bg": "електрическа централа", "ca": "central elèctrica", "cs": "elektrárna", + "cy": "gorsaf bŵer", "da": "kraftværk", "de": "kraftwerk", "el": "σταθμός παραγωγής ηλεκτρικής ενέργειας", @@ -40884,6 +46239,9 @@ "fa": "نیروگاه", "fi": "voimalaitos", "fr": "centrale électrique", + "ga": "stáisiún cumhachta", + "gd": "stèisean cumhachd", + "gl": "central eléctrica", "he": "תחנת כוח", "hi": "विद्युत् केन्द्र", "hr": "elektrana", @@ -40895,18 +46253,19 @@ "lt": "jėgainė", "lv": "elektrostacija", "ml": "വൈദ്യുതോൽപ്പാദനനിലയം", - "ms": "stesen kuasa", "nb": "kraftverk", "nl": "elektriciteitscentrale", "pl": "elektrownia", "pt": "central eléctrica", - "pt-br": "usina", + "pt-br": "usina elétrica", "ro": "centrală electrică", "ru": "электростанция", "sk": "elektráreň", "sl": "elektrarna", + "sq": "stacion i energjisë", "sv": "kraftverk", "ta": "மின் நிலையம்", + "te": "విద్యుత్ కేంద్రం", "th": "โรงไฟฟ้า", "tr": "elektrik santrali", "uk": "електростанція", @@ -40927,11 +46286,11 @@ "id": "tiang utilitas", "ja": "電柱", "ko": "전봇대", - "ms": "tiang utiliti", "nb": "stolpe", "nl": "paal", "pt": "poste", "ru": "электрический столб", + "sl": "električni drog", "tr": "elektrik direği", "zh": "电线杆", "zh-hk": "電線杆" @@ -40960,11 +46319,11 @@ "lv": "elektriskā apakšstacija", "ml": "ഇലക്ട്രിക്കൽ സബ് സ്റ്റേഷൻ", "mr": "विद्युत उपकेंद्र", - "ms": "pencawang elektrik", "nb": "transformatorstasjon", "nl": "onderstation", "pl": "stacja elektroenergetyczna", "pt": "subestação", + "pt-br": "subestação elétrica", "ro": "stație electrică", "ru": "электрическая подстанция", "sk": "elektrická stanica", @@ -40977,7 +46336,7 @@ }, "switch": { "af": "skakelaar", - "ar": "مفتاح كهربائي", + "ar": "مقلاد", "bg": "ключ", "ca": "interruptor", "cs": "spínač", @@ -40992,6 +46351,7 @@ "fr": "interrupteur", "he": "מפסק", "hi": "स्विच", + "hr": "prekidač", "hu": "kapcsoló", "id": "sakelar", "it": "interruttore", @@ -40999,7 +46359,6 @@ "ko": "개폐기", "lt": "jungiklis", "ml": "വൈദ്യുതസ്വിച്ച്", - "ms": "suis", "nb": "strømbryter", "nl": "schakelaar", "pl": "łącznik elektryczny", @@ -41017,7 +46376,7 @@ "zh": "開關" }, "switchgear": { - "ar": "مجموعة الوصل", + "ar": "مضابط", "be": "размеркавальная прылада", "bg": "електрическа разпределителна уредба", "de": "schaltanlage", @@ -41045,12 +46404,12 @@ "de": "anschlusspunkt", "en": "electrical terminal", "es": "terminal", + "et": "klemm", "fa": "پایانه", "fr": "bornier", "it": "morsetto", "ja": "ターミナル", "ml": "ടെർമിനൽ", - "ms": "terminal", "nl": "terminal", "pl": "złączka elektryczna", "ru": "клеммный контакт", @@ -41064,6 +46423,7 @@ "bg": "електрически стълб", "ca": "torre d'alta tensió", "cs": "sloup vysokého napětí", + "da": "højspændingspylon", "de": "hochspannungsmast", "el": "πυλώνας ηλεκτρικού ρεύματος", "en": "transmission tower", @@ -41073,7 +46433,7 @@ "fr": "pylône électrique", "he": "עמוד חשמל", "hi": "संचरण स्तम्भ", - "hu": "adótorony", + "hu": "nagyfeszültségű távvezetékoszlop", "id": "menara transmisi", "it": "traliccio", "ja": "送電塔", @@ -41099,6 +46459,7 @@ "bg": "концентрационен лагер", "ca": "camp de concentració", "cs": "koncentrační tábor", + "cy": "gwersyll crynhoi", "da": "koncentrationslejr", "de": "konzentrationslager", "el": "στρατόπεδο συγκέντρωσης", @@ -41108,6 +46469,8 @@ "fa": "اردوگاه کار اجباری", "fi": "keskitysleiri", "fr": "camp de concentration", + "ga": "campa géibhinn", + "gl": "campo de concentración", "he": "מחנה ריכוז", "hr": "sabirni logor", "hu": "koncentrációs tábor", @@ -41125,6 +46488,7 @@ "ru": "концентрационный лагерь", "sk": "koncentračný tábor", "sl": "koncentracijsko taborišče", + "sq": "kampi i përqëndrimit", "sv": "koncentrationsläger", "th": "การกักกัน", "tr": "toplama kampı", @@ -41138,7 +46502,7 @@ "labor_camp": { "ar": "معسكر أشغال", "bg": "трудов лагер", - "ca": "camp de treball", + "ca": "camp de treballs forçats", "cs": "pracovní tábor", "da": "arbejdslejr", "de": "arbeitslager", @@ -41150,13 +46514,13 @@ "fa": "اردوگاه کار", "fi": "työsiirtola", "fr": "camp de travail", + "ga": "campa oibre", "he": "מחנה עבודה", "hr": "radni logor", "hu": "munkatábor", "id": "kamp buruh", "it": "campo di lavoro forzato", "ja": "労働収容所", - "ms": "kem buruh paksa", "nb": "arbeidsleir", "nl": "werkkamp", "pl": "obóz pracy", @@ -41209,12 +46573,14 @@ "pickles": { "ca": "salaó", "cs": "nakládaná zelenina", + "cy": "piclo", "da": "pickles", "de": "sauergemüse", "en": "pickle", "es": "encurtido", "fi": "pikkelssi", "fr": "aliments en saumure", + "ga": "picil", "he": "מוחמץ", "it": "sottaceto", "ja": "漬物", @@ -41224,6 +46590,7 @@ "pt": "picles", "ru": "соленье", "sl": "vložena zelenjava", + "th": "ผักดอง", "tr": "turşu", "uk": "соління", "vi": "dưa muối", @@ -41253,6 +46620,7 @@ "en": "iucn category ib: wilderness area", "es": "categoría ib de la uicn: área silvestre", "fr": "catégorie ib : zone de nature sauvage", + "gl": "categoría ib da uicn: área silvestre", "id": "kategori iucn ib: kawasan belantara", "it": "categoria iucn ib: area selvaggia", "ja": "iucnカテゴリーib:原生自然地域", @@ -41273,6 +46641,8 @@ "en": "iucn category ia: strict nature reserve", "es": "categoría ia de la uicn: reserva natural estricta", "fr": "catégorie ia : réserve naturelle intégrale", + "ga": "catagóir iucn ia: anaclann dúlra docht", + "gl": "categoría ia da uicn: reserva natural estrita", "id": "kategori iucn ia: cagar (suaka) alam", "it": "categoria iucn ia: riserva naturale integrale", "ja": "iucnカテゴリーia:厳正保護地域", @@ -41291,6 +46661,7 @@ "en": "iucn category ib: wilderness area", "es": "categoría ib de la uicn: área silvestre", "fr": "catégorie ib : zone de nature sauvage", + "gl": "categoría ib da uicn: área silvestre", "id": "kategori iucn ib: kawasan belantara", "it": "categoria iucn ib: area selvaggia", "ja": "iucnカテゴリーib:原生自然地域", @@ -41314,17 +46685,19 @@ "es": "categoría ii de la uicn: parque nacional", "et": "iucn-i kategooria ii: rahvuspark", "fr": "catégorie ii : parc national", + "ga": "catagóir ii iucn: páirc náisiúnta", + "gl": "categoría ii da uicn: parque nacional", "id": "kategori iucn ii: taman nasional", "it": "categoria iucn ii: parco nazionale", "ja": "iucnカテゴリーii:国立公園", "ko": "iucn 카테고리 ii: 국립공원", - "ms": "kategori ii iucn: taman negara", "nb": "iucn-kategori ii: nasjonalpark", "nl": "iucn categorie ii: nationaal park", "pl": "kategoria iucn: park narodowy", "pt-br": "uicn categoria ii: parque nacional", "ru": "категория мсоп ii: национальный парк", "sl": "iucn-kategorija ii: narodni park", + "sq": "iucn kategoria ii: park kombëtar", "sv": "iucn-kategori ii: nationalpark", "uk": "категорія мсоп — ii (національний парк)", "zh": "iucn分类ii:国家公园", @@ -41338,6 +46711,7 @@ "en": "iucn category iii: natural monument or feature", "es": "categoría iii de la uicn: monumento o característica natural", "fr": "catégorie iii : monument ou élément naturel", + "gl": "iucn categoría iii: monumento natural", "id": "kategori iucn iii: monumen alami", "it": "categoria iucn iii: monumento naturale", "ja": "iucnカテゴリーiii:天然記念物", @@ -41355,15 +46729,11 @@ "bg": "категория iv на iucn: защитена местност", "ca": "iucn categoria iv:àrea d'espècies i hàbitats", "cs": "iv – místo výskytu druhu", - "da": "naturschutzgebiet", "de": "iucn-kategorie iv: biotop-/artenschutzgebiet mit management", - "de-ch": "naturschutzgebiet", "en": "iucn category iv: habitat/species management area", - "en-ca": "naturschutzgebiet", - "en-gb": "naturschutzgebiet", - "en-us": "naturschutzgebiet", "es": "categoría iv de la uicn: área de gestión de hábitat / especies", "fr": "catégorie iv : aire de gestion des habitats ou des espèces", + "gl": "categoría iv da uicn: área de xestión de hábitat e especies", "he": "קטגוריה iv:איזור ניהול למינים", "id": "kategori iucn iv: kawasan pengelolaan habitat/spesies", "it": "categoria iucn iv: area di conservazione di habitat/specie", @@ -41375,8 +46745,7 @@ "ru": "категория мсоп iv: заказник", "sl": "iucn-kategorija iv: območje upravljanja habitatov/vrst", "sv": "iucn-kategori iv: habitat/artskyddsområde", - "uk": "природний заповідник у німеччині", - "zh-tw": "iucn分類iv:生境/物種管理區" + "zh": "iucn分類iv:生境/物種管理區" }, "5": { "ca": "categoria v de la uicn: paisatges terrestres/marins protegits", @@ -41386,6 +46755,7 @@ "en": "iucn category v: protected landscape/seascape", "es": "categoría v de la uicn: paisaje protegido/paisaje marino", "fr": "catégorie v : paysage terrestre ou marin protégé", + "gl": "categoría v da uicn: paisaxe protexida/paisaxe mariña", "hu": "iucn v. kategória: védett táj", "id": "kategori iucn v: bentang alam/bentang laut yang dilindungi", "it": "categoria iucn v: paesaggio terrestre/marino protetto", @@ -41394,8 +46764,10 @@ "nb": "iucn-kategori v: protected landscape/seascape", "nl": "iucn categorie v: beschermd landschap", "pl": "kategoria iucn: obszar chronionego krajobrazu/morza", + "ro": "categoria v iucn: peisaje terestre/marine protejate", "ru": "категория мсоп v: охраняемые наземные и морские ландшафты", "sl": "iucn-kategorija v: zavarovana krajina/podmorska krajina", + "sq": "peizazh tokësor/detar i mbrojtur", "sv": "iucn-kategori v: skyddat landskap/havsområde", "uk": "категорія мсоп v: наземні та морські ландшафти, що охороняються", "zh": "iucn分类五:受保护的陆地/海洋景观" @@ -41407,6 +46779,7 @@ "en": "iucn category vi: protected area with sustainable use of natural resources", "es": "categoría vi de la uicn: área protegida con uso sostenible de los recursos naturales", "fr": "catégorie vi : aire protégée avec utilisation durable des ressources naturelles", + "gl": "categoría vi da uicn: área protexida con uso sostible dos recursos naturais", "id": "kategori iucn vi: kawasan lindung sumberdaya yang dikelola", "it": "categoria iucn vi: area protetta per la gestione sostenibile delle risorse", "ja": "iucnカテゴリーvi:自然資源の持続可能な利用による保護地域", @@ -41416,7 +46789,9 @@ "pl": "kategoria iucn: obszar chroniony o użytkowanych zasobach", "ru": "категория мсоп vi: охраняемые территории с управляемыми ресурсами", "sl": "iucn-kategorija vi: zavarovano območje s trajnostno rabo naravnih virov", + "sq": "zonë e mbrojtur e burimeve të menaxhuara", "sv": "iucn-kategori vi: skyddat naturresursområde", + "th": "พื้นที่คุ้มครองแบบมีการใช้ทรัพยากรธรรมชาติอย่างยั่งยืน", "zh": "iucn分类六:可持续使用自然资源保护区" } }, @@ -41427,6 +46802,7 @@ "el": "κληρονομιά πολιτιστικού ενδιαφέροντος", "en": "bien de interés cultural", "fr": "bien d'intérêt culturel", + "gl": "ben de interese cultural", "hi": "बिएन दे इंतेरेस कल्चरल", "hu": "spanyolországi műemlék", "ja": "スペイン文化遺産", @@ -41438,6 +46814,9 @@ "ur": "بئین دے انتیریس کلچرل", "zh": "西班牙文化財產" }, + "Bien de Interés Patrimonial": { + "en": "bien de interés patrimonial" + }, "Gesamtanlage": { "en": "gesamtanlage" }, @@ -41447,6 +46826,7 @@ "es": "refugio nacional de vida silvestre", "fa": "پناهگاه ملی حیات وحش", "fr": "refuge faunique national", + "ga": "tearmann náisiúnta fiadhúlra", "ja": "野生生物保護区", "ru": "национальный резерват дикой природы", "sl": "nacionalni rezervat za prostoživeče živali", @@ -41455,6 +46835,7 @@ }, "National_Monument": { "ca": "monument nacional (estats units)", + "cy": "cofeb genedlaethol yr unol daleithiau", "da": "national monument", "de": "national monuments in den vereinigten staaten", "el": "εθνικό μνημείο των ηνωμένων πολιτειών", @@ -41465,6 +46846,7 @@ "fa": "یادبود ملی", "fi": "kansallismonumentti", "fr": "monument national", + "gl": "monumento nacional dos estados unidos de américa", "he": "מונומנט לאומי", "it": "monumento nazionale", "ja": "アメリカ合衆国ナショナル・モニュメント", @@ -41502,20 +46884,29 @@ "pl": "pomnik przyrody w czechach", "pt": "monumento natural na república tcheca", "ru": "памятник природы чехии", - "sk": "prírodná pamiatka v česku" + "sk": "prírodná pamiatka v česku", + "sl": "naravni spomenik na češkem" }, "State_Forest": { + "bg": "държавни гори", "ca": "bosc estatal", + "cs": "státní lesy", + "da": "statsskov", "de": "staatsforst", "en": "state forest", "es": "bosque estatal", "et": "riigimets", "fi": "valtionmetsä", "fr": "forêt d'état", + "hr": "državna šuma", "it": "foresta di stato", "ja": "州有林", "lt": "valstybinis miškas", "nb": "statsskog", + "nl": "staatsbos", + "pl": "las państwowy", + "pt": "floresta estatal", + "ro": "pădure a statului", "sl": "državni gozd", "sv": "statens skogar", "tr": "devlet ormanı", @@ -41533,6 +46924,7 @@ "fa": "منطقه حیات وحش", "fi": "erämaa-alue", "fr": "réserve intégrale", + "he": "אזור טבע בראשיתי", "hu": "tájvédelmi körzet", "ja": "原野地域", "nb": "ødemarksområde", @@ -41540,6 +46932,7 @@ "pt": "área silvestre", "ru": "заповедная территория", "sl": "naravno območje", + "sq": "zonë e natyrës së egër", "sv": "ödemarksområde", "tr": "vahşi yaşam alanı", "zh": "公共莽原区" @@ -41550,11 +46943,13 @@ "de": "landschaftsschutzgebiet", "en": "protected landscape area", "fr": "espace naturel protégé", + "ja": "景観保護区", "lv": "aizsargājamo ainavu teritorija", "nb": "landskapsvernområde", "nl": "beschermd landschap", "pt": "paisagem protegida", - "ru": "охраняемая природная зона" + "ru": "охраняемая природная зона", + "sl": "zavarovana krajina" } }, "public_transport": { @@ -41573,16 +46968,19 @@ "bg": "спирка", "ca": "parada de transport", "cs": "zastávka", + "cy": "safle bws", "da": "stoppested", "de": "haltestelle", + "el": "στάση δημόσιας συγκοινωνίας", "en": "bus stop (symbol) - no standing any time", "en-ca": "bus stop", "en-gb": "bus stop", "es": "parada de transporte", "et": "peatus", "fa": "ایستگاه اتوبوس", - "fi": "linja-autopysäkki", + "fi": "julkisen liikenteen pysäkki", "fr": "poteau d'arrêt", + "ga": "stad bus", "he": "תחנת תחבורה ציבורית", "hr": "postaja", "hu": "megállóhely", @@ -41591,8 +46989,7 @@ "ja": "停車場", "ko": "대중교통 정류장", "lt": "autobusų stotelė", - "lv": "pietura", - "ms": "hentian pengangkutan awam", + "lv": "sabiedriskā transporta pietura", "nb": "stoppested", "nl": "halte", "pl": "przystanek", @@ -41601,8 +46998,10 @@ "ru": "остановка общественного транспорта", "sk": "autobusová zastávka", "sl": "postajališče javnega prometa", + "sq": "ndalesë autobusi", "sv": "kollektivtrafikhållplats", "ta": "பேருந்து நிறுத்தம்", + "te": "బస్ స్టాప్", "tr": "durak", "uk": "зупинка транспортного засобу", "ur": "پلیٹ فارم", @@ -41622,6 +47021,8 @@ "et": "jaam", "fi": "asema", "fr": "gare", + "ga": "stáisiún", + "gd": "stèisean", "he": "תחנה", "hu": "állomás", "id": "stasiun", @@ -41630,7 +47031,6 @@ "ko": "정거장", "lt": "stotis", "ml": "നിലയം", - "ms": "stesen", "nb": "stasjon", "pl": "stacja", "pt": "estação", @@ -41650,7 +47050,8 @@ "de": "intermodalität (personenverkehr)", "en": "intermodal passenger transport", "es": "intermodalidad", - "fr": "transport intermodal", + "fr": "transport intermodal de passagers", + "gl": "intermodalidade", "it": "trasporto intermodale di passeggeri", "ja": "協同一貫旅客輸送", "nb": "blandet transport", @@ -41666,9 +47067,11 @@ "cs": "zastávka", "da": "stoppested", "de": "haltestelle", + "el": "στάση δημόσιας συγκοινωνίας", "en": "public transport stop", "es": "parada de transporte", "et": "peatus", + "fi": "julkisen liikenteen pysäkki", "fr": "poteau d'arrêt", "he": "תחנת תחבורה ציבורית", "hr": "postaja", @@ -41677,7 +47080,7 @@ "it": "fermata", "ja": "停車場", "ko": "대중교통 정류장", - "ms": "hentian pengangkutan awam", + "lv": "sabiedriskā transporta pietura", "nb": "stoppested", "nl": "halte", "pl": "przystanek", @@ -41733,6 +47136,7 @@ "fa": "خط آهن بیپارسنگ", "fi": "releasetinlaite", "fr": "voie béton (chemin de fer)", + "he": "מסלול כפפה", "hu": "betonlemezes vasúti pálya", "id": "bingkai tuas", "it": "binari compenetrati", @@ -41744,9 +47148,10 @@ "pl": "lokalne centrum sterowania", "pt": "via em laje", "ru": "сплетение", - "sl": "železniška postaja kategorije 1", + "sl": "tir brez tamponskega sloja", "sv": "ballastfritt spår", "th": "เครื่องนับเพลา", + "uk": "безбаластна колія", "zh": "无砟轨道", "zh-cn": "联锁装置", "zh-tw": "計軸器" @@ -41755,11 +47160,14 @@ "ar": "خط سكك حديد مهجور", "ca": "línia ferroviària abandonada", "cs": "bývalá železniční trať", + "cy": "cyn rheilffordd", "da": "nedlagt jernbane", "de": "stillgelegter gleisanschluss", + "el": "εγκαταλειμμένη σιδηροδρομική γραμμή", "en": "abandoned industrial spur", "en-ca": "abandoned railway", "en-gb": "abandoned railway", + "es": "ferrocarril abandonado", "fr": "ancienne ligne ferroviaire", "hu": "felhagyott vasútvonal", "id": "jalur kereta api nonaktif", @@ -41785,6 +47193,7 @@ "nb": "blokkpost", "pl": "posterunek odstępowy", "ru": "блокпост", + "sl": "kretnica", "uk": "блокпост", "zh": "闭塞站" }, @@ -41794,6 +47203,7 @@ "en": "railway border crossing", "es": "paso fronterizo ferroviario", "fr": "point de passage frontalier ferroviaire", + "hu": "vasúti határátkelőhely", "pl": "kolejowe przejście graniczne", "ru": "железнодорожное пересечение границы", "sl": "železniški mejni prehod" @@ -41824,13 +47234,23 @@ "zh": "止衝擋", "zh-cn": "车挡器" }, + "crossing": { + "cs": "přechod přes železniční trať", + "de": "reisendenübergang", + "en": "pedestrian level crossing", + "es": "paso a nivel para peatones", + "fr": "traversée des voies par le public", + "pt": "passagem a nível para pedestres", + "ru": "пешеходный переход через пути" + }, "crossover": { "be": "пуцявы з’езд", - "cs": "kolejová spojka", + "cs": "odbočka", "de": "überleitstelle", "en": "crossover", "es": "puesto de banalización", "et": "siire", + "gl": "posto de banalización", "hu": "vágánykapcsolat", "lv": "ceļa pāreja", "nl": "overloopwissel", @@ -41844,6 +47264,7 @@ "be": "лакаматыўнае дэпо", "ca": "lloc de manteniment ferroviari", "cs": "lokomotivní depo", + "cy": "cwt dal trenau", "da": "lokomotivværksted", "de": "bahnbetriebswerk", "en": "motive power depot", @@ -41854,12 +47275,13 @@ "he": "דפו (רכבת)", "id": "depo kereta api", "it": "deposito locomotive", - "ja": "機関区", + "ja": "車両基地", "ko": "공작창", "nb": "trikkehall", "nl": "depot", "pl": "lokomotywownia", "ru": "железнодорожное депо", + "sl": "železniška remiza", "sv": "lokstall", "uk": "локомотивне депо", "zh": "机务段", @@ -41889,17 +47311,22 @@ }, "disuesd_junction": { "de": "ehemalige abzweigstelle", - "en": "former junction" + "en": "former junction", + "fr": "ancienne jonction", + "sl": "nekdanje stičišče" }, "disused": { "ar": "خط سكك حديد مهجور", "ca": "línia ferroviària abandonada", "cs": "bývalá železniční trať", + "cy": "cyn rheilffordd", "da": "nedlagt jernbane", "de": "stillgelegter gleisanschluss", + "el": "εγκαταλειμμένη σιδηροδρομική γραμμή", "en": "abandoned industrial spur", "en-ca": "abandoned railway", "en-gb": "abandoned railway", + "es": "ferrocarril abandonado", "fr": "ancienne ligne ferroviaire", "hu": "felhagyott vasútvonal", "id": "jalur kereta api nonaktif", @@ -41916,25 +47343,15 @@ }, "disused_blockpost": { "de": "ehemalige blockstelle", - "en": "former block post" - }, - "disused_halt": { - "cs": "zrušená železniční zastávka", - "de": "ehemaliger haltepunkt", - "en": "former railway stop", - "es": "apeadero antiguo", - "fr": "ancienne halte ferroviaire", - "hu": "megszűnt vasúti megállóhely", - "it": "fermata ferroviaria dismessa", - "nl": "voormalige spoorweghalte", - "pl": "dawny przystanek kolejowy", - "ru": "бывший (заброшенный) остановочный пукт", - "sl": "nekdanje železniško postajališče" + "en": "former block post", + "nb": "nedlagt blokkpost", + "sl": "nekdanja kretnica" }, "disused_station": { "ar": "محطة قطار سابقة", "ca": "antiga estació de ferrocarril", "cs": "zrušená železniční stanice", + "cy": "cyn orsaf reilffordd", "da": "nedlagt jernbanestation", "de": "ehemaliger bahnhof", "el": "πρώην σιδηροδρομικός σταθμός", @@ -41943,12 +47360,14 @@ "es": "estación del ferrocarril antigua", "fi": "entinen rautatieasema", "fr": "ancienne gare ferroviaire", + "ga": "iarstáisiún traenach", + "gl": "antiga estación de ferrocarril", "he": "תחנת רכבת לשעבר", "hu": "megszűnt vasútállomás", "it": "stazione ferroviaria dismessa", "ja": "かつての鉄道駅", "ko": "없어진 철도역", - "nb": "tidligere jernbanestasjon", + "nb": "nedlagt jernbanestasjon", "nl": "voormalig spoorwegstation", "pl": "była stacja kolejowa", "pt": "antiga estação ferroviária", @@ -41967,6 +47386,7 @@ "el": "πορθμείο σιδηροδρόμων", "en": "train ferry route", "es": "ruta de ferrobarco", + "et": "raudteeparvlaev", "fi": "junalauttareitti", "fr": "route ferry adaptée aux trains", "he": "מעבורות המובילות", @@ -41977,9 +47397,10 @@ "lt": "traukinių keltas", "lv": "vilcienu prāmis", "nb": "jernbanefergesamband", - "nl": "spoorpont", + "nl": "spoorpontverbinding", "pl": "prom kolejowy", "pt": "balsa ferroviária", + "ru": "железнодорожный паромный маршрут", "sl": "železniška trajektna povezava", "sv": "tågfärjeled", "tr": "tren feribotu", @@ -41990,6 +47411,7 @@ "be": "фунікулёр", "bg": "фуникулер", "cs": "pozemní lanová dráha", + "cy": "ffwniciwlar", "da": "kabelbane", "de": "standseilbahn", "el": "καλωδιοκίνητος σιδηρόδρομος", @@ -42009,7 +47431,6 @@ "lv": "funikulers", "ml": "ഫ്യുണിക്യുലർ ട്രെയിൻ", "mr": "फ्युनिक्युलर रेल्वे", - "ms": "kereta api bukit", "nb": "kabelbane", "nl": "kabelspoorweg", "pl": "kolej linowo-terenowa", @@ -42022,12 +47443,30 @@ "uk": "фунікулер", "zh": "往复式地面纜車" }, + "gauge_conversion": { + "ca": "canvi d'ample de via", + "de": "umspurung (eisenbahnfahrzeug)", + "en": "variable gauge", + "es": "cambio de ancho", + "fr": "essieux à écartement variable", + "hu": "nyomtávváltás (vasút)", + "id": "peubah lebar gandar", + "ja": "軌間可変", + "ko": "가변 궤간", + "lt": "kintamojo vėžės pločio geležinkelių riedmenys", + "nb": "variabel sporvidde", + "nl": "variabele asbreedte", + "ru": "раздвижные колёсные пары", + "tr": "değişken demiryolu hat açıklığı", + "zh": "可變軌距" + }, "halt": { "af": "spoorweghalte", "be": "прыпыначны пункт", "bg": "железопътна спирка", "ca": "baixador", "cs": "železniční zastávka", + "cy": "arhosfa reilffordd", "da": "trinbræt", "de": "haltepunkt/haltestelle", "de-at": "haltestelle", @@ -42038,9 +47477,12 @@ "et": "raudteepeatus", "fi": "seisake", "fr": "halte ferroviaire", + "ga": "stad iarnróid", + "gl": "apeadoiro", "he": "תחנת רכבת נוסעים", "hr": "željezničko stajalište", "hu": "vasúti megállóhely", + "id": "halte kereta api", "it": "fermata ferroviaria", "ja": "ハルテプンクト", "ko": "간이역", @@ -42058,6 +47500,10 @@ "zh": "招呼站", "zh-hk": "無人站" }, + "hirail_access": { + "de": "eingleisstelle", + "en": "hi-rail vehicle access point" + }, "hump_yard": { "be": "сартавальная горка", "cs": "svážný pahrbek", @@ -42079,17 +47525,20 @@ "junction": { "ar": "ملتقى سكك حديد", "cs": "odbočka", + "cy": "cyffordd", "de": "abzweigstelle", - "en": "junction", + "en": "railway junction", + "en-gb": "junction", "es": "empalme", "fr": "jonction", + "he": "צומת רכבת", "hu": "vasúti elágazás", "id": "percabangan", "it": "bivio ferroviario", "ja": "分岐点", "lv": "ceļa postenis", "nb": "jernbanekryss", - "nl": "spoorwegaftakking", + "nl": "aansluiting", "pl": "posterunek odgałęźny", "ru": "путевой пост", "sk": "odbočka (železnica)", @@ -42103,6 +47552,7 @@ "be": "чыгуначны пераезд", "ca": "pas a nivell", "cs": "železniční přejezd", + "cy": "croesfan gwastad", "da": "jernbaneoverskæring", "de": "bahnübergang", "el": "σιδηροδρομική διάβαση", @@ -42112,6 +47562,7 @@ "fa": "تقاطع همسطح", "fi": "tasoristeys", "fr": "passage à niveau", + "gl": "paso a nivel", "he": "מצלב", "hr": "željezničko cestovni prijelaz", "hu": "vasúti átjáró", @@ -42130,6 +47581,7 @@ "sl": "nivojski prehod čez železniško progo", "sv": "plankorsning", "ta": "சமமட்டக் கடவு", + "te": "లెవెల్ క్రాసింగ్", "th": "ทางรถไฟผ่านถนนเสมอระดับ", "tr": "hemzemin geçit", "uk": "залізничний переїзд", @@ -42145,11 +47597,16 @@ "cs": "lehké metro", "da": "letbane", "de": "stadtbahn", - "en": "light rail", + "de-ch": "light rail", + "en": "light rail system", + "en-ca": "light rail", + "en-gb": "light rail", "es": "tren ligero", "fa": "قطار سبک شهری", "fi": "pikaraitiotie", "fr": "métro léger", + "ga": "iarnród éadrom", + "gl": "tren lixeiro", "he": "רכבת קלה", "hr": "laka gradska željeznica", "hu": "könnyűvasút", @@ -42157,8 +47614,7 @@ "it": "metropolitana leggera", "ja": "ライト・レール", "ko": "라이트 레일", - "ms": "transit aliran ringan", - "nb": "bybane", + "nb": "lettbane", "nl": "lightrail", "pl": "kolej miejska", "pt": "metro ligeiro", @@ -42167,15 +47623,18 @@ "ru": "легкорельсовый транспорт", "sk": "ľahké metro", "sl": "lahka železnica", + "sv": "light rail", "ta": "இலகு தொடருந்து", "th": "รถไฟฟ้ารางเบา", - "tr": "modern dekovil", + "tr": "hafif raylı sistem", "uk": "легкорейковий транспорт", "ur": "ہلکی ریل", + "vi": "đường sắt nhẹ", "zh": "輕軌運輸系統", "zh-cn": "轻轨运输系统" }, "milestone": { + "cs": "hektometrovník", "de": "streckenkilometrierung", "en": "railway kilometre sign", "es": "placa kilométrica", @@ -42192,24 +47651,28 @@ "en": "rideable miniature railway", "es": "trenes miniatura", "fr": "trains miniatures à passagers", + "id": "kereta mini", "it": "ferrovia da cortile", "ja": "ミニチュア鉄道", "nb": "parkjernbane", - "pl": "kolej lilipucia", + "pl": "kolej parkowa", "ru": "парковая железная дорога", "sv": "åkbar miniatyrjärnväg", + "tr": "sürülebilir minyatür demiryolu", "zh": "小火車" }, "monorail": { "ar": "خط أحادي", "be": "манарэйка", "bg": "монорелс", + "cy": "rheilffordd ungledrog", "de": "einschienenbahn", "el": "τρένα μονής τροχιάς", "en": "monorail", "es": "monorraíl", "et": "monorelsstee", "fa": "مونوریل", + "ga": "iarnród aonráille", "he": "מונורייל", "hi": "एकरेल", "hr": "jednotračna željeznica", @@ -42222,7 +47685,6 @@ "lv": "viensliedes dzelzceļš", "ml": "മോണോറെയിൽ", "mr": "मोनोरेल", - "ms": "monorel", "nb": "énskinnebane", "pl": "kolej jednoszynowa", "pt": "monocarril", @@ -42230,6 +47692,7 @@ "ru": "монорельс", "sl": "enotirna železnica", "ta": "ஒற்றைத் தண்டூர்தி", + "te": "మోనోరైల్", "th": "รางเดี่ยว", "tr": "havaray", "uk": "монорейкова дорога", @@ -42244,6 +47707,7 @@ "bg": "теснолинейка", "ca": "ferrocarril de via estreta", "cs": "úzkorozchodná dráha", + "cy": "rheilffordd gul", "da": "smalspor", "de": "schmalspurbahn", "en": "narrow-gauge railway", @@ -42251,6 +47715,7 @@ "et": "kitsarööpmeline raudtee", "fi": "kapearaiteinen rautatie", "fr": "voie étroite", + "gl": "ferrocarril de vía estreita", "he": "מסילה צרה", "hi": "छोटी रेल लाइन", "hr": "uskotračna željeznica", @@ -42296,6 +47761,7 @@ "et": "ooteplatvorm", "fi": "asemalaituri", "fr": "quai", + "gl": "plataforma", "he": "רציף רכבת", "hi": "रेलवे प्लेटफार्म", "hu": "peron", @@ -42314,6 +47780,7 @@ "sl": "železniški peron", "sv": "perrong", "th": "ชานชาลา", + "tr": "peron", "uk": "залізнична платформа", "ur": "ریلوے پلیٹ فارم", "vi": "sân ga", @@ -42322,13 +47789,16 @@ "zh-hk": "月台" }, "preserved": { + "ar": "سكة حديد تراثية", "ca": "tren històric", + "cy": "rheilffordd dreftadaeth", "da": "veteranbane", "de": "museumsbahn", "en": "heritage railway", "es": "tren histórico", "fi": "museorautatie", "fr": "chemin de fer touristique", + "ga": "iarnród oidhreachta", "he": "מסילה מורשתית", "hu": "örökségvédelem alatt álló vasút", "id": "warisan sejarah perkeretaapian", @@ -42342,6 +47812,7 @@ "ru": "историческая железная дорога", "sl": "muzejska železnica", "sv": "museijärnväg", + "tr": "miras demiryolu", "uk": "історична залізниця", "ur": "ورثہ ریلوے", "zh": "观光铁路" @@ -42359,7 +47830,7 @@ "nb": "foreslått jernbanestrekning", "nl": "voorgestelde spoorlijn", "pt": "linha ferroviária proposta", - "ru": "перспективная железнодорожная линия", + "ru": "планируемая железнодорожная линия", "sl": "predlagana železniška povezava", "sv": "föreslagen järnvägslinje", "zh": "铁路线规划" @@ -42373,12 +47844,14 @@ "da": "jernbanespor", "de": "gleis", "el": "σιδηροτροχιά", - "en": "track", + "en": "railway track", "es": "vía férrea", "et": "rööbastee", "fa": "ریل راهآهن", "fi": "raide", "fr": "voie ferrée", + "ga": "ráille", + "gl": "vía férrea", "he": "מסילת רכבת", "hr": "željeznička pruga", "hu": "vasúti pálya", @@ -42389,18 +47862,18 @@ "lv": "sliežu ceļš", "ml": "തീവണ്ടിപ്പാത", "mr": "रूळ", - "ms": "landasan kereta api", "nb": "jernbanespor", "nl": "spoorweg", "pl": "droga kolejowa", "pt": "ferrovia", "pt-br": "via férrea", - "ro": "cale ferată", "ru": "железнодорожный путь", "sk": "koľaj", "sl": "železniška proga", + "sq": "hekurudha", "sv": "järnvägsspår", "ta": "இருப்புப்பாதை", + "te": "రైలు మార్గం", "th": "ทางรถไฟ", "tr": "ray hattı", "uk": "залізнична колія", @@ -42429,11 +47902,14 @@ "ar": "خط سكك حديد مهجور", "ca": "línia ferroviària abandonada", "cs": "bývalá železniční trať", + "cy": "cyn rheilffordd", "da": "nedlagt jernbane", "de": "stillgelegter gleisanschluss", + "el": "εγκαταλειμμένη σιδηροδρομική γραμμή", "en": "abandoned industrial spur", "en-ca": "abandoned railway", "en-gb": "abandoned railway", + "es": "ferrocarril abandonado", "fr": "ancienne ligne ferroviaire", "hu": "felhagyott vasútvonal", "id": "jalur kereta api nonaktif", @@ -42468,8 +47944,8 @@ "roundhouse": { "be": "веернае дэпо", "cs": "výtopna", - "da": "lokomotivremise", - "de": "lokschuppen", + "da": "rundremise", + "de": "ringlokschuppen", "en": "railway roundhouse", "en-gb": "roundhouse", "es": "rotonda", @@ -42477,7 +47953,6 @@ "fr": "rotonde ferroviaire", "id": "los bundar", "ja": "扇形庫", - "ms": "bangsal lokomotif", "nl": "locomotiefloods", "pl": "hala wachlarzowa", "pt": "rotunda", @@ -42496,8 +47971,12 @@ "lv": "tehniskā stacija", "nl": "personeelshalte", "ru": "техническая железнодорожная станция", + "sl": "obratna postaja", "tr": "servis istasyonu", - "zh": "线路所" + "uk": "технічна залізнична станція", + "zh": "线路所", + "zh-hk": "信號場", + "zh-tw": "號誌站" }, "signal": { "ar": "إشارات السكك الحديدية", @@ -42537,6 +48016,7 @@ }, "signal_box": { "cs": "stavědlo", + "cy": "bocs signalau", "de": "stellwerk", "en": "signal box", "es": "cabín de señales", @@ -42558,6 +48038,7 @@ "bg": "железопътна гара", "ca": "estació de ferrocarril", "cs": "železniční stanice", + "cy": "gorsaf reilffordd", "da": "jernbanestation", "de": "bahnhof", "el": "σιδηροδρομικός σταθμός", @@ -42568,6 +48049,9 @@ "fa": "ایستگاه قطار", "fi": "rautatieasema", "fr": "gare ferroviaire", + "ga": "stáisiún traenach", + "gd": "stèisean-rèile", + "gl": "estación de ferrocarril", "he": "תחנת רכבת", "hi": "रेलवे स्टेशन", "hr": "željeznički kolodvor", @@ -42581,7 +48065,6 @@ "lv": "dzelzceļa stacija", "ml": "റെയിൽവേ സ്റ്റേഷൻ", "mr": "रेल्वे स्थानक", - "ms": "stesen kereta api", "nb": "jernbanestasjon", "nl": "spoorwegstation", "pl": "stacja kolejowa", @@ -42590,8 +48073,10 @@ "ru": "железнодорожная станция", "sk": "železničná stanica", "sl": "železniška postaja", + "sq": "stacion hekurudhor", "sv": "järnvägsstation", "ta": "தொடருந்து நிலையம்", + "te": "రైల్వే స్టేషను", "th": "สถานีรถไฟ", "tr": "tren istasyonu", "uk": "залізнична станція", @@ -42607,6 +48092,7 @@ "bg": "железопътна спирка", "ca": "baixador", "cs": "železniční zastávka", + "cy": "arhosfa reilffordd", "da": "trinbræt", "de": "haltepunkt/haltestelle", "de-at": "haltestelle", @@ -42617,9 +48103,12 @@ "et": "raudteepeatus", "fi": "seisake", "fr": "halte ferroviaire", + "ga": "stad iarnróid", + "gl": "apeadoiro", "he": "תחנת רכבת נוסעים", "hr": "željezničko stajalište", "hu": "vasúti megállóhely", + "id": "halte kereta api", "it": "fermata ferroviaria", "ja": "ハルテプンクト", "ko": "간이역", @@ -42644,6 +48133,7 @@ "bg": "метро", "ca": "metro", "cs": "metro", + "cy": "trafnidiaeth gyflym awtomataidd", "da": "undergrundsbane", "de": "u-bahn", "el": "μετρό", @@ -42653,6 +48143,8 @@ "fa": "مترو", "fi": "metro", "fr": "métro", + "ga": "meariompar", + "gl": "metro", "he": "רכבת תחתית", "hi": "भूमिगत रेल", "hr": "podzemna željeznica", @@ -42666,7 +48158,6 @@ "lv": "metro", "ml": "അതിവേഗഗതാഗതം", "mr": "जलद वाहतूक", - "ms": "alihan laju", "nb": "tunnelbane", "nl": "metrosysteem", "pl": "metro", @@ -42678,6 +48169,7 @@ "sl": "podzemna železnica", "sv": "tunnelbana", "ta": "விரைவுப் போக்குவரத்து", + "te": "మెట్రోరైలు", "th": "ระบบขนส่งมวลชนเร็ว", "tr": "metro", "uk": "метрополітен", @@ -42686,6 +48178,18 @@ "zh": "地鐵", "zh-cn": "地铁" }, + "subway_entrance": { + "ca": "entrada del metro", + "de": "metrozugang", + "en": "subway entrance", + "es": "boca de metro", + "fr": "bouche de métro", + "ja": "地下鉄入口", + "nl": "metrotoegang", + "ru": "вход в метро", + "sv": "ingång till tunnelbanestation", + "zh": "出入口" + }, "switch": { "be": "стрэлачны перавод", "bg": "железопътна стрелка", @@ -42700,6 +48204,7 @@ "fa": "سوزن ریل", "fi": "rautatievaihde", "fr": "aiguillage", + "gl": "cambio de agullas", "he": "מסוט", "hi": "रेलपथ स्विच", "hr": "skretnica", @@ -42724,11 +48229,13 @@ "tr": "makas", "uk": "стрілочний перевід", "ur": "ریلوے لائن سوئچ", - "zh": "轉轍器" + "zh": "轉轍器", + "zh-cn": "转辙器" }, "tram": { "ar": "شبكة ترام", "be": "трамвайная сістэма", + "bg": "трамвайна система", "ca": "xarxa de tramvia", "cs": "tramvajová doprava", "da": "sporvej", @@ -42756,12 +48263,15 @@ "sl": "tramvajsko omrežje", "sv": "spårvägssystem", "tr": "tramvay ağı", - "uk": "трамвайна система" + "uk": "трамвайна система", + "zh": "电车系统" }, "tram_stop": { + "ar": "موقف ترام", "be": "трамвайны прыпынак", "ca": "parada de tramvia", "cs": "tramvajová zastávka", + "cy": "arhosfa tramiau", "da": "sporvognsstoppested", "de": "straßenbahnhaltestelle", "en": "tram stop", @@ -42770,6 +48280,7 @@ "et": "trammipeatus", "fi": "raitiotiepysäkki", "fr": "station de tramway", + "ga": "stad tram", "he": "תחנת רכבת חשמלית", "hr": "tramvajska stanica", "hu": "villamosmegálló", @@ -42777,8 +48288,7 @@ "it": "fermata del tram", "ja": "路面電車停留場", "ko": "노면전차 정류장", - "lv": "tramvaju pietura", - "ms": "perhentian trem", + "lv": "tramvaja pietura", "nb": "trikkestopp", "nl": "tramhalte", "pl": "przystanek tramwajowy", @@ -42833,7 +48343,7 @@ "pt": "girador ferroviário", "pt-br": "viradouro", "ro": "placă turnantă", - "ru": "разворотный круг", + "ru": "железнодорожный поворотный круг", "sl": "železniška vrtljiva plošča", "sv": "vändskiva", "th": "วงเวียนกลับรถจักร", @@ -42873,6 +48383,9 @@ "workshop": { "be": "вагонарамонтнае прадпрыемства", "ca": "taller ferroviari", + "cs": "železniční dílny", + "cy": "gweithdy rheilffordd", + "da": "jernbaneværksted", "de": "ausbesserungswerk", "en": "railway workshop", "es": "taller ferroviario", @@ -42881,6 +48394,7 @@ "he": "סדנת רכבות", "id": "balai yasa", "it": "rimessa locomotive", + "ja": "鉄道工場", "nl": "spoorwerkplaats", "ru": "вагоноремонтное предприятие", "sl": "železniška delavnica", @@ -42891,6 +48405,7 @@ "be": "грузавая станцыя", "ca": "estació de mercaderies", "cs": "nákladové nádraží", + "da": "godsbanegård", "de": "güterbahnhof", "en": "goods station", "es": "estación de mercancías", @@ -42901,6 +48416,8 @@ "hu": "teherpályaudvar", "it": "stazione merci", "ja": "貨物駅", + "lv": "kravas stacija", + "nb": "godsstasjon", "nl": "goederenstation", "pl": "stacja towarowa", "pt": "pátio de manobras", @@ -42920,20 +48437,22 @@ "be": "пандус", "bg": "рампа за инвалиди", "da": "kørestolsrampe", - "de": "rollstuhlrampe", + "de": "fahrradschieberinne", "el": "ράμπα πρόσβασης", - "en": "wheelchair ramp", - "es": "rampa para silla de ruedas", - "fr": "rampe d'accès", + "en": "bicycle stairway", + "es": "rampa de bicicleta", + "fi": "luiska", + "fr": "rampe à vélo", "he": "רמפה", - "ja": "スロープ", - "ko": "휠체어 경사로", + "ja": "自転車用階段", + "ko": "자전거 경사로", "lt": "rampa", - "nb": "rullestolrampe", - "nl": "rolstoelhelling", - "pl": "pochylnia dla niepełnosprawnych", + "nb": "sykkelrampe", + "nl": "fietsgleuf", + "pl": "prowadnice rowerowe", "ru": "пандус", "sv": "rullstolsramp", + "tr": "engelli rampası", "uk": "пандус", "zh": "輪椅斜道" } @@ -42961,7 +48480,7 @@ "ja": "埋立", "ko": "간척지", "lt": "melioracija", - "ms": "tebus guna tanah", + "nb": "landgjenvinning", "nl": "landaanwinning", "pl": "refulacja", "pt": "aterramento marítimo", @@ -42978,6 +48497,7 @@ "recycling_type": { "centre": { "ca": "centre de reciclatge", + "cy": "canolfan ailgylchu", "da": "genbrugsplads", "de": "recyclingzentrum", "el": "κέντρο ανακύκλωσης", @@ -42993,6 +48513,7 @@ }, "container": { "ar": "صندوق فرز نفايات", + "bg": "кошче за рециклиране", "da": "genbrugscontainer", "de": "wertstoffcontainer", "el": "κάδος ανακύκλωσης", @@ -43016,6 +48537,7 @@ "bg": "коралов риф", "ca": "escull de corall", "cs": "korálový útes", + "cy": "rîff cwrel", "da": "koralrev", "de": "korallenriff", "el": "κοραλλιογενής ύφαλος", @@ -43025,6 +48547,7 @@ "fa": "آبسنگ مرجانی", "fi": "koralliriutta", "fr": "récif corallien", + "gl": "arrecife de coral", "he": "שונית אלמוגים", "hi": "प्रवाल शैल-श्रेणी", "hr": "koraljni greben", @@ -43037,7 +48560,6 @@ "lv": "koraļļu rifs", "ml": "പവിഴപ്പുറ്റ്", "mr": "प्रवाळाची बेटे", - "ms": "terumbu karang", "nb": "korallrev", "nl": "koraalrif", "pl": "rafa koralowa", @@ -43048,6 +48570,7 @@ "sl": "koralni greben", "sv": "korallrev", "ta": "பவளப் பாறைகள்", + "te": "ప్రవాళ భిత్తిక", "th": "พืดหินปะการัง", "tr": "mercan resifi", "uk": "коралові споруди", @@ -43062,6 +48585,7 @@ "en": "technisches hilfswerk", "fa": "سازمان کمک فنی", "ja": "技術支援隊", + "ru": "организация технической помощи", "sk": "bundesanstalt technisches hilfswerk", "zh": "联邦技术救援局" } @@ -43079,6 +48603,7 @@ "bg": "анимизъм", "ca": "animisme", "cs": "animismus", + "cy": "eneidyddiaeth", "da": "animisme", "de": "animismus", "el": "ανιμισμός", @@ -43087,6 +48612,8 @@ "fa": "روحباوری", "fi": "animismi", "fr": "animisme", + "ga": "anamachas", + "gl": "animismo", "he": "אנימיזם", "hi": "सर्वात्मवाद", "hr": "animizam", @@ -43099,7 +48626,6 @@ "lv": "animisms", "ml": "അനിമിസം", "mr": "जीवात्मवाद", - "ms": "animisme", "nb": "animisme", "nl": "animisme", "pl": "animizm", @@ -43107,6 +48633,7 @@ "ru": "анимизм", "sk": "animizmus", "sl": "animizem", + "sq": "animizmi", "th": "วิญญาณนิยม", "tr": "animizm", "uk": "анімізм", @@ -43131,28 +48658,30 @@ "bg": "бахайство", "ca": "fe bahà'í", "cs": "bahá'í", + "cy": "bahá'í", "da": "bahai", "de": "bahaitum", "el": "μπαχάι πίστη", "en": "baháʼí faith", - "es": "fe bahá'í", + "es": "bahaísmo", "et": "baha'i usk", "fa": "بهائیت", "fi": "bahai-usko", "fr": "bahaïsme", + "ga": "baha'i", + "gl": "fe bahá'í", "he": "הדת הבהאית", "hi": "बहाई धर्म", "hr": "bahá'í", "hu": "bahái", "id": "baha'i", "it": "bahá'í", - "ja": "バハーイー教", + "ja": "バハイ信教", "kn": "ಬಹಾ'ಇ ಧರ್ಮ", "ko": "바하이 신앙", "lt": "bahajų tikėjimas", "lv": "bahāisms", "ml": "ബഹായി വിശ്വാസം", - "ms": "bahá'í", "nb": "bahai", "nl": "bahai", "pl": "bahaizm", @@ -43161,8 +48690,10 @@ "ru": "бахаи", "sk": "bahájska viera", "sl": "bahajstvo", + "sq": "feja bahá'í", "sv": "bahá'í", "ta": "பகாய் சமயம்", + "te": "బహాయి విశ్వాసం", "th": "ศาสนาบาไฮ", "tr": "bahâîlik", "uk": "бахаїзм", @@ -43185,6 +48716,7 @@ "bg": "будизъм", "ca": "budisme", "cs": "buddhismus", + "cy": "bwdhaeth", "da": "buddhisme", "de": "buddhismus", "el": "βουδισμός", @@ -43194,12 +48726,15 @@ "fa": "بوداگرایی", "fi": "buddhalaisuus", "fr": "bouddhisme", + "ga": "an búdachas", + "gd": "buddhachd", + "gl": "budismo", "he": "בודהיזם", "hi": "बौद्ध धर्म", "hr": "budizam", "hu": "buddhizmus", "id": "buddhisme", - "it": "buddhismo", + "it": "buddismo", "ja": "仏教", "kn": "ಬುದ್ಧ", "ko": "불교", @@ -43207,7 +48742,6 @@ "lv": "budisms", "ml": "ബുദ്ധമതം", "mr": "बौद्ध धर्म", - "ms": "agama buddha", "nb": "buddhisme", "nl": "boeddhisme", "pl": "buddyzm", @@ -43216,7 +48750,9 @@ "ru": "буддизм", "sk": "budhizmus", "sl": "budizem", + "sq": "budizëm", "ta": "பௌத்தம்", + "te": "బౌద్ధ మతం", "th": "ศาสนาพุทธ", "tr": "budizm", "uk": "буддизм", @@ -43269,6 +48805,7 @@ "bg": "християнство", "ca": "cristianisme", "cs": "křesťanství", + "cy": "cristnogaeth", "da": "kristendom", "de": "christentum", "el": "χριστιανισμός", @@ -43278,6 +48815,9 @@ "fa": "مسیحیت", "fi": "kristinusko", "fr": "christianisme", + "ga": "an chríostaíocht", + "gd": "crìosdaidheachd", + "gl": "cristianismo", "he": "נצרות", "hi": "ईसाई धर्म", "hr": "kršćanstvo", @@ -43291,7 +48831,6 @@ "lv": "kristietība", "ml": "ക്രിസ്തുമതം", "mr": "ख्रिश्चन धर्म", - "ms": "kristian", "nb": "kristendom", "nl": "christendom", "pl": "chrześcijaństwo", @@ -43300,8 +48839,10 @@ "ru": "христианство", "sk": "kresťanstvo", "sl": "krščanstvo", + "sq": "krishterim", "sv": "kristendom", "ta": "கிறித்தவம்", + "te": "క్రైస్తవ మతం", "th": "ศาสนาคริสต์", "tr": "hristiyanlık", "uk": "християнство", @@ -43316,6 +48857,7 @@ "bg": "конфуцианство", "ca": "confucianisme", "cs": "konfucianismus", + "cy": "conffiwsiaeth", "da": "konfucianisme", "de": "konfuzianismus", "el": "κομφουκιανισμός", @@ -43325,6 +48867,8 @@ "fa": "کنفوسیانیسم", "fi": "kungfutselaisuus", "fr": "confucianisme", + "ga": "confúiceachas", + "gl": "confucianismo", "he": "קונפוציאניזם", "hi": "कुन्फ़्यूशियसी धर्म", "hr": "konfucijanizam", @@ -43337,7 +48881,6 @@ "lv": "konfūcisms", "ml": "കൺഫ്യൂഷനിസം", "mr": "कन्फ्युशियनवाद", - "ms": "konfusianisme", "nb": "konfusianisme", "nl": "confucianisme", "pl": "konfucjanizm", @@ -43345,8 +48888,10 @@ "ru": "конфуцианство", "sk": "konfucianizmus", "sl": "konfucijanstvo", + "sq": "konfucianizmi", "sv": "konfucianism", "ta": "கன்பூசியம்", + "te": "కన్ఫ్యూషియస్ మతం", "th": "ลัทธิขงจื๊อ", "tr": "konfüçyüsçülük", "uk": "конфуціанство", @@ -43365,6 +48910,7 @@ "bg": "индуизъм", "ca": "hinduisme", "cs": "hinduismus", + "cy": "hindŵaeth", "da": "hinduisme", "de": "hinduismus", "el": "ινδουισμός", @@ -43373,8 +48919,11 @@ "fa": "هندوئیسم", "fi": "hindulaisuus", "fr": "hindouisme", + "ga": "an hiondúchas", + "gd": "hionduthachd", + "gl": "hinduísmo", "he": "הינדואיזם", - "hi": "सनातन धर्म", + "hi": "हिन्दू धर्म", "hr": "hinduizam", "hu": "hinduizmus", "id": "hinduisme", @@ -43386,7 +48935,6 @@ "lv": "hinduisms", "ml": "ഹിന്ദുമതം", "mr": "हिंदू धर्म", - "ms": "hinduisme", "nb": "hinduisme", "nl": "hindoeïsme", "pl": "hinduizm", @@ -43394,7 +48942,9 @@ "ru": "индуизм", "sk": "hinduizmus", "sl": "hinduizem", + "sq": "hinduizëm", "ta": "இந்து சமயம்", + "te": "హిందూధర్మం", "th": "ศาสนาฮินดู", "tr": "hinduizm", "uk": "індуїзм", @@ -43409,6 +48959,7 @@ "bg": "джайнизъм", "ca": "jainisme", "cs": "džinismus", + "cy": "jainiaeth", "da": "jainisme", "de": "jainismus", "el": "τζαϊνισμός", @@ -43418,6 +48969,8 @@ "fa": "جین", "fi": "jainalaisuus", "fr": "jaïnisme", + "ga": "an jaineachas", + "gl": "xainismo", "he": "ג'ייניזם", "hi": "जैन धर्म", "hr": "džainizam", @@ -43431,7 +48984,6 @@ "lv": "džainisms", "ml": "ജൈനമതം", "mr": "जैन धर्म", - "ms": "jainisme", "nb": "jainisme", "nl": "jaïnisme", "pl": "dźinizm", @@ -43440,6 +48992,7 @@ "sk": "džinizmus", "sl": "džainizem", "ta": "ஜைனம்", + "te": "జైన మతము", "th": "ศาสนาเชน", "tr": "jainizm", "uk": "джайнізм", @@ -43454,6 +49007,7 @@ "bg": "юдаизъм", "ca": "judaisme", "cs": "judaismus", + "cy": "iddewiaeth", "da": "jødedom", "de": "judentum", "el": "ιουδαϊσμός", @@ -43462,6 +49016,9 @@ "fa": "یهودیت", "fi": "juutalaisuus", "fr": "judaïsme", + "ga": "an giúdachas", + "gd": "iùdhachd", + "gl": "xudaísmo", "he": "יהדות", "hi": "यहूदी धर्म", "hr": "judaizam", @@ -43475,7 +49032,6 @@ "lv": "jūdaisms", "ml": "യഹൂദമതം", "mr": "ज्यू धर्म", - "ms": "agama yahudi", "nb": "jødedom", "nl": "jodendom", "pl": "judaizm", @@ -43484,8 +49040,10 @@ "ru": "иудаизм", "sk": "judaizmus", "sl": "judovstvo", + "sq": "judaizëm", "sv": "judendom", "ta": "யூதம்", + "te": "జుడాయిజం", "th": "ศาสนายูดาห์", "tr": "yahudilik", "uk": "юдаїзм", @@ -43497,6 +49055,7 @@ "multifaith": { "de": "raum der stille", "en": "multifaith space", + "it": "stanza del silenzio", "nb": "multireligiøst bønnerom", "sl": "soba tišine", "zh": "多信仰祷告室" @@ -43509,6 +49068,8 @@ "el": "ισλάμ", "en": "islam", "fa": "اسلام", + "ga": "ioslam", + "gd": "ioslam", "he": "אסלאם", "hi": "इस्लाम", "hu": "iszlám", @@ -43523,6 +49084,7 @@ "pt-br": "islã", "ru": "ислам", "ta": "இசுலாம்", + "te": "ఇస్లాం", "th": "ศาสนาอิสลาม", "tr": "i̇slam", "uk": "іслам", @@ -43532,6 +49094,53 @@ "zh-hk": "伊斯蘭教", "zh-tw": "伊斯蘭教" }, + "none": { + "ar": "لادينية", + "be": "нерэлігійнасць", + "bg": "нерелигиозност", + "ca": "irreligió", + "cs": "bez vyznání", + "cy": "anghrefydd", + "de": "konfessionslosigkeit", + "el": "αθρησκία", + "en": "irreligion", + "es": "irreligión", + "et": "uskmatus", + "fa": "بیدین", + "fi": "uskonnottomuus", + "fr": "irréligion", + "ga": "díreiligiún", + "gl": "irrelixión", + "he": "חוסר דת", + "hi": "अधार्मिकता", + "hr": "nereligioznost", + "hu": "vallástalanság", + "id": "tidak beragama", + "it": "irreligiosità", + "ja": "無宗教", + "ko": "무교", + "lt": "nereligingumas", + "ml": "മതരാഹിത്യം", + "mr": "निधर्मी", + "nb": "ikke-religiøs", + "nl": "irreligie", + "pl": "bezwyznaniowość", + "pt": "irreligião", + "ro": "ireligiozitate", + "ru": "нерелигиозность", + "sk": "ireligiozita", + "sl": "ireligija", + "sq": "afetaria", + "sv": "icke-religiös", + "ta": "சமயமின்மை", + "th": "ไม่มีศาสนา", + "tr": "dinsizlik", + "uk": "нерелігійність", + "ur": "لادینییت", + "vi": "không tôn giáo", + "zh": "無宗教", + "zh-cn": "无宗教" + }, "pagan": { "af": "neopaganisme", "ar": "باغانية جديدة", @@ -43539,6 +49148,7 @@ "bg": "неопаганизъм", "ca": "neopaganisme", "cs": "novopohanství", + "cy": "neo-baganiaeth", "da": "nyhedenskab", "de": "neopaganismus", "el": "νεοπαγανισμός", @@ -43548,6 +49158,8 @@ "fa": "پگانیسم مدرن", "fi": "uuspakanuus", "fr": "néopaganisme", + "gd": "nua-phàganachd", + "gl": "neopaganismo", "he": "נאו-פגניות", "hr": "neopoganstvo", "hu": "újpogányság", @@ -43557,7 +49169,6 @@ "ko": "신이교주의", "lt": "neopagonybė", "lv": "neopagānisms", - "ms": "paganisme moden", "nb": "neopaganisme", "nl": "neopaganisme", "pl": "neopogaństwo", @@ -43566,6 +49177,7 @@ "ru": "неоязычество", "sk": "novopohanstvo", "sl": "staroverstvo", + "sq": "neopaganizmi", "sv": "nyhedendom", "tr": "neopaganizm", "uk": "неоязичництво", @@ -43582,6 +49194,7 @@ "bg": "сциентология", "ca": "cienciologia", "cs": "scientologie", + "cy": "scientoleg", "el": "σαηεντολογία", "en": "scientology", "es": "cienciología", @@ -43589,6 +49202,8 @@ "fa": "ساینتولوژی", "fi": "skientologia", "fr": "scientologie", + "ga": "eoleolaíocht", + "gl": "ciencioloxía", "he": "סיינטולוגיה", "hr": "scijentologija", "hu": "szcientológia", @@ -43604,6 +49219,7 @@ "sk": "scientológia", "sl": "scientologija", "sv": "scientologi", + "te": "సైంటాలజీ", "th": "ไซแอนโทโลจี", "uk": "саєнтологія", "ur": "سائنٹولوجی", @@ -43618,6 +49234,7 @@ "bg": "шинтоизъм", "ca": "xintoisme", "cs": "šintoismus", + "cy": "shintō", "de": "shintō", "el": "σιντοϊσμός", "en": "shinto", @@ -43626,6 +49243,8 @@ "fa": "شینتو", "fi": "šintolaisuus", "fr": "shintoïsme", + "ga": "sinteochas", + "gl": "xintoísmo", "he": "שינטו", "hi": "शिन्तो धर्म", "hr": "šintoizam", @@ -43647,12 +49266,14 @@ "sk": "šintoizmus", "sl": "šintoizem", "ta": "சின்த்தோ", + "te": "షింటో మతం", "th": "ชินโต", "tr": "şinto", "uk": "синто", "ur": "شنتو", "vi": "thần đạo", - "zh": "神道" + "zh": "神道教", + "zh-hk": "神道" }, "sikh": { "af": "sikhisme", @@ -43661,6 +49282,7 @@ "bg": "сикхизъм", "ca": "sikhisme", "cs": "sikhismus", + "cy": "siciaeth", "da": "sikhisme", "de": "sikhismus", "el": "σιχισμός", @@ -43669,6 +49291,8 @@ "fa": "سیک", "fi": "sikhiläisyys", "fr": "sikhisme", + "ga": "an saíceachas", + "gl": "sikhismo", "he": "סיקיזם", "hi": "सिखमत", "hr": "sikhizam", @@ -43682,7 +49306,6 @@ "lv": "sikhisms", "ml": "സിഖ് മതം", "mr": "शीख धर्म", - "ms": "sikhisme", "nb": "sikhisme", "nl": "sikhisme", "pl": "sikhizm", @@ -43690,7 +49313,9 @@ "ru": "сикхизм", "sk": "sikhizmus", "sl": "sikhizem", + "sq": "sikh", "ta": "சீக்கியம்", + "te": "సిక్కుమతం", "th": "ศาสนาซิกข์", "tr": "sihizm", "uk": "сикхізм", @@ -43706,6 +49331,7 @@ "bg": "спиритуализъм", "ca": "espiritualisme", "cs": "spiritualismus", + "cy": "ysbrydegaeth", "da": "spiritualisme", "de": "spiritualismus (19. jahrhundert)", "de-at": "spiritualismi", @@ -43718,16 +49344,17 @@ "fa": "اسپیریتوالیسم", "fi": "spiritualismi", "fr": "spiritualisme moderne anglo-saxon", + "ga": "spioradachas", + "gd": "spiritualismi", + "gl": "spiritualismi", "he": "ספיריטואליזם", "hi": "अध्यात्मवाद", - "hr": "spiritualismi", "hu": "spiritualizmus", "id": "spiritualisme", "it": "spiritualismo", "ja": "心霊主義", "ko": "심령주의", "lv": "spiritisms", - "ms": "spiritualismi", "nb": "spiritualisme", "nl": "spiritualisme", "pl": "spirytualizm", @@ -43749,6 +49376,7 @@ "bg": "даоизъм", "ca": "taoisme", "cs": "taoismus", + "cy": "taoaeth", "da": "taoisme", "de": "daoismus", "el": "ταοϊσμός", @@ -43757,6 +49385,8 @@ "fa": "تائوئیسم", "fi": "taolaisuus", "fr": "taoïsme", + "ga": "taochas", + "gl": "taoísmo", "he": "דאואיזם", "hi": "ताओ धर्म", "hr": "taoizam", @@ -43770,7 +49400,6 @@ "lv": "daoisms", "ml": "താവോയിസം", "mr": "ताओ मत", - "ms": "taoisme", "nb": "taoisme", "nl": "taoïsme", "pl": "taoizm", @@ -43778,8 +49407,10 @@ "ru": "даосизм", "sk": "taoizmus", "sl": "daoizem", + "sq": "taoismi", "sv": "daoism", "ta": "டாவோயிசம்", + "te": "టావోయిజం", "th": "ลัทธิเต๋า", "tr": "taoizm", "uk": "даосизм", @@ -43793,12 +49424,14 @@ "bg": "унитариански универсализъм", "ca": "unitarisme universalista", "cs": "unitářský universalismus", + "cy": "undodwr y bydysawd", "da": "unitarisk universalisme", "en": "unitarian universalism", "es": "unitarismo universalista", "fa": "جهانگرایی توحیدگرا", "fi": "unitaariuniversalismi", "fr": "universalisme unitarien", + "ga": "an tuilíochas úinitéireach", "he": "אוניברסליזם אוניטריאני", "hu": "unitárius univerzalizmus", "id": "unitarian universalisme", @@ -43842,7 +49475,7 @@ }, "yazidi": { "af": "jeside", - "ar": "الإيزيدية", + "ar": "اليزيدية", "be": "езіды", "bg": "езиди", "ca": "iazidis", @@ -43856,6 +49489,8 @@ "fa": "ایزدیان", "fi": "jesidit", "fr": "yézidis", + "ga": "iasaídigh", + "gl": "yazidi", "he": "יזידים", "hi": "यज़ीदी", "hr": "jesidi", @@ -43863,12 +49498,11 @@ "id": "yazidi", "it": "yazidi", "ja": "ヤズィーディー", - "ko": "예지디", + "ko": "야지디", "lt": "jazidizmas", "lv": "jazīdi", "ml": "യസീദി", - "ms": "yazidi", - "nb": "jesidisme", + "nb": "jesidier", "nl": "jezidi's", "pl": "jazydzi", "pt": "iazidis", @@ -43876,7 +49510,8 @@ "ru": "езиды", "sk": "jezídovia", "sl": "jazidi", - "sv": "jezidism", + "sq": "jesiden", + "sv": "jezidier", "ta": "யசீதி", "tr": "yezidiler", "uk": "єзиди", @@ -43893,6 +49528,7 @@ "bg": "зороастризъм", "ca": "zoroastrisme", "cs": "zoroastrismus", + "cy": "zoroastriaeth", "da": "zarathustrianisme", "de": "zoroastrismus", "el": "ζωροαστρισμός", @@ -43902,6 +49538,8 @@ "fa": "مزدیسنا", "fi": "zarathustralaisuus", "fr": "zoroastrisme", + "ga": "an sóróstarachas", + "gl": "zoroastrismo", "he": "זורואסטריות", "hi": "पारसी धर्म", "hr": "zoroastrizam", @@ -43915,7 +49553,6 @@ "lv": "zoroastrisms", "ml": "സൊറോസ്ട്രിയൻ മതം", "mr": "पारशी धर्म", - "ms": "majusi", "nb": "zoroastrisme", "nl": "zoroastrisme", "pl": "zaratusztrianizm", @@ -43924,8 +49561,10 @@ "ru": "зороастризм", "sk": "zoroastrizmus", "sl": "zaratustrstvo", + "sq": "zarathustrizmi", "sv": "zoroastrism", "ta": "சரத்துஸ்திர சமயம்", + "te": "జొరాస్ట్రియన్ మతం", "th": "ศาสนาโซโรอัสเตอร์", "tr": "zerdüştlük", "uk": "зороастризм", @@ -43935,12 +49574,46 @@ "zh-cn": "祆教" } }, + "repair": { + "assisted_self_service": { + "da": "reparationscafé", + "de": "repair-café", + "en": "repair café", + "es": "café de reparación", + "it": "caffè riparazione", + "ja": "リペアカフェ", + "ko": "리페어 카페", + "pt": "café reparador", + "ru": "ремонтное кафе", + "zh": "修理咖啡館" + } + }, + "request_stop": { + "yes": { + "ar": "محطة إشارة", + "cs": "zastávka na znamení", + "da": "behovsstandsning", + "de": "bedarfshalt", + "en": "request stop", + "es": "parada a solicitud", + "et": "nõudepeatus", + "fr": "arrêt à la demande", + "hu": "feltételes megálló", + "ja": "リクエスト・ストップ", + "nl": "stop op verzoek", + "pl": "przystanek na żądanie", + "ru": "остановка по требованию", + "zh": "招呼站" + } + }, "residential": { "halting_site": { "de": "landfahrerplatz", + "en": "traveler reception area", "fr": "aires d'accueil des gens du voyage" }, "trailer_park": { + "ar": "ساحة المقطورات", "da": "trailerpark", "de": "wohnwagensiedlung", "en": "trailer park", @@ -43958,6 +49631,7 @@ "es": "sanatorio (centro turístico)", "he": "בית הבראה", "lt": "sanatorija", + "lv": "sanatorija", "ru": "санаторий", "uk": "санаторій" } @@ -43967,7 +49641,10 @@ "ar": "زلط", "ca": "àrid", "cs": "kamenivo", + "cy": "agreg", + "de": "zuschlagstoff", "en": "construction aggregate", + "es": "áridos", "fa": "سنگدانه", "fi": "murske", "fr": "granulat de construction", @@ -43995,6 +49672,8 @@ "et": "boksiit", "fa": "بوکسایت", "fi": "bauksiitti", + "ga": "báicsít", + "gl": "bauxita", "he": "בוקסיט", "hi": "बाक्साइट", "hr": "boksit", @@ -44006,7 +49685,6 @@ "lt": "boksitas", "lv": "boksīts", "ml": "ബോക്സൈറ്റ്", - "ms": "bauksit", "nb": "bauksitt", "nl": "bauxiet", "pl": "boksyt", @@ -44025,14 +49703,13 @@ }, "clay": { "af": "klei", - "ar": "صلصال", + "ar": "طين", "be": "гліна", "bg": "глина", "ca": "argila", "cs": "jíl", "da": "ler", "de": "ton", - "de-ch": "ton (bodenart)", "el": "άργιλος", "en": "clay", "es": "arcilla", @@ -44040,6 +49717,8 @@ "fa": "رس", "fi": "savi", "fr": "argile", + "ga": "cré", + "gl": "arxila", "he": "חרסית", "hi": "मृत्तिका", "hr": "glina", @@ -44053,7 +49732,6 @@ "lv": "māls", "ml": "കളിമണ്ണ്", "mr": "चिक्कण माती", - "ms": "tanah liat", "nb": "leire", "nl": "klei", "pl": "glina", @@ -44062,6 +49740,7 @@ "ru": "глина", "sk": "íl", "sl": "glina", + "sq": "deltina", "sv": "lera", "ta": "களிமண்", "th": "ดินเหนียว", @@ -44078,6 +49757,7 @@ "bg": "каменни въглища", "ca": "carbó", "cs": "uhlí", + "cy": "glo", "da": "kul", "de": "kohle", "el": "γαιάνθρακας", @@ -44087,6 +49767,9 @@ "fa": "ذغال سنگ", "fi": "kivihiili", "fr": "charbon", + "ga": "gual", + "gd": "gual", + "gl": "carbón", "he": "פחם", "hi": "कोयला", "hr": "ugljen", @@ -44100,7 +49783,6 @@ "lv": "akmeņogles", "ml": "കൽക്കരി", "mr": "कोळसा", - "ms": "arang batu", "nb": "kull", "nl": "steenkool", "pl": "węgiel", @@ -44109,8 +49791,10 @@ "ru": "ископаемый уголь", "sk": "uhlie", "sl": "premog", + "sq": "qymyr", "sv": "kol", "ta": "நிலக்கரி", + "te": "బొగ్గు", "th": "ถ่านหิน", "tr": "kömür", "uk": "вугілля", @@ -44125,6 +49809,7 @@ "bg": "мед", "ca": "coure", "cs": "měď", + "cy": "copr", "da": "kobber", "de": "kupfer", "el": "χαλκός", @@ -44134,6 +49819,9 @@ "fa": "مس", "fi": "kupari", "fr": "cuivre", + "ga": "copar", + "gd": "copar", + "gl": "cobre", "he": "נחושת", "hi": "ताम्र", "hr": "bakar", @@ -44147,7 +49835,6 @@ "lv": "varš", "ml": "ചെമ്പ്", "mr": "तांबे", - "ms": "tembaga", "nb": "kobber", "nl": "koper", "pl": "miedź", @@ -44156,8 +49843,10 @@ "ru": "медь", "sk": "meď", "sl": "baker", + "sq": "bakri", "sv": "koppar", "ta": "செப்பு", + "te": "రాగి", "th": "ทองแดง", "tr": "bakır", "uk": "мідь", @@ -44173,6 +49862,7 @@ "bg": "природен газ", "ca": "gas natural", "cs": "zemní plyn", + "cy": "nwy naturiol", "da": "naturgas", "de": "erdgas", "el": "φυσικό αέριο", @@ -44182,6 +49872,8 @@ "fa": "گاز طبیعی", "fi": "maakaasu", "fr": "gaz naturel", + "ga": "gás nádúrtha", + "gl": "gas natural", "he": "גז טבעי", "hi": "प्राकृतिक गैस", "hr": "prirodni plin", @@ -44195,7 +49887,6 @@ "lv": "dabasgāze", "ml": "പ്രകൃതിവാതകം", "mr": "नैसर्गिक वायू", - "ms": "gas asli", "nb": "naturgass", "nl": "aardgas", "pl": "gaz ziemny", @@ -44204,8 +49895,10 @@ "ru": "природный газ", "sk": "zemný plyn", "sl": "zemeljski plin", + "sq": "gazi natyror", "sv": "fossilgas", "ta": "இயற்கை எரிவளி", + "te": "సహజ వాయువు", "th": "แก๊สธรรมชาติ", "tr": "doğalgaz", "uk": "природний газ", @@ -44220,6 +49913,7 @@ "bg": "злато", "ca": "or", "cs": "zlato", + "cy": "aur", "da": "guld", "el": "χρυσός", "en": "gold", @@ -44228,6 +49922,9 @@ "fa": "طلا", "fi": "kulta", "fr": "or", + "ga": "ór", + "gd": "òr", + "gl": "ouro", "he": "זהב", "hi": "सोना", "hr": "zlato", @@ -44241,7 +49938,6 @@ "lv": "zelts", "ml": "സ്വർണം", "mr": "सोने", - "ms": "emas", "nb": "gull", "nl": "goud", "pl": "złoto", @@ -44250,8 +49946,10 @@ "ru": "золото", "sk": "zlato", "sl": "zlato", + "sq": "ari", "sv": "guld", "ta": "தங்கம்", + "te": "బంగారం", "th": "ทองคำ", "tr": "altın", "uk": "золото", @@ -44274,6 +49972,8 @@ "fa": "شن", "fi": "sora", "fr": "gravier", + "ga": "gairbhéal", + "gl": "grava", "he": "חצץ", "hi": "कंकड़", "hr": "šljunak", @@ -44287,7 +49987,6 @@ "lv": "grants", "ml": "ചരൽ", "mr": "खडी", - "ms": "batu kerikil", "nb": "grus", "nl": "grind", "pl": "żwir", @@ -44296,8 +49995,10 @@ "ru": "гравий", "sk": "štrk", "sl": "gramoz", + "sq": "zhavorri", "sv": "grus", "ta": "சரளைக் கல்", + "te": "గులకరాయి", "th": "กรวด", "tr": "mucur", "uk": "гравій", @@ -44321,6 +50022,7 @@ "fa": "سنگ آهن", "fi": "rautamalmi", "fr": "minerai de fer", + "ga": "iarnmhian", "he": "עפרת ברזל", "hi": "लौह अयस्क", "hr": "željezna ruda", @@ -44332,7 +50034,6 @@ "ko": "철광석", "lt": "geležies rūda", "lv": "dzelzsrūda", - "ms": "bijih besi", "nb": "jernmalm", "nl": "ijzererts", "pl": "ruda żelaza", @@ -44340,6 +50041,7 @@ "ro": "minereu de fier", "ru": "железная руда", "sk": "železná ruda", + "sl": "železova ruda", "sv": "järnmalm", "ta": "இரும்புத் தாது", "tr": "demir cevheri", @@ -44356,6 +50058,7 @@ "bg": "варовик", "ca": "pedra calcària", "cs": "vápenec", + "cy": "calchfaen", "da": "kalksten", "de": "kalkstein", "el": "ασβεστόλιθος", @@ -44365,6 +50068,8 @@ "fa": "سنگ آهک", "fi": "kalkkikivi", "fr": "calcaire", + "ga": "aolchloch", + "gl": "calcaria", "he": "אבן גיר", "hi": "चूना पत्थर", "hr": "vapnenac", @@ -44375,7 +50080,6 @@ "ko": "석회암", "lt": "klintis", "lv": "kaļķakmens", - "ms": "batu kapur", "nb": "kalkstein", "nl": "kalksteen", "pl": "wapień", @@ -44399,6 +50103,7 @@ "bg": "нефт", "ca": "petroli", "cs": "ropa", + "cy": "petroliwm", "da": "råolie", "de": "erdöl", "el": "πετρέλαιο", @@ -44408,6 +50113,8 @@ "fa": "نفت خام", "fi": "maaöljy", "fr": "pétrole", + "ga": "peitriliam", + "gl": "petróleo", "he": "נפט", "hi": "भूतैल", "hr": "nafta", @@ -44428,7 +50135,9 @@ "ru": "нефть", "sk": "ropa", "sl": "nafta", + "sq": "nafta", "ta": "பாறை எண்ணெய்", + "te": "పెట్రోలియం", "th": "น้ำมันดิบปิโตรเลียม", "tr": "petrol", "uk": "нафта", @@ -44443,6 +50152,7 @@ "bg": "торф", "ca": "torba", "cs": "rašelina", + "cy": "mawn", "da": "tørv", "de": "torf", "el": "τύρφη", @@ -44452,6 +50162,9 @@ "fa": "تورب", "fi": "turve", "fr": "tourbe", + "ga": "móin", + "gd": "mòine", + "gl": "turba", "he": "כבול", "hi": "पीट", "hr": "treset", @@ -44463,7 +50176,6 @@ "lt": "durpės", "lv": "kūdra", "ml": "കാണ്ടാമരം", - "ms": "gambut", "nb": "torv", "nl": "turf", "pl": "torf", @@ -44471,6 +50183,7 @@ "ro": "turbă", "ru": "торф", "sk": "rašelina", + "sl": "šota", "sv": "torv", "ta": "முற்றா நிலக்கரி", "th": "พีต", @@ -44486,6 +50199,7 @@ "bg": "пясък", "ca": "sorra", "cs": "písek", + "cy": "tywod", "el": "άμμος", "en": "sand", "es": "arena", @@ -44493,6 +50207,9 @@ "fa": "ماسه", "fi": "hiekka", "fr": "sable", + "ga": "gaineamh", + "gd": "gainmheach", + "gl": "area", "he": "חול", "hi": "बालू", "hr": "pijesak", @@ -44506,7 +50223,6 @@ "lv": "smiltis", "ml": "മണൽ", "mr": "वाळू", - "ms": "pasir", "nl": "zand", "pl": "piasek", "pt": "areia", @@ -44514,7 +50230,9 @@ "ru": "песок", "sk": "piesok", "sl": "pesek", + "sq": "rërë", "ta": "மணல்", + "te": "ఇసుక", "th": "ทราย", "tr": "kum", "uk": "пісок", @@ -44529,6 +50247,7 @@ "bg": "вода", "ca": "aigua líquida", "cs": "tekutá voda", + "cy": "dŵr ar ffurf hylif", "da": "flydende vand", "de": "flüssiges wasser", "de-ch": "wasser", @@ -44541,6 +50260,9 @@ "fa": "آب", "fi": "vesi", "fr": "eau liquide", + "ga": "uisce leachtach", + "gd": "uisge", + "gl": "auga líquida", "he": "מים נוזליים", "hi": "जल", "hr": "voda", @@ -44554,18 +50276,18 @@ "lv": "šķidrs ūdens", "ml": "ജലം", "mr": "पाणी", - "ms": "air cecair", "nb": "flytende vann", "nl": "vloeibaar water", "pl": "ciekła woda", "pt": "água líquida", - "pt-br": "água", "ro": "apă", "ru": "жидкая вода", "sk": "voda", "sl": "tekoča voda", + "sq": "uji", "sv": "flytande vatten", "ta": "நீர்", + "te": "నీరు", "th": "น้ำ", "tr": "sıvı su", "uk": "рідка вода", @@ -44579,6 +50301,7 @@ }, "road_marking": { "solid_stop_line": { + "cs": "příčná čára", "de": "haltlinie", "en": "stop line", "ru": "стоп-линия", @@ -44590,20 +50313,24 @@ "robot": { "": { "af": "onbemande vliegtuig", - "ar": "طائرة بدون طيار", + "ar": "مسيرة", "be": "беспілотны лятальны апарат", "bg": "дрон", "ca": "vehicle aeri no tripulat", "cs": "bezpilotní letoun", + "cy": "drôn", "da": "drone", "de": "unbemanntes luftfahrzeug", "el": "μη επανδρωμένες ιπτάμενες μηχανές", "en": "unmanned aerial vehicle", + "en-gb": "humanoid robot", "es": "vehículo aéreo no tripulado", "et": "mehitamata õhusõiduk", "fa": "پهپاد", "fi": "miehittämätön ilma-alus", "fr": "drone", + "ga": "aerfheithicil gan foireann", + "gl": "vehículo aéreo non tripulado", "he": "כלי טיס בלתי מאויש", "hi": "मानव रहित विमान", "hr": "bespilotna letjelica", @@ -44617,7 +50344,6 @@ "lv": "bezpilota lidaparāts", "ml": "ഡ്രോൺ", "mr": "मानवरहित हवाई वाहने", - "ms": "pesawat udara tanpa pemandu", "nb": "drone", "nl": "onbemand luchtvaartuig", "pl": "bezzałogowy aparat latający", @@ -44626,16 +50352,17 @@ "ru": "беспилотный летательный аппарат", "sk": "bezpilotný prostriedok", "sl": "brezpilotni letalnik", + "sq": "mjet ajror pa pilot", "sv": "obemannad luftfarkost", "ta": "ஆளில்லாத வானூர்தி", + "te": "మానవరహిత వైమానిక వాహనం", "th": "อากาศยานไร้คนขับ", "tr": "insansız hava aracı", "uk": "безпілотний літальний апарат", "ur": "ڈرون (بغیر پائلٹ کی فضائی گاڑی)", "vi": "máy bay không người lái", "zh": "無人航空載具", - "zh-cn": "无人驾驶飞行器", - "zh-tw": "類人型機器人" + "zh-cn": "无人驾驶飞行器" } }, "roof": { @@ -44646,6 +50373,7 @@ "bg": "купол", "ca": "cúpula", "cs": "motýlková střecha", + "cy": "cromen", "da": "kuppel", "de": "schmetterlingsdach", "de-ch": "walmdach", @@ -44658,6 +50386,8 @@ "fa": "گنبد", "fi": "kupoli", "fr": "dôme", + "ga": "cruinneachán", + "gl": "cúpula", "he": "כיפה", "hi": "गुम्बज़", "hr": "kupola", @@ -44671,7 +50401,6 @@ "lv": "kupols", "ml": "അർധകുംഭകം", "mr": "घुमट", - "ms": "kubah", "nb": "kuppel", "nl": "vlinderdak", "pl": "dach pogrążony", @@ -44680,8 +50409,10 @@ "ru": "купол", "sk": "kupola", "sl": "kupola", + "sq": "kupola", "sv": "motfallstak", "ta": "குவிமாடம்", + "te": "గుమ్మటం", "th": "โดม", "tr": "kubbe", "uk": "купол", @@ -44696,12 +50427,13 @@ "ar": "قاعة استماع", "be": "глядзельная зала", "ca": "auditori", - "cs": "hlediště", "el": "αίθουσα", "en": "auditorium", "es": "auditorio", + "et": "auditoorium", "fa": "ادیتوریوم", "fi": "auditorio", + "gl": "auditorio", "he": "אודיטוריום", "hr": "auditorij", "hu": "művészeti vagy oktatási előadóterem", @@ -44714,38 +50446,87 @@ "pt": "auditório", "ro": "aulă", "ru": "зрительный зал", - "sk": "auditórium (verejná sieň)", + "sk": "auditórium", "sl": "avditorij", "ta": "கலையரங்கம் (கட்டிடம்)", "tr": "oditoryum", - "uk": "авдиторія", + "uk": "громадська аудиторія", "vi": "khán phòng", "zh": "集會堂", "zh-tw": "表演廳" }, + "carrel": { + "en": "carrel", + "sl": "karel" + }, + "classroom": { + "af": "klaskamer", + "ar": "فصل مدرسي", + "bg": "класна стая", + "ca": "aula", + "cs": "učebna", + "da": "klasseværelse", + "de": "klassenraum", + "el": "αίθουσα διδασκαλίας", + "en": "classroom", + "es": "aula", + "et": "klassiruum", + "fa": "کلاس درس", + "fi": "luokkahuone", + "fr": "salle de classe", + "ga": "seomra ranga", + "he": "כיתה", + "hu": "osztályterem", + "id": "ruang kelas", + "it": "aula", + "ja": "教室", + "ko": "교실", + "ml": "ക്ലാസ് മുറി", + "nb": "klasserom", + "nl": "klaslokaal", + "pl": "aula", + "pt": "sala de aula", + "ru": "класс", + "sl": "učilnica", + "sq": "klasa", + "sv": "klassrum", + "ta": "வகுப்பறை", + "te": "తరగతి గది", + "th": "ห้องเรียน", + "tr": "sınıf", + "uk": "клас", + "ur": "کمرۂ جماعت", + "vi": "lớp học", + "zh": "教室" + }, "lecture_hall": { "ar": "صالة محاضرات", "bg": "аудитория", "ca": "amfiteatre", "cs": "auditorium", + "cy": "darlithfa", "da": "auditorium", "de": "hörsaal", "el": "αίθουσα διαλέξεων", "en": "lecture hall", "es": "anfiteatro (aula)", "fr": "amphithéâtre", + "ga": "léachtlann", + "gl": "anfiteatro (aula)", "he": "אולם הרצאות", "hu": "oktatási előadóterem", "it": "sala conferenze", "ja": "レクチャー・ホール", "ko": "계단식 강의실", + "lt": "auditorija", "nb": "auditorium", "nl": "lezingzaal", "pl": "audytorium", "ro": "aulă", "ru": "аудитория", + "sl": "predavalnica", "sv": "hörsal", - "uk": "слухальня", + "uk": "аудиторія", "zh": "演講廳" }, "waiting": { @@ -44753,6 +50534,7 @@ "bg": "чакалня", "ca": "sala d'espera", "cs": "čekárna", + "cy": "ystafell aros", "da": "ventesal", "de": "wartehalle", "el": "αίθουσα αναμονής", @@ -44765,6 +50547,7 @@ "it": "sala d'aspetto", "ja": "待合室", "ko": "맞이방", + "nb": "venterom", "nl": "wachtkamer", "pl": "poczekalnia", "ru": "зал ожидания", @@ -44779,11 +50562,13 @@ "yes": { "ca": "línia circular", "cs": "okružní linka", + "cy": "llwybr cylch", "da": "ringlinje", "de": "ringlinie", "en": "circle route", "es": "línea circular", "fr": "ligne de transport en commun circulaire", + "ga": "bealach ciorclach", "hu": "körjárat", "id": "rute melingkar", "ja": "環状運転", @@ -44794,10 +50579,24 @@ "sl": "krožna linija", "sv": "ringlinje", "ur": "دائرہ روٹ", - "zh": "環線" + "zh": "环线运行", + "zh-hk": "環線", + "zh-tw": "環線" } }, "route": { + "aerialway": { + "ca": "telefèric aeri urbà", + "de": "urbane seilbahn", + "en": "urban aerial tramway route", + "es": "línea de teleférico urbano", + "fr": "téléphérique urbain", + "hu": "városi kötélvasút", + "ja": "都市索道", + "pt": "teleférico urbano", + "sl": "urbani zračni tramvaj", + "tr": "kentsel teleferik" + }, "bus": { "ar": "طريق الحافلة", "ca": "línia d'autobús", @@ -44810,6 +50609,7 @@ "et": "bussiliin", "fi": "linja-autolinja", "fr": "ligne d'autobus", + "ga": "busbhealach", "he": "קו אוטובוס", "hu": "autóbuszvonal", "id": "trayek bus", @@ -44817,7 +50617,6 @@ "ja": "バス路線", "ko": "버스 노선", "lv": "autobusu maršruts", - "ms": "laluan bas", "nb": "bussrute", "nl": "buslijn", "pl": "linia autobusowa", @@ -44843,7 +50642,7 @@ "nb": "omvei", "nl": "uitwijkroute", "pl": "objazd", - "ru": "объезд (маршрут)", + "ru": "объезд", "sl": "preusmeritev", "sv": "omväg", "uk": "об’їзд", @@ -44857,11 +50656,17 @@ "cs": "evakuace", "da": "evakuering", "de": "evakuierung", - "en": "emergency evacuation", + "en": "evacuation", + "en-ca": "emergency evacuation", + "en-gb": "emergency evacuation", "es": "evacuación", + "fa": "تخلیه اضطراری", "fi": "evakuointi", - "fr": "évacuation d'urgence", + "fr": "évacuation", + "ga": "aslonnú éigeandála", + "gl": "evacuación", "he": "פינוי חירום", + "id": "evakuasi darurat", "it": "evacuazione", "ja": "避難", "ko": "긴급소개", @@ -44881,18 +50686,45 @@ "uk": "евакуація", "zh": "紧急撤离" }, + "ferry": { + "ca": "ruta de transbordador", + "cs": "přívoz", + "cy": "gwasanaeth fferi", + "da": "færgeforbindelse", + "de": "fährverbindung", + "en": "car carrying boat service", + "es": "ruta de ferry", + "fi": "lauttareitti", + "fr": "ligne ferry", + "gd": "slìghe bàt-aiseig", + "hu": "kompútvonal", + "ja": "フェリー航路", + "nb": "ferjesamband", + "nl": "veerdienst", + "pl": "przeprawa promowa", + "pt": "rota de balsa", + "ru": "паромная переправа", + "sl": "trajektna povezava", + "sv": "färjeled", + "uk": "поромна переправа", + "zh": "渡船路线" + }, "fitness_trail": { "ar": "مضمار اللياقة", "be": "аздараўленчая сцежка", + "cs": "fitness stezka", "de": "trimm-dich-pfad", "en": "fitness trail", "et": "terviserada", "fa": "مسیر تناسب اندام", + "fi": "kuntorata", "fr": "parcours de santé", "nb": "hinderløype", "nl": "trimbaan", "pl": "ścieżka zdrowia", "ru": "оздоровительная тропа", + "sl": "trimska steza", + "sv": "motionsslinga", "tr": "fitness parkuru", "zh": "健身步道" }, @@ -44907,6 +50739,8 @@ "et": "matkarada", "fi": "vaellusreitti", "fr": "sentier de randonnée", + "ga": "cosán siúlóirí", + "gl": "sendeiro", "he": "שביל טיול", "hu": "turistaút", "it": "sentiero escursionistico", @@ -44937,6 +50771,7 @@ "fa": "پیست", "fi": "laskettelurinne", "fr": "piste de ski", + "ga": "fána sciála", "it": "pista sciistica", "ja": "スキーコース", "mr": "पिस्त", @@ -44955,6 +50790,7 @@ "be": "чыгунка", "ca": "ferrocarril", "cs": "železnice", + "cy": "rheilffordd", "da": "jernbane", "de": "eisenbahn", "el": "σιδηρόδρομος", @@ -44964,6 +50800,9 @@ "fa": "راهآهن", "fi": "rautatie", "fr": "chemin de fer", + "ga": "iarnród", + "gd": "rathad-iarainn", + "gl": "ferrocarril", "he": "רשת רכבות", "hi": "रेल", "hr": "željeznica", @@ -44983,6 +50822,7 @@ "ru": "железная дорога", "sk": "železnica", "sl": "železnica", + "sq": "komunikacioni hekurudhor", "sv": "järnväg", "th": "การขนส่งระบบราง", "tr": "demiryolu", @@ -44999,6 +50839,7 @@ "bg": "път", "ca": "carretera", "cs": "silnice", + "cy": "ffordd", "da": "vej", "de": "straße", "de-ch": "strasse", @@ -45009,6 +50850,9 @@ "fa": "راه", "fi": "tie", "fr": "route", + "ga": "bóthar", + "gd": "rathad", + "gl": "estrada", "he": "כביש", "hi": "सड़क", "hr": "cesta", @@ -45022,7 +50866,6 @@ "lv": "ceļš", "ml": "റോഡ്", "mr": "रस्ते", - "ms": "jalan raya", "nb": "vei", "nl": "weg", "pl": "droga", @@ -45031,8 +50874,10 @@ "ru": "дорога", "sk": "cesta", "sl": "cesta", + "sq": "rruga", "sv": "väg", "ta": "சாலை", + "te": "రహదారి", "th": "ถนน", "tr": "yol", "uk": "дорога", @@ -45056,13 +50901,13 @@ "fr": "motoneige", "he": "אופנוע שלג", "hi": "स्नोमोबाइल", + "hu": "motoros szán", "id": "mobil salju", "it": "motoslitta", "ja": "スノーモービル", "ko": "설상차", "lt": "sniego rogės", "lv": "sniega motocikls", - "ms": "kereta salji", "nb": "snøskuter", "nl": "sneeuwscooter", "pl": "skuter śnieżny", @@ -45082,6 +50927,7 @@ "be": "лінія метрапалітэна", "ca": "línia de metro", "cs": "linka metra", + "cy": "llinell trafnidiaeth gyflym", "da": "metrolinje", "de": "u-bahn-linie", "el": "γραμμή μετρό", @@ -45091,6 +50937,7 @@ "fa": "خط مترو", "fi": "metrolinja", "fr": "ligne de métro", + "ga": "líne iarnróid meariompair", "he": "קו מטרו", "hu": "metróvonal", "id": "jalur kereta api cepat", @@ -45105,7 +50952,7 @@ "ro": "linie de metrou", "ru": "линия метрополитена", "sk": "linka metra", - "sl": "linija hitrega železniškega prometa", + "sl": "linija podzemne železnice", "sv": "tunnelbanelinje", "tr": "metro hattı", "uk": "лінія метрополітену", @@ -45116,17 +50963,64 @@ "zh-hk": "地鐵路綫", "zh-tw": "捷運路線" }, + "tracks": { + "ar": "خط سكة حديد", + "be": "чыгуначная лінія", + "bg": "железопътна линия", + "ca": "línia de ferrocarril", + "cs": "železniční trať", + "cy": "llinell rheilffordd", + "da": "jernbanestrækning", + "de": "eisenbahnstrecke", + "el": "σιδηροδρομική γραμμή", + "en": "railway line", + "es": "línea férrea", + "et": "raudteeliin", + "fa": "خط راهآهن", + "fi": "rautatielinja", + "fr": "ligne de chemin de fer", + "ga": "líne iarnróid", + "gl": "liña de ferrocarril", + "he": "קו רכבת", + "hr": "željeznička pruga", + "hu": "vasútvonal", + "id": "jalur kereta api", + "it": "linea ferroviaria", + "ja": "鉄道路線", + "ko": "철도 노선", + "lv": "dzelzceļa līnija", + "nb": "jernbanestrekning", + "nl": "spoorlijn", + "pl": "linia kolejowa", + "pt": "linha ferroviária", + "ro": "cale ferată", + "ru": "железнодорожная линия", + "sk": "železničná trať", + "sl": "železniška proga", + "sv": "järnvägslinje", + "tr": "demiryolu hattı", + "uk": "залізнична лінія", + "ur": "ریلوے لائن", + "vi": "tuyến đường sắt", + "zh": "鐵路線", + "zh-cn": "铁路线", + "zh-hk": "鐵路綫" + }, "train": { "ca": "línia principal", + "cs": "hlavní trať", + "cy": "prif lein", "da": "hovedbane", "de": "hauptbahn", "en": "main line", "fi": "päärata", "fr": "ligne de chemin de fer principale", + "he": "קו ראשי (מסילת ברזל)", "hu": "vasúti fővonal", "it": "linea fondamentale", "ja": "本線", "ko": "간선철도", + "nb": "hovedbane", "nl": "hoofdspoorweg", "pl": "magistrala kolejowa", "ro": "magistrală", @@ -45140,23 +51034,26 @@ "transhumance": { "ar": "نقلة موسمية", "ca": "transhumància", + "cy": "trawstrefa", "de": "transhumanz", "en": "transhumance", "es": "trashumancia", "fa": "رمهگردانی", + "fi": "transhumanssi", + "ga": "buailteachas", "he": "נדידה עונתית של רועים", "hr": "transhumanca", "hu": "transzhumáló pásztorkodás", "it": "transumanza", "ja": "移牧", "ko": "이목", - "ms": "pindah ternak", "nb": "transhumans", "pl": "transhumancja", "pt": "transumância", "ro": "transhumanță", "ru": "отгонное животноводство", "sl": "tranzimansa", + "sq": "trans-humanca", "tr": "yaylacılık", "uk": "відгінний випас худоби", "zh": "移牧" @@ -45166,21 +51063,25 @@ "league": { "ar": "دوري الرغبي", "ca": "rugbi a 13", + "cy": "rygbi'r gynghrair", "el": "ράγκμπυ λιγκ", "en": "rugby league", + "es": "rugby a 13", "fa": "راگبی ۱۳ نفره", "fr": "rugby à xiii", + "gd": "rugbaidh lìog", "he": "ליגת הרוגבי", "hi": "रग्बी लीग", "hu": "ligarögbi", "id": "liga rugbi", "it": "rugby a 13", "ja": "ラグビーリーグ", - "ko": "럭비 리그", + "ko": "럭비리그", "mr": "रग्बी लीग", "pt": "râguebi de treze", "ro": "rugby în 13", "ru": "регбилиг", + "sl": "ragbi 13", "tr": "ragbi ligi", "uk": "регбіліг", "ur": "رگبی لیگ", @@ -45189,11 +51090,46 @@ "zh-hk": "聯盟式欖球" } }, + "ruins": { + "castle": { + "ar": "أنقاض قلعة", + "ca": "ruïnes de castell", + "cs": "zřícenina hradu", + "cy": "adfeilion castell", + "da": "borgruin", + "de": "burgruine", + "el": "ερείπια κάστρου", + "en": "castle ruin", + "es": "ruinas de castillo", + "et": "linnuse varemed", + "fi": "linnaraunio", + "fr": "ruine de château", + "ga": "fothrach caisleáin", + "he": "חורבות טירה", + "hr": "ruševine utvrde", + "hu": "várrom", + "it": "castello in rovina", + "ja": "城跡", + "lv": "pilsdrupas", + "nb": "borgruin", + "nl": "kasteelruïne", + "pl": "ruiny zamku", + "pt": "ruína de castelo", + "ro": "ruină de castel", + "ru": "развалины замка", + "sk": "zrúcanina hradu", + "sl": "grajske ruševine", + "sv": "borgruin", + "tr": "kale kalıntısı", + "uk": "руїни замку" + } + }, "safety": { "": { "de": "gesichtsmaske vorgeschrieben", "en": "face mask mandatory", "fr": "port du masque obligatoire", + "hu": "arcmaszk viselése kötelező", "nl": "mondmasker vereist", "pl": "obowiązek noszenia maseczki ochronnej", "pt": "uso de máscara obrigatório" @@ -45211,6 +51147,7 @@ "en": "infrared sauna", "ko": "적외선 사우나", "ru": "инфракрасная сауна", + "sl": "infrardeča savna", "vi": "phòng tắm hơi tia hồng ngoại" }, "smoke": { @@ -45220,6 +51157,7 @@ "fi": "savusauna", "hr": "tradicija parnih kupelji iz võromaa", "ja": "サヴサウナ", + "ko": "스모크 사우나", "nb": "røykbadstue", "nl": "rooksauna", "pt": "sauna de fumo", @@ -45228,66 +51166,89 @@ }, "school": { "": { - "ar": "مدرسة شاملة", - "be": "рэальнае вучылішча", - "ca": "escola d'educació especial", - "cs": "reálná škola", - "da": "realskole", - "de": "förderschule", - "de-ch": "gesamtschule", - "el": "ακαδημαϊκή σχολή", - "en": "special education school", - "en-ca": "comprehensive school", - "en-gb": "comprehensive school", - "es": "escuela de educación especial", - "et": "erikool", - "fi": "erityiskoulu", - "fr": "école spécialisée", - "he": "בית ספר לחינוך מיוחד", - "hu": "kisegítő iskola", - "id": "sekolah luar biasa", - "it": "comprehensive schools", - "ja": "特殊学校", - "ko": "특수학교", - "lv": "speciālās izglītības skola", - "ms": "sekolah pendidikan khas", - "nb": "spesialskole", - "nl": "school voor speciaal onderwijs", - "pl": "gimnazjum realne", - "pt": "necessidades educativas especiais", - "ru": "коррекционная школа", - "sl": "šola s prilagojenim programom", - "sv": "särskola", - "tr": "meslek okulu", - "uk": "спеціальна школа", - "ur": "اکیڈمی اسکول", - "zh": "特殊學校", - "zh-cn": "综合学校" + "af": "kleuterskool", + "ar": "روضة أطفال", + "be": "дзіцячы сад", + "bg": "детска градина", + "ca": "llar d'infants", + "cs": "mateřská škola", + "cy": "ysgol gynradd", + "da": "børnehave", + "el": "νηπιαγωγείο", + "en": "kindergarten", + "en-us": "elementary school", + "es": "jardín de infancia", + "et": "lasteaed", + "fa": "کودکستان", + "fi": "esikoulu", + "fr": "école maternelle", + "ga": "ciondargairdín", + "gd": "bunsgoil", + "gl": "escola infantil", + "he": "גן ילדים", + "hi": "किंडरगार्टन", + "hr": "dječji vrtić", + "hu": "óvoda", + "id": "taman kanak-kanak", + "it": "scuola dell'infanzia", + "ja": "幼稚園", + "kn": "ಶಿಶುವಿಹಾರ", + "ko": "유치원", + "lt": "vaikų darželis", + "lv": "bērnudārzs", + "ml": "കിൻഡർഗാർട്ടൻ", + "mr": "अंगणवाडी", + "nb": "barnehage", + "nl": "kleuterschool", + "pl": "przedszkole", + "pt": "jardim de infância", + "ro": "grădiniță", + "ru": "детский сад", + "sk": "materská škola", + "sl": "vrtec", + "sq": "kopsht fëmijësh", + "sv": "barnträdgård", + "ta": "கின்டர்கார்ட்டின்", + "te": "కిండర్ గార్టెన్", + "th": "โรงเรียนอนุบาล", + "tr": "anaokulu", + "uk": "дитячий садок", + "ur": "پرائمری اسکول", + "vi": "trường mẫu giáo", + "zh": "幼稚園", + "zh-cn": "幼儿园" } }, "seamark": { "": { "af": "brug", "ar": "مزرعة الرياح البحرية", - "be": "стапель", + "be": "абісальныя раўніны", "bg": "абисално дъно", "ca": "parc eòlic marí", - "cs": "hlubokomořská rovina", + "cs": "větrná elektrárna na moři", + "cy": "fferm wynt morol", "da": "havvindmøllepark", - "de": "offshore-windpark", + "de": "vertäuungspoller", + "de-ch": "offshore-windpark", "el": "νεωλκείο", - "en": "offshore wind farm", - "es": "llanura abisal", + "en": "bollard", + "en-ca": "offshore wind farm", + "en-gb": "offshore wind farm", + "es": "noray", "et": "abüssaalne tasandik", "fa": "مزرعه بادی دریایی", "fi": "syvän meren tasanko", "fr": "parc éolien en mer", + "ga": "má aibhéiseach", + "gd": "àibheis", + "gl": "chaira abisal", "he": "חוות טורבינות רוח ימית", "hi": "अगाध मैदान", "hr": "priobalna vjetroelektrana", - "hu": "híd", - "id": "peternakan angin lepas pantai", - "it": "parco eolico offshore", + "hu": "vízbe ugrani tilos", + "id": "bolder", + "it": "bitta", "ja": "飛び込み禁止", "kn": "ಸೇತುವೆ", "ko": "심해저 평원", @@ -45295,8 +51256,7 @@ "lv": "jūras vēja ferma", "ml": "പാലം", "mr": "पूल", - "ms": "jambatan", - "nb": "havvindpark", + "nb": "fortøyningspullert", "nl": "windpark op zee", "pl": "morska farma wiatrowa", "pt": "parque eólico em alto-mar", @@ -45305,8 +51265,10 @@ "ru": "не нырять", "sk": "most", "sl": "odobalni vetrni park", + "sq": "urë", "sv": "havsbaserad vindkraftspark", "ta": "கடலடிச் சமவெளி", + "te": "వంతెన", "th": "ที่ราบก้นสมุทร", "tr": "abisal düzlük", "uk": "абісальна рівнина", @@ -45321,7 +51283,8 @@ "": { "de": "fahrradwerkstatt", "en": "cycle repair shop", - "fr": "atelier de réparation de cycles" + "fr": "atelier de réparation de cycles", + "nb": "sykkelverksted" }, "aircraft_control": { "ar": "برج مراقبة", @@ -45339,7 +51302,6 @@ "hu": "irányítótorony", "it": "torre di controllo", "ja": "管制塔", - "ms": "menara kawalan", "nb": "kontrolltårn", "nl": "verkeerstoren", "pl": "wieża kontroli lotów", @@ -45356,6 +51318,7 @@ "be": "завулак", "ca": "carreró", "cs": "ulička", + "cy": "stryd gefn", "da": "stræde", "de": "gasse", "el": "δρομάκι", @@ -45378,6 +51341,7 @@ "ro": "stradelă", "ru": "переулок", "sl": "prehod", + "sq": "rrugica", "sv": "gränd", "tr": "dar sokak", "uk": "провулок", @@ -45394,14 +51358,13 @@ "de": "vorortbahnsystem", "de-ch": "schienenpersonennahverkehr", "el": "προαστιακός σιδηρόδρομος", - "en": "commuter rail service", - "en-ca": "commuter rail", - "en-gb": "commuter rail", - "es": "tren de cercanías", + "en": "commuter rail", + "es": "servicio ferroviario suburbano", "et": "linnalähirong", "fa": "راهآهن حومه", "fi": "paikallisjuna", "fr": "train de banlieue", + "ga": "seirbhís iarnróid comaitéireachta", "he": "רכבת פרוורית", "hi": "उपनगरीय रेल", "hr": "prigradska željeznica", @@ -45410,24 +51373,26 @@ "it": "servizio ferroviario suburbano", "ja": "通勤列車", "ko": "통근철도", + "lt": "priemiestinis traukinys", "mr": "उपनगरी रेल्वे", - "ms": "kereta api komuter", "nb": "forstadsbane", "nl": "voorstadstreindienst", "pl": "kolej aglomeracyjna", "pt": "comboio urbano", - "pt-br": "trem urbano", + "pt-br": "rede de trens urbanos", "ro": "tren metropolitan", "ru": "пригородный поезд", "sk": "rýchlodráha", "sl": "primestni potniški železniški prevoz", "sv": "pendeltåg", - "ta": "கொமுட்டர் தொடருந்து", + "ta": "பயணிகள் தொடருந்து", "th": "รถไฟชานเมือง", "tr": "banliyö treni", "uk": "приміський поїзд", "ur": "کومیوٹر ریل", - "zh": "通勤鐵路" + "zh": "通勤铁路", + "zh-hk": "通勤鐵路", + "zh-tw": "通勤鐵路" }, "driveway": { "ar": "درب", @@ -45438,6 +51403,7 @@ "fr": "entrée carrossable", "it": "passo carrabile", "ja": "私有車道", + "ko": "사유차도", "nb": "oppkjørsel", "nl": "oprijlaan", "zh": "私家車道" @@ -45446,6 +51412,7 @@ "da": "sidespor", "de": "nebengleis", "en": "siding", + "es": "apartadero", "fr": "voie d’évitement", "he": "עקלתון", "hu": "mellékvágány", @@ -45472,7 +51439,7 @@ "pl": "bocznica kolejowa", "ru": "подъездные пути", "sk": "vlečka", - "sv": "kapillärnät", + "sv": "industrispår", "uk": "під'їзна колія", "zh": "侧线" }, @@ -45482,7 +51449,7 @@ "cs": "kolejiště", "da": "ranger- og opstillingsbanegård", "de": "rangierbahnhof", - "en": "rail yard", + "en": "rail yard (maintenance)", "es": "depósito de trenes", "et": "teedepark", "fi": "ratapiha", @@ -45491,8 +51458,9 @@ "hu": "rendező pályaudvar", "id": "emplasemen", "it": "deposito ferroviario", - "ja": "車両基地", + "ja": "鉄道ヤード", "ko": "차량기지", + "nb": "driftsbanegård", "nl": "opstelterrein", "pt": "pátio de trens", "ro": "depou", @@ -45543,6 +51511,29 @@ "uk": "лабаз", "zh": "斜顶侧房" }, + "pergola": { + "ar": "تعريشة", + "be": "пергала", + "bg": "пергола", + "ca": "pèrgola", + "el": "πέργκολα", + "en": "pergola", + "es": "pérgola", + "gl": "pérgola", + "he": "פרגולה", + "hu": "nyitott kerti lugas", + "ja": "パーゴラ", + "kn": "ಲತಾಗೃಹ", + "ko": "교목", + "lt": "pergolė", + "pt": "pérgula", + "pt-br": "pérgola", + "ro": "pergolă", + "ru": "пергола", + "th": "ร้านไม้เลื้อย", + "uk": "пергола", + "zh": "凉棚" + }, "picnic_shelter": { "da": "picnichytte", "en": "picnic shelter", @@ -45581,6 +51572,7 @@ "fa": "فروشگاه مشروبات الکلی", "fi": "viinikellari", "fr": "caviste", + "gl": "adega", "he": "מרתף יינות", "hr": "vinski podrum", "hu": "italbolt", @@ -45590,10 +51582,11 @@ "nb": "alkoholutsalg", "nl": "slijterij", "pl": "sklep monopolowy", - "pt": "botillería", + "pt": "loja de bebidas", "ro": "magazin de băuturi", "ru": "винный погреб", "sl": "vinska klet", + "sq": "kantina", "sv": "vinkällare", "tr": "şarap kavı", "uk": "винниця", @@ -45601,10 +51594,12 @@ "zh": "酒铺" }, "anime": { - "de": "animeladen", + "de": "anime-laden", "en": "anime shop", "ja": "アニメショップ", "nl": "animewinkel", + "ro": "magazin de anime", + "uk": "аніме-магазин", "zh": "動畫商店" }, "antiques": { @@ -45615,6 +51610,7 @@ "es": "tienda de antigüedades", "fi": "antikkiliike", "fr": "antiquaire", + "ga": "siopa seandachtaí", "hu": "régiségkereskedés", "it": "antiquariato", "ja": "骨董品店", @@ -45645,7 +51641,7 @@ "ja": "商業芸術ギャラリー", "lv": "komerciālā māksla galerija", "nl": "kunstgalerie", - "sl": "prodajna umetniška galerija", + "sl": "prodajna umetnostna galerija", "uk": "комерційна галерея мистецтв", "zh-tw": "商業藝廊" }, @@ -45676,13 +51672,13 @@ "da": "bageri", "de": "bäckerei", "el": "αρτοποιείο", - "en": "julie's", - "en-ca": "bakery", - "en-gb": "bakery", + "en": "bakery", "es": "panadería", "fa": "نانوایی", "fi": "leipomo", "fr": "boulangerie", + "ga": "teach báicéireachta", + "gl": "panadaría", "he": "מאפייה", "hr": "pekarnica", "hu": "pékség", @@ -45693,7 +51689,6 @@ "ko": "베이커리", "lv": "ceptuve", "ml": "ബേക്കറി", - "ms": "kedai membuat roti", "nb": "bakeri", "nl": "bakkerij", "pl": "piekarnia", @@ -45718,6 +51713,7 @@ "beauty": { "ar": "صالون تجميل", "ca": "saló de bellesa", + "cs": "salon krásy", "de": "schönheitssalon", "en": "beauty salon", "es": "salón de belleza", @@ -45730,12 +51726,14 @@ "id": "salon", "ja": "美容サロン", "ko": "미용실", + "lt": "grožio salonas", "mr": "beuty salon", "nl": "schoonheidssalon", "pt": "salão de beleza", "ru": "салон красоты", "sl": "lepotni salon", "sv": "skönhetssalong", + "te": "క్షౌరశాల", "tr": "güzellik salonu", "uk": "салон краси", "vi": "thẩm mỹ viện", @@ -45767,10 +51765,10 @@ "it": "negozio di biciclette", "ja": "自転車店", "ko": "자전거 판매점", - "ms": "kedai basikal", "nb": "sykkelbutikk", "nl": "fietsenwinkel", - "pl": "sklep rowerowy" + "pl": "sklep rowerowy", + "sl": "prodajalna koles" }, "boat": { "de": "bootsladen", @@ -45786,6 +51784,8 @@ "es": "corredor de apuestas", "fa": "صحافیکننده کتاب", "fi": "vedonvälittäjä", + "ga": "geallghlacadóir", + "he": "סוכן הימורים", "hu": "bukméker", "it": "allibratore", "ja": "ブックメーカー", @@ -45801,10 +51801,11 @@ "zh": "博彩公司" }, "books": { - "ar": "بيع الكتب", + "ar": "محل بيع كتب", "bg": "книжарница", "ca": "llibreria", "cs": "knihkupectví", + "cy": "siop lyfrau", "da": "boghandel", "de": "buchhandlung", "el": "βιβλιοπωλείο", @@ -45815,14 +51816,16 @@ "fa": "کتابفروشی", "fi": "kirjakauppa", "fr": "librairie", + "ga": "siopa leabhar", + "gl": "libraría", "he": "חנות ספרים", "hu": "könyvesbolt", "id": "toko buku", "it": "libreria", "ja": "書店", "ko": "서점", + "lt": "knygynas", "lv": "grāmatnīca", - "ms": "kedai buku", "nb": "bokhandel", "nl": "boekhandel", "pl": "księgarnia", @@ -45831,6 +51834,7 @@ "ru": "книжный магазин", "sl": "knjigarna", "sv": "bokhandel", + "te": "పుస్తకాల కొట్టు", "th": "ร้านหนังสือ", "tr": "kitap mağazası", "uk": "книгарня", @@ -45845,14 +51849,15 @@ "el": "μπουτίκ", "en": "boutique", "fa": "بوتیک", + "fi": "muotiliike", "he": "בוטיק", "id": "butik", "ja": "ブティック", "ko": "부티크", - "ms": "butik", "nl": "boetiek", "pl": "butik", "ru": "бутик", + "sl": "butik", "tr": "butik", "uk": "бутик (крамниця)", "vi": "cửa hàng thời trang", @@ -45867,10 +51872,11 @@ "be": "мяснік", "ca": "carnisseria", "cs": "řeznictví", + "cy": "cigydd", "da": "slagterbutik", "de": "fleischerei", "de-at": "fleischhauer", - "el": "χασάπης", + "el": "κρεοπώλης", "en": "butcher shop", "en-ca": "butcher", "en-gb": "butcher", @@ -45879,6 +51885,9 @@ "fa": "قصاب", "fi": "lihakauppa", "fr": "boucherie", + "ga": "búistéir", + "gd": "feòladair", + "gl": "carnizaría", "he": "אטליז", "hr": "mesar", "hu": "húsbolt", @@ -45887,6 +51896,7 @@ "ja": "精肉店", "kn": "ಕಟುಕ", "ko": "정육점", + "lt": "mėsininkas", "lv": "miesnieks", "nb": "slakter", "nl": "slagerij", @@ -45894,7 +51904,8 @@ "pt": "açougue", "ro": "măcelărie", "ru": "мясной магазин", - "sl": "mesar", + "sl": "mesarna", + "sq": "mishtari", "sv": "charkuteributik", "th": "คนขายเนื้อสัตว์", "tr": "kasap", @@ -45915,31 +51926,33 @@ "nl": "kaarsenwinkel" }, "cannabis": { - "ar": "مقهى كانابيس", + "ar": "متجر القنب", "bg": "кофишоп", "cs": "coffee shop", "da": "coffeeshop", "de": "coffeeshop", - "en": "cannabis coffee shop", - "es": "coffee shop", + "en": "cannabis shop", + "es": "tienda de marihuana", "et": "coffeeshop", + "fa": "کافیشاپ (هلند)", "fi": "coffee shop", - "fr": "coffee shop", - "he": "קופי שופ", + "fr": "magasin de cannabis", + "he": "חנות קאנאביס", "hr": "coffee shop", - "id": "coffee shop", - "it": "coffee-shop", + "id": "toko ganja", "ja": "コーヒーショップ", "ko": "커피숍", "nb": "coffeeshop", - "nl": "coffeeshop", - "pl": "coffee shop", - "pt": "coffeeshop", + "nl": "cannabiswinkel", + "pl": "sklep z marihuaną", + "pt": "loja de cannabis", "ro": "coffee shop", - "ru": "кофешоп", - "sv": "coffeeshop", + "ru": "магазин марихуаны", + "sq": "coffeeshop", + "sv": "cannabisbutik", "tr": "coffeeshop", "uk": "кофішоп", + "vi": "cửa hàng cần sa", "zh": "大麻咖啡店" }, "car": { @@ -45954,6 +51967,7 @@ "fi": "autokauppa", "fr": "distribution automobile", "hu": "autókereskedés", + "id": "dealer mobil", "it": "concessionaria d'auto", "ja": "自動車ディーラー", "kn": "ಆಟೋ ಡೀಲರ್", @@ -45983,16 +51997,19 @@ "da": "autoværksted", "de": "autowerkstatt", "el": "συνεργείο αυτοκινήτων", - "en": "rapid oil change", + "en": "automobile repair shop", "en-gb": "garage", "es": "taller mecánico", "fa": "تعمیرگاه خودرو", "fi": "autokorjaamo", + "fr": "atelier de réparation automobile", "he": "מוסך", "hi": "mechanic", + "hu": "autószerelő műhely", + "id": "bengkel mobil", "it": "carrozzeria", + "ja": "自動車修理店", "lt": "automobilių servisas", - "ms": "kedai membaiki kereta", "nb": "bilverksted", "nl": "garage", "pl": "serwis samochodowy", @@ -46033,12 +52050,14 @@ "fa": "فروشگاه خیریه", "fr": "boutique de charité", "hu": "adománybolt", + "id": "toko lungsur", "it": "mercatino dell'usato", "ja": "古着", "ko": "자선 가게", - "nl": "kringloopwinkel", + "nb": "bruktbutikk", + "nl": "liefdadigheidswinkel", "pl": "sklep charytatywny", - "pt": "brechó", + "pt": "brechó beneficente", "ru": "благотворительный магазин", "sv": "välgörenhetsbutik", "tr": "yardım mağazası", @@ -46051,28 +52070,15 @@ }, "cheese": { "ca": "formatgeria", - "da": "osteri", - "de": "käserei", - "en": "cheesery", - "es": "quesería", - "fi": "juustola", - "fr": "fromagerie", - "ja": "チーズ工場", - "lv": "sierotava", - "nb": "ysteri", - "nl": "kaasmakerij", - "pl": "serownia", - "pt": "queijaria", - "ru": "сыроварня", - "sl": "sirarna", - "sv": "ysteri" + "de": "käsegeschäft", + "en": "cheese shop", + "fr": "fromagerie" }, "chemist": { "ca": "drogueria", "cs": "drogerie", - "da": "drugstore", "de": "drogerie", - "en": "hb1", + "en": "drugstore", "es": "droguería", "fr": "droguerie", "id": "apotek", @@ -46105,7 +52111,8 @@ "es": "tienda de ropa", "fi": "vaateliike", "fr": "magasin de vêtements", - "hu": "divatszalon", + "gl": "tenda de roupa", + "hu": "ruhabolt", "it": "negozio di abbigliamento", "ja": "衣料品店", "nl": "kledingwinkel", @@ -46136,54 +52143,55 @@ "bg": "сладкарница", "ca": "confiteria", "de": "süßwarenladen", - "en": "don benito's", + "en": "confectionery store", "en-gb": "sweet shop", "es": "tienda de confitería", "fa": "قنادی", "fr": "confiserie", + "gl": "docería", "he": "חנות ממתקים", "it": "negozio di dolciumi", "ja": "甘味処", - "ms": "gedung konfeksi", "nb": "godteributikk", "nl": "snoepwinkel", "pt": "confeitaria", "sl": "prodajalna slaščic", + "sq": "ëmbëltorja", "tr": "şekerci", "vi": "cửa hàng bánh kẹo", "zh": "点心店" }, "convenience": { - "ar": "ألفامارت", + "ar": "متجر صغير", "ca": "botiga d'ultramarins", "cs": "smíšené zboží", + "cy": "siop cyfleustra", "da": "nærbutik", "de": "convenience shop", "el": "παντοπωλείο", - "en": "alfamart", - "en-ca": "convenience store", - "en-gb": "convenience store", + "en": "convenience store", "es": "tienda de conveniencia", - "fa": "آلفامارت", + "fa": "فروشگاههای زنجیرهای خردهفروشی", "fi": "lähikauppa", "fr": "épicerie", "he": "חנות נוחות", "hr": "prodavaonice susjedstva", - "it": "convenience store", - "ja": "アルファマート", + "id": "toko kelontong", + "ja": "コンビニエンスストア", "ko": "편의점", "nb": "nærbutikk", "nl": "gemakswinkel", + "pl": "convenience shop", "pt": "loja de conveniência", "ro": "magazin de cartier", "ru": "магазин у дома", - "sl": "trafika", + "sl": "priročna prodajalna", "sv": "mindre livsmedelsbutik", "th": "ร้านสะดวกซื้อ", "tr": "mahalle bakkalı", "uk": "магазин біля дому", "vi": "tiệm tiện lợi", - "zh": "阿爾法零售集團", + "zh": "便利商店", "zh-hk": "便利店" }, "copyshop": { @@ -46205,10 +52213,12 @@ }, "country_store": { "ar": "متجر عام", + "cy": "siop bob peth", "de": "dorfladen", "en": "general store", "fi": "sekatavarakauppa", "fr": "magasin général", + "id": "toko palugada", "ja": "よろずや", "ko": "제네럴 스토어", "nb": "landhandel", @@ -46239,20 +52249,21 @@ "da": "delikatesse", "de": "feinkostladen", "en": "delicatessen", + "es": "delicatesen", "fa": "حاضریفروشی", "fi": "herkkukauppa", + "ga": "deilí", "he": "מעדנייה", "id": "delikatesen", "it": "gastronomia", "ja": "デリカテッセン", "ko": "델리", "lt": "delikatesas", - "ms": "delikatesen", "nb": "delikatesse", "nl": "delicatessenwinkel", "pl": "delikatesy", - "pt": "delicatesse", "ru": "магазин деликатесов", + "sk": "lahôdky", "sl": "delikatesa", "sv": "delikatess", "th": "เดลิคาเทสเซ็น", @@ -46266,6 +52277,7 @@ "bg": "универсален магазин", "ca": "gran magatzem", "cs": "obchodní dům", + "cy": "siop adrannol", "da": "stormagasin", "de": "kaufhaus", "el": "πολυκατάστημα", @@ -46274,6 +52286,7 @@ "fa": "فروشگاه بزرگ", "fi": "tavaratalo", "fr": "grand magasin", + "ga": "siopa ilrannach", "he": "חנות כלבו", "hi": "विभागीय भंडार", "hr": "robna kuća", @@ -46282,7 +52295,6 @@ "it": "grande magazzino", "ja": "百貨店", "ko": "백화점", - "ms": "gedung serbaneka", "nb": "varemagasin", "nl": "warenhuis", "pl": "dom towarowy", @@ -46291,6 +52303,7 @@ "ru": "универсальный магазин", "sk": "obchodný dom", "sl": "veleblagovnica", + "sq": "dyqan i madh", "sv": "varuhus", "th": "ห้างสรรพสินค้า", "tr": "çok katlı mağazacılık", @@ -46314,6 +52327,7 @@ "id": "toko perangkat keras", "it": "negozio fai da te", "ja": "ホームセンター", + "nb": "jernvarehandel", "nl": "bouwmarkt", "pl": "sklep budowlany", "pt": "loja de ferragens", @@ -46356,10 +52370,12 @@ "fr": "magasin d'électronique", "he": "חנות מכשירי חשמל", "it": "negozio di elettronica", - "ja": "電気店", + "ja": "電器店", "nl": "elektronicawinkel", "ru": "магазин электроники", - "tr": "tüketici elektroniği mağazası" + "sl": "prodajalna elektronike", + "tr": "tüketici elektroniği mağazası", + "zh": "電器店" }, "energy": { "ca": "empresa d'energia", @@ -46374,6 +52390,7 @@ "hu": "energetikai vállalkozás", "it": "azienda energetica", "ja": "電気事業者", + "ko": "에너지 회사", "nb": "kraftleverandør", "nl": "energiemaatschappij", "pl": "przedsiębiorstwo energetyczne", @@ -46391,6 +52408,7 @@ "be": "секс-шоп", "bg": "секс магазин", "ca": "sex-shop", + "cy": "siop ryw", "da": "sexshop", "de": "sexshop", "en": "sex shop", @@ -46403,6 +52421,7 @@ "it": "sexy shop", "ja": "アダルトグッズショップ", "ko": "성인용품점", + "lt": "sekso parduotuvė", "nl": "seksshop", "ru": "секс-шоп", "sk": "sexshop", @@ -46425,7 +52444,10 @@ "et": "kinnisvaramaakler", "fa": "دلال بنگاه معاملات ملکی", "fi": "kiinteistönvälittäjä", - "fr": "agent immobilier ou agente immobilière", + "fr": "agent ou agente immobilier", + "ga": "gníomhaire eastáit", + "gd": "bròcair thogalaichean is talmhainn", + "gl": "axente inmobiliario", "he": "סוכן נדל\"ן", "hu": "ingatlanközvetítő", "id": "agen real estat", @@ -46454,6 +52476,7 @@ "fr": "magasin de tissu", "nl": "stoffenwinkel", "pt": "loja de fazendas", + "ru": "магазин ткани", "sv": "tygaffär" }, "farm": { @@ -46465,6 +52488,7 @@ "ja": "農産物直売所", "nb": "gårdsbutikk", "nl": "boerderijwinkel", + "sl": "kmečka prodajalna", "zh": "農產品直銷所" }, "fashion": { @@ -46477,7 +52501,8 @@ "es": "tienda de ropa", "fi": "vaateliike", "fr": "magasin de vêtements", - "hu": "divatszalon", + "gl": "tenda de roupa", + "hu": "ruhabolt", "it": "negozio di abbigliamento", "ja": "衣料品店", "nl": "kledingwinkel", @@ -46511,6 +52536,7 @@ "et": "kalakaupmees", "fi": "kalakauppias", "fr": "poissonnier", + "ga": "ceannaí éisc", "hu": "halkereskedő", "it": "pescivendolo", "ja": "魚屋", @@ -46531,6 +52557,8 @@ "florist": { "be": "кветкавая крама", "cs": "květinářství", + "cy": "siop flodau", + "da": "blomsterhandel", "de": "blumenladen", "en": "flower shop", "es": "florería", @@ -46550,7 +52578,16 @@ "zh": "花店" }, "footwear": { - "it": "calzaturificio" + "de": "schuhfabrik", + "en": "shoe factory", + "es": "fábrica de zapatos", + "fi": "kenkätehdas", + "hu": "cipőgyár", + "it": "calzaturificio", + "nl": "schoenfabriek", + "ru": "обувная фабрика", + "sl": "tovarna čevljev", + "sv": "skofabrik" }, "frame": { "de": "rahmenladen", @@ -46573,13 +52610,14 @@ "funeral_directors": { "ar": "دار جنائز", "ca": "funerària", - "cs": "pohřební komora", + "cs": "pohřební ústav", "de": "bestattungsinstitut", "en": "funeral home", "es": "funeraria", "et": "matusebüroo", "fi": "hautaustoimisto", "fr": "funérarium", + "ga": "teach tórraimh", "he": "בית לוויות", "hu": "ravatalozó", "id": "rumah duka", @@ -46599,10 +52637,11 @@ "zh-cn": "殡仪馆" }, "furniture": { + "ca": "minorista de mobles", "da": "møbelforretning", "de": "möbelhaus", "en": "furniture retailer", - "es": "tienda de muebles", + "es": "mueblería", "fi": "huonekaluliike", "fr": "magasin de meubles", "hu": "bútoráruház", @@ -46626,7 +52665,8 @@ "garden_centre": { "cs": "zahradní centrum", "de": "gartencenter", - "en": "garden centre", + "en": "garden center", + "en-gb": "garden centre", "es": "centro de jardinería", "fr": "jardinerie", "it": "centro giardinaggio", @@ -46647,10 +52687,12 @@ }, "general": { "ar": "متجر عام", + "cy": "siop bob peth", "de": "dorfladen", "en": "general store", "fi": "sekatavarakauppa", "fr": "magasin général", + "id": "toko palugada", "ja": "よろずや", "ko": "제네럴 스토어", "nb": "landhandel", @@ -46662,15 +52704,16 @@ "gift": { "ar": "متجر هدايا", "ca": "botiga de regals", + "cy": "siop anrhegion", "de": "andenkenladen", "en": "gift shop", + "fa": "فروشگاه کادوئی", "fi": "lahjatavarakauppa", "fr": "boutique de cadeaux", "he": "חנות מזכרות", "id": "toko cendera mata", "ja": "ギフトショップ", "ko": "기념품점", - "ms": "kedai cenderamata", "nb": "gavebutikk", "nl": "souvenirwinkel", "ru": "магазин сувениров", @@ -46719,13 +52762,15 @@ "be": "харчовая крама", "ca": "botiga d'ultramarins", "cs": "potraviny", + "cy": "siop groser", "da": "dagligvarehandel", "de": "lebensmittelgeschäft", "en": "grocery store", - "es": "tienda de ultramarinos", + "es": "tienda de alimentos", "fa": "بقالی", "fi": "elintarvikeliike", "fr": "épicerie", + "gl": "tenda de alimentación", "he": "מכולת", "hu": "élelmiszerbolt", "it": "drogheria", @@ -46733,7 +52778,6 @@ "kn": "ಕಿರಾಣಿ ಅಂಗಡಿ", "ko": "식료품점", "ml": "പലചരക്ക് കട", - "ms": "kedai runcit", "nb": "dagligvarebutikk", "nl": "levensmiddelenwinkel", "pl": "sklep spożywczy", @@ -46744,6 +52788,7 @@ "ta": "மளிகைக் கடை", "tr": "bakkal", "uk": "бакалія", + "ur": "کریانہ کی دکان", "vi": "tiệm tạp hóa", "zh": "雜貨店" }, @@ -46760,7 +52805,7 @@ "be": "галантарэя", "ca": "merceria", "cs": "galanterie", - "da": "galanterikræmmer", + "da": "galanterikræmmervarer", "de": "kurzwaren", "en": "mercery", "en-gb": "haberdashery", @@ -46774,6 +52819,7 @@ "nb": "kortevarer", "nl": "fournituren", "pl": "galanteria", + "pt": "retrosaria", "ro": "mercerie", "ru": "галантерея", "sk": "galantéria", @@ -46781,11 +52827,12 @@ "tr": "tuhafiye", "uk": "галантерея", "vi": "cửa hàng tơ lụa", - "zh-tw": "布匹飾品" + "zh": "布匹飾品" }, "hairdresser": { "be": "цырульня", "ca": "establiment de tall de pèl", + "cs": "kadeřnictví", "da": "frisørsalon", "de": "friseurladen", "en": "haircutting establishment", @@ -46793,10 +52840,12 @@ "fa": "مؤسسه آرایش مو", "fi": "parturi-kampaamo", "fr": "salon de coiffure", + "gl": "salón de peiteado", "hu": "fodrászat", "it": "bottega di parrucchiere", "ja": "美容院", "ko": "머리방", + "lt": "kirpykla", "nl": "kapsalon", "pl": "zakład fryzjerski", "pt": "estabelecimento de corte de cabelo", @@ -46825,6 +52874,7 @@ "id": "toko perangkat keras", "it": "negozio fai da te", "ja": "ホームセンター", + "nb": "jernvarehandel", "nl": "bouwmarkt", "pl": "sklep budowlany", "pt": "loja de ferragens", @@ -46844,7 +52894,9 @@ "hi": "हेल्थ फूड स्टोर", "ja": "健康食品店", "nl": "biologische winkel", + "sl": "prodajalna z zdravo prehrano", "sv": "hälsokostaffär", + "te": "హెల్త్ ఫుడ్ స్టోర్", "zh": "健康食品店" }, "hearing_aids": { @@ -46852,6 +52904,7 @@ "ca": "audiòleg", "cs": "audiolog", "de": "audiologe", + "el": "ακοολόγος", "en": "audiologist", "es": "audiólogo", "fi": "audiologi", @@ -46859,6 +52912,7 @@ "he": "אודיולוג", "hu": "audiológus", "it": "audiologo", + "ja": "聴能学", "nl": "audioloog", "pl": "audiolog", "pt": "audiologista", @@ -46873,12 +52927,13 @@ "be": "гандляр лячэбнымі травамі", "ca": "herborista", "cs": "bylinkář", - "de": "kräutersammler", + "cy": "meddyg llysiau", + "de": "kräutersammlerin", "el": "βοτανοθεραπευτής", "en": "herbalist", "es": "herborista", - "et": "maitseainete kollektsioneerimine", "fr": "herboriste", + "hu": "füvesember", "it": "erborista", "ja": "本草学者", "ko": "본초학자", @@ -46903,6 +52958,7 @@ "de": "haushaltswarenladen", "en": "houseware shop", "fr": "magasin d'articles ménagers", + "it": "negozio di casalighi", "nl": "huiswarenwinkel" }, "hunting": { @@ -46913,6 +52969,7 @@ "ice_cream": { "ar": "محل الآيس كريم", "ca": "gelateria", + "cy": "parlwr hufen iâ", "da": "isbutik", "de": "eisdiele", "en": "ice cream parlor", @@ -46927,7 +52984,8 @@ "ko": "아이스크림 가게", "nl": "ijssalon", "pl": "lodziarnia", - "pt": "sorveteria", + "pt": "gelataria", + "pt-br": "sorveteria", "ru": "кафе-мороженое", "sv": "glasskafé", "tr": "dondurma salonu", @@ -46938,6 +52996,7 @@ "bg": "застрахователен брокер", "ca": "mediador d'assegurances", "cs": "pojišťovací agent", + "cy": "brocer yswiriant", "da": "forsikringsmægler", "de": "versicherungsmakler", "el": "ασφαλιστής", @@ -46945,7 +53004,8 @@ "es": "corredor de seguros", "fa": "کارگزار بیمه", "fi": "vakuutusmeklari", - "fr": "courtier d'assurances", + "fr": "courtier ou courtière en assurances", + "gl": "axente de seguros", "he": "סוכן ביטוח", "hu": "biztosításközvetítő", "it": "broker assicurativo", @@ -46974,6 +53034,7 @@ }, "jewelry": { "ca": "joieria", + "cs": "šperkařství", "da": "smykkebutik", "de": "juwelierladen", "en": "jewelry shop", @@ -46986,6 +53047,7 @@ "it": "gioielleria", "ja": "宝石店", "nl": "juwelierszaak", + "pt": "joalharia", "ru": "ювелирный магазин", "sl": "zlatarna", "sv": "smyckesbutik", @@ -46998,12 +53060,14 @@ "be": "шапік", "ca": "quiosc", "cs": "kiosek", + "cy": "ciosg", "el": "περίπτερο", "en": "kiosk", "es": "quiosco", "fa": "کیوسک", "fi": "kioski", "fr": "kiosque", + "gl": "quiosco", "he": "קיוסק", "hu": "kioszk", "id": "kios", @@ -47018,8 +53082,7 @@ "tr": "büfe", "uk": "кіоск", "vi": "quầy bán hàng", - "zh": "便亭", - "zh-cn": "自助機台" + "zh": "便亭" }, "kitchen": { "de": "küchenstudio", @@ -47042,19 +53105,21 @@ "fa": "فروشگاههای رختشویخانه عمومی", "fi": "itsepalvelupesula", "fr": "blanchisserie", + "ga": "neachtlainnín", "he": "מכבסה", "hu": "önkiszolgáló mosoda", - "id": "penatu", + "id": "penatu swalayan", "it": "lavanderia self-service", "ja": "コインランドリー", "ko": "빨래방", + "lt": "savitarnos skalbykla", "nb": "vaskeri", "nl": "wasserette", "pl": "pralnia samoobsługowa", - "pt": "lavandaria", + "pt": "lavandaria de autosserviço", "pt-br": "lavanderia", "ru": "прачечная самообслуживания", - "sl": "pralnica", + "sl": "samopostrežna pralnica", "sv": "tvättomat", "tr": "self servis çamaşırhane", "uk": "ландромат", @@ -47082,9 +53147,12 @@ "en": "locksmith", "es": "cerrajero", "et": "lukksepp", - "fr": "serrurier ou serrurière", + "fr": "serrurier", + "ga": "glasadóir", "he": "מנעולן", "hu": "lakatos", + "id": "tukang kunci", + "ja": "鍵屋", "nb": "låsesmed", "nl": "slotenmaker", "pl": "ślusarz", @@ -47109,17 +53177,19 @@ "bg": "търговски център", "ca": "centre comercial", "cs": "obchodní centrum", + "cy": "maelfa", "da": "butikscenter", "de": "einkaufszentrum", "el": "εμπορικό κέντρο", "en": "shopping mall", - "en-gb": "shopping centre", "es": "área comercial", "et": "kaubanduskeskus", "fa": "مجتمع خرید", "fi": "kauppakeskus", "fr": "centre commercial", - "he": "מרכז קניות", + "ga": "siopalann", + "gl": "centro comercial", + "he": "קניון", "hi": "शॉपिंग मॉल", "hr": "prodajni centar", "hu": "bevásárlóközpont", @@ -47130,7 +53200,6 @@ "lt": "prekybos centras", "lv": "iepirkšanās centrs", "ml": "മാൾ", - "ms": "pusat beli-belah", "nb": "kjøpesenter", "nl": "mall", "pl": "centrum handlowe", @@ -47142,6 +53211,7 @@ "sl": "nakupovalno središče", "sv": "handelscentrum", "ta": "வணிக வளாகம்", + "te": "షాపింగ్ మాల్", "th": "ศูนย์การค้า", "tr": "alışveriş merkezi", "uk": "торговий центр", @@ -47149,7 +53219,7 @@ "vi": "trung tâm thương mại", "zh": "购物中心", "zh-hk": "商場", - "zh-tw": "商場" + "zh-tw": "購物中心" }, "massage": { "ca": "saló de massatges", @@ -47191,6 +53261,18 @@ "ja": "携帯ショップ", "ru": "салон сотовой связи" }, + "mobile_phone_accessories": { + "en": "mobile phone accessory", + "es": "accesorio del teléfono móvil", + "fa": "لوازم جانبی موبایل", + "id": "aksesori ponsel", + "ja": "携帯電話アクセサリー", + "ru": "аксессуар к мобильному телефону", + "sv": "mobiltelefontillbehör", + "tr": "mobil aksesuar", + "uk": "аксесуари для мобільних пристроїв", + "zh": "手機配件" + }, "money_lender": { "ca": "prestamista", "da": "pengeudlåner", @@ -47198,6 +53280,7 @@ "en": "moneylender", "es": "prestamista", "fr": "prêteur privé", + "gl": "prestamista", "he": "מלווה בריבית", "hi": "साहूकार", "ja": "金貸し", @@ -47213,12 +53296,15 @@ "de": "motorradladen", "en": "motorcycle rental", "fr": "magasin de motos", + "ja": "バイク店", "pl": "wypożyczalnia motorów", "tr": "motosiklet kiralama" }, "music": { + "ar": "محل بيع الصوتيات", "be": "музычная крама", "ca": "botiga de discos", + "cy": "siop recordiau", "da": "pladebutik", "de": "plattenladen", "el": "δισκοπωλείο", @@ -47233,6 +53319,7 @@ "lv": "mūzikas ierakstu veikals", "nb": "platebutikk", "nl": "platenwinkel", + "sl": "prodajalna plošč", "sv": "skivbutik", "tr": "plak mağazası", "vi": "cửa hàng băng đĩa", @@ -47240,8 +53327,9 @@ }, "musical_instrument": { "ca": "botiga de música", - "de": "musikinstrumentengeschäft", - "en": "music store", + "de": "musikgeschäft", + "en": "record store", + "en-us": "music store", "es": "tienda de música", "fi": "musiikkiliike", "fr": "magasin de musique", @@ -47257,12 +53345,14 @@ }, "newsagent": { "ca": "agent de notícies", + "cy": "gwerthwyr papurau newydd", "de": "zeitungshändler", "el": "περίπτερο", "en": "newsagent", "es": "quiosco de periódicos", "fa": "دکه", "fr": "maison de la presse", + "ga": "nuachtánaí", "he": "דוכן עיתונים", "hu": "újságárus", "it": "edicola", @@ -47281,10 +53371,11 @@ "en": "nutrition supplements store" }, "optician": { - "ar": "نظاراتي", + "ar": "اختصاصي بصريات", "be": "оптык", "ca": "òptic", "cs": "optik", + "cy": "optegydd", "da": "optiker", "de": "augenoptiker", "el": "οπτικός", @@ -47292,13 +53383,16 @@ "es": "óptico", "fa": "عینکسازی", "fi": "optometristi", - "fr": "opticien-lunetier", + "fr": "opticien-lunetier ou opticienne-lunetière", + "ga": "radharceolaí", + "gl": "óptico", "he": "אופטיקאי", "hu": "optikus", "id": "ahli optik", "it": "ottico", "ja": "眼鏡店", "ko": "안경사", + "lt": "optikas", "nb": "optiker", "nl": "opticien", "pl": "optyk", @@ -47306,6 +53400,7 @@ "ru": "оптик", "sl": "optik", "sv": "optiker", + "ta": "கண்ணாடியாளர்", "tr": "optisyen", "zh": "配鏡師" }, @@ -47326,7 +53421,8 @@ "de": "partyzubehörladen", "en": "party shop", "nl": "feestwinkel", - "pt": "loja de festas" + "pt": "loja de festas", + "zh": "派對商店" }, "pasta": { "de": "nudelladen", @@ -47340,6 +53436,7 @@ "da": "konditori", "de": "konditorei", "en": "confectionery", + "es": "confitería", "fi": "konditoria", "fr": "konditorei", "he": "קונדיטוריה", @@ -47348,7 +53445,6 @@ "id": "konditorei", "it": "konditorei", "ja": "ケーキ店", - "ms": "konditorei", "nb": "konditori", "nl": "konditorei", "pl": "cukiernia", @@ -47369,23 +53465,21 @@ "da": "pantelåner", "de": "pfandhaus", "el": "ενέχυρο", - "en": "ablaza pawnshop", - "en-ca": "pawnbroker", - "en-gb": "pawnbroker", + "en": "pawnbroker", "es": "casa de empeños", "et": "pandimaja", "fa": "پاون شاپ", "fi": "panttilainaamo", - "fr": "prêt sur gage", + "fr": "prêteur sur gage", "he": "עבוט", "hu": "zálogkölcsönző", "id": "rumah gadai", "it": "banco dei pegni", "ja": "質屋", + "kn": "ಗಿರವಿದಾರ", "ko": "전당포", "lt": "lombardas", "lv": "lombards", - "ms": "gadaian", "nb": "pantelåner", "nl": "pandmakelaar", "pl": "lombard", @@ -47394,6 +53488,7 @@ "ro": "casă de amanet", "ru": "ломбард", "sk": "záložňa", + "sl": "zastavljaničar", "sv": "pantbank", "ta": "வட்டிக்கடை", "tr": "tefeci", @@ -47409,6 +53504,7 @@ "es": "perfumería", "et": "parfümeeria", "fr": "parfumerie", + "hu": "illatszerbolt", "ja": "香水店", "nb": "parfymeri", "nl": "parfumerie", @@ -47427,6 +53523,7 @@ "fi": "lemmikkikauppa", "fr": "animalerie", "he": "חנות חיות מחמד", + "hu": "kisállat-kereskedés", "it": "negozio per animali", "ja": "ペットショップ", "ko": "애완동물 가게", @@ -47435,6 +53532,7 @@ "pl": "sklep zoologiczny", "pt": "pet shop", "ru": "зоомагазин", + "sl": "prodajalna za male živali", "tr": "pet shop", "uk": "зоомагазин", "zh": "寵物店" @@ -47446,6 +53544,10 @@ "nl": "fotozaak", "sl": "fotodelavnica" }, + "pool_shop": { + "de": "schwimmbadzubehörladen", + "en": "swimming pool equipment shop" + }, "pottery": { "af": "pottebakkery", "ar": "فخار", @@ -47453,6 +53555,7 @@ "bg": "грънчарство", "ca": "terrissa", "cs": "hrnčířství", + "cy": "crochenwaith", "da": "pottemagerkunst", "de": "töpferei", "el": "αγγειοπλαστική", @@ -47462,6 +53565,8 @@ "fa": "سفالگری", "fi": "keramiikka", "fr": "poterie", + "ga": "potaireacht", + "gl": "olaría", "he": "קדרות", "hi": "मृद्भाण्ड", "hr": "lončarstvo", @@ -47475,7 +53580,6 @@ "lv": "podniecība", "ml": "കളിമൺപാത്രനിർമാണം", "mr": "कुंभार", - "ms": "seni tembikar", "nb": "pottemakeri", "nl": "pottenbakken", "pl": "garncarstwo", @@ -47485,6 +53589,7 @@ "sl": "lončarstvo", "sv": "krukmakeri", "ta": "மட்பாண்டம்", + "te": "కుమ్మరి", "th": "เครื่องปั้นดินเผา", "tr": "çömlekçilik", "uk": "гончарство", @@ -47501,11 +53606,13 @@ "en": "radiotechnic store" }, "religion": { + "bg": "религиозен магазин", "en": "religious merchandising store" }, "robot": { "de": "roboterladen", - "en": "robot shop" + "en": "robot shop", + "ru": "магазин роботов" }, "scuba_diving": { "de": "tauchausrüstungszubehörgeschäft", @@ -47528,6 +53635,7 @@ "second_hand": { "ar": "سوق متجول", "ca": "brocanter", + "cs": "second hand", "da": "genbrugsbutik", "de": "gebrauchtwarenladen", "en": "second-hand shop", @@ -47539,7 +53647,7 @@ "ja": "古物商", "ko": "중고 시장", "lv": "lietotu preču veikals", - "nl": "kringloopcentrum", + "nl": "kringloopwinkel", "pt": "brechó", "sv": "andrahandsaffär", "vi": "cửa hàng đồ cũ", @@ -47550,6 +53658,7 @@ "en": "security shop" }, "sewing": { + "da": "sybutik", "de": "nähzubehörgeschäft", "en": "sewing shop" }, @@ -47567,6 +53676,10 @@ "uk": "шипчандлер", "zh": "船用杂货商" }, + "shoe_repair": { + "en": "shoe repair shop", + "ru": "обувная мастерская" + }, "shoes": { "ar": "دكان لبيع الأحذية", "ca": "sabateria", @@ -47581,13 +53694,23 @@ "it": "negozio di scarpe", "ja": "靴屋", "nl": "schoenwinkel", - "pt": "loja de sapatos", + "pt": "sapataria", + "sl": "prodajalna čevljev", "vi": "cửa hàng giày" }, "ski": { "de": "skiladen", "en": "ski store" }, + "smartshop": { + "ca": "smartshops", + "de": "smartshop", + "en": "smart shop", + "es": "tienda de drogas inteligentes", + "fr": "smartshop", + "nl": "smartshop", + "ru": "смартшоп" + }, "snowmobile": { "de": "schneemobilladen", "en": "snowmobile store" @@ -47602,9 +53725,12 @@ "en": "sport shop", "fr": "magasin de sport", "ja": "スポーツ用品店", - "nl": "sportwinkel" + "nl": "sportwinkel", + "sl": "športna prodajalna" }, "stationery": { + "ca": "papereria", + "cy": "werthwr deunydd ysgrifennu", "de": "schreibwarenhandlung", "en": "stationery shop", "en-gb": "stationers", @@ -47633,6 +53759,7 @@ "nb": "minilager", "ro": "spațiu de depozitare", "ru": "индивидуальное хранение вещей", + "sl": "najemno skladiščenje", "sv": "hyrlager", "tr": "eşya depolama antalya", "uk": "склад індивідуального зберігання", @@ -47645,37 +53772,34 @@ "be": "супермаркет", "bg": "супермаркет", "ca": "supermercat", - "cs": "supermarket", + "cy": "archfarchnad", "da": "supermarked", "de": "supermarkt", "el": "σουπερμάρκετ", - "en": "ever", + "en": "supermarket", "es": "supermercado", - "et": "supermarket", "fa": "سوپرمارکت", - "fi": "supermarket", "fr": "supermarché", + "ga": "ollmhargadh", + "gl": "supermercado", "he": "מרכול", "hi": "सुपरमार्केट", - "hr": "supermarket", "hu": "élelmiszer-áruház", - "id": "supermarket", + "id": "pasaraya", "it": "supermercato", "ja": "スーパーマーケット", "ko": "슈퍼마켓", + "lt": "supermarketas", "lv": "lielveikals", "ml": "സൂപ്പർ മാർക്കറ്റ്", - "ms": "pasar raya", "nb": "supermarked", "nl": "supermarkt", - "pl": "supermarket", "pt": "supermercado", "ro": "supermagazin", "ru": "супермаркет", - "sk": "supermarket", - "sl": "supermarket", "sv": "snabbköp", "ta": "சிறப்பு அங்காடி", + "te": "సూపర్ మార్కెట్", "th": "ซูเปอร์มาร์เก็ต", "tr": "süpermarket", "uk": "супермаркет", @@ -47687,6 +53811,10 @@ "de": "schwimmbadzubehörladen", "en": "swimming pool equipment shop" }, + "swimming_pool_supply_store": { + "de": "schwimmbadzubehörladen", + "en": "swimming pool equipment shop" + }, "tailor": { "ar": "محل خياطة", "ca": "sastreria", @@ -47707,7 +53835,9 @@ "en-gb": "tattoo parlour", "fi": "tatuointiliike", "fr": "salon de tatouage", + "he": "מכון קעקועים", "nl": "tatoeagezaak", + "pt": "estúdio de tatuagem", "sl": "tetovirni salon", "sv": "tattueringsstudio" }, @@ -47726,7 +53856,8 @@ "en": "ticket shop", "fr": "billetterie", "it": "biglietteria", - "ja": "チケットショップ" + "ja": "チケットショップ", + "sl": "prodajalna vstopnic" }, "tiles": { "de": "fliesenladen", @@ -47744,12 +53875,16 @@ "en": "smoke shop", "es": "estanco", "fr": "bureau de tabac", + "ga": "siopa tobac", + "gd": "neach-bùtha tombaca", + "gl": "estanco", "hu": "dohánybolt", "it": "tabaccheria", "ja": "煙草店", "nl": "sigarenwinkel", "pl": "trafika", "pt": "tabacaria", + "sl": "prodajalna tobaka", "sv": "tobakshandlare", "vi": "người bán thuốc lá", "zh": "煙草商" @@ -47768,6 +53903,7 @@ "fa": "اسباببازی فروشی", "fi": "lelukauppa", "fr": "magasin de jouets", + "he": "חנות צעצועים", "hu": "játékbolt", "it": "negozio di giocattoli", "ja": "玩具店", @@ -47814,7 +53950,6 @@ "lt": "kelionių agentūra", "lv": "ceļojumu aģentūra", "ml": "ട്രാവൽ ഏജൻസി", - "ms": "agensi pelancongan", "nb": "reisebyrå", "nl": "reisbureau", "pl": "biuro podróży", @@ -47885,6 +54020,7 @@ "pl": "wypożyczalnia wideo", "pt": "locadora de vídeo", "ru": "видеопрокат", + "sl": "videoteka", "sv": "videobutik", "uk": "магазин відеопрокату", "vi": "cửa hàng cho thuê băng đĩa hình", @@ -47901,6 +54037,7 @@ "de": "uhrengeschäft", "en": "watch shop", "fr": "boutique de montres", + "ja": "時計店", "nl": "horlogewinkel", "pt": "relojoaria", "ru": "часовой магазин", @@ -47917,6 +54054,8 @@ "nl": "zelfbedieningsgroothandel", "pt": "atacado-varejista", "ru": "cash & carry", + "sl": "plačaj in odnesi", + "uk": "дрібнооптова торгівля", "vi": "câu lạc bộ kho", "zh": "现购自运" }, @@ -47935,15 +54074,20 @@ "de": "weinhandlung", "en": "wine shop", "fr": "caviste", + "he": "חנות יין", "nl": "wijnwinkel", "sv": "vinaffär" }, + "wool": { + "en": "yarn shop" + }, "yes": { "ar": "محل بيع بالتجزئة", "be": "магазін", "bg": "магазин", "ca": "botiga", "cs": "prodejna", + "cy": "siop", "da": "butik", "de": "laden", "el": "κατάστημα", @@ -47953,6 +54097,8 @@ "fa": "فروشگاه", "fi": "kauppa", "fr": "magasin", + "ga": "siopa", + "gl": "tenda", "he": "חנות", "hr": "prodavaonica", "hu": "üzlet", @@ -47963,7 +54109,6 @@ "lt": "parduotuvė", "lv": "veikals", "ml": "കട", - "ms": "kedai", "nb": "butikk", "nl": "winkel", "pl": "sklep", @@ -47972,7 +54117,9 @@ "ru": "магазин", "sk": "maloobchod", "sl": "prodajalna", + "sq": "dyqan", "sv": "butik", + "te": "కొట్టు", "tr": "dükkân", "uk": "крамниця", "vi": "cửa hàng", @@ -47986,6 +54133,7 @@ "bg": "вятърна електроцентрала", "ca": "parc eòlic", "cs": "větrný park", + "cy": "fferm wynt", "da": "vindmøllepark", "de": "windpark", "el": "αιολικό πάρκο", @@ -47995,6 +54143,7 @@ "fa": "نیروگاه بادی", "fi": "tuulivoimapuisto", "fr": "parc éolien", + "ga": "feirm ghaoithe", "he": "חוות רוח", "hr": "vjetroelektrana", "hu": "szélfarm", @@ -48010,6 +54159,7 @@ "ro": "parc eolian", "ru": "ветряная электростанция", "sl": "vetrni park", + "sq": "centrali i erës", "sv": "vindkraftspark", "ta": "காற்றாடி", "th": "ฟาร์มกังหันลม", @@ -48021,47 +54171,6 @@ } }, "site_type": { - "megalith": { - "af": "megaliet", - "ar": "جندل", - "be": "мегаліты", - "bg": "мегалит", - "ca": "megàlit", - "cs": "megalit", - "da": "megalit", - "el": "μεγάλιθος", - "en": "megalith", - "es": "megalito", - "et": "megaliit", - "fa": "خرسنگ", - "fi": "megaliitti", - "fr": "mégalithe", - "he": "מגלית", - "hi": "महापाषाण", - "hr": "megalit", - "id": "megalit", - "it": "megalito", - "ja": "巨石記念物", - "ko": "거석기념물", - "lt": "megalitas", - "mr": "स्मारकशिला दफने", - "ms": "megalit", - "nb": "megalitt", - "nl": "megaliet", - "pl": "megalit", - "pt": "megalíto", - "ro": "megalit", - "ru": "мегалит", - "sk": "megalit", - "sl": "megalit", - "sv": "megalit", - "ta": "பெருங்கற்காலம்", - "th": "เมกะลิท", - "tr": "megalit", - "uk": "мегаліт", - "vi": "cự thạch", - "zh": "巨石文化" - }, "minilith": { "en": "minilith", "pt": "minilito" @@ -48078,12 +54187,14 @@ "fr": "abri sous roche", "he": "מחסה-סלע", "hi": "शैलाश्रय", + "id": "abris sous roche", "it": "riparo sotto roccia", "ja": "岩陰遺跡", "nb": "heller", "nl": "abri", "pl": "koleba skalna", "sk": "abri", + "sl": "spodmol", "uk": "колиба", "zh": "岩棚" } @@ -48101,13 +54212,12 @@ "fa": "ممنوعیت استعمال دخانیات", "fr": "interdiction de fumer", "hr": "zabrana pušenja", - "hu": "dohányzási tilalom", + "hu": "dohányozni tilos", "id": "larangan merokok", "it": "legge antifumo", "ja": "禁煙", "ko": "금연", "lv": "smēķēšanas ierobežošana", - "ms": "larangan merokok", "nb": "røykeforbud", "nl": "rookverbod", "pl": "zakaz palenia", @@ -48115,6 +54225,7 @@ "ru": "запрет на курение", "sk": "zákaz fajčenia", "sl": "prepoved kajenja", + "sq": "ndalimi i pirjes së duhanit", "sv": "rökförbud", "uk": "палити заборонено", "zh": "禁煙", @@ -48135,7 +54246,8 @@ "pt": "permitido fumar", "ru": "курение разрешено", "sl": "kajenje dovoljeno", - "uk": "паління дозволене" + "uk": "паління дозволене", + "zh": "允许吸烟" } }, "social_facility": { @@ -48154,9 +54266,10 @@ "fa": "خانه سالمندان", "fi": "vanhainkoti", "fr": "maison de retraite", + "ga": "áras seanóirí", "he": "בית אבות", "hr": "starački dom", - "hu": "öregek otthona", + "hu": "nyugdíjasotthon", "id": "panti werdha", "it": "casa di riposo", "ja": "リタイヤメント・ホーム", @@ -48166,19 +54279,27 @@ "nb": "aldershjem", "nl": "verzorgingshuis", "pl": "dom opieki", - "pt": "casa de retiro", + "pt": "estrutura residencial para pessoas idosas", + "pt-br": "casa de retiro", "ru": "дом престарелых", "sl": "dom starejših občanov", + "sq": "shtëpia e pleqve", "sv": "äldreboende", "ta": "முதியோர் இல்லம்", "uk": "геріатричний пансіонат", "ur": "دار المعمرین", + "vi": "nhà hưu trí", "zh": "老人院" }, + "clothing_bank": { + "en": "clothes bank", + "nl": "kledingbank" + }, "food_bank": { "ar": "بنك الطعام", "ca": "banc dels aliments", "cs": "potravinová banka", + "cy": "banc bwyd", "de": "tafel", "el": "τράπεζα τροφίμων", "en": "food bank", @@ -48187,6 +54308,7 @@ "fa": "بانک غذا", "fi": "ruokapankki", "fr": "banque alimentaire", + "gl": "banco de alimentos", "he": "בנק מזון", "hr": "die tafeln", "hu": "élelmiszerbank", @@ -48195,7 +54317,6 @@ "ja": "フードバンク", "ko": "푸드뱅크", "lt": "maisto bankas", - "ms": "bank makanan", "nb": "matsentral", "nl": "voedselbank", "pl": "bank żywności", @@ -48203,6 +54324,7 @@ "ro": "banca de alimente", "ru": "пищевой банк", "sl": "razdelilnica hrane", + "sq": "bankat ushqimore", "ta": "உணவு வைப்பகம்", "uk": "продовольчий банк", "vi": "ngân hàng thực phẩm", @@ -48213,27 +54335,34 @@ "ar": "التمريض المنزلي", "ca": "residència de gent gran", "cs": "dům s pečovatelskou službou", + "cy": "cartref nyrsio", "da": "sygehjem", "de": "pflegeheim", + "el": "γηροκομείο", "en": "nursing home", "es": "residencia geriátrica", "et": "hooldekodu", "fa": "آسایشگاه", "fi": "hoitokoti", "fr": "établissement médico-social", + "ga": "ionad altranais", + "gl": "residencia de maiores", + "he": "בית אבות", "hi": "नर्सिंग होम", - "hu": "idősek otthona", + "hu": "ápolóotthon", "id": "rumah perawatan", "it": "casa di riposo", "ja": "ナーシングホーム", "nb": "sykehjem", "nl": "verpleeghuis", "pl": "dom pomocy społecznej", + "ru": "дом для инвалидов и пенсионеров", "sl": "negovalni dom", "sv": "vårdhem", "tr": "huzurevi", "vi": "viện dưỡng lão", - "zh": "介護老人福祉設施" + "zh": "介護老人福祉設施", + "zh-tw": "長期照護機構" }, "outreach": { "en": "outreach", @@ -48244,6 +54373,7 @@ "ja": "アウトリーチ", "ko": "레이블 입력", "nb": "offentlighetsarbeide", + "pt": "extensão", "sl": "ozaveščanje", "sv": "publikarbete", "uk": "аутріч", @@ -48260,47 +54390,17 @@ "en-gb": "schuko", "et": "f-tüüp", "fa": "شوکو", + "gl": "schuko", "he": "צ'וקו", "ko": "차데모", - "ms": "schuko", "pt": "schuko", "ru": "schuko", - "sl": "šuko", "tr": "schuko", "uk": "schuko", "vi": "schuko" } }, "source": { - "": { - "ar": "24 مارس 2014", - "ca": "24 de març del 2014", - "cs": "24. březen 2014", - "de": "24. märz 2014", - "en": "march 24, 2014", - "en-gb": "24 march 2014", - "es": "24 de marzo de 2014", - "fa": "۲۴ مارس ۲۰۱۴", - "fi": "24. maaliskuuta 2014", - "fr": "24 mars 2014", - "hi": "२४ मार्च २०१४", - "it": "24 marzo 2014", - "ja": "2014年3月24日", - "kn": "೨೪ ಮಾರ್ಚ್ ೨೦೧೪", - "ko": "2014년 3월 24일", - "ml": "24 മാർച്ച് 2014", - "mr": "२४ मार्च २०१४", - "nl": "24 maart 2014", - "pt": "24 de março de 2014", - "ru": "24 марта 2014 года", - "sv": "24 mars 2014", - "ta": "24 மார்ச் 2014", - "th": "24 มีนาคม 2557", - "tr": "24 mart 2014", - "ur": "24 مارچ 2014ء", - "vi": "24 tháng 3 năm 2014", - "zh": "2014年3月24日" - }, "BAG": { "ar": "سجلات عناوين أساسية", "de": "basisregister adressen und gebäude", @@ -48315,7 +54415,7 @@ "en": "bing maps", "es": "bing mapas", "fa": "نقشههای بینگ", - "fr": "microsoft bing cartes", + "fr": "bing cartes", "ko": "빙 맵스", "nl": "microsoft bing maps", "pl": "microsoft bing maps", @@ -48332,6 +54432,7 @@ "es": "el programa de satélite de recursos terrestres china-brasil", "fi": "cbers", "fr": "china-brazil earth resources satellite program", + "gl": "cbers", "it": "cbers", "ja": "中国・ブラジル地球資源衛星", "pl": "china-brazil earth resources satellite", @@ -48346,12 +54447,20 @@ }, "Funai": { "ar": "المؤسسة الوطنية للسكان الأصليين", - "en": "fundação nacional do índio", - "fr": "fondation nationale de l'indien", + "ca": "fundação nacional do índio", + "de": "nationale behörde für indigene", + "en": "national indigenous people foundation", + "es": "fundación nacional de los pueblos indígenas", + "fr": "fondation nationale des peuples indigènes", + "gl": "fundación nacional dos povos indíxenas", "he": "המוסד הלאומי למען האינדיאנים", "hr": "funai", + "it": "fondazione nazionale dei popoli indigeni", "ja": "国立先住民保護財団", "nb": "funai", + "nl": "fundação nacional do índio", + "pt": "fundação nacional dos povos indígenas", + "pt-br": "fundação nacional do índio", "ru": "funai", "uk": "національний індіанський фонд", "zh": "国家印第安人基金会" @@ -48363,10 +54472,12 @@ "bg": "глобална система за позициониране", "ca": "sistema de posicionament global", "en": "global positioning system", - "es": "sistema de posicionamiento global", + "es": "geoposicionador satelital", "et": "gps", "fa": "سامانه موقعیتیاب جهانی", "fi": "gps", + "ga": "córas suite domhanda", + "gl": "sistema de posicionamento global", "he": "gps", "hi": "ग्लोबल पोजीशनिंग प्रणाली", "id": "sistem pemosisi global", @@ -48378,12 +54489,13 @@ "lv": "globālā pozicionēšanas sistēma", "ml": "ഗ്ലോബൽ പൊസിഷനിങ് സിസ്റ്റം", "mr": "ग्लोबल पोझिशनिंग सिस्टीम", - "ms": "sistem kedudukan sejagat", "pt": "sistema de posicionamento global", "ru": "gps", "sk": "globálny lokalizačný systém", "sl": "gps", + "sq": "gps", "ta": "புவியிடங்காட்டி", + "te": "భౌగోళిక స్థాన వ్యవస్థ", "th": "จีพีเอส", "tr": "gps", "uk": "gps", @@ -48415,6 +54527,7 @@ "zh-cn": "巴西国家地理与统计局" }, "ICMBio": { + "ca": "institut chico mendes per a la conservació de la biodiversitat", "de": "instituto chico mendes de conservação da biodiversidade", "en": "chico mendes institute for biodiversity conservation", "es": "instituto chico mendes para la conservación de la biodiversidad", @@ -48435,7 +54548,9 @@ "ca": "institut geogràfic nacional d'espanya", "cs": "národní geografický institut", "en": "instituto geográfico nacional", - "fr": "institut géographique national (espagne)", + "fr": "institut géographique national", + "gl": "instituto xeográfico nacional", + "it": "instituto geográfico nacional de españa", "ja": "スペイン国立地理研究所", "pt": "instituto geográfico nacional da espanha", "zh": "國家地理研究所" @@ -48444,10 +54559,11 @@ "cs": "norský úřad pro mapování a katastr", "da": "statens kartverk", "de": "kartverket", - "en": "norwegian mapping and cadastre authority", + "en": "norwegian mapping authority", "fi": "kartverket", "fr": "kartverket", "he": "רשות ממשלתית למיפוי ולקדסטר של נורווגיה", + "hu": "norvég térképészeti hivatal", "nb": "statens kartverk", "nl": "noorse cartografische en kadaster autoriteit", "ru": "государственная служба картографии и кадастра норвегии", @@ -48476,6 +54592,7 @@ "en": "national aerial orthophotography plan", "es": "plan nacional de ortofotografía aérea", "fr": "plan national d'orthophotographie aérienne", + "gl": "pnoa", "id": "plan nacional de ortofotografía aérea", "it": "plan nacional de ortofotografía aérea", "nl": "plan nacional de ortofotografía aérea", @@ -48486,19 +54603,15 @@ "Yahoo": { "ar": "شركة ياهو", "ca": "yahoo! inc. (2017-actualitat)", - "de": "verizon media", + "de": "yahoo", "en": "yahoo inc.", "fa": "یاهو", "id": "yahoo! (perusahaan)", - "it": "oath", "ja": "ヴェライゾン・メディア", "ko": "오아츠", - "lv": "oath", - "pl": "verizon media", - "pt": "oath", + "pt": "yahoo", "ru": "yahoo! inc.", - "vi": "truyền thông verizon", - "zh": "威訊媒體" + "zh": "雅虎公司" }, "aerial_imagery": { "ar": "تصوير جوي", @@ -48515,6 +54628,7 @@ "fa": "عکاسی هوایی", "fi": "ilmavalokuvaus", "fr": "photographie aérienne", + "ga": "aerghrianghrafadóireacht", "he": "צילום אוויר", "hr": "zračna fotografija", "hu": "légi fotózás", @@ -48523,7 +54637,6 @@ "ja": "空中写真", "ko": "항공 사진", "lt": "aeronuotrauka", - "ms": "fotografi udara", "nb": "flyfotografi", "nl": "luchtfotografie", "pl": "aerofotografia", @@ -48532,6 +54645,7 @@ "ru": "аэрофотосъёмка", "sk": "letecké fotografovanie", "sl": "zračna fotografija", + "sq": "fotografia ajrore", "sv": "flygfotografering", "ta": "வான் ஒளிப்படவியல்", "th": "แป้นพิมพ์เกษมณี", @@ -48552,12 +54666,12 @@ "id": "pengetahuan umum", "ja": "一般的な知識", "ko": "상식", - "ms": "pengetahuan umum", + "lv": "parastas zināšanas", "nl": "algemeen bekend", "pl": "wiedza wspólna", "pt": "conhecimento geral", "ru": "общеизвестный факт", - "sl": "običajno znanje", + "sl": "splošno sprejeto znanje", "sv": "allmän kännedom", "zh": "常識" }, @@ -48570,7 +54684,6 @@ }, "esri": { "ar": "إسري", - "de": "environmental systems research institute", "el": "arc map", "en": "esri", "fa": "ازری", @@ -48623,6 +54736,7 @@ "en": "technisches hilfswerk", "fa": "سازمان کمک فنی", "ja": "技術支援隊", + "ru": "организация технической помощи", "sk": "bundesanstalt technisches hilfswerk", "zh": "联邦技术救援局" }, @@ -48645,12 +54759,14 @@ "zh": "聖保羅州軍事警察" }, "survey": { - "ar": "الحقيقة الأرضية", + "ar": "حقيقة أساسية", "ca": "veritat terreny", "el": "εδαφική αλήθεια", "en": "ground truth", "es": "verdad fundamental", "fa": "واقعیت زمینی", + "fr": "vérité issue du terrain", + "nl": "waarheid op het terrein", "pt": "verdade no solo", "sl": "terenski podatki", "zh": "基準真相", @@ -48664,454 +54780,79 @@ "species": { "": { "ar": "دردار باسق", + "cy": "llwyfen lloegr", "de": "englische ulme", "en": "ulmus procera", + "ga": "leamhán gallda", "nl": "engelse veldiep" }, + "Aesculus × carnea": { + "bg": "aesculus ×carnea", + "cs": "jírovec pleťový", + "cy": "castanwydden-y-meirch goch", + "da": "rød hestekastanje", + "de": "fleischrote rosskastanie", + "en": "aesculus × carnea", + "fi": "punahevoskastanja", + "fr": "marronnier à fleurs rouges", + "ga": "aesculus ×carnea", + "gl": "aesculus ×carnea", + "hr": "crvenocvjetni kesten", + "hu": "hússzínű vadgesztenye", + "ja": "ベニバナトチノキ", + "nb": "rød hestekastanje", + "nl": "rode paardenkastanje", + "pl": "kasztanowiec czerwony", + "pt": "aesculus ×carnea", + "ro": "aesculus ×carnea", + "ru": "конский каштан мясо-красный", + "sq": "aesculus ×carnea", + "sv": "rödblommig hästkastanj", + "tr": "kırmızı çiçekli at kestanesi", + "uk": "гіркокаштан криваво-м'ясний", + "vi": "aesculus ×carnea", + "zh": "红花七叶树", + "zh-tw": "紅花七葉樹" + }, + "Platanus × hispanica": { + "ar": "دلب هسباني", + "bg": "platanus ×hispanica", + "ca": "plàtan", + "cs": "platan javorolistý", + "cy": "planwydden llundain", + "da": "almindelig platan", + "de": "ahornblättrige platane", + "el": "πλάτανος του λονδίνου", + "en": "platanus × hispanica", + "fa": "چنار دورگه", + "fi": "puistoplataani", + "fr": "platane commun", + "ga": "plána londan", + "gl": "plátano común", + "hr": "javorolisna platana", + "hu": "közönséges platán", + "ja": "モミジバスズカケノキ", + "lt": "klevalapis platanas", + "nb": "londonplatan", + "nl": "gewone plataan", + "pl": "platan klonolistny", + "ro": "platanus ×hispanica", + "ru": "платан клёнолистный", + "sk": "platan javorolistý", + "sq": "platanus ×hispanica", + "sv": "platanus hybrida", + "tr": "londra çınarı", + "uk": "платан лондонський", + "vi": "platanus × acerifolia", + "zh": "英桐" + }, "Ulmus_procera": { "ar": "دردار باسق", + "cy": "llwyfen lloegr", "de": "englische ulme", "en": "ulmus procera", + "ga": "leamhán gallda", "nl": "engelse veldiep" - }, - "acer_monspessulanum": { - "ar": "قيقب مونبلييه", - "bg": "маклен", - "ca": "auró negre", - "cs": "javor francouzský", - "de": "französischer ahorn", - "en": "acer monspessulanum", - "et": "prantsuse vaher", - "fa": "کیکم", - "fi": "ranskanvaahtera", - "fr": "érable de montpellier", - "he": "אדר קטן-עלים", - "hr": "maklen", - "ja": "フランスモミジ", - "nb": "fransklønn", - "nl": "montpelieresdoorn", - "pl": "klon francuski", - "pt": "zelha", - "ru": "клён трёхлопастный", - "sl": "trokrpi javor", - "sv": "dvärglönn", - "vi": "phong montpellier" - }, - "aesculus_hippocastanum": { - "ar": "كستناء الحصان", - "be": "конскі каштан звычайны", - "bg": "обикновен конски кестен", - "ca": "castanyer d'índia comú", - "cs": "jírovec maďal", - "da": "almindelig hestekastanje", - "de": "gewöhnliche rosskastanie", - "el": "αγριοκαστανιά", - "en": "aesculus hippocastanum", - "et": "harilik hobukastan", - "fa": "شاهبلوط هندی", - "fi": "hevoskastanja", - "fr": "aesculus hippocastanus", - "he": "ערמונית הסוסים", - "hr": "divlji kesten", - "hu": "közönséges vadgesztenye", - "ja": "セイヨウトチノキ", - "ko": "마로니에", - "lt": "paprastasis kaštonas", - "lv": "parastā zirgkastaņa", - "nb": "hestekastanje", - "nl": "witte paardenkastanje", - "pl": "kasztanowiec zwyczajny", - "pt": "castanheiro-da-índia", - "ro": "castan sălbatic", - "ru": "конский каштан обыкновенный", - "sk": "pagaštan konský", - "sl": "navadni divji kostanj", - "sv": "hästkastanj", - "tr": "beyaz çiçekli at kestanesi", - "uk": "гіркокаштан звичайний", - "zh": "欧洲七叶树", - "zh-tw": "歐洲七葉樹" - }, - "cedrus_libani": { - "ar": "أرز لبناني", - "be": "кедр ліванскі", - "bg": "ливански кедър", - "ca": "cedre del líban", - "cs": "cedr libanonský", - "da": "libanon-ceder", - "de": "libanon-zeder", - "el": "κέδρος του λιβάνου", - "en": "cedrus libani", - "et": "liibanoni seeder", - "fa": "سدر", - "fi": "libanoninsetri", - "fr": "cèdre du liban", - "he": "ארז הלבנון", - "hr": "libanonski cedar", - "hu": "libanoni cédrus", - "id": "aras lebanon", - "ja": "レバノンスギ", - "ko": "레바논시다", - "lt": "libano kedras", - "lv": "libānas ciedrs", - "ml": "സെഡ്രസ് ലിബാനി", - "nb": "libanonseder", - "nl": "libanonceder", - "pl": "cedr libański", - "pt": "cedro-do-líbano", - "ru": "кедр ливанский", - "sl": "libanonska cedra", - "ta": "லெபனான் தேவதாரு", - "tr": "lübnan sediri", - "uk": "ліванський кедр", - "vi": "tuyết tùng liban", - "zh": "黎巴嫩雪松" - }, - "cercis_siliquastrum": { - "ar": "زمزريق أثيبي", - "bg": "дърво на юда", - "ca": "arbre de l'amor", - "cs": "zmarlika jidášova", - "da": "judastræ", - "de": "gewöhnlicher judasbaum", - "el": "κουτσουπιά", - "en": "cercis siliquastrum", - "et": "harilik juudapuu", - "fa": "ارغوان", - "fi": "juudaksenpuu", - "fr": "arbre de judée", - "he": "כליל החורש", - "hr": "judić", - "hu": "közönséges júdásfa", - "ja": "セイヨウハナズオウ", - "ko": "박태기나무", - "ml": "സെർസിസ് സെലിക്വാസ്ട്രം", - "nb": "judastre", - "nl": "judasboom", - "pl": "judaszowiec południowy", - "pt": "olaia", - "ro": "arborele iudei", - "ru": "багрянник европейский", - "sl": "navadni jadikovec", - "sv": "judasträd", - "tr": "erguvan", - "zh": "南欧紫荆" - }, - "cocos_nucifera": { - "af": "kokospalm", - "ar": "جوز الهند", - "be": "какосавая пальма", - "bg": "кокосова палма", - "ca": "cocoter", - "cs": "kokosovník ořechoplodý", - "da": "kokospalme", - "de": "kokospalme", - "el": "κοκοφοίνικας", - "en": "cocos nucifera", - "en-ca": "coconut", - "en-gb": "coconut tree", - "et": "kookospalm", - "fa": "نارگیل", - "fi": "kookospalmu", - "fr": "cocotier", - "he": "קוקוס", - "hi": "नारियल", - "hr": "kokosova palma", - "hu": "kókuszpálma", - "id": "kelapa", - "ja": "ココヤシ", - "kn": "ತೆಂಗಿನಕಾಯಿ", - "ko": "코코야자", - "lt": "riešutinė kokospalmė", - "lv": "kokospalma", - "ml": "തെങ്ങ്", - "mr": "नारळ", - "ms": "kelapa", - "nb": "kokospalme", - "nl": "kokospalm", - "pl": "kokos właściwy", - "pt": "coqueiro", - "ro": "cocotier", - "ru": "кокосовая пальма", - "sk": "kokosovník", - "sl": "navadna kokosova palma", - "sv": "kokospalm", - "ta": "தேங்காய்", - "th": "มะพร้าว", - "tr": "hindistan cevizi", - "uk": "кокосова пальма", - "ur": "ناریل", - "vi": "dừa", - "zh": "椰子", - "zh-tw": "可可椰子" - }, - "cortaderia_selloana": { - "ar": "أشيرية سلوفية", - "cs": "kortaderie dvoudomá", - "da": "pampasgræs", - "de": "amerikanisches pampasgras", - "en": "cortaderia selloana", - "fr": "herbe de la pampa", - "he": "קורטדריה מכסיפה", - "hu": "ezüstös pampafű", - "ja": "シロガネヨシ", - "ko": "팜파스풀", - "lt": "argentininė kortaderija", - "nb": "pampasgress", - "nl": "pampasgras", - "ru": "пампасная трава", - "sl": "pampaška trava", - "sv": "pampasgräs", - "zh": "蒲苇", - "zh-tw": "蒲葦" - }, - "dracaena_draco": { - "ar": "أيدع تنيني", - "bg": "канарско драконово дърво", - "cs": "dračinec dračí", - "da": "drageblodstræ (dracaena draco)", - "en": "dracaena draco", - "es": "dracaena drago", - "fa": "درخت اژدهای جزایر قناری", - "fi": "kanariantraakkipuu", - "fr": "dragonnier des canaries", - "he": "דרקונית קנרית", - "hu": "kanári sárkányfa", - "ja": "リュウケツジュ", - "ko": "용혈수", - "ml": "ഡ്രാഗൺസ് ബ്ലഡ് ട്രീ", - "nb": "draketre", - "nl": "drakenbloedboom", - "pl": "dracena smocza", - "pt": "dragoeiro", - "ro": "dragonier", - "ru": "драконово дерево", - "sv": "drakblodsträd", - "ta": "மிகவும் வயதான மரம்", - "uk": "драконове дерево", - "zh": "加那利龙血树", - "zh-cn": "龙血树", - "zh-tw": "龍血樹" - }, - "fraxinus_angustifolia": { - "af": "smalblaaresseboom", - "ar": "مران رفيع الأوراق", - "bg": "полски ясен", - "ca": "freixe de fulla petita", - "cs": "jasan úzkolistý", - "da": "smalbladet ask", - "de": "schmalblättrige esche", - "el": "φράξος", - "en": "fraxinus angustifolia", - "fi": "etelänsaarni", - "he": "מילה חדת עלים", - "hr": "poljski jasen", - "hu": "keskenylevelű kőris", - "ja": "ホソバトネリコ", - "nb": "smalbladask", - "nl": "smalbladige es", - "pl": "jesion wąskolistny", - "sv": "smalbladig ask", - "tr": "sivri meyveli dişbudak" - }, - "monstera_deliciosa": { - "af": "geraamteplant", - "ar": "قشطة دندروم", - "be": "манстэра прывабная", - "cs": "monstera skvostná", - "da": "fingerfilodendron", - "de": "köstliches fensterblatt", - "en": "monstera deliciosa", - "et": "meeldiv monstera", - "fa": "برگ انجیری", - "fi": "jättipeikonlehti", - "fr": "faux philodendron", - "hu": "könnyezőpálma", - "id": "ceriman", - "ja": "ホウライショウ", - "ko": "몬스테라", - "lt": "nuostabioji monstera", - "nb": "adams ribbein", - "nl": "gatenplant", - "pl": "monstera dziurawa", - "pt": "costela-de-adão", - "ru": "монстера деликатесная", - "sk": "monstera skvelá", - "sv": "monstera", - "uk": "монстера делікатесна", - "zh": "龟背竹", - "zh-hk": "龜背竹", - "zh-tw": "龜背芋" - }, - "pinus_jeffrey": { - "cs": "borovice jeffreyova", - "de": "jeffreys kiefer", - "en": "pinus jeffreyi", - "et": "jeffrey mänd", - "fi": "jeffreynmänty", - "fr": "pin de jeffrey", - "he": "אורן ג'פרי", - "hu": "nagytobozú sárgafenyő", - "ja": "ジェフリーマツ", - "pl": "sosna jeffreya", - "ru": "сосна жеффрея", - "uk": "сосна жеффрея", - "zh": "杰弗瑞松", - "zh-cn": "杰弗里松" - }, - "pinus_mugo": { - "ar": "صنوبر قزمي", - "be": "хвоя горная", - "bg": "клек", - "cs": "borovice kleč", - "da": "bjergfyr", - "de": "bergkiefer", - "en": "pinus mugo", - "et": "mägimänd", - "fa": "کاج مشهد", - "fi": "vuorimänty", - "he": "אורן ההרים", - "hr": "planinski bor", - "hu": "havasi törpefenyő", - "id": "tusam gunung", - "ja": "モンタナマツ", - "lt": "kalninė pušis", - "nb": "buskfuru", - "pl": "kosodrzewina", - "ro": "jneapăn", - "ru": "сосна горная", - "sk": "borovica horská", - "sl": "rušje", - "sv": "bergtall", - "tr": "dağ çamı", - "uk": "сосна гірська", - "zh": "歐洲山松", - "zh-cn": "中欧山松" - }, - "pinus_sabiniana": { - "ar": "صنوبر أشيب", - "de": "weiß-kiefer", - "en": "pinus sabiniana", - "et": "sabine'i mänd", - "fa": "کاج کوهپایه", - "he": "אורן סבין", - "pt": "pinus sabineana", - "ru": "сосна сабина" - }, - "prunus_dulcis": { - "af": "amandel", - "ar": "لوز", - "be": "міндаль", - "bg": "бадем", - "cs": "mandloň obecná", - "da": "mandel", - "el": "αμυγδαλιά", - "en": "prunus dulcis", - "en-ca": "almond", - "en-gb": "almond", - "es": "almendro", - "et": "harilik mandlipuu", - "fa": "بادام", - "fi": "manteli", - "fr": "amandier", - "he": "שקד מצוי", - "hi": "बादाम का पेड", - "hr": "badem", - "hu": "mandula", - "id": "badam", - "it": "mandorlo", - "ja": "アーモンド", - "kn": "ಬಾದಾಮಿ", - "ko": "아몬드", - "lt": "migdolas", - "lv": "parastā mandele", - "ml": "ബദാം", - "ms": "badam", - "nb": "mandel", - "nl": "amandelboom", - "pl": "migdałowiec pospolity", - "pt": "amendoeira", - "ru": "миндаль", - "sk": "mandľa obyčajná", - "sl": "mandljevec", - "sv": "mandel", - "ta": "வாதுமை", - "th": "อัลมอนด์", - "tr": "badem", - "uk": "мигдаль", - "ur": "بادام", - "vi": "hạnh đào", - "zh": "八担杏" - }, - "quercus_robur": { - "af": "steeleik", - "ar": "سنديان قوي", - "be": "дуб звычайны", - "bg": "обикновен дъб", - "ca": "roure pènol", - "cs": "dub letní", - "da": "stilk-eg", - "de": "stieleiche", - "el": "ρουπακοβελανιδιά", - "en": "quercus robur", - "et": "harilik tamm", - "fa": "بلوط قرمز اروپایی", - "fi": "tammi", - "fr": "chêne pédonculé", - "he": "אלון אנגלי", - "hr": "hrast lužnjak", - "hu": "kocsányos tölgy", - "ja": "ヨーロッパナラ", - "ko": "로부르참나무", - "lt": "paprastasis ąžuolas", - "lv": "parastais ozols", - "nb": "sommereik", - "nl": "zomereik", - "pl": "dąb szypułkowy", - "pt": "carvalho-roble", - "ro": "stejar", - "ru": "дуб черешчатый", - "sk": "dub letný", - "sl": "dob", - "sv": "ek", - "tr": "saplı meşe", - "uk": "дуб звичайний", - "zh": "夏栎", - "zh-hk": "夏櫟", - "zh-tw": "夏櫟" - }, - "sequoia_sempervirens": { - "af": "rooihoutboom", - "ar": "سيكويا دائمة الخضرة", - "be": "секвоя", - "bg": "секвоя", - "cs": "sekvoj vždyzelená", - "da": "rødtræ", - "de": "küstenmammutbaum", - "el": "σεκόγια", - "en": "sequoia sempervirens", - "et": "ranniksekvoia", - "fa": "سکویای همیشه سبز", - "fi": "jättiläispunapuu", - "he": "סקוויה נאה", - "hr": "obalna sekvoja", - "hu": "tengerparti mamutfenyő", - "ja": "セコイア", - "ko": "세쿼이아", - "lt": "visžalė sekvoja", - "lv": "mūžzaļā sekvoja", - "nb": "kystsequoia", - "nl": "kustmammoetboom", - "pl": "sekwoja wieczniezielona", - "ru": "секвойя вечнозелёная", - "sk": "sekvoja vždyzelená", - "sl": "obalna sekvoja", - "sv": "amerikansk sekvoja", - "ta": "கலிபோர்னியா செம்மரம்", - "tr": "sekoya", - "uk": "секвоя вічнозелена", - "zh": "紅杉", - "zh-cn": "红杉" } }, "sport": { @@ -49121,6 +54862,7 @@ "bg": "боулинг", "ca": "bowling de deu", "cs": "bowling", + "cy": "bowlio deg", "da": "bowling", "de": "bowling", "el": "μπόουλινγκ", @@ -49130,6 +54872,7 @@ "fa": "بولینگ", "fi": "keilailu", "fr": "bowling", + "gl": "birlos", "he": "כדורת", "hr": "kuglanje", "hu": "bowling", @@ -49139,12 +54882,10 @@ "ko": "볼링", "lt": "boulingas", "lv": "boulings", - "ms": "boling sepuluh pin", "nb": "bowling", "nl": "bowlen", "pl": "kręgle", - "pt": "bowling", - "pt-br": "boliche", + "pt": "boliche", "ro": "bowling", "ru": "10-кегельный боулинг", "sk": "bowling", @@ -49161,10 +54902,12 @@ "zh-tw": "保齡球" }, "8pin": { + "ar": "البولنغ الثمانية (بثمانية قوارير)", "en": "eight-pin bowling", "fr": "quilles de huit" }, "9pin": { + "ar": "البولنغ التساعية (بتسعة قوارير)", "cs": "kuželky", "da": "keglespil", "de": "kegeln", @@ -49173,6 +54916,7 @@ "en-gb": "skittles", "es": "bolos", "fr": "jeu de neuf quilles", + "gl": "bolos", "hu": "teke", "ja": "ケーゲル", "nb": "kjeglespill", @@ -49187,10 +54931,23 @@ "zh": "9瓶制保齡球", "zh-cn": "九柱戏" }, + "CrossFit": { + "ar": "كروس فت", + "bg": "кросфит", + "en": "crossfit", + "fa": "کراس فیت", + "he": "קרוספיט", + "ja": "クロスフィット", + "ko": "크로스핏", + "lt": "krosfitas", + "ru": "кроссфит", + "uk": "кросфіт" + }, "aikido": { - "ar": "أيكيدو", + "ar": "الآيكيدو", "be": "айкідо", "bg": "айкидо", + "cy": "aicido", "de": "aikidō", "el": "αϊκίντο", "en": "aikido", @@ -49198,6 +54955,7 @@ "et": "aikidō", "fa": "آیکیدو", "fr": "aïkido", + "ga": "aicíodó", "he": "אייקידו", "hi": "अकिदो", "hu": "aikidó", @@ -49232,6 +54990,7 @@ "bg": "американски футбол", "ca": "futbol americà", "cs": "americký fotbal", + "cy": "pêl-droed americanaidd", "da": "amerikansk fodbold", "el": "αμερικανικό ποδόσφαιρο", "en": "american football", @@ -49240,11 +54999,14 @@ "fa": "فوتبال آمریکایی", "fi": "amerikkalainen jalkapallo", "fr": "football américain", + "ga": "peil mheiriceánach", + "gd": "ball-coise aimearaganach", + "gl": "fútbol americano", "he": "פוטבול", "hi": "अमेरिकी फ़ुटबॉल", "hr": "američki nogomet", "hu": "amerikaifutball", - "id": "sepak bola amerika", + "id": "futbol", "it": "football americano", "ja": "アメリカンフットボール", "kn": "ಅಮೇರಿಕದ ಫುಟ್ಬಾಲ್", @@ -49253,7 +55015,6 @@ "lv": "amerikāņu futbols", "ml": "അമേരിക്കൻ ഫുട്ബോൾ", "mr": "अमेरिकन फुटबॉल", - "ms": "bola sepak amerika", "nb": "amerikansk fotball", "pl": "futbol amerykański", "pt": "futebol americano", @@ -49261,6 +55022,7 @@ "ru": "американский футбол", "sk": "americký futbal", "sl": "ameriški nogomet", + "sq": "futboll amerikan", "sv": "amerikansk fotboll", "ta": "அமெரிக்கக் காற்பந்தாட்டம்", "th": "อเมริกันฟุตบอล", @@ -49274,11 +55036,12 @@ }, "archery": { "af": "boogskiet", - "ar": "نبالة", + "ar": "القوس والسهم", "be": "стральба з лука", "bg": "стрелба с лък", "ca": "tir amb arc", "cs": "lukostřelba", + "cy": "saethyddiaeth", "da": "bueskydning", "de": "bogenschießen", "de-ch": "bogenschiessen", @@ -49289,6 +55052,8 @@ "fa": "تیراندازی با کمان", "fi": "jousiammunta", "fr": "tir à l'arc", + "ga": "boghdóireacht", + "gl": "tiro con arco", "he": "קשתות", "hi": "धनुर्विद्या", "hr": "streličarstvo", @@ -49301,7 +55066,6 @@ "lv": "loka šaušana", "ml": "അമ്പെയ്ത്ത്", "mr": "तिरंदाजी", - "ms": "memanah", "nb": "bueskyting", "nl": "boogschieten", "pl": "łucznictwo", @@ -49310,8 +55074,10 @@ "ru": "стрельба из лука", "sk": "lukostreľba", "sl": "lokostrelstvo", + "sq": "gjuajtja me hark", "sv": "bågskytte", "ta": "வில்வித்தை", + "te": "విలువిద్య", "th": "การยิงธนู", "tr": "okçuluk", "uk": "стрільба з лука", @@ -49326,6 +55092,7 @@ "bg": "лека атлетика", "ca": "atletisme", "cs": "atletika", + "cy": "athletau", "da": "atletik", "de": "leichtathletik", "el": "στίβος", @@ -49335,6 +55102,8 @@ "fa": "دو و میدانی", "fi": "yleisurheilu", "fr": "athlétisme", + "ga": "lúthchleasaíocht", + "gl": "atletismo", "he": "אתלטיקה", "hi": "एथलेटिक्स", "hr": "atletika", @@ -49347,7 +55116,6 @@ "lv": "vieglatlētika", "ml": "അത്ലെറ്റിക്സ്", "mr": "अॅथलेटिक्स", - "ms": "olahraga", "nb": "friidrett", "nl": "atletiek", "pl": "lekkoatletyka", @@ -49356,8 +55124,10 @@ "ru": "лёгкая атлетика", "sk": "atletika", "sl": "atletika", + "sq": "atletika", "sv": "friidrott", "ta": "தட கள விளையாட்டுக்கள்", + "te": "అథ్లెటిక్స్ (క్రీడ)", "th": "กรีฑา", "tr": "atletizm", "uk": "легка атлетика", @@ -49373,6 +55143,7 @@ "bg": "австралийски футбол", "ca": "futbol australià", "cs": "australský fotbal", + "cy": "pêl-droed rheolau awstralaidd", "da": "australsk fodbold", "de": "australian football", "el": "αυστραλιανό ποδόσφαιρο", @@ -49381,6 +55152,9 @@ "fa": "فوتبال استرالیایی", "fi": "australialainen jalkapallo", "fr": "football australien", + "ga": "peil astrálach", + "gd": "riaghailtean astràilianach", + "gl": "fútbol australiano", "he": "פוטבול אוסטרלי", "hi": "ऑस्ट्रेलियाई फ़ुटबॉल", "hr": "australski nogomet", @@ -49392,7 +55166,6 @@ "lt": "australiškasis futbolas", "lv": "austrāliešu futbols", "mr": "ऑस्ट्रेलियन फुटबॉल", - "ms": "bola sepak australia", "nb": "australsk fotball", "nl": "australian football", "pl": "futbol australijski", @@ -49409,6 +55182,23 @@ "vi": "bóng bầu dục úc", "zh": "澳式足球" }, + "axe_throwing": { + "ar": "رمي الفأس", + "ca": "llençament de destral", + "de": "axtwerfen", + "en": "axe throwing", + "es": "hacha arrojadiza", + "fi": "kirveenheitto", + "fr": "lancer de hache", + "it": "tiro con l'ascia", + "ja": "斧投げ", + "nl": "bijlwerpen", + "pl": "rzucanie siekierami", + "ru": "метание топора", + "sl": "sekiromet", + "sv": "yxkastning", + "zh": "飛斧" + }, "badminton": { "af": "pluimbal", "ar": "الريشة الطائرة", @@ -49421,11 +55211,13 @@ "et": "sulgpall", "fa": "بدمینتون", "fi": "sulkapallo", + "ga": "badmantan", + "gd": "badmantan", + "gl": "bádminton", "he": "בדמינטון", "hi": "बैडमिंटन", "hu": "tollaslabda", "id": "bulu tangkis", - "it": "volano", "ja": "バドミントン", "kn": "ಬ್ಯಾಡ್ಮಿಂಟನ್", "ko": "배드민턴", @@ -49436,7 +55228,9 @@ "pt": "badmínton", "ru": "бадминтон", "sk": "bedminton", + "sq": "badmintoni", "ta": "இறகுப்பந்தாட்டம்", + "te": "బాడ్మింటన్", "th": "แบดมินตัน", "uk": "бадмінтон", "ur": "بیڈمنٹن", @@ -49448,11 +55242,13 @@ "ar": "الباندي", "be": "хакей з мячом", "bg": "хокей с топка", + "cy": "bandi", "el": "μπάντι", "en": "bandy", "et": "jääpall", "fa": "باندی", "fi": "jääpallo", + "ga": "beaindí", "he": "בנדי", "hr": "bendi", "hu": "jéglabda", @@ -49469,6 +55265,7 @@ "base": { "af": "gaba spronge", "ca": "salt base", + "cy": "neidio base", "de": "base-jumping", "el": "'αλμα βάσης", "en": "base jumping", @@ -49497,11 +55294,15 @@ "be": "бейсбол", "bg": "бейзбол", "ca": "beisbol", + "cy": "pêl fas", "el": "μπέιζμπολ", "en": "baseball", "es": "béisbol", "et": "pesapall", "fa": "بیسبال", + "ga": "daorchluiche", + "gd": "ball-stèidhe", + "gl": "béisbol", "he": "בייסבול", "hi": "बेसबॉल", "hr": "bejzbol", @@ -49513,15 +55314,16 @@ "lv": "beisbols", "ml": "ബേസ്ബോൾ", "mr": "बेसबॉल", - "ms": "besbol", "nl": "honkbal", "pt": "basebol", "pt-br": "beisebol", "ru": "бейсбол", "sk": "bejzbal", "sl": "bejzbol", + "sq": "bejsbolli", "sv": "baseboll", "ta": "அடிப்பந்தாட்டம்", + "te": "బేస్బాల్", "th": "เบสบอล", "tr": "beyzbol", "uk": "бейсбол", @@ -49536,6 +55338,7 @@ "bg": "баскетбол", "ca": "basquetbol", "cs": "basketbal", + "cy": "pêl-fasged", "el": "καλαθοσφαίριση", "en": "basketball", "es": "baloncesto", @@ -49543,6 +55346,9 @@ "fa": "بسکتبال", "fi": "koripallo", "fr": "basket-ball", + "ga": "cispheil", + "gd": "ball-basgaid", + "gl": "baloncesto", "he": "כדורסל", "hi": "बास्केटबॉल", "hr": "košarka", @@ -49556,7 +55362,6 @@ "lv": "basketbols", "ml": "ബാസ്ക്കറ്റ്ബോൾ", "mr": "बास्केटबॉल", - "ms": "bola keranjang", "nl": "basketbal", "pl": "koszykówka", "pt": "basquetebol", @@ -49564,8 +55369,10 @@ "ru": "баскетбол", "sk": "basketbal", "sl": "košarka", + "sq": "basketbolli", "sv": "basket", "ta": "கூடைப்பந்தாட்டம்", + "te": "బాస్కెట్ బాల్", "th": "บาสเกตบอล", "tr": "basketbol", "uk": "баскетбол", @@ -49591,18 +55398,19 @@ "fa": "والیبال ساحلی", "fi": "rantalentopallo", "fr": "beach-volley", + "ga": "eitpheil trá", + "gl": "volei de praia", "he": "כדורעף חופים", "hi": "बीच वॉलीबॉल", "hr": "odbojka na pijesku", "hu": "strandröplabda", "id": "voli pantai", "it": "beach volley", - "ja": "ビーチバレー", + "ja": "ビーチバレーボール", "ko": "비치발리볼", "lt": "paplūdimio tinklinis", "lv": "pludmales volejbols", "ml": "ബീച്ച് വോളീബോൾ", - "ms": "bola tampar pantai", "nb": "sandvolleyball", "nl": "beachvolleybal", "pl": "siatkówka plażowa", @@ -49622,11 +55430,12 @@ }, "billiards": { "af": "biljart", - "ar": "بلياردو", + "ar": "رياضة بليارد", "be": "більярд", "bg": "билярд", "ca": "billar", "cs": "kulečník", + "cy": "biliards", "da": "billard", "de": "billard", "el": "μπιλιάρδο", @@ -49636,6 +55445,8 @@ "fa": "بیلیارد", "fi": "biljardi", "fr": "billard", + "gd": "billiard", + "gl": "billar", "he": "ביליארד", "hi": "बिलियर्ड्स", "hr": "biljar", @@ -49655,6 +55466,7 @@ "ru": "бильярд", "sk": "biliard", "sl": "biljard", + "sq": "bilardo", "sv": "biljard", "th": "บิลเลียด", "tr": "bilardo", @@ -49682,11 +55494,12 @@ }, "bobsleigh": { "af": "bobslee", - "ar": "زلاجة جماعية", + "ar": "الزلاجة الجماعية", "be": "бабслей", "bg": "бобслей", "ca": "bob", "cs": "bobování", + "cy": "bobsled", "da": "bobslæde", "de": "bobsport", "el": "αγωνιστικό έλκηθρο", @@ -49694,6 +55507,7 @@ "et": "bobisõit", "fa": "بابسلد", "fi": "rattikelkkailu", + "ga": "bobshleamhnán", "he": "מזחלות", "hr": "bob", "hu": "bob", @@ -49703,12 +55517,12 @@ "ko": "봅슬레이", "lt": "ledrogių sportas", "lv": "bobslejs", - "ms": "lumba kereta gelongsor", "nl": "bobsleeën", "pl": "bobsleje", "ro": "bob", "ru": "бобслей", "sk": "boby", + "sl": "bob", "sv": "bob", "tr": "bobsled", "uk": "бобслей", @@ -49726,7 +55540,7 @@ "ru": "боссабол" }, "boules": { - "ar": "بول", + "ar": "البوتشي", "ca": "esport de boles", "cs": "koulové sporty", "da": "petanquebane", @@ -49738,7 +55552,7 @@ "fr": "pétanquodrome", "hr": "boćanje", "hu": "golyósport", - "it": "bocciodromo", + "it": "campo da petanque", "ja": "ブールスポーツ", "ko": "불 (스포츠)", "lt": "bočė", @@ -49746,22 +55560,54 @@ "nl": "boulodrome", "pl": "bulodrom", "pt": "boules", - "ru": "корт для бочче", - "sl": "balinanje", + "ru": "площадка для петанка", + "sl": "igrišče za petanko", "sv": "boulebana", "tr": "boules", "uk": "бочче", "zh": "地擲球", "zh-cn": "滚木球" }, + "bowling": { + "ar": "بولِنغ", + "be": "боўлінг", + "ca": "bitlles", + "de": "bowlingsport", + "el": "μπόουλινγκ", + "en": "bowling", + "es": "bolos", + "et": "keegel", + "fa": "بولینگ", + "fi": "keilailu", + "fr": "jeu de quilles", + "gl": "balos", + "he": "כדורת", + "hr": "kuglanje", + "it": "birilli", + "ja": "ボウリング", + "ko": "볼링", + "lt": "boulingas", + "nl": "bowlen", + "pt": "boliche", + "ru": "боулинг", + "sq": "boulingu", + "ta": "பௌலிங்", + "th": "โบว์ลิ่ง", + "tr": "bovling", + "uk": "боулінг", + "ur": "بولنگ", + "zh": "保齡球運動" + }, "bowls": { "af": "rolbal", - "ar": "بولنغ المخضرة", + "ar": "البولنغ المخضرة", + "cy": "bowlio", "de": "rasenbowlen", "en": "bowls", "et": "murukeegel", "fi": "nurmikeilailu", "fr": "boulingrin", + "ga": "bollaí", "he": "כדורת דשא", "hi": "बाउल्स", "id": "boling lapangan", @@ -49769,9 +55615,9 @@ "ko": "론볼", "lt": "rutulių sportas", "mr": "लॉन बोलिंग", - "ms": "boling padang", "pt": "lawn bowls", "ru": "игра в боулз", + "sl": "balinanje na travi", "uk": "боулз", "zh": "草地滾球" }, @@ -49782,6 +55628,7 @@ "bg": "бокс", "ca": "boxa", "cs": "box", + "cy": "paffio", "da": "boksning", "de": "boxen", "el": "πυγμαχία", @@ -49791,7 +55638,10 @@ "fa": "بوکس", "fi": "nyrkkeily", "fr": "boxe", - "he": "אגרוף (ספורט)", + "ga": "dornálaíocht", + "gd": "dòrnaireachd", + "gl": "boxeo", + "he": "אגרוף", "hi": "मुक्केबाज़ी", "hr": "boks", "hu": "ökölvívás", @@ -49804,7 +55654,6 @@ "lv": "bokss", "ml": "ബോക്സിങ്", "mr": "बॉक्सिंग", - "ms": "tinju", "nb": "boksing", "nl": "boksen", "pl": "boks", @@ -49813,19 +55662,99 @@ "ru": "бокс", "sk": "box", "sl": "boks", + "sq": "boksi", "sv": "boxning", "ta": "குத்துச்சண்டை", + "te": "ముష్టి యుద్ధం", "th": "มวยสากล", "tr": "boks", "uk": "бокс", "ur": "مکے بازی", "vi": "quyền anh", - "zh": "拳击" + "zh": "拳击", + "zh-tw": "拳擊" + }, + "bullfighting": { + "ar": "مصارعة الثيران", + "be": "карыда", + "bg": "тавромахия", + "ca": "tauromàquia", + "cs": "býčí zápasy", + "cy": "ymladd teirw", + "da": "tyrefægtning", + "de": "stierkampf", + "el": "ταυρομαχία", + "en": "bullfighting", + "es": "tauromaquia", + "et": "härjavõitlus", + "fa": "گاوبازی تورئو", + "fi": "härkätaistelu", + "fr": "tauromachie", + "ga": "tarbhchomhrac", + "gd": "tairbheadaireachd", + "gl": "tauromaquia", + "he": "מלחמת שוורים", + "hi": "सांड युद्ध", + "hr": "borba s bikovima", + "hu": "bikaviadal", + "id": "adu banteng", + "it": "tauromachia", + "ja": "闘牛", + "kn": "ಗೂಳಿಕಾಳಗ", + "ko": "투우", + "lt": "bulių kautynės", + "ml": "കാളപ്പോര്", + "nb": "tyrefekting", + "nl": "stierenvechten", + "pl": "korrida", + "pt": "tourada", + "ro": "coridă", + "ru": "бой быков", + "sl": "bikoborba", + "sq": "ndeshja e demave", + "sv": "tjurfäktning", + "th": "การสู้วัวกระทิง", + "tr": "boğa güreşi", + "uk": "бій биків", + "ur": "بل فائٹنگ", + "vi": "đấu bò", + "zh": "鬥牛", + "zh-cn": "斗牛" + }, + "calisthenics": { + "ar": "الألعاب الجمبازية", + "bg": "калистеника", + "ca": "calistènia", + "cs": "kalisthenika", + "el": "καλλισθενική αγωγή", + "en": "calisthenics", + "es": "calistenia", + "et": "kalisteenika", + "fa": "کلیستنیکس", + "fr": "callisthénie", + "ga": "callaistéinic", + "he": "קליסטניקס", + "hr": "kalistenika", + "hu": "kalisztenika", + "id": "kalistenik", + "it": "ginnastica a corpo libero", + "ja": "美容体操", + "lt": "mankšta", + "nb": "egenvektstrening", + "pl": "kalistenika", + "pt": "calistenia", + "ru": "калистеника", + "sl": "ulična vadba", + "tr": "kalistenik", + "uk": "калістеніка", + "vi": "tập cơ chay", + "zh": "古典體操" }, "canadian_football": { "ar": "كرة القدم الكندية", "ca": "futbol canadenc", "cs": "kanadský fotbal", + "cy": "pêl-droed canadaidd", "da": "canadisk fodbold", "el": "καναδικό ποδόσφαιρο", "en": "canadian football", @@ -49833,6 +55762,9 @@ "fa": "فوتبال کانادایی", "fi": "kanadalainen jalkapallo", "fr": "football canadien", + "ga": "peil cheanadach", + "gd": "ball-coise canaidianach", + "gl": "fútbol canadense", "he": "פוטבול קנדי", "hi": "कैनेडियन फ़ुटबॉल", "id": "sepak bola kanada", @@ -49846,10 +55778,18 @@ "pt": "futebol canadiano", "pt-br": "futebol canadense", "ru": "канадский футбол", + "sl": "kanadski nogomet", "sv": "kanadensisk fotboll", "tr": "kanada futbolu", "uk": "канадський футбол", - "zh": "加拿大式足球" + "zh": "加拿大式足球", + "zh-cn": "加拿大式橄榄球" + }, + "candlepin": { + "ar": "بولنغ الشموع", + "en": "candlepin bowling", + "es": "bolos candlepin", + "zh": "直瓶制保齡球" }, "canoe": { "af": "kanovaart", @@ -49863,6 +55803,8 @@ "fa": "قایق رانی", "fi": "melonta", "fr": "canoë", + "gl": "canoa", + "he": "חתירה בקאנו", "hr": "vožnja kanuom", "id": "kano", "it": "canoa", @@ -49882,20 +55824,24 @@ "zh": "皮划艇" }, "car_racing": { - "ar": "سباق سيارات", + "ar": "سباقات السيارات", "be": "аўтаспорт", "bg": "автомобилни спортове", "ca": "automobilisme", "cs": "automobilové závody", + "cy": "rasio ceir", "da": "bilsport", "de": "automobilsport", "el": "αγώνας αυτοκινήτων", "en": "auto racing", + "en-gb": "motor racing", "es": "automovilismo", "et": "autosport", "fa": "اتومبیلرانی", "fi": "autourheilu", - "fr": "sport automobile", + "fr": "course automobile", + "ga": "rásaíocht mótair", + "gl": "automobilismo", "he": "מרוץ מכוניות", "hr": "automobilizam", "hu": "autóversenyzés", @@ -49906,15 +55852,15 @@ "lt": "automobilių sportas", "lv": "autosports", "ml": "കാറോട്ടമൽസരം", - "ms": "perlumbaan kereta", "nb": "bilsport", "nl": "autosport", "pl": "wyścig samochodowy", "pt": "automobilismo", "ro": "automobilism", - "ru": "автоспорт", + "ru": "автомобильные гонки", "sk": "automobilový šport", "sl": "avtomobilistično dirkanje", + "sq": "garat automobilistike", "sv": "bilsport", "ta": "தானுந்து விளையாட்டுக்கள்", "th": "การแข่งรถ", @@ -49926,11 +55872,12 @@ }, "chess": { "af": "skaak", - "ar": "شطرنج", + "ar": "الشطرنج", "be": "шахматы", "bg": "шахмат", "ca": "escacs", "cs": "šachy", + "cy": "gwyddbwyll", "da": "skak", "de": "schach", "el": "σκάκι", @@ -49940,6 +55887,9 @@ "fa": "شطرنج", "fi": "shakki", "fr": "échecs", + "ga": "ficheall", + "gd": "tàileasg", + "gl": "xadrez", "he": "שחמט", "hi": "शतरंज", "hr": "šah", @@ -49953,7 +55903,6 @@ "lv": "šahs", "ml": "ചെസ്സ്", "mr": "बुद्धिबळ", - "ms": "catur", "nb": "sjakk", "nl": "schaken", "pl": "szachy", @@ -49962,8 +55911,10 @@ "ru": "шахматы", "sk": "šach", "sl": "šah", + "sq": "shahu", "sv": "schack", "ta": "சதுரங்கம்", + "te": "చదరంగం", "th": "หมากรุกสากล", "tr": "satranç", "uk": "шахи", @@ -49974,6 +55925,7 @@ "zh-tw": "西洋棋" }, "cliff_diving": { + "ar": "القفز من على الجرف", "de": "klippenspringen", "en": "cliff jumping", "es": "clavado de gran altura", @@ -49981,73 +55933,91 @@ "he": "קפיצה למים מגובה", "hu": "óriás toronyugrás", "ja": "クリフジャンプ", - "ko": "하이 다이빙", + "ko": "클리프 점핑", "nb": "klippestuping", "nl": "klifduiken", "ru": "клифф-дайвинг", "sl": "skakanje v vodo z visokih višin", "sv": "klippdykning", + "uk": "кліффдайвінг", "zh": "高空跳水" }, "climbing": { - "ar": "رياضة التسلق", - "be": "спартыўнае скалалажанне", - "ca": "escalada esportiva", - "cs": "sportovní lezení", - "da": "sportsklatring", - "de": "sportklettern", - "el": "αθλητική αναρρίχηση", - "en": "sport climbing", - "es": "escalada deportiva", - "et": "sportronimine", - "fa": "صعود ورزشی", - "fi": "boulderointi", - "fr": "escalade sportive", - "he": "טיפוס", + "af": "rotsklim", + "ar": "تسلق الصخور", + "be": "скалалажанне", + "bg": "скално катерене", + "ca": "escalada de roques", + "cs": "horolezectví", + "cy": "dringo", + "da": "klippeklatring", + "de": "felsklettern", + "el": "αναρρίχηση σε βράχο", + "en": "rock climbing", + "es": "escalada en roca", + "et": "kaljuronimine", + "fa": "سنگنوردی", + "fi": "kalliokiipeily", + "fr": "escalade sur rochers", + "ga": "dreapadóireacht", + "gl": "boulder", + "he": "טיפוס מצוקים", "hr": "športsko penjanje", - "hu": "hegymászás", - "id": "panjat dinding", - "it": "arrampicata sportiva", - "ja": "スポーツクライミング", - "ko": "인공암벽등반", - "lt": "laipiojimo sportas", - "lv": "boulderings", - "nb": "sportsklatring", - "nl": "klimsport", - "pl": "wspinaczka sportowa", + "hu": "sziklamászás", + "id": "panjat tebing", + "it": "arrampicata su roccia", + "ja": "ロック・クライミング", + "ko": "암벽등반", + "lt": "laipiojimas uolomis", + "lv": "klinšu kāpšana", + "ml": "പാറ കയറ്റം", + "nb": "fjellklatring", + "nl": "rotsklimmen", + "pl": "wspinaczka skalna", "pt": "escalada desportiva", "ro": "escaladă sportivă", - "ru": "спортивное скалолазание", + "ru": "скалолазание", "sk": "lezenie", - "sl": "športno plezanje", - "sv": "sportklättring", - "tr": "spor tırmanışı", - "uk": "спортивне скелелазіння", - "zh": "攀石", + "sl": "skalno plezanje", + "sv": "bergsklättring", + "tr": "kaya tırmanışı", + "uk": "скелелазіння", + "vi": "leo núi đá", + "zh": "攀岩", "zh-hk": "抱石" }, "climbing_adventure": { - "cs": "lanový park", - "de": "seilgarten", - "en": "adventure park", + "ar": "تسلق الأشجار", + "cs": "stromolezení", + "de": "baumklettern", + "de-ch": "seilgarten", + "en": "tree climbing", + "en-ca": "adventure park", + "en-gb": "adventure park", + "es": "escalar árboles", "et": "seikluspark", - "fi": "seikkailupuisto", - "fr": "parcours aventure en forêt", - "he": "פארק הרפתקאות", + "fi": "puukiipeily", + "fr": "grimpe d'arbres", + "he": "טיפוס על עצים", "hu": "kalandpark", "id": "taman kembara", - "it": "parco avventura", - "ja": "アドベンチャーパーク", + "it": "arrampicata su albero", + "ja": "木登り", + "ko": "나무 타기", "nl": "klimbos", "pl": "park linowy", "pt": "arborismo", - "ru": "канатный парк", - "sl": "pustolovski park" + "ru": "древолазание", + "sl": "plezanje na drevo", + "te": "చెట్టు ఎక్కుట", + "tr": "ağaca tırmanma", + "zh": "攀樹" }, "cockfighting": { "ar": "مصارعة الديوك", "ca": "baralla de galls", "cs": "kohoutí zápasy", + "cy": "ymladd ceiliogod", "de": "hahnenkampf", "el": "κοκορομαχία", "en": "cockfight", @@ -50057,6 +56027,7 @@ "fr": "combat de coqs", "he": "קרב תרנגולים", "hr": "borba pijetlova", + "hu": "kakasviadal", "id": "sabung ayam", "it": "combattimento di galli", "ja": "闘鶏", @@ -50064,14 +56035,15 @@ "ko": "닭싸움", "lv": "gaiļu cīņas", "ml": "കോഴിപ്പോര്", - "ms": "sabung ayam", "nb": "hanekamp", "nl": "hanengevecht", "pl": "walki kogutów", "pt": "rinha de galo", "ru": "петушиные бои", + "sq": "luftë gjelash", "sv": "tuppfäktning", "ta": "சேவல் சண்டை", + "te": "కోడిపందెం", "th": "ไก่ชน", "tr": "horoz dövüşü", "uk": "півнячі бої", @@ -50088,6 +56060,7 @@ "bg": "крикет", "ca": "camp de criquet", "cs": "kriket", + "cy": "maes criced", "da": "cricketbane", "de": "cricketfeld", "el": "κρίκετ", @@ -50097,6 +56070,9 @@ "fa": "کریکت", "fi": "kriketti", "fr": "terrain de cricket", + "ga": "páirc chruicéid", + "gd": "criogaid", + "gl": "crícket", "he": "קריקט", "hi": "क्रिकेट का मैदान", "hr": "kriket", @@ -50108,9 +56084,8 @@ "ko": "크리켓", "lt": "kriketas", "lv": "krikets", - "ml": "ക്രിക്കറ്റ്", + "ml": "ക്രിക്കറ്റ് മൈതാനം", "mr": "क्रिकेट मैदान", - "ms": "kriket", "nb": "cricketarena", "nl": "cricketveld", "pl": "krykiet", @@ -50118,27 +56093,32 @@ "ro": "crichet", "ru": "крикетное поле", "sk": "kriket", - "sl": "kriket", + "sl": "igrišče za kriket", + "sq": "kriketi", "sv": "cricketbana", "ta": "துடுப்பாட்டம்", + "te": "క్రికెట్", "th": "คริกเกต", "tr": "kriket alanı", "uk": "поле для крикету", "ur": "کرکٹ کا میدان", "vi": "bóng gậy", "zh": "板球場", + "zh-cn": "板球", "zh-tw": "板球" }, "croquet": { "af": "kroukie", - "ar": "كروكيه", + "ar": "الكروكيه", "cs": "kroket", + "cy": "croce", "da": "kroket", "de": "krocket", "en": "croquet", "et": "kroket", "fa": "کروکت", "fi": "kroketti", + "gl": "cróquet", "he": "קרוקט", "hu": "krokett", "ja": "クロッケー", @@ -50154,26 +56134,17 @@ "vi": "bóng vồ", "zh": "槌球" }, - "crossfit": { - "ar": "كروس فت", - "bg": "кросфит", - "en": "crossfit", - "fa": "کراس فیت", - "he": "קרוספיט", - "ja": "クロスフィット", - "ko": "크로스핏", - "ru": "кроссфит", - "uk": "кросфіт" - }, "curling": { "ar": "كَرْلنغ", "be": "кёрлінг", "bg": "кърлинг", "ca": "cúrling", + "cy": "cwrlo", "el": "κέρλινγκ", "en": "curling", "et": "jääkeegel", "fa": "کرلینگ", + "gd": "crolaidh", "he": "קרלינג", "ja": "カーリング", "ko": "컬링", @@ -50181,6 +56152,7 @@ "lv": "kērlings", "mr": "कर्लिंग", "ru": "кёрлинг", + "sq": "karlingu", "ta": "சுருள்வு", "th": "เคอร์ลิง", "tr": "körling", @@ -50192,10 +56164,11 @@ }, "cycling": { "af": "fietswedren", - "ar": "سباق الدراجات الهوائية", - "be": "веласпорт", + "ar": "رياضة دراجات هوائية", + "be": "веласіпедны спорт", "ca": "ciclisme de competició", "cs": "sportovní cyklistika", + "cy": "chwaraeon seiclo", "da": "cykelsport", "de": "radsport", "el": "ποδηλασία", @@ -50207,6 +56180,8 @@ "fa": "ورزش دوچرخهسواری", "fi": "kilpapyöräily", "fr": "sport cycliste", + "ga": "spórt rothaíochta", + "gl": "ciclismo de competición", "he": "מרוץ אופניים", "hu": "kerékpársport", "id": "olahraga sepeda", @@ -50216,40 +56191,42 @@ "lt": "dviračių sportas", "lv": "riteņbraukšanas sports", "mr": "सायकलिंग", - "ms": "sukan basikal", "nb": "sykkelsport", "nl": "wielersport", "pl": "kolarstwo", "pt": "ciclismo de competição", "ro": "ciclism", - "ru": "велосипедный спорт", + "ru": "велоспорт", "sk": "športová cyklistika", "sl": "športno kolesarstvo", + "sq": "çiklizëm", "sv": "cykelsport", "ta": "மிதிவண்டி ஓட்டப்பந்தயம்", + "te": "సైకిల్ క్రీడ", "th": "การแข่งขันจักรยาน", "tr": "bisiklet sporu", - "uk": "велосипедний спорт", + "uk": "велоспорт", "ur": "سائیکل کے کھیل", "vi": "xe đạp thể thao", - "zh": "自行車運動", - "zh-cn": "自行车运动", + "zh": "自行车运动", "zh-hk": "單車運動", - "zh-tw": "自由車運動" + "zh-tw": "腳踏車運動" }, "darts": { - "ar": "جماحية", + "ar": "الجماحية", "be": "дартс", "bg": "дартс", "ca": "dardell", "cs": "šipky", + "cy": "dartiau", "da": "dart", "el": "βελάκια", "en": "darts", "es": "dardos", - "et": "noolemäng", "fa": "دارت", "fr": "fléchettes", + "ga": "dairteanna", + "gl": "dardos", "he": "הטלת חצים", "hr": "pikado", "id": "panah lempar", @@ -50259,7 +56236,6 @@ "ko": "다트", "lt": "smiginis", "lv": "šautriņu mešana", - "ms": "baling damak", "nb": "dart", "pl": "dart", "pt": "dardos", @@ -50275,7 +56251,7 @@ "zh-cn": "飞镖" }, "disc_golf": { - "ar": "ديسك غولف", + "ar": "غولف القرص", "bg": "диск голф", "cs": "discgolf", "da": "frisbee golf", @@ -50283,6 +56259,7 @@ "el": "γκολφ δίσκου", "en": "disc golf", "et": "kettagolf", + "fa": "دیسک گلف", "fi": "frisbeegolf", "fr": "disque-golf", "he": "דיסק גולף", @@ -50310,6 +56287,7 @@ "es": "carrera de galgos", "fi": "vinttikoirakilpailut", "fr": "course de lévriers", + "ga": "rásaí con", "he": "מרוץ כלבים", "hu": "kutyaverseny", "it": "corse di levrieri", @@ -50327,6 +56305,7 @@ "zh-cn": "灰狗赛跑" }, "dog_training": { + "ar": "تدريب الكلب", "ca": "ensinistrament caní", "da": "hundetræning", "de": "hundeerziehung", @@ -50340,48 +56319,67 @@ "hu": "kutyanevelés és -kiképzés", "it": "addestramento cani", "ko": "개 훈련", + "lt": "šunų dresūra", + "lv": "suņa apmācība", "ml": "നായ പരിശീലനം", - "ms": "pelatihan anjing", "nl": "hondentraining", "pt": "adestramento de cães", "ru": "дрессировка собак", "sl": "šolanje psov", "sv": "hundträning", + "te": "కుక్కల శిక్షణ", "zh": "訓狗" }, "equestrian": { - "af": "ruitersport", - "ar": "رياضة الفروسية", + "af": "perdry", + "ar": "فروسية", "be": "конны спорт", - "bg": "конен спорт", - "ca": "esports eqüestres", - "cs": "jezdecký sport", - "da": "hestesport", - "de": "pferdesport", - "el": "ιππικό αγώνισμα", - "en": "equestrian sport", - "es": "deporte ecuestre", - "et": "ratsasport", - "fi": "hevosurheilu", - "fr": "sport équestre", - "he": "רכיבה תחרותית", - "hu": "lovassport", - "it": "sport equestre", - "ja": "乗馬", + "bg": "конна езда", + "ca": "equitació", + "cs": "jezdectví", + "cy": "marchogyddiaeth", + "da": "ridning", + "de": "reiten", + "de-ch": "pferdesport", + "el": "ιππασία", + "en": "equestrianism", + "es": "equitación", + "et": "ratsutamine", + "fa": "سوارکاری", + "fi": "ratsastus", + "fr": "équitation", + "ga": "eachaíocht", + "gl": "hípica", + "he": "רכיבה", + "hi": "घुड़सवारी", + "hr": "jahanje", + "hu": "lovaglás", + "id": "berkuda", + "it": "equitazione", + "ja": "馬術", + "kn": "ಕುದುರೆ ಸವಾರಿ", "ko": "승마", - "ms": "sukan menunggang kuda", - "nb": "hestesport", - "nl": "paardensport", - "pl": "sport jeździecki", - "pt": "desporto equestre", - "ro": "sporturi ecvestre", - "ru": "конный спорт", + "lt": "jojimas", + "lv": "jāšana", + "ml": "അശ്വാഭ്യാസം", + "nb": "hesteriding", + "nl": "paardrijden", + "pl": "jeździectwo", + "pt": "hipismo", + "ro": "călărie", + "ru": "верховая езда", "sk": "jazdectvo", - "sl": "športno konjeništvo", - "sv": "hästsport", - "uk": "кінний спорт", + "sl": "konjeništvo", + "sv": "hästhållning", + "ta": "குதிரையேற்றம்", + "te": "గుర్రపు స్వారీ", + "tr": "binicilik", + "uk": "верхова їзда", "ur": "گھڑ سواری", - "zh": "马术运动" + "vi": "cưỡi ngựa nghệ thuật", + "zh": "马术", + "zh-hk": "馬術", + "zh-tw": "馬術" }, "exercise": { "af": "fisiese oefening", @@ -50389,6 +56387,7 @@ "bg": "физическо упражнение", "ca": "exercici físic", "cs": "tělesné cvičení", + "cy": "ymarfer corfforol", "da": "motion", "de": "körperliche bewegung", "el": "άσκηση", @@ -50398,6 +56397,8 @@ "fa": "فعالیت بدنی", "fi": "kuntoilu", "fr": "fitness", + "ga": "aclaíocht", + "gl": "exercicio físico", "he": "פעילות גופנית", "hi": "व्यायाम", "hr": "tjelovježba", @@ -50411,7 +56412,6 @@ "lv": "fizisks vingrinājums", "ml": "ശാരീരിക വ്യായാമം", "mr": "व्यायाम", - "ms": "latihan fizikal", "nb": "fysisk mosjon", "nl": "lichaamsbeweging", "pl": "ćwiczenia fizyczne", @@ -50419,9 +56419,10 @@ "ro": "exercițiu fizic", "ru": "физические упражнения", "sk": "telesné cvičenie", - "sl": "telovadba", + "sl": "telesna vadba", "sv": "träning", "ta": "உடற் பயிற்சி", + "te": "వ్యాయామం", "th": "การออกกำลังกาย", "tr": "fiziksel egzersiz", "uk": "фізичні вправи", @@ -50431,11 +56432,12 @@ }, "field_hockey": { "af": "hokkie", - "ar": "هوكي الحقل", + "ar": "هوكي الميدان", "be": "хакей на траве", "bg": "хокей на трева", "ca": "hoquei sobre herba", "cs": "pozemní hokej", + "cy": "hoci", "da": "hockey", "de": "hockey", "de-ch": "landhockey", @@ -50446,6 +56448,9 @@ "fa": "هاکی روی چمن", "fi": "maahockey", "fr": "hockey sur gazon", + "ga": "haca", + "gd": "cromanachd", + "gl": "hóckey sobre herba", "he": "הוקי שדה", "hi": "मैदानी हॉकी", "hr": "hokej na travi", @@ -50458,7 +56463,6 @@ "lv": "lauka hokejs", "ml": "ഹോക്കി", "mr": "हॉकी", - "ms": "hoki padang", "nb": "landhockey", "nl": "veldhockey", "pl": "hokej na trawie", @@ -50470,6 +56474,7 @@ "sl": "hokej na travi", "sv": "landhockey", "ta": "வளைதடிப் பந்தாட்டம்", + "te": "మైదాన హాకీ", "tr": "çim hokeyi", "uk": "хокей на траві", "ur": "فیلڈ ہاکی", @@ -50478,52 +56483,38 @@ "zh-tw": "草地曲棍球" }, "fishing": { - "af": "visvang", - "ar": "صيد السمك", - "be": "рыбалоўства", - "bg": "риболов", - "ca": "pesca", - "cs": "rybolov", - "da": "fiskeri", - "de": "fischen", - "de-ch": "fischerei", - "el": "αλιεία", - "en": "fishing", - "es": "pesca", - "et": "kalapüük", - "fa": "ماهیگیری", - "fi": "kalastus", - "fr": "pêche", - "he": "דיג", - "hi": "मत्स्य पालन", - "hr": "ribolov", - "hu": "halászat", - "id": "memancing", - "it": "pesca", - "ja": "漁", - "kn": "ಮೀನುಗಾರಿಕೆ", - "ko": "고기잡이", - "lt": "žūklė", - "lv": "zvejošana", - "ml": "മീൻപിടുത്തം", - "mr": "मासेमारी", - "ms": "penangkapan ikan", - "nb": "fiske", - "nl": "visserij", - "pl": "połów ryb", - "pt": "pesca", - "ro": "pescuit", - "ru": "рыбная ловля", - "sk": "rybolov", - "sl": "ribolov", - "sv": "fiske", - "ta": "மீன் பிடித்தல்", - "th": "การจับปลา", - "tr": "balıkçılık", - "uk": "рибальство", - "ur": "ماہی گیری", - "vi": "ngư nghiệp", - "zh": "捕鱼" + "ar": "الصيد الترفيهي", + "bg": "спортен риболов", + "ca": "pesca esportiva", + "cs": "rybaření", + "da": "lystfiskeri", + "de": "sportfischen", + "el": "αλιευτικός τουρισμός", + "en": "recreational fishing", + "es": "pesca deportiva", + "et": "kalasport", + "fa": "ماهیگیری تفریحی", + "fi": "urheilukalastus", + "fr": "pêche sportive", + "gl": "pesca deportiva", + "he": "דיג לספורט", + "hr": "športski ribolov", + "id": "penangkapan ikan rekreasi", + "it": "pesca sportiva", + "ja": "スポーツ・フィッシング", + "mr": "मनोरंजक मासेमारी", + "nb": "sportsfiske", + "nl": "sportvissen", + "pl": "wędkarstwo sportowe", + "pt": "pesca desportiva", + "ro": "pescuit sportiv", + "ru": "спортивное рыболовство", + "sk": "rekreačný rybolov", + "sl": "rekreativni ribolov", + "sv": "sportfiske", + "uk": "рибальський спорт", + "vi": "câu cá giải trí", + "zh": "休閒漁業" }, "fitness": { "af": "fisiese oefening", @@ -50531,6 +56522,7 @@ "bg": "фитнес зала", "ca": "centre de fitness", "cs": "posilovna", + "cy": "stiwdio ffitrwydd", "da": "motionscenter", "de": "fitnessstudio", "el": "άσκηση", @@ -50542,6 +56534,8 @@ "fa": "باشگاه ورزشی", "fi": "kuntosali", "fr": "salle de sport", + "ga": "aclaíocht", + "gl": "exercicio físico", "he": "פעילות גופנית", "hi": "व्यायाम", "hr": "teretana", @@ -50551,11 +56545,10 @@ "ja": "フィットネスクラブ", "kn": "ವ್ಯಾಯಾಮ", "ko": "헬스클럽", - "lt": "pratimas", + "lt": "sporto centras", "lv": "fitnesa klubs", "ml": "ശാരീരിക വ്യായാമം", "mr": "व्यायाम", - "ms": "latihan fizikal", "nb": "helsestudio", "nl": "sportschool", "pl": "siłownia", @@ -50567,6 +56560,7 @@ "sl": "fitnes center", "sv": "motionssal", "ta": "உடற் பயிற்சி", + "te": "వ్యాయామం", "th": "การออกกำลังกาย", "tr": "fitness merkezi", "uk": "фітнес-клуб", @@ -50574,13 +56568,50 @@ "vi": "phòng tập gym", "zh": "健身房" }, + "five-a-side": { + "ar": "كرة القدم الخماسية", + "cs": "malý fotbal", + "cy": "pêl-droed pump-bob-ochr", + "de": "kleinfeldfußball", + "el": "ποδόσφαιρο 5x5", + "en": "five-a-side football", + "fa": "فوتبال پنجنفره", + "fr": "foot à 5", + "hr": "mali nogomet", + "nb": "femmerfotball", + "nl": "minivoetbal", + "pl": "5-a-side", + "ru": "футбол 5×5", + "sk": "malý futbal", + "sv": "5 a side", + "uk": "сокка", + "vi": "bóng đá mini", + "zh": "五人足球" + }, + "footballgolf": { + "ar": "غولف القدم", + "cy": "golff-droed", + "da": "fodboldgolf", + "de": "fußballgolf", + "en": "footgolf", + "es": "fútgolf", + "et": "jalggolf", + "fi": "futgolf", + "id": "golf sepak", + "ja": "フットゴルフ", + "nb": "fotballgolf", + "ru": "футгольф", + "uk": "футгольф", + "zh": "足式高爾夫" + }, "four_square": { "en": "four square", "es": "cuatro cuadras", "ja": "がんばこ", "ru": "квадрат", "sv": "ruta", - "uk": "квадрат" + "uk": "квадрат", + "zh": "四格球遊戲" }, "free_flying": { "en": "freeflying", @@ -50598,6 +56629,7 @@ "en": "futsal", "es": "fútbol sala", "fa": "فوتسال", + "gl": "fútbol sala", "he": "קטרגל", "it": "calcio a 5", "ja": "フットサル", @@ -50608,39 +56640,50 @@ "nl": "zaalvoetbal", "pt": "futebol de salão", "ru": "мини-футбол", + "sq": "futsalli", "th": "ฟุตซอล", "uk": "футзал", "ur": "فوٹسال", - "zh": "室内五人足球", - "zh-hk": "五人制足球", - "zh-tw": "室內五人制足球" + "vi": "bóng đá trong nhà", + "zh": "室內五人制足球", + "zh-cn": "室内五人制足球", + "zh-hk": "五人足球" }, "gaelic_games": { + "ar": "ألعاب غيلية", "ca": "jocs gaèlics", "cs": "galské sporty", "el": "γαελικός αθλητισμός", "en": "gaelic games", "es": "juegos gaélicos", "et": "gaeli sportmängud", + "fa": "کاربر:viana22/صفحه تمرین", "fi": "gaelilaiset urheilulajit", "fr": "sport gaélique", + "ga": "na cluichí gaelacha", + "gd": "geamannan gàidhealach", "he": "משחקים גאליים", "it": "sport gaelici", "ja": "ゲーリック・ゲームズ", + "ko": "게일릭 게임", "ru": "гэльские игры", "sl": "gelske igre", "sv": "gaeliska spel", + "tr": "gal oyunları", "uk": "гельські ігри", "zh": "蓋爾式運動" }, "golf": { "af": "gholf", - "ar": "غولف", + "ar": "الغولف", "be": "гольф", "bg": "голф", + "cy": "golff", "el": "γκολφ", "en": "golf", "fa": "گلف", + "ga": "galf", + "gd": "goilf", "he": "גולף", "hi": "गॉल्फ़", "ja": "ゴルフ", @@ -50652,19 +56695,23 @@ "mr": "गोल्फ", "pt": "golfe", "ru": "гольф", + "sq": "golfi", "ta": "குழிப்பந்தாட்டம்", + "te": "గోల్ఫ్", "th": "กอล์ฟ", "uk": "гольф", "ur": "گولف", - "zh": "高爾夫球" + "zh": "高爾夫球", + "zh-cn": "高尔夫球" }, "gymnastics": { "af": "gimnastiek", - "ar": "جمباز", + "ar": "الجمباز", "be": "гімнастыка", "bg": "гимнастика", "ca": "gimnàstica", "cs": "gymnastika", + "cy": "gymnasteg", "da": "gymnastik", "de": "turnen", "el": "γυμναστική", @@ -50674,6 +56721,8 @@ "fa": "ژیمناستیک", "fi": "voimistelu", "fr": "gymnastique", + "ga": "gleacaíocht", + "gl": "ximnasia", "he": "התעמלות", "hi": "जिम्नास्टिक्स", "hr": "gimnastika", @@ -50686,7 +56735,6 @@ "lv": "vingrošana", "ml": "ജിംനാസ്റ്റിക്സ്", "mr": "जिम्नॅस्टिक्स", - "ms": "gimnastik", "nb": "gymnastikk", "nl": "gymnastiek", "pl": "gimnastyka", @@ -50695,8 +56743,10 @@ "ru": "гимнастика", "sk": "gymnastika", "sl": "gimnastika", + "sq": "gjimnastika", "sv": "gymnastik", "ta": "சீருடற்பயிற்சிகள்", + "te": "జిమ్నాస్టిక్స్", "th": "ยิมนาสติก", "tr": "jimnastik", "uk": "гімнастика", @@ -50713,6 +56763,7 @@ "bg": "хандбал", "ca": "handbol", "cs": "házená", + "cy": "pêl-law", "da": "håndbold", "el": "χειροσφαίριση", "en": "handball", @@ -50720,6 +56771,8 @@ "et": "käsipall", "fa": "هندبال", "fi": "käsipallo", + "ga": "liathróid láimhe", + "gl": "balonmán", "he": "כדוריד", "hi": "हैंडबॉल", "hr": "rukomet", @@ -50732,7 +56785,6 @@ "lv": "rokasbumba", "ml": "ഹാന്റ്ബോൾ", "mr": "हँडबॉल", - "ms": "bola baling", "nb": "håndball", "nl": "handbal", "pl": "piłka ręczna", @@ -50742,6 +56794,7 @@ "ru": "гандбол", "sk": "hádzaná", "sl": "rokomet", + "sq": "hendboll", "sv": "handboll", "ta": "எறிபந்தாட்டம்", "th": "แฮนด์บอล", @@ -50769,11 +56822,12 @@ "zh-cn": "合气道" }, "horse_racing": { - "ar": "سباق الخيل", + "ar": "سباقات الخيل", "be": "конныя скачкі", "bg": "конни надбягвания", "ca": "cursa de cavalls", "cs": "dostihový sport", + "cy": "rasio ceffylau", "da": "hestevæddeløb", "de": "pferderennen", "el": "ιπποδρομία", @@ -50782,6 +56836,7 @@ "fa": "مسابقه اسبدوانی", "fi": "laukkaurheilu", "fr": "sport hippique", + "ga": "rásaíocht chapall", "he": "מרוץ סוסים", "hi": "अश्वधावन", "hr": "konjički sport", @@ -50792,7 +56847,6 @@ "ko": "경마", "lt": "žirgų lenktynės", "lv": "zirgu skriešanās sacīkstes", - "ms": "lumba kuda", "nb": "hesteveddeløp", "nl": "rensport", "pl": "wyścigi konne", @@ -50801,8 +56855,10 @@ "ru": "конные скачки", "sk": "dostihy", "sl": "konjske dirke", + "sq": "gara me kuaj", "sv": "hästkapplöpning", "ta": "குதிரைப் பந்தயம்", + "te": "గుర్రపు స్వారీ", "th": "การแข่งม้า", "tr": "at yarışı", "uk": "кінні перегони", @@ -50811,52 +56867,6 @@ "zh": "賽馬", "zh-cn": "赛马" }, - "horse_riding": { - "af": "perdry", - "ar": "فروسية", - "be": "конны спорт", - "bg": "конна езда", - "ca": "equitació", - "cs": "jezdectví", - "da": "ridning", - "de": "reiten", - "el": "ιππασία", - "en": "equestrianism", - "es": "equitación", - "et": "ratsutamine", - "fa": "سوارکاری", - "fi": "ratsastus", - "fr": "équitation", - "he": "רכיבה", - "hi": "घुड़सवारी", - "hr": "jahanje", - "hu": "lovaglás", - "id": "berkuda", - "it": "equitazione", - "ja": "馬術", - "kn": "ಕುದುರೆ ಸವಾರಿ", - "ko": "승마", - "lt": "jojimas", - "lv": "jāšana", - "ml": "അശ്വാഭ്യാസം", - "ms": "menunggang kuda", - "nb": "hesteriding", - "nl": "paardrijden", - "pl": "jeździectwo", - "pt": "hipismo", - "ro": "călărie", - "ru": "верховая езда", - "sk": "jazdectvo", - "sl": "konjeništvo", - "sv": "hästhållning", - "ta": "குதிரையேற்றம்", - "tr": "binicilik", - "uk": "верхова їзда", - "vi": "cưỡi ngựa nghệ thuật", - "zh": "马术", - "zh-hk": "馬術", - "zh-tw": "馬術" - }, "horseshoes": { "de": "hufeisenwerfen", "en": "horseshoes", @@ -50877,6 +56887,7 @@ "bg": "хокей на лед", "ca": "hoquei sobre gel", "cs": "lední hokej", + "cy": "hoci iâ", "da": "ishockey", "de": "eishockey", "el": "χόκεϊ επί πάγου", @@ -50887,6 +56898,9 @@ "fa": "هاکی روی یخ", "fi": "jääkiekko", "fr": "hockey sur glace", + "ga": "haca oighir", + "gd": "hocaidh deigh", + "gl": "hóckey sobre xeo", "he": "הוקי קרח", "hi": "आइस हॉकी", "hr": "hokej na ledu", @@ -50899,7 +56913,6 @@ "lv": "hokejs", "ml": "ഐസ് ഹോക്കി", "mr": "आइस हॉकी", - "ms": "hoki ais", "nb": "ishockey", "nl": "ijshockey", "pl": "hokej na lodzie", @@ -50908,6 +56921,7 @@ "ru": "хоккей с шайбой", "sk": "ľadový hokej", "sl": "hokej na ledu", + "sq": "hokej mbi akull", "sv": "ishockey", "ta": "பனி வளைதடியாட்டம்", "th": "ฮอกกี้น้ำแข็ง", @@ -50919,9 +56933,10 @@ }, "ice_skating": { "af": "ysskaats", - "ar": "تزلج على الجليد", + "ar": "التزلج على الجليد", "ca": "patinatge sobre gel", "cs": "bruslení", + "cy": "sglefrio iâ", "da": "skøjteløb", "de": "schlittschuhlaufen", "el": "παγοδρομία", @@ -50931,16 +56946,19 @@ "fa": "اسکیت روی یخ", "fi": "luistelu", "fr": "patinage sur glace", + "ga": "scátáil oighir", + "gd": "spéilearachd-dheighe", + "gl": "patinaxe sobre xeo", "he": "החלקה על הקרח", "hi": "आइस स्केटिंग", "hr": "klizanje na ledu", + "hu": "jégkorcsolyázás", "id": "seluncur es", "it": "pattinaggio su ghiaccio", "ja": "アイススケート", "kn": "ಐಸ್-ಸ್ಕೇಟಿಂಗ್", "ko": "빙상 스케이트", "lt": "čiuožimas ant ledo", - "ms": "luncur ais", "nb": "skøyteløp på is", "nl": "schaatsen", "pl": "łyżwiarstwo", @@ -50975,19 +56993,25 @@ "pl": "ice stock", "pt": "ice stock sport", "ru": "айсшток", + "sl": "kegljanje na ledu", "sv": "isstock", "uk": "айсшток", "zh": "冰上滑盤" }, + "jetsprint": { + "en": "jetsprint" + }, "judo": { - "ar": "جودو", + "ar": "الجودو", "be": "дзюдо", "bg": "джудо", + "cy": "jiwdo", "el": "τζούντο", "en": "judo", - "es": "yudo", "et": "džuudo", "fa": "جودو", + "ga": "júdó", + "gd": "jūdō", "he": "ג'ודו", "hi": "जूडो", "hu": "cselgáncs", @@ -51000,20 +57024,24 @@ "pt-br": "judô", "ru": "дзюдо", "sk": "džudo", + "sq": "xhudo", "ta": "யுடோ", + "te": "జూడో", "th": "ยูโด", "uk": "дзюдо", "ur": "جوڈو", "zh": "柔道" }, "karate": { - "ar": "كاراتيه", + "ar": "الكاراتيه", "be": "каратэ", "bg": "карате", + "cy": "carati", "el": "καράτε", "en": "karate", "fa": "کاراته", "fr": "karaté", + "ga": "cearáité", "he": "קראטה", "hi": "कराटे", "ja": "空手", @@ -51027,6 +57055,7 @@ "pt-br": "caratê", "ru": "карате", "ta": "கராத்தே", + "te": "కరాటే", "th": "คาราเต้", "uk": "карате", "ur": "کراٹے", @@ -51035,17 +57064,18 @@ "karting": { "ar": "كارتينغ", "bg": "картинг", - "ca": "kàrting", + "ca": "circuit de kàrting", "da": "gokart", "de": "kartbahn", "el": "αγώνες καρτ", "en": "kart circuit", - "es": "karting", + "es": "circuito de karts", "et": "kardisport", "fa": "کارتینگ", "fi": "karting", "fr": "circuit de karting", - "he": "קארטינג", + "gl": "karting", + "he": "מסלול קרטינג", "hi": "कार्ट रेसिंग", "hr": "karting", "hu": "gokart", @@ -51056,10 +57086,9 @@ "ko": "레이싱 카트", "lt": "kartingas", "lv": "kartings", - "ms": "perlumbaan kart", "nb": "gokart", "nl": "kartcircuit", - "pl": "karting", + "pl": "tor kartingowy", "pt": "kartódromo", "ro": "karting", "ru": "картодром", @@ -51067,6 +57096,7 @@ "sl": "karting", "sv": "karting", "ta": "கார்ட்டு பந்தயம்", + "te": "racing", "tr": "karting pisti", "uk": "картинг", "zh": "卡丁車", @@ -51074,7 +57104,7 @@ }, "kitesurfing": { "af": "vlieërseil", - "ar": "تزلج شراعي", + "ar": "ركوب الأمواج بالطائرة الورقية", "bg": "кайтсърфинг", "ca": "surf d'estel", "cs": "kitesurfing", @@ -51085,6 +57115,8 @@ "et": "lohesurf", "fi": "leijalautailu", "fr": "kitesurf", + "ga": "surfáil eitleoige", + "gl": "kitesurf", "he": "קייטסרפינג", "hi": "काइटसर्फिंग", "hr": "kitesurfing", @@ -51114,16 +57146,19 @@ }, "korfball": { "af": "korfbal", - "ar": "كرة السلة الهولندية", + "ar": "كرة الكورف", "bg": "корфбол", "ca": "corfbol", "cs": "korfbal", + "cy": "pêl-côrff", "el": "κόρφμπολ", "en": "korfball", "es": "korfbal", + "et": "korfpall", "fa": "کرفبال", "fi": "korfpallo", "fr": "korfbal", + "ga": "korfbál", "he": "קורפבול", "id": "bola keranjang", "ja": "コーフボール", @@ -51145,7 +57180,7 @@ "en": "krachtbal" }, "lacrosse": { - "ar": "لكروس", + "ar": "اللكروس", "bg": "лакрос", "cs": "lakros", "el": "λακρός", @@ -51153,6 +57188,7 @@ "fa": "لاکراس", "fi": "haavipallo", "fr": "crosse", + "ga": "crosógaíocht", "he": "לקרוס", "hi": "लैक्रोस", "ja": "ラクロス", @@ -51166,8 +57202,11 @@ "sl": "lakros", "tr": "lakros", "uk": "лакрос", + "ur": "لیکروس", "vi": "bóng vợt", - "zh": "袋棍球" + "zh": "袋棍球", + "zh-cn": "棍网球", + "zh-hk": "棍網球" }, "laser_tag": { "bg": "лазертаг", @@ -51175,6 +57214,7 @@ "en": "laser tag", "fa": "لیزرتگ", "fr": "jeu laser", + "he": "לייזר טאג", "hu": "lasergame", "id": "tembak laser", "ja": "レーザー交戦装置", @@ -51185,11 +57225,12 @@ }, "long_jump": { "af": "verspring", - "ar": "قفز طويل", + "ar": "الوثب الطويل", "be": "скачок у даўжыню", "bg": "скок на дължина", "ca": "salt de llargada", "cs": "skok daleký", + "cy": "naid hir", "da": "længdespring", "de": "weitsprung", "el": "άλμα εις μήκος", @@ -51199,6 +57240,8 @@ "fa": "پرش طول", "fi": "pituushyppy", "fr": "saut en longueur", + "ga": "léim fhada", + "gl": "salto de lonxitude", "he": "קפיצה לרוחק", "hi": "lambi kood", "hr": "skok u dalj", @@ -51210,7 +57253,6 @@ "lt": "šuolis į tolį", "lv": "tāllēkšana", "ml": "ലോങ് ജമ്പ്", - "ms": "lompat jauh", "nb": "lengdehopp", "nl": "verspringen", "pl": "skok w dal", @@ -51221,6 +57263,7 @@ "sl": "skok v daljino", "sv": "längdhopp", "ta": "நீளம் தாண்டுதல்", + "te": "లాంగ్ జంప్", "th": "กระโดดไกล", "tr": "uzun atlama", "uk": "стрибки в довжину", @@ -51235,6 +57278,7 @@ "bg": "бойно изкуство", "ca": "art marcial", "cs": "bojové umění", + "cy": "crefft ymladd", "da": "kampsport", "de": "kampfkunst", "el": "πολεμικές τέχνες", @@ -51244,6 +57288,8 @@ "fa": "هنرهای رزمی", "fi": "itsepuolustuslaji", "fr": "art martial", + "ga": "ealaín oscartha", + "gl": "arte marcial", "he": "אמנות לחימה", "hi": "युद्ध कलाएँ", "hr": "borilačke vještine", @@ -51256,7 +57302,6 @@ "lt": "kovos menai", "lv": "cīņas māksla", "ml": "ആയോധനകല", - "ms": "seni bela diri", "nb": "kampkunst", "nl": "vechtkunst", "pl": "sztuki walki", @@ -51265,6 +57310,7 @@ "ru": "боевое искусство", "sk": "bojové umenie", "sl": "borilna veščina", + "sq": "arti luftarak", "sv": "stridskonst", "ta": "போர்க் கலை", "th": "ศิลปะการต่อสู้", @@ -51276,7 +57322,8 @@ "zh-cn": "武术" }, "miniature_golf": { - "ar": "غولف مصغر", + "ar": "الغولف المصغر", + "ca": "minigolf", "cs": "minigolf", "da": "minigolf", "de": "minigolf", @@ -51288,31 +57335,34 @@ "fr": "minigolf", "he": "מיני גולף", "hu": "minigolf", + "id": "golf miniatur", "it": "minigolf", "ja": "パターゴルフ", "lt": "minigolfas", "lv": "minigolfs", - "ms": "golf miniatur", "nb": "minigolf", "nl": "minigolf", "pl": "minigolf", "pt": "minigolfe", "ru": "мини-гольф", "sl": "minigolf", + "sq": "minigolfi", "sv": "bangolf", "tr": "minigolf", "uk": "міні-гольф", "zh": "小型高爾夫球" }, "motocross": { - "ar": "موتوكروس", + "ar": "الموتوكروس", "bg": "мотокрос", "ca": "motocròs", "cs": "motokros", + "el": "μότοκρος", "en": "motocross", "et": "motokross", "fa": "موتورکراس", "fr": "moto-cross", + "ga": "rásaíocht gluaisrothair thrastíre", "he": "מוטוקרוס", "hr": "motokros", "hu": "motokrossz", @@ -51334,6 +57384,7 @@ "ar": "رياضة المحركات الآلية", "ca": "esports de motor", "cs": "motoristický sport", + "cy": "chwaraeon modur", "el": "μηχανοκίνητος αθλητισμός", "en": "motorsport", "es": "deporte de motor", @@ -51341,6 +57392,8 @@ "fa": "ورزشهای موتوری", "fi": "moottoriurheilu", "fr": "sport mécanique", + "ga": "spórt mótair", + "gl": "deportes de motor", "he": "ספורט מוטורי", "hr": "mototrke", "id": "olahraga otomotif", @@ -51348,13 +57401,12 @@ "ja": "モータースポーツ", "ko": "모터스포츠", "lv": "motoru sports", - "ms": "sukan permotoran", "nl": "gemotoriseerde sport", "pl": "sport motorowy", "pt": "desporto motorizado", "pt-br": "esporte a motor", "ro": "sport cu motor", - "ru": "моторные виды спорта", + "ru": "моторный вид спорта", "sl": "motošport", "ta": "தானியங்கி வாகன விளையாட்டு", "th": "กีฬาท้าความเร็ว", @@ -51369,6 +57421,7 @@ "bg": "планински велосипед", "ca": "bicicleta tot terreny", "cs": "horské kolo", + "cy": "beic mynydd", "da": "mountainbike", "de": "mountainbike", "en": "mountain bike", @@ -51376,13 +57429,13 @@ "fa": "دوچرخه کوهستان", "fi": "maastopolkupyörä", "fr": "vélo tout-terrain", + "gl": "bicicleta de montaña", "he": "אופני הרים", "hr": "brdski biciklizam", "id": "sepeda gunung", "ja": "マウンテンバイク", "ko": "산악 자전거", "lt": "kalnų dviratis", - "ms": "basikal gunung", "nb": "terrengsykkel", "nl": "mountainbike", "pl": "rower górski", @@ -51405,6 +57458,7 @@ "bg": "спорт", "ca": "esport en una competició multiesportiva", "cs": "sport na multisportovní události", + "cy": "cystadleuaeth chwaraeon mewn digwyddiad aml-chwaraeon", "da": "sport", "de": "sportart bei einer multisport-veranstaltung", "de-ch": "sport", @@ -51415,9 +57469,12 @@ "es": "deporte en evento multideportivo", "et": "sport", "fa": "ورزش", - "fi": "urheilu", + "fi": "urheilukilpailu monilajitapahtumassa", "fr": "sport dans une compétition multisportive", - "he": "ספורט", + "ga": "spórt", + "gd": "spòrs", + "gl": "deporte en evento multideportivo", + "he": "תחרות באירוע ספורט רב ענפי", "hi": "खेल", "hr": "sport", "hu": "sport", @@ -51430,18 +57487,19 @@ "lv": "sports", "ml": "കായികവിനോദം", "mr": "खेळ", - "ms": "sukan", "nb": "øvelse under en multisportskonkurranse", "nl": "sportcompetitie bij multi-sportevenement", "pl": "dyscyplina sportowa w ramach imprezy multidyscyplinarnej", "pt": "desporto em evento multidesportivo", - "pt-br": "esporte", + "pt-br": "esporte ou disciplina em um evento multiesportivo", "ro": "sport", "ru": "вид спорта на мультиспортивных соревнованиях", "sk": "šport", "sl": "športno tekmovanje na večšportni prireditvi", + "sq": "sport në ngjarje me shumë sporte", "sv": "sport vid multisportevenemang", "ta": "உடல் திறன் விளையாட்டு", + "te": "ఆటలు", "th": "กีฬา", "tr": "spor", "uk": "спортивне змагання на мультиспортивній події", @@ -51454,10 +57512,13 @@ "netball": { "af": "netbal", "ar": "كرة الشبكة", + "cy": "pêl-rwyd", "el": "νέτμπολ", "en": "netball", "fa": "نتبال", "fi": "verkkopallo", + "ga": "líonpheil", + "gd": "ball-lìn", "he": "נטבול", "id": "bola jaring", "ja": "ネットボール", @@ -51465,7 +57526,6 @@ "lt": "netbolas", "lv": "netbols", "mr": "नेटबॉल", - "ms": "bola jaring", "nb": "nettball", "ru": "нетбол", "sl": "netbol", @@ -51485,8 +57545,10 @@ "fr": "course à obstacles", "he": "מסלול מכשולים", "ja": "障害物競走", + "nb": "hinderløype", "nl": "hindernisbaan", "ru": "полоса препятствий", + "sl": "proga z ovirami", "sv": "hinderbana", "tr": "engel parkuru", "uk": "смуга перешкод", @@ -51495,7 +57557,7 @@ }, "orienteering": { "af": "oriëntering", - "ar": "سباق موجه", + "ar": "السباق الموجه", "be": "спартыўнае арыентаванне", "bg": "спортно ориентиране", "ca": "cursa d'orientació", @@ -51509,10 +57571,12 @@ "fa": "جهتیابی", "fi": "suunnistus", "fr": "course d'orientation", + "ga": "treodóireacht", + "gd": "sligheadaireachd", + "gl": "orientación", "he": "ניווט ספורטיבי", "hr": "orijentacijski šport", "hu": "tájfutás", - "it": "orientamento", "ja": "オリエンテーリング", "ko": "오리엔티어링", "lt": "orientavimosi sportas", @@ -51533,6 +57597,7 @@ "zh-tw": "定向運動" }, "paddle_tennis": { + "ar": "تنس الريشة", "en": "paddle tennis", "fr": "paddle-tennis", "he": "פאדל טניס", @@ -51543,7 +57608,7 @@ "zh": "板網球" }, "padle": { - "ar": "رياضة البادل", + "ar": "البادل", "ca": "pàdel", "da": "padeltennis", "de": "padel-tennis", @@ -51551,11 +57616,13 @@ "en": "padel", "es": "pádel", "fa": "پدل", + "gl": "pádel", "he": "פאדל", "ja": "パドルテニス", "lt": "padelio tenisas", "pt": "pádel", - "uk": "падель (спорт)", + "ru": "падел", + "uk": "падель", "zh": "笼式网球" }, "paintball": { @@ -51567,20 +57634,21 @@ "en": "paintball", "et": "värvikuulimäng", "fa": "پینتبال", + "ga": "lámhach millíní péinte", "he": "פיינטבול", + "id": "bola cat", "ja": "ペイントボール", "ko": "페인트볼", "lt": "dažasvydis", "lv": "peintbols", "ml": "പെയിന്റ്ബോൾ", - "ms": "tembak bola cat", "ru": "пейнтбол", "uk": "пейнтбол", "zh": "迷彩漆彈運動", "zh-cn": "迷彩漆弹运动" }, "parachuting": { - "ar": "هبوط بالمظلات", + "ar": "الهبوط بالمظلات", "be": "парашутызм", "bg": "парашутизъм", "ca": "paracaigudisme", @@ -51593,6 +57661,8 @@ "fa": "چتربازی", "fi": "laskuvarjohyppy", "fr": "parachutisme", + "ga": "spéirthumadóireacht", + "gl": "paracaidismo", "he": "צניחה חופשית", "hi": "पैराशूटिंग", "hr": "padobranstvo", @@ -51601,11 +57671,10 @@ "it": "paracadutismo", "ja": "スカイダイビング", "kn": "ಧುಮುಕುಕೊಡೆ ಜಿಗಿತ", - "ko": "스카이 다이빙", + "ko": "스카이다이빙", "lt": "parašiutų sportas", "lv": "izpletņlēkšana", "ml": "പാരച്യൂട്ടിംഗ്", - "ms": "terjun udara", "nb": "fallskjermhopping", "nl": "parachutespringen", "pl": "spadochroniarstwo", @@ -51614,6 +57683,7 @@ "ru": "парашютизм", "sk": "parašutizmus", "sl": "skakanje s padalom", + "sq": "hedhje me parashutë", "sv": "fallskärmshoppning", "tr": "paraşütle atlama", "uk": "парашутизм", @@ -51623,7 +57693,7 @@ "zh-tw": "跳傘" }, "paragliding": { - "ar": "الطيران الشراعي", + "ar": "الطيران الشراعي المظلي", "bg": "парапланеризъм", "ca": "parapent", "de": "gleitschirmfliegen", @@ -51634,7 +57704,9 @@ "fa": "پاراگلایدر", "fi": "varjoliito", "fr": "parapente", + "gl": "parapente", "he": "רחיפה", + "hi": "पैराग्लाइडिंग", "hr": "padobransko jedrenje", "hu": "siklóernyőzés", "id": "paralayang", @@ -51645,7 +57717,6 @@ "lt": "parasparnis", "ml": "പാരാഗ്ലൈഡിങ്ങ്", "mr": "पॅराग्लायडिंग", - "ms": "terjun langit", "nl": "parapente", "pl": "paralotniarstwo", "pt": "parapente", @@ -51662,11 +57733,32 @@ "zh-hk": "滑翔傘", "zh-tw": "滑翔傘" }, + "parkour": { + "ar": "باركور", + "bg": "паркур", + "el": "παρκούρ", + "en": "parkour", + "et": "parkuur", + "fa": "پارکور", + "he": "פארקור", + "id": "parkur", + "ja": "パルクール", + "ko": "파르쿠르", + "lt": "parkūras", + "ml": "പാർക്കർ", + "ru": "паркур", + "sq": "parkur", + "ta": "தாண்டோட்டம்", + "th": "ปาร์กูร์", + "uk": "паркур", + "zh": "跑酷" + }, "pelota": { "af": "baskiese pelote", - "ar": "كرة الباسك", + "ar": "رياضة كرة اليد", "ca": "joc de pilota", "cs": "pelota", + "cy": "pilota", "da": "pelota", "de": "pelota", "en": "handball sports", @@ -51674,6 +57766,7 @@ "fa": "پیلوتای باسکی", "fi": "pelota", "fr": "jeu de balle", + "gl": "pelota vasca", "he": "כדור בסקי", "hr": "baskijska pilota", "hu": "baszk pelota", @@ -51711,6 +57804,7 @@ "fa": "پتانکو", "fi": "petankki", "fr": "pétanque", + "gl": "petanca", "he": "פטאנק", "hu": "pétanque", "id": "pétanque", @@ -51740,6 +57834,7 @@ "he": "פיקלבול", "hr": "piklbol", "ja": "ピックルボール", + "ko": "피클볼", "ru": "пиклбол", "uk": "піклбол", "zh": "匹克球" @@ -51751,6 +57846,7 @@ "en": "pilates", "fa": "پیلاتس", "he": "פילאטיס", + "hu": "pilátesz", "ja": "ピラティス・メソッド", "ko": "필라테스", "lt": "pilatesas", @@ -51798,41 +57894,8 @@ "sv": "radiostyrd modellbil", "zh": "遙控車" }, - "rock_climbing": { - "af": "rotsklim", - "ar": "تسلق الصخور", - "be": "скалалажанне", - "bg": "скално катерене", - "ca": "escalada de roques", - "cs": "horolezectví", - "da": "klippeklatring", - "de": "felsklettern", - "el": "αναρρίχηση σε βράχο", - "en": "rock climbing", - "es": "escalada en roca", - "et": "kaljuronimine", - "fa": "سنگنوردی", - "fi": "kalliokiipeily", - "fr": "escalade sur rochers", - "he": "טיפוס מצוקים", - "id": "panjat tebing", - "it": "arrampicata su roccia", - "ja": "ロック・クライミング", - "ko": "암벽등반", - "lv": "klinšu kāpšana", - "ml": "പാറ കയറ്റം", - "nb": "fjellklatring", - "nl": "rotsklimmen", - "pl": "wspinaczka skalna", - "ru": "скалолазание", - "sl": "skalno plezanje", - "sv": "klippklättring", - "uk": "скелелазіння", - "vi": "leo núi đá", - "zh": "攀岩" - }, "roller_skating": { - "ar": "تزلج بالعجلات", + "ar": "التزلج بالعجلات", "ca": "patinatge sobre rodes", "cs": "bruslení na kolečkových bruslích", "de": "rollsport", @@ -51842,6 +57905,9 @@ "fa": "پالیزه", "fi": "rullaluistelu", "fr": "patinage à roulettes", + "ga": "scátáil rollála", + "gd": "bròg-cuibhle", + "gl": "patinaxe sobre rodas", "he": "גלגיליות", "hr": "rolanje", "hu": "görkorcsolyázás", @@ -51854,7 +57920,7 @@ "pl": "wrotkarstwo", "pt": "patinagem sobre rodas", "pt-br": "patinação sobre rodas", - "ru": "роликовые коньки", + "ru": "катание на роликовых коньках", "sl": "kotalkanje", "sv": "rullskridskoåkning", "tr": "paten", @@ -51869,6 +57935,7 @@ "bg": "академично гребане", "ca": "rem", "cs": "veslování", + "cy": "rhwyfo", "da": "roning", "de": "rudersport", "el": "κωπηλασία", @@ -51878,17 +57945,18 @@ "fa": "روئینگ", "fi": "olympialuokkien soutu", "fr": "aviron", + "ga": "rámhaíocht", + "gl": "remo", "he": "חתירה", "hr": "veslanje", "hu": "evezés", "id": "dayung", "it": "canottaggio", - "ja": "ボート競技", + "ja": "ローイング競技", "kn": "ರೋಯಿಂಗ್ (ಆಟ)", "ko": "조정", "lt": "irklavimas", "lv": "akadēmiskā airēšana", - "ms": "lumba dayung", "nb": "roing", "nl": "roeien", "pl": "wioślarstwo", @@ -51897,6 +57965,7 @@ "ru": "академическая гребля", "sk": "veslovanie", "sl": "veslanje", + "sq": "kanotazhi", "sv": "rodd", "ta": "துடுப்பு படகோட்டம்", "tr": "kürek", @@ -51913,11 +57982,14 @@ "bg": "ръгби", "ca": "rugbi", "cs": "ragby", + "cy": "rygbi", "el": "ράγκμπι", "en": "rugby", "en-ca": "rugby football", "et": "ragbi", "fa": "راگبی", + "ga": "rugbaí", + "gd": "rugbaidh", "he": "רוגבי", "hi": "रग्बी फुटबॉल", "hr": "ragbi", @@ -51930,13 +58002,14 @@ "lv": "regbijs", "ml": "റഗ്ബി", "mr": "रग्बी फुटबॉल", - "ms": "ragbi", "pt": "râguebi", "pt-br": "rúgbi", "ru": "регби", "sk": "ragby", "sl": "ragbi", + "sq": "futbolli regbi", "ta": "ரக்பி கால்பந்து", + "te": "రగ్బీ యూనియన్", "th": "รักบี้", "tr": "ragbi", "uk": "регбі", @@ -51949,21 +58022,25 @@ "rugby_league": { "ar": "دوري الرغبي", "ca": "rugbi a 13", + "cy": "rygbi'r gynghrair", "el": "ράγκμπυ λιγκ", "en": "rugby league", + "es": "rugby a 13", "fa": "راگبی ۱۳ نفره", "fr": "rugby à xiii", + "gd": "rugbaidh lìog", "he": "ליגת הרוגבי", "hi": "रग्बी लीग", "hu": "ligarögbi", "id": "liga rugbi", "it": "rugby a 13", "ja": "ラグビーリーグ", - "ko": "럭비 리그", + "ko": "럭비리그", "mr": "रग्बी लीग", "pt": "râguebi de treze", "ro": "rugby în 13", "ru": "регбилиг", + "sl": "ragbi 13", "tr": "ragbi ligi", "uk": "регбіліг", "ur": "رگبی لیگ", @@ -51976,11 +58053,15 @@ "ar": "اتحاد الرغبي", "be": "рэгбі-15", "ca": "rugbi a 15", + "cy": "rygbi'r undeb", "el": "ράγκμπι γιούνιον", "en": "rugby union", "es": "rugby a 15", "fa": "راگبی ۱۵ نفره", "fr": "rugby à xv", + "ga": "rugbaí aontais", + "gd": "rugbaidh", + "gl": "rugby a 15", "he": "רוגבי יוניון", "hi": "रग्बी यूनियन", "hu": "uniós rögbi", @@ -51989,11 +58070,12 @@ "ja": "ラグビーユニオン", "ko": "럭비 유니언", "mr": "रग्बी युनियन", - "ms": "kesatuan ragbi", "pt": "râguebi de quinze", "ro": "rugby în xv", "ru": "регби-15", "sk": "ragby", + "sl": "ragbi 15", + "te": "రగ్బీ యూనియన్", "th": "รักบี้ยูเนียน", "tr": "ragbi birliği", "uk": "регбі-15", @@ -52004,7 +58086,7 @@ "zh-hk": "聯合式欖球" }, "running": { - "ar": "جري", + "ar": "تخصص الركض على المضمار", "ca": "disciplines atlètiques de cursa", "cs": "běžecká disciplína lehké atletiky", "da": "løbesport", @@ -52027,10 +58109,11 @@ }, "sailing": { "af": "seiljagwedvaart", - "ar": "إبحار", + "ar": "الإبحار الشراعي", "be": "парусны спорт", "ca": "vela", "cs": "jachting", + "cy": "hwylio", "da": "kapsejlads", "de": "regattasegeln", "el": "ιστιοπλοΐα", @@ -52039,9 +58122,12 @@ "et": "purjesport", "fi": "kilpapurjehdus", "fr": "voile", + "ga": "seoltóireacht", + "gl": "vela", "he": "שיט תחרותי", + "hr": "športsko jedrenje", "hu": "vitorlázás", - "id": "pelayaran (olahraga)", + "id": "pelayaran", "it": "vela", "ja": "セーリング", "ko": "세일링", @@ -52054,6 +58140,7 @@ "ru": "парусный спорт", "sk": "jachting", "sl": "športno jadranje", + "sq": "lundrimi (sport)", "sv": "kappsegling", "tr": "yelken", "uk": "вітрильний спорт", @@ -52062,16 +58149,19 @@ }, "scuba_diving": { "af": "ontspanningsduik", - "ar": "غوص ترفيهي", + "ar": "الغطس الترفيهي", "ca": "submarinisme recreatiu", + "cs": "rekreační potápění", "de": "sporttauchen", "en": "recreational diving", "es": "buceo recreativo", "fi": "virkistyssukellus", "fr": "plongée récréative", + "gl": "mergullo recreativo", "hr": "rekreacijsko ronjenje", "it": "immersione sportiva", "ja": "レジャーダイビング", + "nb": "sportsdykking", "nl": "duiksport", "pl": "nurkowanie rekreacyjne", "pt-br": "mergulho recreativo", @@ -52080,9 +58170,22 @@ "sv": "sportdykning", "zh": "休闲潜水" }, + "seven-a-side": { + "ar": "كرة القدم السبعة", + "ca": "futbol 7", + "en": "seven-a-side football", + "es": "fútbol 7", + "fr": "football à 7", + "it": "calcio a 7", + "ja": "ソサイチ", + "nb": "sjuerfotball", + "nl": "7-tegen-7-voetbal", + "pt": "futebol de sete", + "zh": "七人制足球" + }, "shooting": { "af": "skyfskiet", - "ar": "رماية", + "ar": "الرماية", "be": "стралковы спорт", "bg": "спортна стрелба", "ca": "tir esportiu", @@ -52095,8 +58198,9 @@ "es": "tiro deportivo", "et": "laskesport", "fa": "ورزش تیراندازی", - "fi": "ammunta", + "fi": "ampumaurheilu", "fr": "tir sportif", + "gl": "tiro deportivo", "he": "ירי ספורטיבי", "hi": "निशानेबाजी", "hr": "streljaštvo", @@ -52105,10 +58209,9 @@ "it": "tiro", "ja": "射撃競技", "ko": "사격", - "lt": "šaudymas", + "lt": "sportinis šaudymas", "lv": "šaušana", "mr": "नेमबाजी", - "ms": "sukan menembak", "nb": "skytesport", "nl": "schietsport", "pl": "strzelectwo", @@ -52117,7 +58220,8 @@ "ro": "tir sportiv", "ru": "стрелковый спорт", "sk": "športová streľba", - "sl": "strelski šport", + "sl": "streljanje", + "sq": "qitja", "sv": "sportskytte", "ta": "சுடுதல்", "tr": "atıcılık sporu", @@ -52151,7 +58255,7 @@ "pt": "estande de tiro", "ro": "poligon de tragere", "ru": "стрельбище", - "sl": "strelišče", + "sl": "strelski poligon", "sv": "skjutbana", "tr": "poligon", "uk": "тир", @@ -52160,6 +58264,7 @@ }, "shuffleboard": { "ar": "شفلبورد", + "cy": "gwthfwrdd", "en": "shuffleboard", "fr": "jeu de galets", "id": "selusur papan", @@ -52168,10 +58273,12 @@ "zh": "沙狐球" }, "skateboard": { - "ar": "تزلج لوحي", + "af": "skaatsplankry", + "ar": "التزلج على اللوح", "be": "скейтбордынг", "bg": "скейтбординг", "ca": "patinatge de monopatí", + "cy": "sglefrfyrddio", "de": "skateboardfahren", "el": "σκέιτμπορντινγκ", "en": "skateboarding", @@ -52180,6 +58287,9 @@ "fa": "اسکیتبوردینگ", "fi": "rullalautailu", "fr": "skateboard", + "ga": "clárscátáil", + "gd": "spèileabord", + "gl": "skate", "he": "סקייטבורדינג", "hu": "gördeszkázás", "it": "skateboard", @@ -52187,7 +58297,6 @@ "ko": "스케이트보딩", "lt": "riedlenčių sportas", "lv": "skeitbordings", - "ms": "luncur papan selaju", "nb": "rullebrettkjøring", "nl": "skateboarden", "pt": "skate", @@ -52200,20 +58309,23 @@ "tr": "kaykay", "uk": "скейтбординг", "vi": "trượt ván", - "zh": "滑板活动" + "zh": "滑板运动" }, "skating": { - "ar": "تزلج على أرضية منتظمة", + "ar": "التزلج", "ca": "patinatge", "da": "skøjtning", "en": "skating", "es": "patinaje", "et": "uisutamine", "fr": "patinage", + "ga": "scátáil", + "gl": "patinaxe", "hr": "klizanje", "hu": "korcsolyázás", "it": "pattinaggio", "ja": "スケート競技", + "lt": "čiuožimas", "nb": "skøyter", "nl": "schaatsen", "ru": "катание", @@ -52223,11 +58335,12 @@ "zh": "溜冰" }, "ski_jumping": { - "ar": "قفز تزحلفي", + "ar": "القفز التزلجي", "be": "скачкі на лыжах з трампліна", "bg": "ски скокове", "ca": "salt d'esquí", "cs": "skoky na lyžích", + "cy": "neidio sgi", "da": "skihop", "de": "skispringen", "el": "άλμα με σκι", @@ -52237,6 +58350,8 @@ "fa": "پرش با اسکی", "fi": "mäkihyppy", "fr": "saut à ski", + "ga": "léimneach sciála", + "gl": "salto de esquí", "he": "קפיצות סקי", "hr": "skijaški skokovi", "hu": "síugrás", @@ -52254,6 +58369,7 @@ "ru": "прыжки на лыжах с трамплина", "sk": "skoky na lyžiach", "sl": "smučarski skoki", + "sq": "kërcimi me ski", "sv": "backhoppning", "th": "อาคารกีฬากระโดดสกี", "tr": "kayakla atlama", @@ -52262,11 +58378,12 @@ }, "skiing": { "af": "ski", - "ar": "تزحلف", + "ar": "التزحلف", "be": "лыжны спорт", "bg": "ски спорт", "ca": "esquí", "cs": "lyžování", + "cy": "sgïo", "da": "skisport", "de": "skifahren", "el": "σκι", @@ -52276,6 +58393,8 @@ "fa": "اسکی", "fi": "hiihto", "fr": "ski", + "ga": "sciáil", + "gl": "esquí", "he": "סקי", "hi": "स्कीबाज़ी", "hr": "skijanje", @@ -52287,7 +58406,6 @@ "lt": "slidžių sportas", "lv": "slēpošana", "mr": "स्कीइंग", - "ms": "ski", "nb": "skiidrett", "nl": "skiën", "pl": "narciarstwo", @@ -52296,13 +58414,22 @@ "ru": "лыжный спорт", "sk": "lyžovanie", "sl": "smučanje", + "sq": "skijimi", "sv": "skidsport", "ta": "பனிச்சறுக்கு", + "te": "స్కీయింగ్", "tr": "kayak", "uk": "лижний спорт", "vi": "trượt tuyết", "zh": "滑雪" }, + "skittles": { + "ar": "القناني الخشبية", + "de": "tischkegelspiel", + "en": "skittles", + "ja": "スキットル", + "sv": "skittles (spel)" + }, "soccer": { "af": "sokker", "ar": "كرة القدم", @@ -52310,19 +58437,23 @@ "bg": "футбол", "ca": "futbol", "cs": "fotbal", + "cy": "pêl-droed", "da": "fodbold", - "de": "bolzplatz", "de-at": "fußball", "de-ch": "fussball", "el": "ποδόσφαιρο", - "en": "association football", + "en": "bolzplatz", "en-ca": "soccer", + "en-gb": "association football", "en-us": "soccer", "es": "fútbol", "et": "jalgpall", "fa": "فوتبال", "fi": "jalkapallo", "fr": "football", + "ga": "sacar", + "gd": "ball-coise", + "gl": "fútbol", "he": "כדורגל", "hi": "फुटबॉल", "hr": "nogomet", @@ -52336,7 +58467,6 @@ "lv": "futbols", "ml": "ഫുട്ബോൾ", "mr": "फुटबॉल", - "ms": "bola sepak", "nb": "fotball", "nl": "voetbal", "pl": "piłka nożna", @@ -52345,8 +58475,10 @@ "ru": "футбол", "sk": "futbal", "sl": "nogomet", + "sq": "futboll", "sv": "fotboll", "ta": "காற்பந்தாட்டம்", + "te": "ఫుట్ బాల్", "th": "ฟุตบอล", "tr": "futbol", "uk": "футбол", @@ -52360,11 +58492,14 @@ "be": "софтбол", "bg": "софтбол", "ca": "softbol", + "cy": "pêl feddal", "el": "σόφτμπολ", "en": "softball", "es": "sóftbol", "et": "pehmepall", "fa": "سافتبال", + "ga": "bogliathróid", + "gl": "softbol", "he": "סופטבול", "hr": "softbol", "id": "sofbol", @@ -52374,7 +58509,6 @@ "lt": "softbolas", "lv": "softbols", "mr": "सॉफ्टबॉल", - "ms": "bola lisut", "nl": "softbal", "pt": "softbol", "ru": "софтбол", @@ -52382,6 +58516,7 @@ "sl": "softbol", "sv": "softboll", "ta": "மென்பந்தாட்டம்", + "te": "సాఫ్ట్ బాల్", "th": "ซอฟต์บอล", "tr": "softbol", "uk": "софтбол", @@ -52392,13 +58527,15 @@ }, "squash": { "af": "muurbal", - "ar": "إسكواش", + "ar": "الإسكواش", "be": "сквош", "bg": "скуош", "ca": "esquaix", + "cy": "sboncen", "el": "τοιχοσφαίριση", "en": "squash", "fa": "اسکواش", + "ga": "scuais", "he": "סקווש", "hi": "स्क्वैश", "hr": "skvoš", @@ -52410,7 +58547,6 @@ "lv": "skvošs", "ml": "സ്ക്വാഷ്", "mr": "स्क्वॉश", - "ms": "skuasy", "ru": "сквош", "sl": "skvoš", "ta": "ஸ்குவாஷ்", @@ -52422,7 +58558,7 @@ "zh": "壁球" }, "sumo": { - "ar": "سومو", + "ar": "السومو", "be": "сумо", "bg": "сумо", "cs": "sumó", @@ -52430,11 +58566,13 @@ "el": "σούμο", "en": "sumo", "fa": "سومو", + "ga": "súmó", "he": "סומו", "hi": "सूमो", "hr": "sumo hrvanje", "hu": "szumó", "ja": "相撲", + "kn": "ಸುಮೋ", "ko": "스모", "ml": "സുമോ ഗുസ്തി", "mr": "सुमो", @@ -52442,6 +58580,7 @@ "ru": "сумо", "sv": "sumobrottning", "ta": "சுமோ மற்போர்", + "te": "సుమో యోధులు", "th": "ซูโม่", "tr": "sumo güreşi", "uk": "сумо", @@ -52450,10 +58589,11 @@ }, "surfing": { "af": "branderplankryery", - "ar": "ركمجة", + "ar": "ركوب الأمواج", "be": "сёрфінг", "bg": "сърфиране", "ca": "surf", + "cy": "syrffio", "de": "wellenreiten", "el": "σέρφινγκ", "en": "surfing", @@ -52462,6 +58602,8 @@ "fa": "موجسواری", "fi": "lainelautailu", "fr": "surf", + "ga": "tonnmharcaíocht", + "gl": "surf", "he": "גלישת גלים", "hi": "लहरबाज़ी", "hr": "surfanje", @@ -52472,12 +58614,13 @@ "ko": "파도타기", "lt": "banglenčių sportas", "lv": "sērfings", - "ms": "luncur air", "nl": "surfen", "pt": "surfe", "ru": "сёрфинг", "sl": "surfanje", + "sq": "surfimi", "ta": "அலைச்சறுக்கு", + "te": "సర్ఫింగ్", "th": "โต้คลื่น", "tr": "sörf", "uk": "серфінг", @@ -52493,6 +58636,7 @@ "bg": "плуване", "ca": "natació", "cs": "plavání", + "cy": "nofio", "da": "konkurrencesvømning", "de": "schwimmsport", "el": "κολύμβηση", @@ -52502,6 +58646,8 @@ "fa": "ورزش شنا", "fi": "uinti", "fr": "natation sportive", + "ga": "snámh", + "gl": "natación", "he": "שחייה תחרותית", "hr": "plivanje", "hu": "versenyúszás", @@ -52510,6 +58656,7 @@ "ja": "競泳", "kn": "ಈಜು", "ko": "수영", + "lt": "plaukimas", "lv": "peldēšana", "ml": "നീന്തൽ മത്സരം", "mr": "जलतरण", @@ -52521,8 +58668,10 @@ "ro": "natație", "ru": "плавание", "sl": "plavanje", + "sq": "noti", "sv": "tävlingssimning", "ta": "நீச்சற் போட்டி", + "te": "ఈత (క్రీడ)", "th": "กีฬาว่ายน้ำ", "tr": "yüzme", "uk": "спортивне плавання", @@ -52545,6 +58694,7 @@ "fa": "فوتبال دستی", "fi": "pöytäjalkapallo", "fr": "baby-foot", + "gl": "futbolín", "he": "כדורגל שולחן", "hr": "stolni nogomet", "hu": "csocsó", @@ -52558,6 +58708,7 @@ "ro": "foosball", "ru": "кикер", "sk": "stolný futbal", + "sq": "futboll tavoline", "sv": "bordsfotboll", "th": "ฟุตบอลโต๊ะ", "tr": "langırt", @@ -52572,6 +58723,7 @@ "bg": "тенис на маса", "ca": "tennis de taula", "cs": "stolní tenis", + "cy": "tenis bwrdd", "da": "bordtennis", "de": "tischtennis", "el": "επιτραπέζια αντισφαίριση", @@ -52581,6 +58733,8 @@ "fa": "تنیس روی میز", "fi": "pöytätennis", "fr": "tennis de table", + "ga": "leadóg bhoird", + "gl": "tenis de mesa", "he": "טניס שולחן", "hi": "टेबल टेनिस", "hr": "stolni tenis", @@ -52594,7 +58748,6 @@ "lv": "galda teniss", "ml": "ടേബിൾ ടെന്നീസ്", "mr": "टेबल टेनिस", - "ms": "ping pong", "nb": "bordtennis", "nl": "tafeltennis", "pl": "tenis stołowy", @@ -52603,8 +58756,10 @@ "ru": "настольный теннис", "sk": "stolný tenis", "sl": "namizni tenis", + "sq": "pingpong", "sv": "bordtennis", "ta": "மேசைப்பந்தாட்டம்", + "te": "టేబుల్ టెన్నిస్", "th": "เทเบิลเทนนิส", "tr": "masa tenisi", "uk": "настільний теніс", @@ -52614,12 +58769,13 @@ "zh-tw": "桌球" }, "taekwondo": { - "ar": "تايكوندو", + "ar": "التايكوندو", "be": "тэквандо", "bg": "таекуондо", "el": "τάε κβον ντο", "en": "taekwondo", "fa": "تکواندو", + "ga": "taecuando", "he": "טאקוונדו", "ja": "テコンドー", "kn": "ಟೇಕ್ವಾಂಡೋ", @@ -52629,6 +58785,7 @@ "ml": "തായ്കൊണ്ടോ", "ru": "тхэквондо", "ta": "டைக்குவாண்டோ", + "te": "టైక్వాండో", "th": "เทควันโด", "tr": "tekvando", "uk": "тхеквондо", @@ -52642,6 +58799,7 @@ "bg": "хандбал", "ca": "handbol", "cs": "házená", + "cy": "pêl-law", "da": "håndbold", "el": "χειροσφαίριση", "en": "handball", @@ -52649,6 +58807,8 @@ "et": "käsipall", "fa": "هندبال", "fi": "käsipallo", + "ga": "liathróid láimhe", + "gl": "balonmán", "he": "כדוריד", "hi": "हैंडबॉल", "hr": "rukomet", @@ -52661,7 +58821,6 @@ "lv": "rokasbumba", "ml": "ഹാന്റ്ബോൾ", "mr": "हँडबॉल", - "ms": "bola baling", "nb": "håndball", "nl": "handbal", "pl": "piłka ręczna", @@ -52671,6 +58830,7 @@ "ru": "гандбол", "sk": "hádzaná", "sl": "rokomet", + "sq": "hendboll", "sv": "handboll", "ta": "எறிபந்தாட்டம்", "th": "แฮนด์บอล", @@ -52687,6 +58847,7 @@ "bg": "тенис корт", "ca": "pista de tennis", "cs": "tenisový dvorec", + "cy": "tenis", "da": "tennisbane", "de": "tennisplatz", "de-ch": "tennis", @@ -52699,6 +58860,8 @@ "fa": "زمین تنیس", "fi": "tenniskenttä", "fr": "court de tennis", + "ga": "leadóg", + "gl": "tenis", "he": "מגרש טניס", "hi": "टेनिस", "hr": "tenis", @@ -52712,7 +58875,6 @@ "lv": "teniss", "ml": "ടെന്നീസ്", "mr": "टेनिस", - "ms": "gelanggang tenis", "nb": "tennisbane", "nl": "tennisbaan", "pl": "kort tenisowy", @@ -52722,19 +58884,21 @@ "ru": "теннисный корт", "sk": "tenis", "sl": "teniško igrišče", + "sq": "tenisi", "sv": "tennisbana", "ta": "டென்னிசு", + "te": "టెన్నిస్", "th": "เทนนิส", "tr": "kort", "uk": "тенісний корт", - "ur": "ٹینس", + "ur": "ٹینس کورٹ", "vi": "sân quần vợt", "zh": "網球場", "zh-cn": "网球", "zh-tw": "網球" }, "toboggan": { - "ar": "زحافات ثلجية", + "ar": "الزحافة الثلجية", "be": "санны спорт", "bg": "спортни шейни", "cs": "saně", @@ -52746,6 +58910,7 @@ "fa": "لژسواری", "fi": "ohjaskelkkailu", "fr": "luge de course", + "ga": "lúis", "he": "לוז'", "hr": "sanjkanje", "hu": "szánkó", @@ -52773,14 +58938,18 @@ "be": "скачкі на батуце", "ca": "gimnàstica de trampolí", "cs": "skoky na trampolíně", + "cy": "trampolinio", "da": "trampolinspring", "de": "trampolinturnen", + "el": "τραμπολίνο", "en": "trampoline gymnastics", "es": "gimnasia en trampolín", "et": "trampoliinvõimlemine", "fa": "ترامپولین", "fi": "trampoliinivoimistelu", "fr": "trampoline", + "ga": "trampailíneacht", + "gl": "ximnasia en trampolín", "he": "טרמפולינה", "hr": "trampolin", "hu": "trambulin", @@ -52789,7 +58958,7 @@ "ja": "トランポリン競技", "ko": "트램펄린 경기", "lt": "šuoliai ant batuto", - "ms": "gimnastik trampolin", + "lv": "lēkšana uz batuta", "nb": "trampoline", "nl": "trampolinespringen", "pl": "skoki na trampolinie", @@ -52828,7 +58997,7 @@ "zh": "終極飛盤" }, "ultralight_aviation": { - "ar": "طائرة فائقة الخفة", + "ar": "الطيران فائق الخفة", "ca": "aviació ultralleugera", "cs": "ultralehké letadlo", "da": "ultralet fly", @@ -52838,6 +59007,7 @@ "fa": "هواپیمای فوق سبک", "fi": "ultrakevyt lentokone", "fr": "planeur ultra-léger motorisé", + "gl": "ultralixeiro", "he": "אווירון זעיר ממדים", "hr": "mikrolaki avion", "id": "penerbangan ultra ringan", @@ -52862,6 +59032,7 @@ "bg": "волейбол", "ca": "voleibol", "cs": "volejbal", + "cy": "pêl-foli", "el": "πετοσφαίριση", "en": "volleyball", "es": "voleibol", @@ -52869,6 +59040,8 @@ "fa": "والیبال", "fi": "lentopallo", "fr": "volley-ball", + "ga": "eitpheil", + "gl": "voleibol", "he": "כדורעף", "hi": "वालीबॉल", "hr": "odbojka", @@ -52882,7 +59055,6 @@ "lv": "volejbols", "ml": "വോളീബോൾ", "mr": "व्हॉलीबॉल", - "ms": "bola tampar", "nl": "volleybal", "pl": "piłka siatkowa", "pt": "voleibol", @@ -52890,8 +59062,10 @@ "ru": "волейбол", "sk": "volejbal", "sl": "odbojka", + "sq": "volejboll", "sv": "volleyboll", "ta": "கைப்பந்தாட்டம்", + "te": "వాలీబాల్", "th": "วอลเลย์บอล", "tr": "voleybol", "uk": "волейбол", @@ -52906,6 +59080,7 @@ "bg": "водна топка", "ca": "waterpolo", "cs": "vodní pólo", + "cy": "polo dŵr", "da": "vandpolo", "de": "wasserball", "el": "υδατοσφαίριση", @@ -52915,6 +59090,9 @@ "fa": "واترپلو", "fi": "vesipallo", "fr": "water-polo", + "ga": "póló uisce", + "gd": "uisge-polo", + "gl": "wáter-polo", "he": "כדורמים", "hi": "वाटर पोलो", "hr": "vaterpolo", @@ -52927,7 +59105,6 @@ "lv": "ūdenspolo", "ml": "വാട്ടർ പോളോ", "mr": "वॉटर पोलो", - "ms": "polo air", "nb": "vannpolo", "nl": "waterpolo", "pl": "piłka wodna", @@ -52936,6 +59113,7 @@ "ru": "водное поло", "sk": "vodné pólo", "sl": "vaterpolo", + "sq": "vaterpoli", "sv": "vattenpolo", "ta": "நீர்ப் பந்தாட்டம்", "th": "โปโลน้ำ", @@ -52947,7 +59125,7 @@ }, "water_ski": { "af": "waterski", - "ar": "تزلج على الماء", + "ar": "التزحلف على الماء", "bg": "водни ски", "ca": "esquí aquàtic", "cs": "vodní lyžování", @@ -52963,13 +59141,14 @@ "he": "סקי מים", "hi": "वातर स्कीइङ्", "hr": "skijanje na vodi", + "hu": "vízisíelés", "id": "ski air", "it": "sci nautico", "ja": "水上スキー", "kn": "ನೀರಿನ ಮೇಲೆ ಜಾರುವ ಆಟ", "ko": "수상스키", "lt": "vandens slidžių sportas", - "nb": "vannski", + "nb": "vannskikjøring", "nl": "waterskiën", "pl": "narciarstwo wodne", "pt": "esqui aquático", @@ -52988,6 +59167,7 @@ "bg": "вдигане на тежести", "ca": "halterofília", "cs": "vzpírání", + "cy": "codi pwysau olympaidd", "da": "vægtløftning", "de": "gewichtheben", "el": "άρση βαρών", @@ -52997,6 +59177,7 @@ "fa": "وزنهبرداری", "fi": "painonnosto", "fr": "haltérophilie", + "gl": "halterofilia", "he": "הרמת משקולות", "hi": "भारोत्तोलन", "hr": "dizanje utega", @@ -53009,7 +59190,6 @@ "lv": "svarcelšana", "ml": "ഭാരോദ്വഹനം", "mr": "भारोत्तोलन", - "ms": "angkat berat", "nb": "vektløfting", "nl": "gewichtheffen", "pl": "podnoszenie ciężarów", @@ -53017,9 +59197,10 @@ "ro": "haltere", "ru": "тяжёлая атлетика", "sk": "vzpieranie", - "sl": "dviganje uteži", + "sl": "olimpijsko dviganje uteži", "sv": "tyngdlyftning", "ta": "பாரம் தூக்குதல்", + "te": "బరువు ఎత్తడం", "th": "ยกน้ำหนัก", "tr": "halter", "uk": "важка атлетика", @@ -53031,11 +59212,12 @@ }, "wrestling": { "af": "stoei", - "ar": "مصارعة", + "ar": "المصارعة", "be": "барацьба", "bg": "борба", "ca": "lluita", "cs": "zápas", + "cy": "ymaflyd codwm", "da": "brydning", "de": "ringen", "el": "πάλη", @@ -53044,6 +59226,9 @@ "et": "maadlus", "fa": "ورزش کشتی", "fi": "paini", + "fr": "lutte", + "ga": "iomrascáil", + "gl": "loita", "he": "היאבקות", "hi": "कुश्ती", "hr": "hrvanje", @@ -53057,7 +59242,6 @@ "lv": "cīņas sports", "ml": "ഗുസ്തി", "mr": "कुस्ती", - "ms": "gusti", "nb": "bryting", "nl": "worstelen", "pl": "zapasy", @@ -53066,8 +59250,10 @@ "ru": "борьба", "sk": "zápasenie", "sl": "rokoborba", + "sq": "mundja", "sv": "brottning", "ta": "மற்போர்", + "te": "మల్ల యుద్ధం", "th": "มวยปล้ำ", "tr": "güreş", "uk": "боротьба", @@ -53084,6 +59270,7 @@ "bg": "йога", "ca": "ioga", "cs": "jóga", + "cy": "ioga", "da": "yoga", "de": "yoga", "el": "γιόγκα", @@ -53095,6 +59282,8 @@ "fa": "یوگا", "fi": "jooga", "fr": "studio de yoga", + "ga": "ióga", + "gl": "ioga", "he": "יוגה", "hi": "योग", "hr": "joga", @@ -53108,7 +59297,6 @@ "lv": "joga", "ml": "യോഗ", "mr": "योग", - "ms": "yoga", "nb": "yoga", "nl": "yoga", "pl": "joga", @@ -53117,8 +59305,10 @@ "ru": "йога", "sk": "joga", "sl": "joga", + "sq": "joga", "sv": "yoga", "ta": "யோகாசனம்", + "te": "యోగా", "th": "โยคะ", "tr": "yoga", "uk": "йоґа", @@ -53134,6 +59324,7 @@ "bg": "метростанция", "ca": "estació de metro", "cs": "stanice metra", + "cy": "gorsaf metro", "da": "metrostation", "de": "u-bahnhof", "de-at": "u-bahn-station", @@ -53144,6 +59335,7 @@ "fa": "ایستگاه مترو", "fi": "metroasema", "fr": "station de métro", + "ga": "stáisiún meitreo", "he": "תחנת רכבת תחתית", "hi": "मेट्रो स्टेशन", "hu": "metróállomás", @@ -53152,7 +59344,6 @@ "ja": "地下鉄・都市高速鉄道の駅", "ko": "도시철도역", "lt": "metro stotis", - "ms": "stesen metro", "nb": "metrostasjon", "nl": "metrostation", "pl": "stacja metra", @@ -53161,14 +59352,13 @@ "ro": "stație de metrou", "ru": "станция метрополитена", "sk": "stanica metra", - "sl": "postaja metroja", + "sl": "postaja podzemne železnice", "sv": "tunnelbanestation", "tr": "metro istasyonu", "uk": "станція метрополітену", "ur": "میٹرو اسٹیشن", "vi": "ga tàu điện ngầm", - "zh": "地铁車站", - "zh-cn": "地铁站", + "zh": "地铁站", "zh-hk": "地鐵站", "zh-tw": "捷運站" } @@ -53181,6 +59371,7 @@ "bg": "герб", "ca": "escut d'armes", "cs": "erb", + "cy": "arfbais", "da": "våben", "de": "wappen", "el": "οικόσημο", @@ -53190,6 +59381,9 @@ "fa": "نشان خانوادگی", "fi": "vaakuna", "fr": "blason", + "ga": "armas", + "gd": "lùireach", + "gl": "brasón", "he": "שלט הרלדי", "hi": "राज्य - चिह्न", "hr": "grb", @@ -53200,7 +59394,6 @@ "ko": "문장", "lt": "herbas", "lv": "ģerbonis", - "ms": "jata", "nb": "våpen", "nl": "heraldisch wapen", "pl": "herb", @@ -53209,6 +59402,7 @@ "ru": "герб", "sk": "erb", "sl": "grb", + "sq": "stema", "sv": "heraldiskt vapen", "th": "ตราอาร์ม", "tr": "arma", @@ -53255,6 +59449,8 @@ "fa": "استودیو", "fi": "äänitysstudio", "fr": "studio d'enregistrement", + "ga": "stiúideo taifeadta", + "gl": "estudio de gravación", "he": "אולפן הקלטות", "hu": "hangstúdió", "id": "studio rekaman", @@ -53270,6 +59466,7 @@ "sk": "nahrávacie štúdio", "sl": "snemalni studio", "sv": "inspelningsstudio", + "te": "రికార్డింగ్ స్టూడియో", "tr": "kayıt stüdyosu", "uk": "студія звукозапису", "vi": "phòng thu", @@ -53277,16 +59474,18 @@ "zh-cn": "录音室" }, "television": { - "ar": "استديو تلفزيون", + "ar": "إستديو تلفاز", "be": "тэлевізійная студыя", "ca": "estudi de televisió", "cs": "televizní studio", + "cy": "stiwdio teledu", "de": "fernsehstudio", "el": "τηλεοπτικό στούντιο", "en": "television studio", "es": "estudio de televisión", "fi": "televisiostudio", "fr": "studio de télévision", + "ga": "stiúideo teilifíse", "he": "אולפני טלוויזיה", "hu": "televízióstúdió", "it": "studio televisivo", @@ -53299,6 +59498,7 @@ "ru": "телевизионная студия", "sl": "televizijski studio", "sv": "tv-studio", + "te": "టెలివిజన్ స్టూడియో", "th": "สตูดิโอโทรทัศน์", "tr": "televizyon stüdyosu", "uk": "телестудія", @@ -53307,6 +59507,33 @@ "zh": "電視製片廠" } }, + "substance": { + "sewage": { + "ar": "صرف صحي", + "ca": "aigües residuals urbanes", + "cs": "splašková voda", + "de": "schmutzwasser", + "en": "sewage", + "es": "aguas residuales", + "fi": "jätevesi", + "fr": "eaux usées", + "gl": "augas residuais", + "hi": "वाहितमल", + "id": "comberan", + "ja": "生活排水", + "mr": "सांडपाणी", + "nb": "avløpsvann", + "nl": "afvalwater", + "ro": "canalizare", + "ru": "канализация", + "sl": "odplake", + "sq": "ujërat e zeza", + "uk": "господарсько-побутові стічні води", + "ur": "آبنکاسی", + "zh": "污水", + "zh-cn": "市區污水" + } + }, "substation": { "traction": { "be": "цягавая падстанцыя", @@ -53335,10 +59562,12 @@ "de": "gipfelkreuz", "en": "summit cross", "es": "cruz de la cumbre", + "fa": "صلیب قله", "fr": "croix sommitale", "id": "salib puncak", "it": "croce di vetta", - "nl": "bergtopkruis" + "nl": "bergtopkruis", + "sl": "križ na vrhu" } }, "support": { @@ -53348,6 +59577,7 @@ "bg": "таван", "ca": "sostre", "cs": "strop", + "cy": "nenfwd", "da": "loft", "de": "decke", "el": "οροφή", @@ -53357,6 +59587,8 @@ "fa": "سقف", "fi": "sisäkatto", "fr": "plafond", + "ga": "síleáil", + "gl": "teito", "he": "תקרה", "hr": "strop", "hu": "mennyezet", @@ -53366,7 +59598,6 @@ "ko": "천장", "lt": "lubos", "lv": "griesti", - "ms": "siling", "nb": "himling", "nl": "plafond", "pl": "strop", @@ -53375,6 +59606,7 @@ "ru": "потолок", "sk": "strop", "sl": "strop", + "sq": "tavani", "sv": "innertak", "tr": "tavan", "uk": "стеля", @@ -53387,6 +59619,7 @@ "bg": "ограда", "ca": "tanca", "cs": "plot", + "cy": "ffens", "da": "hegn", "de": "zaun", "el": "φράχτης", @@ -53396,6 +59629,8 @@ "fa": "حصار (حائل)", "fi": "aita", "fr": "clôture", + "ga": "claí", + "gl": "cerca", "he": "גדר", "hi": "बाड़", "hu": "kerítés (építmény)", @@ -53406,7 +59641,6 @@ "ko": "울타리", "lt": "tvora", "lv": "žogs", - "ms": "pagar", "nb": "gjerde", "nl": "hek", "pl": "płot", @@ -53415,8 +59649,10 @@ "ru": "забор", "sk": "oplotenie", "sl": "ograja", + "sq": "rrethoja", "sv": "stängsel", "ta": "வேலி (எல்லை)", + "te": "కంచె", "tr": "çit", "uk": "огорожа", "vi": "hàng dậu", @@ -53438,6 +59674,7 @@ "fa": "داربست", "fi": "työteline", "fr": "échafaudage", + "gl": "estada", "he": "פיגום", "hi": "मचान", "hr": "skela", @@ -53448,7 +59685,6 @@ "kn": "ಸ್ಕ್ಯಾಫೋಲ್ಡಿಂಗ್", "ko": "비계", "lt": "pastoliai", - "ms": "perancah", "nb": "stillas", "nl": "bouwsteiger", "pl": "rusztowanie", @@ -53459,6 +59695,7 @@ "sl": "oder", "sv": "byggnadsställning", "ta": "சாரம்", + "te": "పరంజా", "th": "นั่งร้าน", "tr": "i̇skele", "uk": "риштування", @@ -53472,6 +59709,7 @@ "bg": "улично обзавеждане", "ca": "mobiliari urbà", "cs": "pouliční nábytek", + "cy": "dodrefn stryd", "da": "byinventar", "de": "stadtmöbel", "en": "street furniture", @@ -53483,8 +59721,8 @@ "hu": "köztéri bútor", "id": "perabot jalan", "it": "arredo urbano", - "ja": "アーバンデザイン", - "ms": "perabot jalan", + "ja": "ストリートファニチャー", + "nb": "gatemøbel", "nl": "straatmeubilair", "pl": "mała architektura", "pt": "mobiliário urbano", @@ -53502,6 +59740,7 @@ "bg": "стена", "ca": "paret", "cs": "zeď", + "cy": "mur", "da": "mur", "de": "mauer", "el": "τοίχος", @@ -53511,6 +59750,9 @@ "fa": "دیوار", "fi": "muuri", "fr": "mur", + "ga": "balla", + "gd": "balla", + "gl": "muro", "he": "קיר", "hi": "दीवार", "hr": "zid", @@ -53522,16 +59764,18 @@ "ko": "벽", "lt": "siena", "lv": "mūris", - "ms": "dinding", "nb": "mur", + "nl": "muur (bouwsel)", "pl": "mur", "pt": "muro", "ro": "zid", "ru": "стена", "sk": "stena", "sl": "zid", + "sq": "mur", "sv": "mur", "ta": "மதில்", + "te": "గోడ", "th": "ผนัง", "tr": "duvar", "uk": "стіна", @@ -53557,6 +59801,7 @@ "fa": "چمن مصنوعی", "fi": "tekonurmi", "fr": "pelouse artificielle", + "gl": "céspede artificial", "he": "דשא מלאכותי", "hr": "umjetna trava", "hu": "műfű", @@ -53565,7 +59810,6 @@ "ja": "人工芝", "ko": "인조잔디", "lv": "mākslīgais zāliens", - "ms": "rumput buatan", "nb": "kunstgress", "nl": "kunstgras", "pt": "relva sintética", @@ -53595,6 +59839,7 @@ "fa": "بتن آسفالتی", "fi": "asfaltti", "fr": "enrobé", + "ga": "coincréit asfailt", "hr": "asfalt", "hu": "aszfaltbeton", "it": "conglomerato bituminoso", @@ -53608,6 +59853,7 @@ "ro": "asfalt", "ru": "асфальтобетон", "sl": "asfaltni beton", + "sq": "asfallti", "sv": "asfalt", "th": "แอสฟอลต์คอนกรีต", "tr": "asfalt beton", @@ -53629,6 +59875,7 @@ "bg": "кал", "ca": "fang", "cs": "bahno", + "cy": "llaid", "da": "mudder", "de": "schlamm", "el": "λάσπη", @@ -53638,6 +59885,8 @@ "fa": "گل", "fi": "muta", "fr": "boue", + "ga": "láib", + "gl": "lama", "he": "בוץ", "hi": "पंक", "hr": "blato", @@ -53647,9 +59896,9 @@ "ja": "泥", "kn": "ಕೆಸರು", "ko": "진흙", + "lt": "purvas", "lv": "dubļi", "ml": "ചളി", - "ms": "lumpur", "nl": "modder", "pl": "błoto", "pt": "lama", @@ -53673,8 +59922,8 @@ "fa": "فرش کردن", "fi": "katukivi", "fr": "pavage", + "gl": "pavimento", "hi": "कुट्टिम", - "id": "perkerasan jalan", "it": "pavimentazione", "ja": "ペーブメントデザイン", "nb": "brolegning", @@ -53684,7 +59933,7 @@ "ro": "pavaj", "ru": "мостовая", "sk": "dlažba", - "sl": "tlakovanje", + "sl": "tlak", "tr": "döşeme", "uk": "бруківка", "vi": "đường lát", @@ -53693,6 +59942,7 @@ }, "sett": { "ar": "حجر رصف", + "be": "брусчатка", "bg": "паве", "ca": "llambordí", "cs": "dlažební kostka", @@ -53739,18 +59989,19 @@ "fa": "دوربین مداربسته", "hi": "क्लोज सर्किट टेलिविज़न कैमरा", "ja": "閉回路テレビジョンカメラ", - "ms": "kamera televisyen litar tertutup", "ru": "камера видеонаблюдения", "sl": "televizijska kamera zaprtega kroga", "sv": "övervakningskamera", "th": "กล้องวงจรปิด", - "tr": "cctv kamera" + "tr": "cctv kamera", + "uk": "камера замкнутого телебачення" }, "webcam": { "ar": "مسار صفحة كاميرا الويب", "bg": "уеб камера", "ca": "url de la pàgina de la càmera web", "cs": "url webkamery", + "cy": "gwe-gamera", "da": "webkamera", "de": "url der webcam", "el": "web camera", @@ -53758,8 +60009,10 @@ "es": "url de la página de la cámara web", "et": "veebikaamera", "fa": "وببین", - "fi": "verkkokamera", + "fi": "web-kamerasivun url", "fr": "webcam", + "ga": "ceamara gréasáin url", + "gl": "url da webcam", "he": "מצלמת רשת", "hi": "वेबकैम", "hu": "webkamera url-je", @@ -53770,8 +60023,7 @@ "lt": "internetinė vaizdo kamera", "lv": "tīmekļkamera", "ml": "വെബ്ക്യാം", - "ms": "kamera web", - "nb": "webkamera lenke", + "nb": "webkamera-lenke", "nl": "url voor webcampagina", "pl": "url strony z widokiem z kamery", "pt": "página da webcam", @@ -53780,14 +60032,17 @@ "ru": "страница веб-камеры", "sk": "webkamera", "sl": "url spletne kamere", + "sq": "webcam", "sv": "url till webbkamera", "ta": "இணையப் படக்கருவி", + "te": "వెబ్క్యామ్", "th": "เว็บแคม", "tr": "web kamerası sayfası url'si", "uk": "сторінка веб-камери", "ur": "ویب کیمرہ", "vi": "webcam", - "zh": "摄像头", + "zh": "网络摄像头页面链接", + "zh-cn": "摄像头", "zh-hk": "網絡攝影機", "zh-tw": "網路攝影機" } @@ -53796,6 +60051,11 @@ "only": { "en": "take and bake pizzeria", "es": "pizzerías take and bake" + }, + "yes": { + "en": "takeaway restaurant", + "en-us": "takeout restaurant", + "zh": "外賣店" } }, "tclid": { @@ -53813,8 +60073,10 @@ "bg": "телефонна централа", "ca": "central de commutació", "cs": "telefonní ústředna", + "cy": "cyfnewidfa ffôn", "da": "telefoncentral", "de": "vermittlungsstelle", + "el": "τηλεφωνικό κέντρο", "en": "telephone exchange", "es": "central telefónica", "fa": "تلفنخانه", @@ -53844,10 +60106,11 @@ "telescope": { "": { "af": "radioteleskoop", - "ar": "تلسكوب بصري", + "ar": "مقراب بصري", "bg": "радиотелескоп", "ca": "telescopi òptic", "cs": "gamma teleskop", + "cy": "telesgop optegol", "da": "radioteleskop", "de": "gammateleskop", "de-ch": "optisches teleskop", @@ -53859,6 +60122,8 @@ "fa": "تلسکوپ نوری", "fi": "optinen teleskooppi", "fr": "télescope à rayons gamma", + "ga": "teileascóp optúil", + "gl": "telescopio óptico", "he": "טלסקופ אופטי", "hi": "प्रकाशीय दूरदर्शी", "hr": "optički teleskop", @@ -53866,12 +60131,12 @@ "id": "teleskop optik", "it": "telescopio ottico", "ja": "ガンマ線望遠鏡", + "kn": "ದೃಕ್ ದೂರದರ್ಶಕ", "ko": "광학망원경", "lt": "optinis teleskopas", "lv": "radioteleskops", "ml": "റേഡിയോ ദൂരദർശിനി", "mr": "रेडिओ दुर्बीण", - "ms": "teleskop optik", "nb": "optisk teleskop", "nl": "optische telescoop", "pl": "teleskop promieniowania gamma", @@ -53880,6 +60145,7 @@ "ru": "гамма-телескоп", "sk": "gama teleskop", "sl": "teleskop za žarke gama", + "sq": "radio teleskopi", "sv": "optiskt teleskop", "ta": "வானொலி அதிர்வெண் தொலைநோக்கி", "th": "กล้องส่องทางไกล", @@ -53895,11 +60161,12 @@ }, "theatre": { "": { - "ar": "الملعب الروماني", + "ar": "مدرّج", "be": "амфітэатр", "bg": "амфитеатър", "ca": "amfiteatre", "cs": "amfiteátr", + "cy": "amffitheatr", "da": "amfiteater", "de": "amphitheater", "el": "αμφιθέατρο", @@ -53909,6 +60176,8 @@ "fa": "تماشاخانه", "fi": "amfiteatteri", "fr": "amphithéâtre", + "ga": "amfaitéatar", + "gl": "anfiteatro", "he": "אמפיתיאטרון", "hi": "रंगभूमि", "hr": "amfiteatar", @@ -53920,7 +60189,6 @@ "lt": "amfiteatras", "lv": "amfiteātris", "ml": "ആംഫിതിയേറ്റർ", - "ms": "perani", "nb": "amfiteater", "nl": "amfitheater", "pl": "amfiteatr", @@ -53929,6 +60197,7 @@ "ru": "амфитеатр", "sk": "amfiteáter", "sl": "amfiteater", + "sq": "amfiteatri", "sv": "amfiteater", "tr": "amfitiyatro", "uk": "амфітеатр", @@ -53942,6 +60211,7 @@ "en": "technisches hilfswerk", "fa": "سازمان کمک فنی", "ja": "技術支援隊", + "ru": "организация технической помощи", "sk": "bundesanstalt technisches hilfswerk", "zh": "联邦技术救援局" } @@ -53956,12 +60226,12 @@ "da": "kolumbarium", "de": "kolumbarium", "el": "κολουμβάριο", - "en": "cinerarium", + "en": "columbarium", "es": "columbario", "et": "kolumbaarium", "fa": "گور لانهکبوتری", "fi": "uurnaholvi", - "fr": "columbarium", + "gl": "columbario", "he": "קולומבריום", "hr": "kolumbarij", "id": "rumah abu", @@ -53970,22 +60240,23 @@ "ko": "콜롬바리움", "lt": "kolumbariumas", "nb": "kolumbarium", - "nl": "columbarium", "pl": "kolumbarium", "pt": "columbário", "ru": "колумбарий", "sl": "kolumbarij", + "sq": "kolumbarium", "sv": "kolumbarium", "uk": "колумбарій", "zh": "納骨塔" }, "crypt": { "af": "kripte", - "ar": "السرداب", + "ar": "سرداب كنيسة", "be": "крыпта", "bg": "крипта", "ca": "cripta", "cs": "krypta", + "cy": "claddgell", "da": "krypt", "de": "krypta", "el": "κρύπτη", @@ -53995,6 +60266,8 @@ "fa": "گورابه", "fi": "krypta", "fr": "crypte", + "ga": "uaimh", + "gl": "cripta", "he": "קריפטה", "hr": "kripta", "hu": "kripta", @@ -54007,6 +60280,7 @@ "nl": "crypte", "pl": "krypta", "pt": "cripta", + "ro": "criptă", "ru": "крипта", "sk": "krypta", "sl": "kripta", @@ -54016,12 +60290,14 @@ "zh": "地下墓室" }, "hypogeum": { + "ar": "مدفن قبوي", "bg": "хипогей", "ca": "hipogeu", "de": "hypogäum", "en": "hypogeum", "es": "hipogeo", "fr": "hypogée", + "gl": "hipoxeo", "he": "היפוגאום", "hu": "hipogeum", "it": "ipogeo", @@ -54035,18 +60311,29 @@ "uk": "гіпогей", "zh": "地宫" }, + "loculi": { + "de": "loculusgrab", + "en": "loculus", + "es": "nicho", + "it": "loculo", + "pt": "loculus (arquitetura)", + "ru": "локул" + }, "mausoleum": { "ar": "ضريح", "be": "маўзалей", "bg": "мавзолей", "ca": "mausoleu", "cs": "mauzoleum", + "cy": "mawsolëwm", "el": "μαυσωλείο", "en": "mausoleum", "es": "mausoleo", "fa": "آرامگاه یادمانی", "fi": "mausoleumi", "fr": "mausolée", + "ga": "másailéam", + "gl": "mausoleo", "he": "מאוזוליאום", "hi": "मकबरा", "hr": "mauzolej", @@ -54054,16 +60341,16 @@ "id": "monumen makam", "it": "mausoleo", "ja": "廟", - "ko": "영묘", + "ko": "마우솔레움", "lt": "mauzoliejus", "lv": "mauzolejs", - "ms": "makam", "pl": "mauzoleum", "pt": "mausoléu", "ro": "mausoleu", "ru": "мавзолей", "sk": "mauzóleum", "sl": "mavzolej", + "sq": "mauzoleu", "tr": "anıt mezar", "uk": "мавзолей", "ur": "مزار", @@ -54086,6 +60373,9 @@ "fa": "هرم", "fi": "pyramidi", "fr": "pyramide", + "ga": "pirimid", + "gd": "biorramaid", + "gl": "pirámide", "he": "פירמידה", "hi": "पिरमिड", "hr": "piramida", @@ -54098,7 +60388,6 @@ "lt": "piramidė", "lv": "piramīda", "ml": "പിരമിഡ്", - "ms": "piramid", "nb": "pyramide", "nl": "piramide", "pl": "piramida", @@ -54107,7 +60396,9 @@ "ru": "пирамида", "sk": "pyramída", "sl": "piramida", + "sq": "piramida", "ta": "பிரமிடு", + "te": "పిరమిడ్", "th": "พีระมิด", "tr": "piramit", "uk": "піраміда", @@ -54123,9 +60414,11 @@ "fa": "گوردخمه", "fr": "tombe rupestre", "hu": "barlangsír", + "it": "tomba rupestre", "ja": "岩窟墓", "nl": "rotsgraf", "sl": "skalna grobnica", + "sv": "klippgravar", "tr": "kaya mezarı", "zh": "石方开挖坟墓" }, @@ -54144,6 +60437,8 @@ "fa": "تابوتدان", "fi": "sarkofagi", "fr": "sarcophage", + "ga": "sarcafagas", + "gl": "sarcófago", "he": "סרקופג", "hr": "sarkofag", "hu": "szarkofág", @@ -54160,6 +60455,7 @@ "ru": "саркофаг", "sk": "sarkofág", "sl": "sarkofag", + "sq": "sarkofag", "sv": "sarkofag", "ta": "கல் சவப்பெட்டி", "th": "โลงหิน", @@ -54184,12 +60480,15 @@ "bg": "могила", "ca": "túmul", "cs": "mohyla", + "cy": "tomen", "da": "gravhøj", "de": "hügelgrab", "el": "τύμβος", "en": "tumulus", "es": "túmulo", "fa": "گورپشته", + "ga": "tulach", + "gl": "mámoa", "he": "רוגם", "hr": "tumul", "hu": "halomsír", @@ -54197,7 +60496,6 @@ "ja": "墳丘墓", "ko": "봉분", "lt": "pilkapis", - "ms": "busut kubur purba", "nb": "gravhaug", "nl": "grafheuvel", "pt": "mamoa", @@ -54206,18 +60504,38 @@ "ru": "тумулус", "sk": "mohyla", "sl": "gomilno grobišče", + "sq": "tumë", "sv": "gravhög", "tr": "tümülüs", - "uk": "тумулус", + "uk": "курган, тумулус", "vi": "gò mộ", "zh": "墳丘墓" }, + "turbe": { + "ar": "تربة (مرقد)", + "bg": "тюрбе", + "ca": "turba", + "el": "τουρμπές", + "en": "türbe", + "fa": "تربت", + "fr": "turbe", + "he": "תורבה", + "hr": "turbe", + "ja": "テュルベ", + "ml": "തുർബി", + "ru": "тюрбе", + "sl": "tűrbe", + "sq": "tyrbja", + "uk": "тюрбе", + "zh": "奥斯曼陵" + }, "vault": { "en": "burial vault", "es": "sepultura", "hu": "sírbolt" }, "war_grave": { + "be": "вайсковыя могілкі", "ca": "cementiri militar", "cs": "válečný hrob", "da": "krigskirkegård", @@ -54228,6 +60546,8 @@ "et": "sõjahaud", "fi": "sankarihauta", "fr": "cimetière militaire", + "ga": "reilig mhíleata", + "gl": "cemiterio militar", "he": "בית קברות צבאי", "hr": "vojničko groblje", "hu": "hadi temető", @@ -54262,6 +60582,7 @@ "fa": "پناهگاه (کوهنوردی)", "fi": "vuoristomaja", "fr": "refuge de montagne", + "gl": "refuxio de montaña", "he": "בקתה הררית", "hr": "planinarski objekti", "hu": "menedékház", @@ -54281,6 +60602,8 @@ }, "apartment": { "ar": "إيجار العطلة", + "ca": "habitatge d'ús turístic", + "cy": "rhenti gwyliau", "da": "sommerhusudlejning", "de": "ferienwohnung", "en": "vacation rental", @@ -54310,6 +60633,8 @@ "fa": "آکواریوم عمومی", "fi": "yleisöakvaario", "fr": "aquarium public", + "ga": "uisceadán", + "gl": "acuario público", "he": "אקווריום ציבורי", "hu": "nyilvános akvárium", "it": "acquario", @@ -54324,6 +60649,7 @@ "sv": "offentligt akvarium", "th": "พิพิธภัณฑ์สัตว์น้ำ", "tr": "halka açık akvaryum", + "uk": "громадський акваріум", "ur": "عوامی مچھلی گھر", "zh": "水族館" }, @@ -54334,15 +60660,18 @@ "bg": "произведение на изкуството", "ca": "obra d'art", "cs": "umělecké dílo", + "cy": "gwaith celf", "da": "kunstværk", "de": "kunstwerk", "el": "έργο τέχνης", "en": "work of art", "es": "obra de arte", "et": "kunstiteos", - "fa": "کار هنری", + "fa": "اثر هنری", "fi": "taideteos", "fr": "œuvre d’art", + "ga": "saothar ealaíne", + "gl": "obra de arte", "he": "יצירת אמנות", "hi": "कलाकृति", "hr": "umjetničko djelo", @@ -54354,7 +60683,6 @@ "lt": "kūrinys", "lv": "mākslas darbs", "ml": "കലാസൃഷ്ടി", - "ms": "karya seni", "nb": "kunstverk", "nl": "kunstwerk", "pl": "dzieło sztuki", @@ -54363,7 +60691,9 @@ "ru": "произведение искусства", "sk": "umelecké dielo", "sl": "umetniško delo", + "sq": "vepër arti", "sv": "konstverk", + "te": "కళాకృతి", "tr": "sanat eseri", "uk": "витвір мистецтва", "vi": "nghệ phẩm", @@ -54376,6 +60706,7 @@ "be": "славутасць", "ca": "atracció turística", "cs": "turistická atrakce", + "cy": "atyniad twristaidd", "da": "seværdighed", "de": "sehenswürdigkeit", "el": "αξιοθέατο", @@ -54385,11 +60716,13 @@ "fa": "جاذبههای گردشگری", "fi": "nähtävyys", "fr": "attraction touristique", + "ga": "díol spéise do thurasóirí", + "gl": "atracción turística", "he": "אטרקציה תיירותית", "hi": "पर्यटन स्थल", "hr": "znamenitost", "hu": "turistalátványosság", - "id": "lokawisata", + "id": "objek wisata", "it": "attrazione turistica", "ja": "観光地", "kn": "ಪ್ರವಾಸಿ ತಾಣ", @@ -54397,7 +60730,6 @@ "lt": "lankytina vieta", "lv": "apskates vieta", "mr": "पर्यटन स्थळ", - "ms": "tarikan pelancong", "nb": "turistattraksjon", "nl": "toeristische attractie", "pl": "atrakcja turystyczna", @@ -54406,8 +60738,10 @@ "ru": "достопримечательность", "sk": "turistická atrakcia", "sl": "turistična zanimivost", - "sv": "sevärdhet", + "sq": "atraksion turistik", + "sv": "turistattraktion", "ta": "சுற்றுலா ஈர்ப்பு", + "te": "పర్యాటక ప్రదేశం", "th": "สถานที่ท่องเที่ยว", "tr": "görülecek yer", "uk": "пам'ятка", @@ -54435,7 +60769,7 @@ "fa": "اردوگاه", "fi": "leirintäalue", "fr": "emplacement de camping", - "he": "מחנה", + "he": "חניון לילה", "hr": "kampiranje", "hu": "kemping", "it": "area di campeggio", @@ -54470,13 +60804,16 @@ "chalet": { "ar": "كوخ", "bg": "колиба", + "ca": "casa de vacances", + "cy": "tŷ haf", "da": "sommerhus", "de": "ferienhaus", "en": "vacation home", + "en-gb": "summer house", "es": "casa de verano", "et": "suvila", "fi": "loma-asunto", - "fr": "meublé de tourisme", + "fr": "logement de vacances", "he": "בית קיץ", "hi": "कुटिया", "hr": "koliba", @@ -54484,15 +60821,18 @@ "id": "pondok", "it": "casa vacanze", "ja": "ホリデーハウス", + "lv": "vasaras māja", "nb": "fritidshus", "nl": "vakantiehuis", "pl": "domek letniskowy", "pt": "casa de verão", "ro": "casă de vacanță", "sk": "letohrádok", + "sl": "poletna hiša", "sv": "fritidshus", "ta": "குடிசை", "th": "ปอเนาะ", + "tr": "yazlık (ev)", "uk": "хата", "zh": "度假屋" }, @@ -54503,6 +60843,7 @@ "bg": "художествена галерия", "ca": "galeria d'art", "cs": "galerie umění", + "cy": "oriel gelf", "da": "kunstgalleri", "de": "kunstgalerie", "de-ch": "kunstmuseum", @@ -54514,6 +60855,8 @@ "fa": "گالری هنری", "fi": "taidegalleria", "fr": "galerie d'art", + "ga": "gailearaí ealaíne", + "gl": "galería de arte", "he": "גלריית אמנות", "hi": "चित्रशाला", "hr": "umjetnička galerija", @@ -54526,7 +60869,6 @@ "lt": "meno muziejus", "lv": "mākslas galerija", "ml": "കലാ മ്യൂസിയം", - "ms": "galeri seni", "nb": "kunstgalleri", "nl": "galerie", "pl": "galeria sztuki", @@ -54535,9 +60877,11 @@ "ro": "galerie de artă", "ru": "художественная галерея", "sk": "galéria umenia", - "sl": "umetniška galerija", + "sl": "umetnostna galerija", + "sq": "muze i arteve", "sv": "konstgalleri", "ta": "ஓவியக் காட்சியகம்", + "te": "ఆర్ట్ మ్యూజియం", "th": "หอศิลป์", "tr": "sanat galerisi", "uk": "галерея мистецтв", @@ -54551,20 +60895,25 @@ "af": "gastehuis", "ar": "دار ضيافة", "ca": "casa d'hostes", + "cy": "gwesty", "da": "gæstehus", "de": "gästehaus", "el": "ξενώνας", "en": "guest house", "es": "casa de huéspedes", "et": "külalistemaja", + "fi": "vierastalo", "fr": "maison d'hôtes", + "ga": "teach lóistín", "he": "בית הארחה", "hu": "vendégház", + "id": "wisma", "ja": "ゲストハウス", "kn": "ಅತಿಥಿಗೃಹ", "ko": "게스트하우스", "ru": "гостевой дом", "sl": "gostišče", + "sv": "gästhus", "tr": "misafirhane", "ur": "مہمان خانہ", "vi": "nhà khách", @@ -54582,6 +60931,8 @@ "fa": "مسافرخانه", "fi": "hostelli", "fr": "auberge", + "ga": "brú", + "gl": "albergue", "he": "אכסניה", "hi": "पथचारी आन्दोलन", "id": "losmen", @@ -54589,9 +60940,9 @@ "ja": "ホステル", "ko": "호스텔", "lt": "nakvynės namai", - "ms": "asrama", "nb": "vandrerhjem", "ru": "хостел", + "sq": "hosteli", "sv": "vandrarhem", "th": "หอพักสงเคราะห์", "uk": "хостел", @@ -54605,12 +60956,15 @@ "ar": "فندق", "be": "гасцініца", "bg": "хотел", + "cy": "gwesty", "el": "ξενοδοχείο", "en": "hotel", "et": "hotell", "fa": "هتل", "fi": "hotelli", "fr": "hôtel", + "ga": "óstán", + "gd": "taigh-òsta", "he": "בית מלון", "hi": "होटल", "hu": "szálloda", @@ -54623,6 +60977,7 @@ "ml": "ഹോട്ടൽ", "nb": "hotell", "ru": "гостиница", + "sq": "hoteli", "sv": "hotell", "ta": "விடுதி", "th": "โรงแรม", @@ -54630,36 +60985,10 @@ "uk": "готель", "ur": "ہوٹل", "vi": "khách sạn", - "zh": "酒店", + "zh": "旅馆", + "zh-hk": "酒店", "zh-tw": "飯店" }, - "information": { - "ar": "مركز زوار", - "ca": "oficina de turisme", - "cs": "turistické centrum", - "da": "turistbureau", - "de": "fremdenverkehrsamt", - "el": "κέντρο επισκεπτών", - "en": "tourism office", - "es": "oficina de turismo", - "et": "turismiinfokeskus", - "fi": "matkailuneuvonta", - "fr": "office de tourisme", - "he": "מרכז מבקרים", - "hr": "centar za posjetitelje", - "it": "ufficio turistico", - "ja": "観光案内所", - "ko": "관광 안내소", - "ms": "pusat pelawat", - "nb": "turistinformasjon", - "nl": "bezoekerscentrum", - "pt": "posto de turismo", - "ru": "информационно-туристический центр", - "sl": "turistični urad", - "sv": "turistbyrå", - "tr": "turizm danışma bürosu", - "zh": "游客中心" - }, "motel": { "ar": "موتيل", "bg": "мотел", @@ -54687,6 +61016,7 @@ "bg": "музей", "ca": "museu", "cs": "muzeum", + "cy": "amgueddfa", "el": "μουσείο", "en": "museum", "es": "museo", @@ -54694,6 +61024,9 @@ "fa": "موزه", "fi": "museo", "fr": "musée", + "ga": "músaem", + "gd": "taigh-tasgaidh", + "gl": "museo", "he": "מוזיאון", "hi": "संग्रहालय", "hr": "muzej", @@ -54706,14 +61039,15 @@ "lv": "muzejs", "ml": "സംഗ്രഹാലയം", "mr": "संग्रहालय", - "ms": "muzium", "pl": "muzeum", "pt": "museu", "ro": "muzeu", "ru": "музей", "sk": "múzeum", "sl": "muzej", + "sq": "muze", "ta": "அருங்காட்சியகம்", + "te": "సంగ్రహాలయం", "th": "พิพิธภัณฑสถาน", "tr": "müze", "uk": "музей", @@ -54735,6 +61069,7 @@ "ar": "منتزه ترفيهي ذو سمة", "ca": "parc temàtic", "cs": "tematický park", + "cy": "parc thema", "da": "temapark", "de": "themenpark", "el": "θεματικό πάρκο", @@ -54744,6 +61079,9 @@ "fa": "پارک موضوعی", "fi": "teemapuisto", "fr": "parc à thèmes", + "ga": "páirc théama", + "gl": "parque temático", + "he": "פארק שעשועים עם נושא", "hu": "szabadidőpark", "id": "taman bertema", "it": "parco tematico", @@ -54770,9 +61108,10 @@ "es": "mirador", "fi": "näköalapaikka", "fr": "point de vue panoramique", + "gl": "miradoiro", "he": "נקודת תצפית", "hr": "vidikovac", - "hu": "kilátó", + "hu": "kilátóhely", "it": "punto di vista panoramico", "ja": "展望所", "nb": "utsiktspunkt", @@ -54782,6 +61121,7 @@ "pt-br": "mirante", "ro": "loc de vedere panoramic", "ru": "смотровая площадка", + "sk": "vyhliadka", "sl": "razgledišče", "sv": "utsiktsplats", "tr": "bakış noktası", @@ -54794,10 +61134,12 @@ "en": "bothy", "es": "chozo", "fr": "refuge", + "ga": "botaí", + "gd": "bothan", "ko": "보티", "lt": "eigulio namelis", "pl": "gajówka", - "ru": "лесной домик", + "ru": "заимка", "tr": "çiftlik işleri barakası", "zh": "博希" }, @@ -54815,6 +61157,7 @@ "et": "veinikelder", "fi": "viinikellari", "fr": "cave à vin", + "gl": "adega", "he": "מרתף יינות", "hr": "vinski podrum", "hu": "borpince", @@ -54827,6 +61170,7 @@ "pt": "adega", "ru": "винный погреб", "sl": "vinska klet", + "sq": "kantina", "sv": "vinkällare", "tr": "şarap kavı", "uk": "винниця", @@ -54840,6 +61184,7 @@ "bg": "туризъм", "ca": "turisme", "cs": "turistika", + "cy": "twristiaeth", "da": "turisme", "de": "tourismus", "el": "τουρισμός", @@ -54849,6 +61194,9 @@ "fa": "گردشگری", "fi": "matkailu", "fr": "tourisme", + "ga": "turasóireacht", + "gd": "turasachd", + "gl": "turismo", "he": "תיירות", "hi": "पर्यटन", "hr": "turizam", @@ -54862,7 +61210,6 @@ "lv": "tūrisms", "ml": "വിനോദസഞ്ചാരം", "mr": "पर्यटन", - "ms": "pelancongan", "nb": "turisme", "nl": "toerisme", "pl": "turystyka", @@ -54871,8 +61218,10 @@ "ru": "туризм", "sk": "turistika", "sl": "turizem", + "sq": "turizëm", "sv": "turism", "ta": "சுற்றுலா", + "te": "పర్యాటక రంగం", "th": "การท่องเที่ยว", "tr": "turizm", "uk": "туризм", @@ -54888,6 +61237,7 @@ "bg": "зоопарк", "ca": "zoològic", "cs": "zoologická zahrada", + "cy": "sŵ", "da": "zoologisk have", "el": "ζωολογικός κήπος", "en": "zoo", @@ -54896,6 +61246,8 @@ "fa": "باغوحش", "fi": "eläintarha", "fr": "parc zoologique", + "ga": "zú", + "gl": "parque zoolóxico", "he": "גן חיות", "hi": "चिड़ियाघर", "hr": "zoološki vrt", @@ -54918,6 +61270,7 @@ "sl": "živalski vrt", "sv": "djurpark", "ta": "விலங்குக் காட்சிச்சாலை", + "te": "జంతు ప్రదర్శనశాల", "th": "สวนสัตว์", "tr": "hayvanat bahçesi", "uk": "зоопарк", @@ -54935,6 +61288,7 @@ "bg": "купол", "ca": "espill parabòlic", "cs": "kupole", + "cy": "cromen", "da": "kuppel", "de": "parabolspiegel", "de-ch": "stahlfachwerkturm", @@ -54947,6 +61301,8 @@ "fa": "بازتابنده سهمی", "fi": "kupoli", "fr": "réflecteur parabolique", + "ga": "cruinneachán", + "gl": "cúpula", "he": "כיפה", "hi": "परवलयज परावर्तक", "hr": "parabolično zrcalo", @@ -54960,7 +61316,6 @@ "lv": "kupols", "ml": "അർധകുംഭകം", "mr": "घुमट", - "ms": "kubah", "nb": "kuppel", "nl": "paraboolreflector", "pl": "reflektor paraboliczny", @@ -54970,8 +61325,10 @@ "ru": "параболический отражатель", "sk": "kupola", "sl": "parabolični reflektor", + "sq": "kupola", "sv": "parabolisk spegel", "ta": "பரவளைவுத் தெறிப்பி", + "te": "గుమ్మటం", "th": "จานสะท้อนแบบพาราโบลา", "tr": "kubbe", "uk": "купол", @@ -54982,20 +61339,6 @@ "zh-tw": "鐘樓" } }, - "tracktype": { - "esri": { - "ar": "إسري", - "de": "environmental systems research institute", - "el": "arc map", - "en": "esri", - "fa": "ازری", - "fr": "environmental systems research institute", - "hi": "विकि.जीआईएस", - "hu": "environmental systems research institute", - "nb": "ersi", - "zh": "美國環境系統研究所公司" - } - }, "traffic_calming": { "bump": { "ar": "مطب", @@ -55021,7 +61364,7 @@ "pl": "próg zwalniający", "pt": "lombada", "ro": "prag limitator de viteză", - "ru": "искусственная неровность", + "ru": "лежачий полицейский", "sk": "spomaľovací prah", "sv": "farthinder", "ta": "வேகத் தடுப்பான்", @@ -55036,12 +61379,12 @@ }, "traffic_sign": { "DE": { - "de": "touristisches hinweisschild", - "en": "tourist sign", + "de": "zeichen 103", + "en": "sign 103", "it": "cartello turistico", - "ms": "papan tanda pelancongan", "pl": "znak turystyczny", - "pt": "sinalização turística" + "pt": "sinalização turística", + "ru": "знак остановки" }, "FR": { "en": "ab2", @@ -55053,15 +61396,17 @@ "city_limit": { "ca": "senyal de límit administratiu", "da": "byskilt", - "de": "ortstafel", + "de": "ortstafel (beginn)", "en": "town sign", "fi": "kunnanrajakyltti", "fr": "panneau d'entrée de ville", + "hu": "városnévtábla", "ko": "경계표지", "nl": "plaatsnaambord", "pl": "znak drogowy miejscowości", "ro": "indicator de localitate", "ru": "дорожный знак с названием населённого пункта", + "sl": "mestni znak", "uk": "табличка населеного пункту", "zh": "城鎮標誌" }, @@ -55078,6 +61423,7 @@ "bg": "светофар", "ca": "semàfor", "cs": "světelné signalizační zařízení", + "cy": "goleuadau traffig", "da": "trafiksignal", "de": "ampel", "el": "φωτεινός σηματοδότης", @@ -55087,6 +61433,8 @@ "fa": "چراغ راهنمایی", "fi": "liikennevalo", "fr": "feu de circulation", + "ga": "soilse tráchta", + "gl": "semáforo", "he": "רמזור", "hr": "semafor", "hu": "közlekedési lámpa", @@ -55097,7 +61445,6 @@ "lt": "šviesoforas", "lv": "luksofors", "ml": "ട്രാഫിക് ലൈറ്റ്", - "ms": "lampu isyarat", "nb": "trafikklys", "nl": "verkeerslicht", "pl": "sygnalizacja świetlna", @@ -55106,6 +61453,7 @@ "ru": "cветофор", "sk": "svetelné signalizačné zariadenia", "sl": "semafor", + "sq": "semafori", "sv": "trafiksignal", "ta": "சைகை விளக்கு", "th": "ไฟจราจร", @@ -55126,6 +61474,7 @@ "fi": "jakelumuuntaja", "fr": "transformateur de distribution", "hi": "वितरण ट्रांसफॉर्मर", + "hu": "elosztótranszformátor", "ja": "柱上変圧器", "nl": "distributietransformator", "pl": "transformator rozdzielczy" @@ -55139,6 +61488,7 @@ "bg": "контактна мрежа", "ca": "catenària", "cs": "trolejové vedení", + "cy": "llinell uwchben", "da": "køreledning", "de": "oberleitung", "el": "αλυσοειδής γραμμή επαφής", @@ -55150,6 +61500,7 @@ "fa": "سیم بالاسر", "fi": "ajojohdin", "fr": "caténaire", + "gl": "catenaria", "hi": "अतिरिक्त रेखा", "hu": "felsővezeték", "id": "listrik aliran atas", @@ -55157,7 +61508,6 @@ "ja": "架空電車線方式", "ko": "가공 전차선", "lv": "kontakttīkls", - "ms": "talian atas", "nb": "kontaktledning", "nl": "bovenleiding", "pl": "przewody trakcyjne", @@ -55228,6 +61578,8 @@ "fa": "حمل و نقل عمومی", "fi": "julkinen liikenne", "fr": "transport en commun", + "ga": "iompar poiblí", + "gl": "transporte público", "he": "תחבורה ציבורית", "hr": "javni prijevoz", "hu": "tömegközlekedés", @@ -55237,7 +61589,6 @@ "ko": "대중교통", "lt": "viešasis transportas", "lv": "sabiedriskais transports", - "ms": "pengangkutan awam", "nb": "kollektivtransport", "nl": "openbaar vervoer", "pl": "publiczny transport zbiorowy", @@ -55246,14 +61597,16 @@ "ro": "transport public", "ru": "общественный транспорт", "sk": "verejná doprava", - "sl": "javni prevoz", + "sl": "javni potniški prevoz", + "sq": "transporti publik", "sv": "kollektivtrafik", "th": "การขนส่งสาธารณะ", "tr": "toplu taşımacılık", "uk": "громадський транспорт", "vi": "giao thông công cộng", "zh": "公共交通", - "zh-tw": "公共運輸" + "zh-hk": "公共運輸", + "zh-tw": "大眾運輸" }, "restriction": { "en": "turn restriction routing", @@ -55266,17 +61619,22 @@ "bg": "воден път", "ca": "via navegable", "cs": "vodní cesta", + "cy": "dyfrffordd", "da": "vandvej", "de": "wasserstraße", "de-at": "fluss", "de-ch": "wasserstrasse", "el": "ποταμός", "en": "waterway", + "en-us": "river", "es": "vía de agua", "et": "veetee", "fa": "آبراه", "fi": "vesiväylä", "fr": "voie navigable", + "ga": "uiscebhealach", + "gd": "seòlaid", + "gl": "vía navegable", "he": "נתיב מים", "hr": "vodeni tok", "hu": "vízi út", @@ -55289,7 +61647,6 @@ "lv": "ūdensceļš", "ml": "നദി", "mr": "नदी", - "ms": "jalan air", "nb": "vannvei", "nl": "vaarweg", "pl": "droga wodna", @@ -55298,8 +61655,10 @@ "ru": "водный путь", "sk": "rieka", "sl": "vodna pot", + "sq": "lum", "sv": "vattenväg", "ta": "ஆறு", + "te": "జలమార్గం", "th": "แม่น้ำ", "tr": "su yolu", "uk": "водний шлях", @@ -55322,6 +61681,7 @@ "et": "veelase", "fa": "سرریز سد", "fr": "déversoir", + "ga": "doirtbhealach", "he": "מברץ", "hr": "preljev brane", "id": "saluran pelimpah", @@ -55355,7 +61715,9 @@ "en": "vacant building", "fr": "bâtiment vacant", "hu": "üres épület", - "nl": "leegstaand gebouw" + "ja": "空き建築物", + "nl": "leegstaand gebouw", + "sl": "prazna stavba" } }, "vegetarian": { @@ -55375,15 +61737,46 @@ "sv": "vegetarisk restaurang" } }, + "vehicle": { + "": { + "af": "koekepan", + "be": "ваганетка", + "ca": "vagoneta", + "cs": "důlní vozík", + "da": "tipvogn", + "de": "hunt", + "en": "minecart", + "es": "carro de mina", + "et": "vagonett", + "fr": "berline", + "hr": "pružno prenosilo", + "it": "vagonetto decauville", + "ja": "トロッコ", + "ko": "광차", + "nl": "kieplorrie", + "pl": "wagonetka", + "pt": "vagoneta", + "ru": "вагонетка", + "sv": "malmhund", + "tr": "maden arabası", + "uk": "вагонетка", + "zh": "軌道 (電影)" + } + }, "vending": { "art": { "de": "kunstautomat", "en": "art vending machine" }, + "bicycle_tube": { + "de": "fahrradschlauchautomat", + "en": "bicycle tube vending machine" + }, "books": { "de": "buchautomat", "en": "book vending machine", - "ru": "книжный автомат" + "ru": "книжный автомат", + "sv": "bokomat" }, "bottle_return": { "ar": "آلة بيع عكسي", @@ -55391,26 +61784,38 @@ "de": "leergutautomat", "en": "reverse vending machine", "es": "máquina expendedora inversa", - "fa": "دستگاه دریافت خودکار", + "fa": "دستگاه پسخرید", "fi": "pullonpalautusautomaatti", "id": "mesin jual otomatis terbalik", "it": "cassonetto intelligente", "ja": "自動回収機", "lt": "taromatas", + "lv": "taromāts", "nb": "pantemaskin", "nl": "flessenautomaat", "pl": "maszyna do skupu butelek", "pt": "máquina de venda automática reversa", "ru": "фандомат", "sv": "pantmaskin", - "uk": "фандомат" + "tr": "depozito iade makinesi", + "uk": "фандомат", + "zh": "回收机" }, "cigarettes": { "ar": "آلة السجائر", "de": "zigarettenautomat", "en": "cigarette machine", + "ur": "سگریٹ مشین", "zh": "自动售烟机" }, + "coffee": { + "da": "kaffeautomat", + "en": "coffee vending machine", + "fr": "distributeur de café", + "it": "distributore del caffè", + "ja": "コーヒーベンディングマシン", + "ru": "кофейный автомат" + }, "condoms": { "ar": "ماكينة الواقي الذكري", "be": "кандамат", @@ -55419,7 +61824,6 @@ "en": "condom machine", "fr": "distributeur de préservatifs", "ko": "콘돔 판매기", - "ms": "mesin kondom", "ru": "кондомат", "sk": "automat na kondómy", "uk": "кондомат", @@ -55465,6 +61869,7 @@ "en": "pay and display", "fa": "پرداخت و نمایش", "fr": "horodateur", + "ga": "íoc agus taispeáin", "it": "parcheggio a pagamento", "ja": "パーキングチケット発給機", "nl": "parkeerautomaat", @@ -55489,7 +61894,6 @@ "it": "biglietteria automatica", "ja": "自動券売機", "ko": "표 자동판매기", - "ms": "mesin tiket", "nb": "billettautomat", "nl": "kaartautomaat", "pl": "automat biletowy", @@ -55518,6 +61922,13 @@ "de": "mautstellen-terminal", "en": "toll automat", "sk": "mýtomat" + }, + "water": { + "en": "water vending machine", + "it": "casa dell'acqua", + "lt": "gazuoto vandens pardavimo automatas", + "ru": "автомат по продаже газированной воды", + "uk": "автомат з продажу газованої води" } }, "volcano": { @@ -55527,7 +61938,8 @@ "be": "стратавулкан", "bg": "стратовулкан", "ca": "volcà adormit", - "cs": "stratovulkán", + "cs": "vyhaslá sopka", + "cy": "stratolosgfynydd", "da": "stratovulkan", "de": "schlafender vulkan", "el": "στρωματοηφαίστειο", @@ -55537,17 +61949,18 @@ "fa": "آتشفشان چینهای", "fi": "potentiaalisesti aktiivinen tulivuori", "fr": "volcan endormi", + "ga": "stratabholcán", + "gl": "estratovolcán", "he": "הר געש שכבתי", "hi": "dormant volcanoes", "hr": "stratovulkan", - "hu": "rétegvulkán", + "hu": "kialudt vulkán", "id": "gunung berapi tidur", "it": "vulcano quiescente", "ja": "休火山", "ko": "휴화산", "lt": "stratovulkanas", "lv": "stratovulkāns", - "ms": "stratovolkano", "nb": "stratovulkan", "nl": "slapende vulkaan", "pl": "wulkan drzemiący", @@ -55556,16 +61969,16 @@ "ru": "дремлющие вулканы", "sk": "stratovulkán", "sl": "speči vulkan", - "sv": "potentiellt aktiv vulkan", + "sv": "vilande vulkan", "ta": "சுழல்வடிவ எரிமலை", "th": "กรวยภูเขาไฟสลับชั้น", - "tr": "stratovolkan", - "uk": "стратовулкан", + "tr": "sönmüş yanardağ", + "uk": "згаслі вулкани", "vi": "núi lửa dạng tầng", "zh": "休眠火山", - "zh-cn": "复式火山", + "zh-cn": "死火山", "zh-hk": "睡火山", - "zh-tw": "複式火山" + "zh-tw": "死火山" } }, "voltage": { @@ -55618,7 +62031,8 @@ "hu": "630 voltos egyenáram", "ja": "直流630v鉄道電化", "ko": "630 v dc 철도 통전", - "ru": "630 в пост." + "ru": "630 в пост.", + "sl": "železniška elektrifikacija 630 v dc" }, "750": { "ca": "electrificació ferroviària de 750 v de cc", @@ -55630,6 +62044,7 @@ "it": "elettrificazione ferroviaria 750 v cc", "ja": "直流750v鉄道電化", "ko": "750 v dc 철도 통전", + "nl": "750 v gelijkstroom", "pl": "elektryfikacja prądem stałym o napięciu 750 v", "ru": "750 в пост.", "sl": "železniška elektrifikacija s 750 v dc", @@ -55639,6 +62054,19 @@ } }, "wall": { + "dry_stone": { + "ca": "marge", + "cs": "suchá zeď", + "de": "tanca-mauer", + "en": "dry stone wall", + "es": "ribazo", + "fi": "kiviaita", + "fr": "mur en pierre sèche", + "gl": "ribazo", + "hr": "suhozid", + "nb": "tørrmur", + "sl": "suhi zid" + }, "noise_barrier": { "ca": "barrera acústica", "cs": "protihluková stěna", @@ -55666,6 +62094,11 @@ "zh": "隔音屏障" } }, + "waste": { + "flags": { + "en": "flag retirement drop box" + } + }, "water": { "lake": { "af": "meer", @@ -55674,6 +62107,7 @@ "bg": "езеро", "ca": "llac", "cs": "jezero", + "cy": "llyn", "da": "sø", "de": "see", "el": "λίμνη", @@ -55683,6 +62117,9 @@ "fa": "دریاچه", "fi": "järvi", "fr": "lac", + "ga": "loch", + "gd": "loch-uisge", + "gl": "lago", "he": "אגם", "hi": "झील", "hr": "jezero", @@ -55696,7 +62133,6 @@ "lv": "ezers", "ml": "തടാകം", "mr": "सरोवर", - "ms": "tasik", "nb": "innsjø", "nl": "meer", "pl": "jezioro", @@ -55705,8 +62141,10 @@ "ru": "озеро", "sk": "jazero", "sl": "jezero", + "sq": "liqen", "sv": "insjö", "ta": "ஏரி", + "te": "సరస్సు", "th": "ทะเลสาบ", "tr": "göl", "uk": "озеро", @@ -55724,15 +62162,19 @@ "en-us": "pond (artificial)", "et": "tiik", "fa": "آبگیر", + "fi": "tekolampi", "fr": "mare", - "it": "stagno (idrografia)", + "gl": "lagoa artificial", + "he": "בריכה מלאכותית", + "it": "stagno artificiale", "ja": "人工池", "ko": "인공 연못", "lt": "kūdra", - "lv": "dīķis", + "lv": "mākslīgs dīķis", "nb": "kunstig dam", "nl": "vijver", "pl": "sztuczny staw", + "pt": "lagoa artificial", "ru": "пруд", "sl": "umetni ribnik", "sv": "konstgjord damm", @@ -55746,6 +62188,7 @@ "bg": "язовир", "ca": "embassament", "cs": "přehradní nádrž", + "cy": "cronfa ddŵr", "de": "stausee", "el": "τεχνητή λίμνη", "en": "reservoir", @@ -55754,10 +62197,12 @@ "fa": "مخزن سد", "fi": "patojärvi", "fr": "lac de barrage", + "ga": "taiscumar", + "gl": "encoro", "he": "מאגר מים", "hi": "जलाशय", "hr": "umjetno jezero", - "hu": "víztározó", + "hu": "duzzasztott tó", "id": "waduk", "it": "bacino artificiale", "ja": "貯水池", @@ -55766,7 +62211,6 @@ "lt": "tvenkinys", "lv": "uzpludinājums", "ml": "ജലസംഭരണി", - "ms": "takungan", "nb": "vannmagasin", "nl": "stuwmeer", "pl": "zbiornik zaporowy", @@ -55775,7 +62219,10 @@ "ru": "водохранилище", "sk": "priehradná nádrž", "sl": "pregradno jezero", + "sq": "liqeneve artificiale", "sv": "vattenmagasin", + "ta": "பல்நோக்கு நீர்தேக்கம்", + "te": "జలాశయము", "th": "อ่างเก็บน้ำ", "tr": "baraj gölü", "uk": "водосховище", @@ -55791,6 +62238,7 @@ "bg": "корабостроителница", "ca": "drassana", "cs": "loděnice", + "cy": "iard longau", "da": "værft", "de": "werft", "el": "ναυπηγείο", @@ -55800,6 +62248,7 @@ "fa": "کارخانه کشتیسازی", "fi": "telakka", "fr": "chantier naval", + "gl": "estaleiro", "he": "מספנה", "hi": "डॉकयार्ड", "hr": "brodogradilište", @@ -55808,7 +62257,6 @@ "it": "cantiere navale", "ja": "造船所", "ko": "조선소", - "ms": "limbungan kapal", "nb": "skipsverft", "nl": "scheepswerf", "pl": "stocznia", @@ -55818,11 +62266,13 @@ "ru": "верфь", "sk": "lodenica", "sl": "ladjedelnica", + "sq": "kantieri detar", "sv": "skeppsvarv", "th": "อู่ต่อเรือ", "tr": "tersane", "uk": "корабельня", - "zh": "造船厂" + "zh": "造船厂", + "zh-tw": "造船廠" }, "canal": { "af": "kanaal", @@ -55830,6 +62280,7 @@ "be": "канал", "bg": "канал", "cs": "vodní kanál", + "cy": "camlas", "da": "kanal", "de": "kanal", "el": "διώρυγα", @@ -55837,6 +62288,8 @@ "et": "kanal", "fa": "کانال", "fi": "kanava", + "ga": "canáil", + "gl": "canle", "he": "תעלת מים", "hi": "नहर", "hr": "kanal", @@ -55850,15 +62303,16 @@ "lv": "kanāls", "ml": "കനാൽ", "mr": "कालवा", - "ms": "terusan", "nb": "kanal", "nl": "kanaal", "pl": "kanał wodny", "ru": "канал", "sk": "prieplav", "sl": "prekop", + "sq": "kanali", "sv": "kanal", "ta": "கால்வாய்", + "te": "కాలువ", "th": "คลอง", "tr": "ark", "uk": "канал", @@ -55872,8 +62326,9 @@ "bg": "язовирна стена", "ca": "presa d'aigua", "cs": "přehrada", + "cy": "argae", "da": "dæmning", - "de": "talsperre", + "de": "staudamm", "el": "φράγμα", "en": "dam", "es": "represa", @@ -55881,6 +62336,8 @@ "fa": "سد", "fi": "pato", "fr": "barrage", + "ga": "damba", + "gl": "presa de encoro", "he": "סכר", "hi": "बाँध", "hr": "brana", @@ -55894,7 +62351,6 @@ "lv": "aizsprosts", "ml": "അണക്കെട്ട്", "mr": "धरण", - "ms": "empangan", "nb": "demning", "pl": "zapora wodna", "pt": "barragem", @@ -55902,8 +62358,10 @@ "ru": "плотина", "sk": "priehrada", "sl": "jez", + "sq": "diga", "sv": "dammbyggnad", "ta": "அணை", + "te": "ఆనకట్ట", "th": "เขื่อน", "tr": "baraj", "uk": "гребля", @@ -55914,6 +62372,7 @@ "zh-tw": "水壩" }, "ditch": { + "af": "sloot", "ar": "خندق", "bg": "вада", "ca": "rasa", @@ -55921,11 +62380,12 @@ "da": "grøft", "de": "wassergraben", "en": "ditch", - "es": "cuneta o canal", + "es": "zanja de drenaje", "et": "kraav", "fa": "جوی", "fi": "oja", "fr": "fossé", + "gl": "gabia", "hr": "jarak", "hu": "árok", "id": "selokan", @@ -55941,6 +62401,7 @@ "ro": "șanț", "ru": "канава", "sl": "vodni jarek", + "sq": "hendeku", "sv": "dike", "th": "ลำเหมือง", "tr": "su hendeği", @@ -55954,6 +62415,7 @@ "bg": "корабен док", "ca": "dàrsena", "cs": "dok", + "cy": "doc", "da": "dok", "el": "νεωδόχος", "en": "dock", @@ -55962,6 +62424,8 @@ "fa": "حوضچه خشک", "fi": "telakka", "fr": "darse", + "ga": "duga", + "gl": "dársena", "he": "מבדוק", "hi": "गोदी", "hu": "dokk", @@ -55978,19 +62442,63 @@ "ro": "doc", "ru": "корабельный док", "sl": "dok", + "sq": "doku", "sv": "docka", "ta": "கப்பல்துறை", "tr": "dok", "uk": "корабельний док", "zh": "船塢" }, + "drain": { + "ar": "ساقية", + "ca": "séquia", + "en": "acequia", + "it": "roggia", + "ja": "アセキア", + "pt": "acéquia", + "ru": "арык", + "uk": "ацекія" + }, + "drainage_channel": { + "de": "entwässerungsrinne", + "en": "drainage channel", + "fr": "canal de drainage", + "ja": "溝川", + "nl": "afwateringskanaal", + "zh": "排水管渠" + }, "fish_pass": { + "ar": "سلم سمك", + "ca": "pas de peix", + "cs": "rybí přechod", + "cy": "grisiau pysgod", + "da": "fisketrappe", "de": "fischweg", "en": "fish passage", "es": "sistema de transferencia para peces", "et": "kalapääs", + "fa": "گذرگاه ماهی", + "fi": "kalatie", "fr": "passe à poissons", - "ru": "рыбопропускное сооружение" + "gl": "escada para peixes", + "he": "סולם דגים", + "hr": "riblja staza", + "hu": "hallépcső", + "id": "tangga ikan", + "it": "passaggio per pesci", + "ja": "魚道", + "ko": "어도", + "lt": "žuvitakis", + "nb": "fisketrapp", + "nl": "vispassage", + "pl": "przepławka", + "pt": "escada de peixes", + "ro": "scară de pești", + "ru": "рыбопропускное сооружение", + "sv": "fiskväg", + "uk": "рибопропускні споруди", + "vi": "thang cá", + "zh": "魚道" }, "lock_gate": { "ca": "comporta de resclosa", @@ -56024,6 +62532,7 @@ "bg": "река", "ca": "riu", "cs": "řeka", + "cy": "afon", "da": "flod", "de": "fluss", "el": "ποταμός", @@ -56033,6 +62542,9 @@ "fa": "رود", "fi": "joki", "fr": "rivière", + "ga": "abhainn", + "gd": "abhainn", + "gl": "río", "he": "נהר", "hi": "नदी", "hr": "rijeka", @@ -56046,7 +62558,6 @@ "lv": "upe", "ml": "നദി", "mr": "नदी", - "ms": "sungai", "nb": "elv", "nl": "rivier", "pl": "rzeka", @@ -56055,8 +62566,10 @@ "ru": "река", "sk": "rieka", "sl": "reka", + "sq": "lum", "sv": "flod", "ta": "ஆறு", + "te": "నది", "th": "แม่น้ำ", "tr": "nehir", "uk": "річка", @@ -56065,7 +62578,7 @@ "zh": "河流" }, "stream": { - "ar": "جدول مائي", + "ar": "جدول", "be": "ручай", "bg": "ручей", "ca": "quebrada", @@ -56074,9 +62587,10 @@ "de": "bach", "en": "brook", "es": "arroyo", - "et": "oja", "fi": "puro", "fr": "ruisseau", + "gd": "allt", + "gl": "regueiro", "hr": "potok", "hu": "patak", "it": "ruscello", @@ -56115,6 +62629,7 @@ "fa": "وادی", "fi": "vadi", "fr": "oued", + "gl": "uadi", "he": "ואדי", "hr": "vadi", "hu": "vádi", @@ -56127,6 +62642,7 @@ "ru": "вади", "sk": "vádí", "sl": "vadi", + "sq": "uadja", "tr": "vadi", "uk": "ваді", "zh": "乾谷", @@ -56139,6 +62655,7 @@ "bg": "водопад", "ca": "salt d'aigua", "cs": "vodopád", + "cy": "rhaeadr", "da": "vandfald", "de": "wasserfall", "el": "καταρράκτης", @@ -56148,6 +62665,9 @@ "fa": "آبشار", "fi": "vesiputous", "fr": "chute d'eau", + "ga": "eas", + "gd": "eas", + "gl": "fervenza", "he": "מפל מים", "hi": "झरना", "hr": "vodopad", @@ -56161,7 +62681,6 @@ "lv": "ūdenskritums", "ml": "വെള്ളച്ചാട്ടം", "mr": "धबधबा", - "ms": "air terjun", "nb": "foss", "nl": "waterval", "pl": "wodospad", @@ -56171,8 +62690,10 @@ "ru": "водопад", "sk": "vodopád", "sl": "slap", + "sq": "ujëvara", "sv": "vattenfall", "ta": "அருவி", + "te": "జలపాతం", "th": "น้ำตก", "tr": "şelale", "uk": "водоспад", @@ -56185,6 +62706,7 @@ "be": "вадазліў", "ca": "assut", "cs": "jez", + "cy": "cored", "da": "stemmeværk", "de": "wehr", "el": "υδροφράχτης", @@ -56194,13 +62716,13 @@ "fa": "سرریز", "fi": "pato", "fr": "seuil", + "ga": "cora", "hi": "बंधिका", "hr": "brana-weir", "id": "bendung", "it": "briglia", "ja": "堰", "ko": "보", - "ms": "weir, rajasthan", "nl": "stuw", "pl": "jaz", "pt": "açude", @@ -56222,6 +62744,7 @@ "bg": "анемометър", "ca": "anemòmetre", "cs": "anemometr", + "cy": "thermomedr", "de-ch": "thermometer", "el": "ανεμόμετρο", "en": "anemometer", @@ -56232,6 +62755,8 @@ "fa": "بادسنج", "fi": "anemometri", "fr": "anémomètre", + "ga": "ainéimiméadar", + "gl": "anemómetro", "he": "מד רוח", "hi": "पवन-वेग-मापी", "hr": "anemometar", @@ -56251,7 +62776,9 @@ "ro": "anemometru", "ru": "анемометр", "sl": "termometer", + "sq": "termometri", "ta": "காற்றுமானி", + "te": "వర్షమాపకం", "th": "แอนิโมมิเตอร์", "tr": "anemometre", "uk": "анемометр", @@ -56262,6 +62789,16 @@ "zh-tw": "風速計" } }, + "weighbridge": { + "in_motion": { + "cs": "vysokorychlostní váha", + "en": "weigh in motion", + "es": "pesaje en movimiento", + "fa": "وزن در حرکت", + "uk": "зважування в русі", + "vi": "cân động" + } + }, "wetland": { "marsh": { "af": "moerasse en vleie", @@ -56270,6 +62807,7 @@ "bg": "блато", "ca": "aiguamoll", "cs": "mokřadní louka", + "cy": "cors", "da": "sump", "de": "sumpf", "el": "έλος", @@ -56279,6 +62817,9 @@ "fa": "مرداب", "fi": "marskimaa", "fr": "marais", + "ga": "riasc", + "gd": "boglach", + "gl": "marisma", "he": "ביצת עשב", "hi": "दलदल", "hr": "močvara", @@ -56290,7 +62831,6 @@ "ko": "소택", "lt": "marša", "lv": "purvājs", - "ms": "rawang", "nb": "sump", "nl": "moeras", "pl": "bagno", @@ -56314,6 +62854,7 @@ "bg": "мочурище", "ca": "pantà", "cs": "bažinatý les", + "cy": "broek", "da": "sump", "de": "bruch", "de-ch": "sumpf", @@ -56324,7 +62865,9 @@ "fa": "باتلاق", "fi": "suometsä", "fr": "marécage", - "he": "ביצה", + "ga": "seascann", + "gl": "pantano", + "he": "ביצה מיוערת", "hi": "दलदल", "hr": "močvara", "hu": "ártéri erdő", @@ -56334,7 +62877,6 @@ "ko": "늪", "lt": "raistas", "lv": "dumbrājs", - "ms": "paya", "nb": "sump", "nl": "zwamp", "pl": "zadrzewione bagno", @@ -56342,7 +62884,8 @@ "ro": "mlaștină", "ru": "заболоченный лес", "sk": "močiar", - "sl": "močvirje", + "sl": "log", + "sq": "këneta", "sv": "träsk", "th": "ที่ลุ่มน้ำขัง", "tr": "bataklık", @@ -56351,7 +62894,8 @@ "zh": "树沼" }, "tidalflat": { - "en": "tidal flat" + "en": "tidal flat", + "ga": "réileán taoidmhear" } }, "wheelchair": { @@ -56361,7 +62905,9 @@ "de": "nicht rollstuhlzugänglich", "el": "μη προσβάσιμο με αναπηρική καρέκλα", "en": "wheelchair inaccessible", + "es": "inaccesible con silla de ruedas", "fr": "inaccessible aux personnes à mobilité réduite", + "he": "לא נגיש לכסא גלגלים", "id": "tidak dapat diakses kursi roda", "it": "inaccessibile alle persone con disabilità motorie", "ja": "車椅子利用不可", @@ -56378,6 +62924,7 @@ }, "yes": { "af": "rolstoel toeganklik", + "ar": "مجهز لاستقبال أصحاب الكرسي المتحركة", "be": "даступна для крэслаў-каталак", "ca": "accessible amb cadira de rodes", "cs": "bezbariérově přístupné", @@ -56412,7 +62959,9 @@ "de": "großmarkt", "en": "wholesale market", "es": "mercado de abastos", + "fi": "tukkutori", "fr": "marché de gros", + "gl": "mercado de abastos", "he": "שוק סיטונאי", "hu": "nagybani piac", "it": "mercato all'ingrosso", @@ -56436,6 +62985,7 @@ "fa": "نورگیر سقف", "fi": "kattoikkuna", "fr": "verrière", + "gl": "biolo", "he": "חלון תקרה", "it": "lucernario", "ja": "天窓", @@ -56444,6 +62994,7 @@ "pl": "świetlik (architektura)", "pt": "claraboia", "sk": "strešné svetlíky", + "sl": "nadsvetloba", "sv": "takfönster", "zh": "天窗" } @@ -56451,9 +63002,11 @@ "zoo": { "aviary": { "ar": "مَطير", + "be": "авіярый", "bg": "волиера", "ca": "aviari", "cs": "voliéra", + "cy": "tŷ adar", "da": "voliere", "de": "voliere", "en": "aviary", @@ -56461,6 +63014,7 @@ "fa": "پرندهگاه", "fi": "aviaario", "fr": "volière", + "id": "aviari", "it": "voliera", "ja": "禽舎", "nl": "volière", @@ -56484,6 +63038,7 @@ "bg": "дневни пеперуди", "ca": "papallona", "cs": "denní motýli", + "cy": "glöyn byw", "da": "sommerfugl", "de": "tagfalter", "el": "πεταλούδα", @@ -56493,6 +63048,9 @@ "fa": "پروانه", "fi": "rhopalocera", "fr": "rhopalocères", + "ga": "féileacán", + "gd": "dealan-dè", + "gl": "bolboreta", "he": "פרפרים", "hi": "तितली", "hr": "dnevni leptiri", @@ -56506,17 +63064,18 @@ "lv": "tauriņi", "ml": "ചിത്രശലഭം", "mr": "फुलपाखरू", - "ms": "kupu-kupu", "nb": "rhopalocera", "nl": "vlinder", - "pl": "motyl dzienny", + "pl": "motyle dzienne", "pt": "borboleta", "ro": "fluture", "ru": "бабочки", "sk": "motýľ", - "sl": "dnevni metulji", + "sl": "metulj", + "sq": "flutura", "sv": "dagfjärilar", "ta": "பட்டாம்பூச்சி", + "te": "సీతాకోకచిలుక", "th": "ผีเสื้อ", "tr": "kelebek", "uk": "rhopalocera", @@ -56538,6 +63097,7 @@ "et": "puur", "fa": "قفس", "fi": "häkki", + "gl": "gaiola", "he": "כלוב", "hr": "kavez", "hu": "ketrec", @@ -56551,7 +63111,9 @@ "pt": "jaula", "ru": "клетка для животных", "sl": "kletka", + "sq": "kafazi", "sv": "bur", + "te": "బోను", "tr": "kafes", "uk": "клітка", "zh": "籠", @@ -56566,6 +63128,7 @@ "ar": "حدائق الحيوانات الأليفة للأطفال", "de": "streichelzoo", "en": "petting zoo", + "fr": "zoo pour enfants", "he": "פינת חי", "ja": "ふれあい動物園", "ko": "페팅 동물원", @@ -56581,6 +63144,7 @@ "bg": "влечуги", "ca": "rèptil", "cs": "plazi", + "cy": "ymlusgiad", "da": "krybdyr", "de": "reptilien", "el": "ερπετά", @@ -56591,6 +63155,10 @@ "et": "roomajad", "fa": "خزندگان", "fi": "matelijat", + "fr": "reptiles", + "ga": "reiptíl", + "gd": "pèist", + "gl": "réptiles", "he": "זוחלים", "hi": "सरीसृप", "hr": "gmazovi", @@ -56611,8 +63179,10 @@ "ru": "пресмыкающиеся", "sk": "plazy", "sl": "plazilci", + "sq": "zvarranikët", "sv": "kräldjur", "ta": "ஊர்வன", + "te": "సరీసృపాలు", "th": "สัตว์เลื้อยคลาน", "tr": "sürüngenler", "uk": "плазуни", @@ -56628,6 +63198,7 @@ "da": "safaripark", "de": "safaripark", "en": "safari park", + "es": "safari", "et": "safaripark", "fr": "parc safari", "it": "zoo safari", @@ -56641,13 +63212,15 @@ "zh-hk": "上海" }, "wildlife_park": { + "ca": "parc de vida salvatge", "de": "wildpark", "en": "wildlife park", "fi": "villieläinpuisto", "fr": "parc de vision", "nl": "wildpark", + "ru": "парк дикой природы", "sl": "park divjih živali", - "zh-cn": "野生动物园" + "zh": "野生动物园" } } } diff --git a/searx/data/useragents.json b/searx/data/useragents.json index c23a06f35..2b8313bf6 100644 --- a/searx/data/useragents.json +++ b/searx/data/useragents.json @@ -5,7 +5,7 @@ ], "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}", "versions": [ - "133.0", - "132.0" + "134.0", + "133.0" ] } \ No newline at end of file diff --git a/searx/data/wikidata_units.json b/searx/data/wikidata_units.json index ff424e62f..a091cda26 100644 --- a/searx/data/wikidata_units.json +++ b/searx/data/wikidata_units.json @@ -3099,7 +3099,7 @@ "symbol": "GeV", "to_si_factor": 1.602176634e-10 }, - "Q12874593": { + "Q12831618": { "si_name": "Q25269", "symbol": "W h", "to_si_factor": 3600.0 @@ -3409,6 +3409,11 @@ "symbol": "hp", "to_si_factor": 735.49875 }, + "Q16120790": { + "si_name": "Q25406", + "symbol": "μC", + "to_si_factor": 1e-06 + }, "Q162525": { "si_name": null, "symbol": "°E", @@ -6244,11 +6249,6 @@ "symbol": "gCO2eq", "to_si_factor": null }, - "Q57084968": { - "si_name": null, - "symbol": "kg CO2eq/kg", - "to_si_factor": null - }, "Q5711255": { "si_name": null, "symbol": "aL", @@ -7197,7 +7197,7 @@ "Q83327": { "si_name": "Q25269", "symbol": "eV", - "to_si_factor": 1.60217656535e-19 + "to_si_factor": 1.602176634e-19 }, "Q83386886": { "si_name": "Q83386886", @@ -7779,11 +7779,6 @@ "symbol": "TC", "to_si_factor": 1000000000000.0 }, - "Q94634684": { - "si_name": "Q25406", - "symbol": "μC", - "to_si_factor": 1e-06 - }, "Q94634699": { "si_name": "Q25406", "symbol": "mC", From 591d9c2505e946a2a180e73fe3532f6335cbb955 Mon Sep 17 00:00:00 2001 From: Lucki Date: Sat, 11 Jan 2025 01:51:33 +0100 Subject: [PATCH 021/417] [json_engine] document existing options --- docs/dev/engines/index.rst | 1 + docs/dev/engines/json_engine.rst | 13 +++ searx/engines/json_engine.py | 136 ++++++++++++++++++++++++++++--- 3 files changed, 137 insertions(+), 13 deletions(-) create mode 100644 docs/dev/engines/json_engine.rst diff --git a/docs/dev/engines/index.rst b/docs/dev/engines/index.rst index 6558dc2c2..d0a31ab67 100644 --- a/docs/dev/engines/index.rst +++ b/docs/dev/engines/index.rst @@ -45,6 +45,7 @@ Online Engines demo/demo_online xpath mediawiki + json_engine .. toctree:: :maxdepth: 1 diff --git a/docs/dev/engines/json_engine.rst b/docs/dev/engines/json_engine.rst new file mode 100644 index 000000000..f1a48c6db --- /dev/null +++ b/docs/dev/engines/json_engine.rst @@ -0,0 +1,13 @@ +.. _json_engine engine: + +============ +JSON Engine +============ + +.. contents:: + :depth: 2 + :local: + :backlinks: entry + +.. automodule:: searx.engines.json_engine + :members: diff --git a/searx/engines/json_engine.py b/searx/engines/json_engine.py index 942f6ae8a..a84a21462 100644 --- a/searx/engines/json_engine.py +++ b/searx/engines/json_engine.py @@ -2,12 +2,58 @@ """The JSON engine is a *generic* engine with which it is possible to configure engines in the settings. -.. todo:: +Configuration +============= - - The JSON engine needs documentation!! +Request: - - The parameters of the JSON engine should be adapted to those of the XPath - engine. +- :py:obj:`search_url` +- :py:obj:`method` +- :py:obj:`request_body` +- :py:obj:`cookies` +- :py:obj:`headers` + +Paging: + +- :py:obj:`paging` +- :py:obj:`page_size` +- :py:obj:`first_page_num` + +Response: + +- :py:obj:`title_html_to_text` +- :py:obj:`content_html_to_text` + +JSON query: + +- :py:obj:`results_query` +- :py:obj:`url_query` +- :py:obj:`url_prefix` +- :py:obj:`title_query` +- :py:obj:`content_query` +- :py:obj:`suggestion_query` + + +Example +======= + +Here is a simple example of a JSON engine configure in the :ref:`settings +engine` section, further read :ref:`engines-dev`. + +.. code:: yaml + + - name : mdn + engine : json_engine + paging : True + search_url : https://developer.mozilla.org/api/v1/search?q={query}&page={pageno} + results_query : documents + url_query : mdn_url + url_prefix : https://developer.mozilla.org + title_query : title + content_query : summary + +Implementations +=============== """ @@ -16,34 +62,92 @@ from json import loads from urllib.parse import urlencode from searx.utils import to_string, html_to_text -# parameters for generating a request search_url = None +""" +Search URL of the engine. Example:: + + https://example.org/?search={query}&page={pageno} + +Replacements are: + +``{query}``: + Search terms from user. + +``{pageno}``: + Page number if engine supports paging :py:obj:`paging` + +""" + method = 'GET' +'''Some engines might require to do POST requests for search.''' + request_body = '' +'''The body of the request. This can only be used if different :py:obj:`method` +is set, e.g. ``POST``. For formatting see the documentation of :py:obj:`search_url`. + +Note: Curly brackets which aren't encapsulating a replacement placeholder +must be escaped by doubling each ``{`` and ``}``. + +.. code:: yaml + + request_body: >- + {{ + "search": "{query}", + "page": {pageno}, + "extra": {{ + "time_range": {time_range}, + "rating": "{safe_search}" + }} + }} +''' cookies = {} +'''Some engines might offer different result based on cookies. +Possible use-case: To set safesearch cookie.''' + headers = {} '''Some engines might offer different result based on cookies or headers. Possible use-case: To set safesearch cookie or header to moderate.''' paging = False -# parameters for engines with paging support -# -# number of results on each page -# (only needed if the site requires not a page number, but an offset) -page_size = 1 -# number of the first page (usually 0 or 1) -first_page_num = 1 +'''Engine supports paging [True or False].''' + +page_size = 1 +'''Number of results on each page. Only needed if the site requires not a page +number, but an offset.''' + +first_page_num = 1 +'''Number of the first page (usually 0 or 1).''' -# parameters for parsing the response results_query = '' +'''JSON query for the list of result items. + +The query string is a slash `/` separated path of JSON key names. +Array entries can be specified using the index or can be omitted entirely, +in which case each entry is considered - +most implementations will default to the first entry in this case. +''' + url_query = None +'''JSON query of result's ``url``. For the query string documentation see :py:obj:`results_query`''' + url_prefix = "" +'''String to prepend to the result's ``url``.''' + title_query = None +'''JSON query of result's ``title``. For the query string documentation see :py:obj:`results_query`''' + content_query = None +'''JSON query of result's ``content``. For the query string documentation see :py:obj:`results_query`''' + suggestion_query = '' +'''JSON query of result's ``suggestion``. For the query string documentation see :py:obj:`results_query`''' + title_html_to_text = False +'''Extract text from a HTML title string''' + content_html_to_text = False +'''Extract text from a HTML content string''' def iterate(iterable): @@ -102,6 +206,7 @@ def query(data, query_string): def request(query, params): # pylint: disable=redefined-outer-name + '''Build request parameters (see :ref:`engine request`).''' fp = {'query': urlencode({'q': query})[2:]} # pylint: disable=invalid-name if paging and search_url.find('{pageno}') >= 0: @@ -126,7 +231,12 @@ def identity(arg): def response(resp): + '''Scrap *results* from the response (see :ref:`engine results`).''' results = [] + + if not resp.text: + return results + json = loads(resp.text) title_filter = html_to_text if title_html_to_text else identity From 64d954b350ac6ad064fda529aeef95000eb82a17 Mon Sep 17 00:00:00 2001 From: Lucki Date: Sat, 11 Jan 2025 02:25:40 +0100 Subject: [PATCH 022/417] [json_engine] mirror xpath functionality --- searx/engines/json_engine.py | 162 ++++++++++++++++++++++++++++++++--- 1 file changed, 151 insertions(+), 11 deletions(-) diff --git a/searx/engines/json_engine.py b/searx/engines/json_engine.py index a84a21462..233e0fd21 100644 --- a/searx/engines/json_engine.py +++ b/searx/engines/json_engine.py @@ -8,6 +8,8 @@ Configuration Request: - :py:obj:`search_url` +- :py:obj:`lang_all` +- :py:obj:`soft_max_redirects` - :py:obj:`method` - :py:obj:`request_body` - :py:obj:`cookies` @@ -19,10 +21,22 @@ Paging: - :py:obj:`page_size` - :py:obj:`first_page_num` +Time Range: + +- :py:obj:`time_range_support` +- :py:obj:`time_range_url` +- :py:obj:`time_range_map` + +Safe-Search: + +- :py:obj:`safe_search_support` +- :py:obj:`safe_search_map` + Response: - :py:obj:`title_html_to_text` - :py:obj:`content_html_to_text` +- :py:obj:`no_result_for_http_status` JSON query: @@ -31,6 +45,8 @@ JSON query: - :py:obj:`url_prefix` - :py:obj:`title_query` - :py:obj:`content_query` +- :py:obj:`thumbnail_query` +- :py:obj:`thumbnail_prefix` - :py:obj:`suggestion_query` @@ -61,12 +77,13 @@ from collections.abc import Iterable from json import loads from urllib.parse import urlencode from searx.utils import to_string, html_to_text +from searx.network import raise_for_httperror search_url = None """ Search URL of the engine. Example:: - https://example.org/?search={query}&page={pageno} + https://example.org/?search={query}&page={pageno}{time_range}{safe_search} Replacements are: @@ -76,8 +93,41 @@ Replacements are: ``{pageno}``: Page number if engine supports paging :py:obj:`paging` +``{lang}``: + ISO 639-1 language code (en, de, fr ..) + +``{time_range}``: + :py:obj:`URL parameter ` if engine :py:obj:`supports time + range `. The value for the parameter is taken from + :py:obj:`time_range_map`. + +``{safe_search}``: + Safe-search :py:obj:`URL parameter ` if engine + :py:obj:`supports safe-search `. The ``{safe_search}`` + replacement is taken from the :py:obj:`safes_search_map`. Filter results:: + + 0: none, 1: moderate, 2:strict + + If not supported, the URL parameter is an empty string. + """ +lang_all = 'en' +'''Replacement ``{lang}`` in :py:obj:`search_url` if language ``all`` is +selected. +''' + +no_result_for_http_status = [] +'''Return empty result for these HTTP status codes instead of throwing an error. + +.. code:: yaml + + no_result_for_http_status: [] +''' + +soft_max_redirects = 0 +'''Maximum redirects, soft limit. Record an error but don't stop the engine''' + method = 'GET' '''Some engines might require to do POST requests for search.''' @@ -140,6 +190,12 @@ title_query = None content_query = None '''JSON query of result's ``content``. For the query string documentation see :py:obj:`results_query`''' +thumbnail_query = False +'''JSON query of result's ``thumbnail``. For the query string documentation see :py:obj:`results_query`''' + +thumbnail_prefix = '' +'''String to prepend to the result's ``thumbnail``.''' + suggestion_query = '' '''JSON query of result's ``suggestion``. For the query string documentation see :py:obj:`results_query`''' @@ -149,6 +205,53 @@ title_html_to_text = False content_html_to_text = False '''Extract text from a HTML content string''' +time_range_support = False +'''Engine supports search time range.''' + +time_range_url = '&hours={time_range_val}' +'''Time range URL parameter in the in :py:obj:`search_url`. If no time range is +requested by the user, the URL parameter is an empty string. The +``{time_range_val}`` replacement is taken from the :py:obj:`time_range_map`. + +.. code:: yaml + + time_range_url : '&days={time_range_val}' +''' + +time_range_map = { + 'day': 24, + 'week': 24 * 7, + 'month': 24 * 30, + 'year': 24 * 365, +} +'''Maps time range value from user to ``{time_range_val}`` in +:py:obj:`time_range_url`. + +.. code:: yaml + + time_range_map: + day: 1 + week: 7 + month: 30 + year: 365 +''' + +safe_search_support = False +'''Engine supports safe-search.''' + +safe_search_map = {0: '&filter=none', 1: '&filter=moderate', 2: '&filter=strict'} +'''Maps safe-search value to ``{safe_search}`` in :py:obj:`search_url`. + +.. code:: yaml + + safesearch: true + safes_search_map: + 0: '&filter=none' + 1: '&filter=moderate' + 2: '&filter=strict' + +''' + def iterate(iterable): if isinstance(iterable, dict): @@ -207,10 +310,26 @@ def query(data, query_string): def request(query, params): # pylint: disable=redefined-outer-name '''Build request parameters (see :ref:`engine request`).''' - fp = {'query': urlencode({'q': query})[2:]} # pylint: disable=invalid-name + lang = lang_all + if params['language'] != 'all': + lang = params['language'][:2] - if paging and search_url.find('{pageno}') >= 0: - fp['pageno'] = (params['pageno'] - 1) * page_size + first_page_num + time_range = '' + if params.get('time_range'): + time_range_val = time_range_map.get(params.get('time_range')) + time_range = time_range_url.format(time_range_val=time_range_val) + + safe_search = '' + if params['safesearch']: + safe_search = safe_search_map[params['safesearch']] + + fp = { # pylint: disable=invalid-name + 'query': urlencode({'q': query})[2:], + 'lang': lang, + 'pageno': (params['pageno'] - 1) * page_size + first_page_num, + 'time_range': time_range, + 'safe_search': safe_search, + } params['cookies'].update(cookies) params['headers'].update(headers) @@ -223,6 +342,9 @@ def request(query, params): # pylint: disable=redefined-outer-name fp['query'] = query params['data'] = request_body.format(**fp) + params['soft_max_redirects'] = soft_max_redirects + params['raise_for_httperror'] = False + return params @@ -234,10 +356,16 @@ def response(resp): '''Scrap *results* from the response (see :ref:`engine results`).''' results = [] + if no_result_for_http_status and resp.status_code in no_result_for_http_status: + return results + + raise_for_httperror(resp) + if not resp.text: return results json = loads(resp.text) + is_onion = 'onions' in categories title_filter = html_to_text if title_html_to_text else identity content_filter = html_to_text if content_html_to_text else identity @@ -256,13 +384,24 @@ def response(resp): content = query(result, content_query)[0] except: # pylint: disable=bare-except content = "" - results.append( - { - 'url': url_prefix + to_string(url), - 'title': title_filter(to_string(title)), - 'content': content_filter(to_string(content)), - } - ) + + tmp_result = { + 'url': url_prefix + to_string(url), + 'title': title_filter(to_string(title)), + 'content': content_filter(to_string(content)), + } + + if thumbnail_query: + try: + thumbnail_query_result = query(result, thumbnail_query)[0] + tmp_result['thumbnail'] = thumbnail_prefix + to_string(thumbnail_query_result) + except: # pylint: disable=bare-except + continue + + if is_onion: + tmp_result['is_onion'] = True + + results.append(tmp_result) else: for result in json: url = query(result, url_query)[0] @@ -274,6 +413,7 @@ def response(resp): 'url': url_prefix + to_string(url), 'title': title_filter(to_string(title)), 'content': content_filter(to_string(content)), + 'is_onion': is_onion, } ) From 3942b311ac6ddb1a3f6e2b4b616e13f13efca352 Mon Sep 17 00:00:00 2001 From: Lucki Date: Sun, 12 Jan 2025 14:11:11 +0100 Subject: [PATCH 023/417] [json_engine] Add unit test --- tests/unit/engines/test_json_engine.py | 254 +++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 tests/unit/engines/test_json_engine.py diff --git a/tests/unit/engines/test_json_engine.py b/tests/unit/engines/test_json_engine.py new file mode 100644 index 000000000..0fb3da122 --- /dev/null +++ b/tests/unit/engines/test_json_engine.py @@ -0,0 +1,254 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# pylint: disable=missing-module-docstring + +from collections import defaultdict +import mock + +from searx.engines import json_engine +from searx import logger + +from tests import SearxTestCase + +logger = logger.getChild('engines') + + +class TestJsonEngine(SearxTestCase): # pylint: disable=missing-class-docstring + json = """ + [ + { + "title": "title0", + "content": "content0", + "url": "https://example.com/url0", + "images": [ + { + "thumb": "https://example.com/thumb00" + }, + { + "thumb": "https://example.com/thumb01" + } + ] + }, + { + "title": "

title1

", + "content": "

content1

", + "url": "https://example.com/url1", + "images": [ + { + "thumb": "https://example.com/thumb10" + }, + { + "thumb": "https://example.com/thumb11" + } + ] + }, + { + "title": "title2", + "content": "content2", + "url": 2, + "images": [ + { + "thumb": "thumb20" + }, + { + "thumb": 21 + } + ] + } + ] + """ + + json_result_query = """ + { + "data": { + "results": [ + { + "title": "title0", + "content": "content0", + "url": "https://example.com/url0", + "images": [ + { + "thumb": "https://example.com/thumb00" + }, + { + "thumb": "https://example.com/thumb01" + } + ] + }, + { + "title": "

title1

", + "content": "

content1

", + "url": "https://example.com/url1", + "images": [ + { + "thumb": "https://example.com/thumb10" + }, + { + "thumb": "https://example.com/thumb11" + } + ] + }, + { + "title": "title2", + "content": "content2", + "url": 2, + "images": [ + { + "thumb": "thumb20" + }, + { + "thumb": 21 + } + ] + } + ], + "suggestions": [ + "suggestion0", + "suggestion1" + ] + } + } + """ + + def setUp(self): + json_engine.logger = logger.getChild('test_json_engine') + + def test_request(self): + json_engine.search_url = 'https://example.com/{query}' + json_engine.categories = [] + json_engine.paging = False + query = 'test_query' + dicto = defaultdict(dict) + dicto['language'] = 'all' + dicto['pageno'] = 1 + params = json_engine.request(query, dicto) + self.assertIn('url', params) + self.assertEqual('https://example.com/test_query', params['url']) + + json_engine.search_url = 'https://example.com/q={query}&p={pageno}' + json_engine.paging = True + query = 'test_query' + dicto = defaultdict(dict) + dicto['language'] = 'all' + dicto['pageno'] = 1 + params = json_engine.request(query, dicto) + self.assertIn('url', params) + self.assertEqual('https://example.com/q=test_query&p=1', params['url']) + + json_engine.search_url = 'https://example.com/' + json_engine.paging = True + json_engine.request_body = '{{"page": {pageno}, "query": "{query}"}}' + query = 'test_query' + dicto = defaultdict(dict) + dicto['language'] = 'all' + dicto['pageno'] = 1 + params = json_engine.request(query, dicto) + self.assertIn('data', params) + self.assertEqual('{"page": 1, "query": "test_query"}', params['data']) + + def test_response(self): + # without results_query + json_engine.results_query = '' + json_engine.url_query = 'url' + json_engine.url_prefix = '' + json_engine.title_query = 'title' + json_engine.content_query = 'content' + json_engine.thumbnail_query = 'images/thumb' + json_engine.thumbnail_prefix = '' + json_engine.title_html_to_text = False + json_engine.content_html_to_text = False + json_engine.categories = [] + + self.assertRaises(AttributeError, json_engine.response, None) + self.assertRaises(AttributeError, json_engine.response, []) + self.assertRaises(AttributeError, json_engine.response, '') + self.assertRaises(AttributeError, json_engine.response, '[]') + + response = mock.Mock(text='{}', status_code=200) + self.assertEqual(json_engine.response(response), []) + + response = mock.Mock(text=self.json, status_code=200) + results = json_engine.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 3) + self.assertEqual(results[0]['title'], 'title0') + self.assertEqual(results[0]['url'], 'https://example.com/url0') + self.assertEqual(results[0]['content'], 'content0') + self.assertEqual(results[0]['thumbnail'], 'https://example.com/thumb00') + self.assertEqual(results[1]['title'], '

title1

') + self.assertEqual(results[1]['url'], 'https://example.com/url1') + self.assertEqual(results[1]['content'], '

content1

') + self.assertEqual(results[1]['thumbnail'], 'https://example.com/thumb10') + + # with prefix and suggestions without results_query + json_engine.url_prefix = 'https://example.com/url' + json_engine.thumbnail_query = 'images/1/thumb' + json_engine.thumbnail_prefix = 'https://example.com/thumb' + + results = json_engine.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 3) + self.assertEqual(results[2]['title'], 'title2') + self.assertEqual(results[2]['url'], 'https://example.com/url2') + self.assertEqual(results[2]['content'], 'content2') + self.assertEqual(results[2]['thumbnail'], 'https://example.com/thumb21') + self.assertFalse(results[0].get('is_onion', False)) + + # results are onion urls without results_query + json_engine.categories = ['onions'] + results = json_engine.response(response) + self.assertTrue(results[0]['is_onion']) + + def test_response_results_json(self): + # with results_query + json_engine.results_query = 'data/results' + json_engine.url_query = 'url' + json_engine.url_prefix = '' + json_engine.title_query = 'title' + json_engine.content_query = 'content' + json_engine.thumbnail_query = 'images/1/thumb' + json_engine.thumbnail_prefix = '' + json_engine.title_html_to_text = True + json_engine.content_html_to_text = True + json_engine.categories = [] + + self.assertRaises(AttributeError, json_engine.response, None) + self.assertRaises(AttributeError, json_engine.response, []) + self.assertRaises(AttributeError, json_engine.response, '') + self.assertRaises(AttributeError, json_engine.response, '[]') + + response = mock.Mock(text='{}', status_code=200) + self.assertEqual(json_engine.response(response), []) + + response = mock.Mock(text=self.json_result_query, status_code=200) + results = json_engine.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 3) + self.assertEqual(results[0]['title'], 'title0') + self.assertEqual(results[0]['url'], 'https://example.com/url0') + self.assertEqual(results[0]['content'], 'content0') + self.assertEqual(results[0]['thumbnail'], 'https://example.com/thumb01') + self.assertEqual(results[1]['title'], 'title1') + self.assertEqual(results[1]['url'], 'https://example.com/url1') + self.assertEqual(results[1]['content'], 'content1') + self.assertEqual(results[1]['thumbnail'], 'https://example.com/thumb11') + + # with prefix and suggestions with results_query + json_engine.url_prefix = 'https://example.com/url' + json_engine.thumbnail_query = 'images/1/thumb' + json_engine.thumbnail_prefix = 'https://example.com/thumb' + json_engine.suggestion_query = 'data/suggestions' + + results = json_engine.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 4) + self.assertEqual(results[2]['title'], 'title2') + self.assertEqual(results[2]['url'], 'https://example.com/url2') + self.assertEqual(results[2]['content'], 'content2') + self.assertEqual(results[2]['thumbnail'], 'https://example.com/thumb21') + self.assertEqual(results[3]['suggestion'], ['suggestion0', 'suggestion1']) + self.assertFalse(results[0].get('is_onion', False)) + + # results are onion urls with results_query + json_engine.categories = ['onions'] + results = json_engine.response(response) + self.assertTrue(results[0]['is_onion']) From 35c80268bf0207cece004642abcf1862e14dfb39 Mon Sep 17 00:00:00 2001 From: Lucki Date: Sat, 11 Jan 2025 16:47:50 +0100 Subject: [PATCH 024/417] [json_engine] Fix R0912 (too-many-branches) --- searx/engines/json_engine.py | 85 ++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/searx/engines/json_engine.py b/searx/engines/json_engine.py index 233e0fd21..1906f9d9e 100644 --- a/searx/engines/json_engine.py +++ b/searx/engines/json_engine.py @@ -352,6 +352,37 @@ def identity(arg): return arg +def extract_response_info(result): + title_filter = html_to_text if title_html_to_text else identity + content_filter = html_to_text if content_html_to_text else identity + + tmp_result = {} + + try: + url = query(result, url_query)[0] + tmp_result['url'] = url_prefix + to_string(url) + + title = query(result, title_query)[0] + tmp_result['title'] = title_filter(to_string(title)) + except: # pylint: disable=bare-except + return None + + try: + content = query(result, content_query)[0] + tmp_result['content'] = content_filter(to_string(content)) + except: # pylint: disable=bare-except + tmp_result['content'] = "" + + try: + if thumbnail_query: + thumbnail_query_result = query(result, thumbnail_query)[0] + tmp_result['thumbnail'] = thumbnail_prefix + to_string(thumbnail_query_result) + except: # pylint: disable=bare-except + pass + + return tmp_result + + def response(resp): '''Scrap *results* from the response (see :ref:`engine results`).''' results = [] @@ -367,55 +398,23 @@ def response(resp): json = loads(resp.text) is_onion = 'onions' in categories - title_filter = html_to_text if title_html_to_text else identity - content_filter = html_to_text if content_html_to_text else identity - if results_query: rs = query(json, results_query) # pylint: disable=invalid-name if not rs: return results - for result in rs[0]: - try: - url = query(result, url_query)[0] - title = query(result, title_query)[0] - except: # pylint: disable=bare-except - continue - try: - content = query(result, content_query)[0] - except: # pylint: disable=bare-except - content = "" - - tmp_result = { - 'url': url_prefix + to_string(url), - 'title': title_filter(to_string(title)), - 'content': content_filter(to_string(content)), - } - - if thumbnail_query: - try: - thumbnail_query_result = query(result, thumbnail_query)[0] - tmp_result['thumbnail'] = thumbnail_prefix + to_string(thumbnail_query_result) - except: # pylint: disable=bare-except - continue - - if is_onion: - tmp_result['is_onion'] = True - - results.append(tmp_result) + rs = rs[0] # pylint: disable=invalid-name else: - for result in json: - url = query(result, url_query)[0] - title = query(result, title_query)[0] - content = query(result, content_query)[0] + rs = json # pylint: disable=invalid-name - results.append( - { - 'url': url_prefix + to_string(url), - 'title': title_filter(to_string(title)), - 'content': content_filter(to_string(content)), - 'is_onion': is_onion, - } - ) + for result in rs: + tmp_result = extract_response_info(result) + if not tmp_result: + continue + + if is_onion: + tmp_result['is_onion'] = True + + results.append(tmp_result) if not suggestion_query: return results From 943c8fb85bf1b3b2374517dd59da1a44046f99ff Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 2 Jan 2025 07:45:46 +0100 Subject: [PATCH 025/417] [upd] update npm dependencies (package.json) and .tool-versions To avoid issue like [1], versions from now on are pinned in:: searx/static/themes/simple/package-lock.json To test nodejs v23 or newer is needed (will be installed by nvm). To drop a possibly existing installation:: $ make clean Install nodejs in nvm:: $ make nvm.nodejs INFO: install (update) NVM at searxng/.nvm ... Now using node v23.5.0 (npm v10.9.2) Creating default alias: default -> v23.5 (-> v23.5.0) INFO: Node.js is installed at searxng/.nvm/versions/node/v23.5.0/bin/node INFO: Node.js is version v23.5.0 INFO: npm is installed at searxng/.nvm/versions/node/v23.5.0/bin/npm INFO: npm is version 10.9.2 INFO: NVM is installed at searxng/.nvm To test npm checks and builds: $ make static.build.commit Related: [1] https://github.com/searxng/searxng/issues/4143 Signed-off-by: Markus Heiser --- .nvmrc | 2 +- .tool-versions | 6 +- package.json | 4 +- searx/static/themes/simple/.gitignore | 1 - searx/static/themes/simple/package-lock.json | 9619 ++++++++++++++++++ searx/static/themes/simple/package.json | 38 +- 6 files changed, 9645 insertions(+), 25 deletions(-) create mode 100644 searx/static/themes/simple/package-lock.json diff --git a/.nvmrc b/.nvmrc index 0fdd238b4..696e6df35 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.10 \ No newline at end of file +v23.5 \ No newline at end of file diff --git a/.tool-versions b/.tool-versions index a8d9d4672..1b928297d 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,4 @@ -python 3.12.0 -shellcheck 0.9.0 +nodejs 23.5.0 +python 3.13.1 +shellcheck 0.10.0 +sqlite 3.47.2 \ No newline at end of file diff --git a/package.json b/package.json index 37283c5e3..f6b6b1ec4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "dependencies": { - "eslint": "^9.0.0", - "pyright": "^1.1.329" + "eslint": "^9.17.0", + "pyright": "^1.1.391" }, "scripts": { "clean": "rm -Rf node_modules package-lock.json" diff --git a/searx/static/themes/simple/.gitignore b/searx/static/themes/simple/.gitignore index 5e5272738..07e6e472c 100644 --- a/searx/static/themes/simple/.gitignore +++ b/searx/static/themes/simple/.gitignore @@ -1,2 +1 @@ /node_modules -package-lock.json diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json new file mode 100644 index 000000000..072e6a282 --- /dev/null +++ b/searx/static/themes/simple/package-lock.json @@ -0,0 +1,9619 @@ +{ + "name": "simple", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "autocomplete-js": "^2.7.1", + "leaflet": "^1.9.4", + "normalize.css": "^8.0.1" + }, + "devDependencies": { + "ejs": "^3.1.10", + "eslint": "^9.17.0", + "grunt": "^1.6.1", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-cssmin": "^5.0.0", + "grunt-contrib-less": "^3.0.0", + "grunt-contrib-uglify": "^5.2.2", + "grunt-contrib-watch": "^1.1.0", + "grunt-eslint": "^25.0.0", + "grunt-image": "^6.4.0", + "grunt-stylelint": "^0.20.1", + "grunt-xmlmin": "^0.1.8", + "ionicons": "^7.4.0", + "less": "^4.2.1", + "less-plugin-clean-css": "^1.6.0", + "sharp": "^0.33.5", + "stylelint": "^16.12.0", + "stylelint-config-standard": "^36.0.0", + "svgo": "^3.3.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@stencil/core": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.23.0.tgz", + "integrity": "sha512-9vI8ywhoqlaDEmrcntejrZ9X76Tddv2JyWakjVpqJAdDNXgf520sYkyjzGT0p8VJfPtSaKm6pMtl5sAH1r9cFg==", + "dev": true, + "license": "MIT", + "bin": { + "stencil": "bin/stencil" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.10.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/autocomplete-js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/autocomplete-js/-/autocomplete-js-2.7.1.tgz", + "integrity": "sha512-F+1Sj13zbfpbkprKjtyYiaHgBo6YODzNzWgJjgo/p312AeiZVEn3W+NaRRzVZYqMI0Bm7/W36uanp995eNDy+A==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bin-build": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", + "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "decompress": "^4.0.0", + "download": "^6.2.2", + "execa": "^0.7.0", + "p-map-series": "^1.0.0", + "tempfile": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-check": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", + "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0", + "executable": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", + "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "find-versions": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version-check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", + "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bin-version": "^3.0.0", + "semver": "^5.6.0", + "semver-truncate": "^1.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/bin-version/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bin-version/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/bin-wrapper": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", + "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bin-check": "^4.1.0", + "bin-version-check": "^4.0.0", + "download": "^7.1.0", + "import-lazy": "^3.1.0", + "os-filter-obj": "^2.0.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/download/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==", + "dev": true, + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==", + "dev": true + }, + "node_modules/cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12 || >=16" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", + "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/download": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "caw": "^2.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.0.0", + "ext-name": "^5.0.0", + "file-type": "5.2.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha512-0hJGub96skwr+sUojv7zQ0kc9i4jn3SwLiLk8Jr7KDz7aaaMzkN5UX3a/9ZhzC0OfZVyXHhlHcjC0KVOiKZ+HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^1.0.0", + "set-immediate-shim": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, + "dependencies": { + "string-template": "~0.2.1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.8", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.8.tgz", + "integrity": "sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.6", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.0", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/exec-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", + "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0", + "p-finally": "^1.0.0", + "pify": "^3.0.0", + "rimraf": "^2.5.4", + "tempfile": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/executable/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "npm-conf": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getobject": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/gifsicle": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-5.3.0.tgz", + "integrity": "sha512-FJTpgdj1Ow/FITB7SVza5HlzXa+/lqEY0tHQazAJbuAdvyJtkH4wIdsR2K414oaTwRXHFLLF+tYbipj+OpYg+Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "execa": "^5.0.0" + }, + "bin": { + "gifsicle": "cli.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/imagemin/gisicle-bin?sponsor=1" + } + }, + "node_modules/gifsicle/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/gifsicle/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gifsicle/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gifsicle/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gifsicle/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/grunt": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-copy/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-cssmin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-5.0.0.tgz", + "integrity": "sha512-SNp4H4+85mm2xaHYi83FBHuOXylpi5vcwgtNoYCZBbkgeXQXoeTAKa59VODRb0woTDBvxouP91Ff5PzCkikg6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "clean-css": "^5.3.2", + "maxmin": "^3.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/grunt-contrib-less": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-3.0.0.tgz", + "integrity": "sha512-fBB8MUDCo5EgT7WdOVQnZq4GF+XCeFdnkhaxI7uepp8P973sH1jdodjF87c6d9WSHKgArJAGP5JEtthhdKVovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0", + "chalk": "^4.1.0", + "less": "^4.1.1", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-contrib-uglify": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-5.2.2.tgz", + "integrity": "sha512-ITxiWxrjjP+RZu/aJ5GLvdele+sxlznh+6fK9Qckio5ma8f7Iv8woZjRkGfafvpuygxNefOJNc+hfjjBayRn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "maxmin": "^3.0.0", + "uglify-js": "^3.16.1", + "uri-path": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-watch/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/grunt-eslint": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-25.0.0.tgz", + "integrity": "sha512-JIV5IPgOuacorFLmYtUTq0n+0qGIL9FSQJ4KVnNfCg/8Fm+K1t6OWrzXXI8TxWTwq2K9E3parFVXCpn1sGLbKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "eslint": "^9.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "peerDependencies": { + "grunt": ">=1" + } + }, + "node_modules/grunt-image": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/grunt-image/-/grunt-image-6.4.0.tgz", + "integrity": "sha512-lajztcwGj6eytHld0q6rkMO0+dbZoyvpzPmrGh78ed9Wx3FicgMGRPeZqAsjignlBW3cZyADlzpP358+LxYAhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "each-async": "^1.1.1", + "exec-buffer": "^3.2.0", + "gifsicle": "^5.1.0", + "is-gif": "^3.0.0", + "is-jpg": "^2.0.0", + "is-png": "^2.0.0", + "is-svg": "^4.2.1", + "jpeg-recompress-bin": "^5.1.1", + "mkdirp": "^1.0.4", + "mozjpeg": "^7.0.0", + "optipng-bin": "^7.0.0", + "pngquant-bin": "^6.0.0", + "pretty-bytes": "^5.3.0", + "round10": "^1.0.3", + "svgo": "^1.3.2", + "zopflipng-bin": "^6.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "grunt": "^1.3.0" + } + }, + "node_modules/grunt-image/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-image/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/grunt-image/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-image/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/grunt-image/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/grunt-image/node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/grunt-image/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/grunt-image/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/grunt-image/node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/grunt-image/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/grunt-image/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/grunt-image/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/grunt-image/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/grunt-image/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/grunt-image/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-image/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-image/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/grunt-image/node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/grunt-image/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/grunt-image/node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "license": "ISC" + }, + "node_modules/grunt-image/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/grunt-image/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-image/node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/grunt-image/node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-image/node_modules/svgo/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/grunt-known-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-stylelint": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.20.1.tgz", + "integrity": "sha512-tDep9ceEerB+fK6CkzPBXu5qPM7RuwCRgfrtwugEyYYnxINreMZktqQU5eoTW+MhhFj81uWQQnxf+c4geyAmQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "16.x" + } + }, + "node_modules/grunt-xmlmin": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/grunt-xmlmin/-/grunt-xmlmin-0.1.8.tgz", + "integrity": "sha512-bm9kcmHTbLskFWHfXcW5MQo7gbsO8TrYdNN7rGmCV8d/m5ek7PZL9CisG0+j0EEDzrGkISq0gaMjL8gzdWHMXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "~1.1.1", + "maxmin": "~1.1.0", + "pretty-data": "~0.40.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha512-mu66twX6zg8WB6IPfUtrquS7fjwGnDJ7kdVcggd5rpjwBItQKjHtvhu6VcQMkqPYAR7DjWpEaN3xiBSNmxvzPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" + }, + "bin": { + "gzip-size": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha512-jypoV6wTPuz/ngkc2sDZnFvpvx14QICNKS/jK9RbkmiQQJZ4JWstIszA8iT/z9tPSF/vXQ5qtG0h65N9tiLIKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha512-LNisJvAjy+hruxp3GV4IkZZscTI34+ISfeM1hesB9V6ezIDfXYrBi9TIXVjjMcEB4QFN7tL+dFDEk4s8jMBMyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + }, + "bin": { + "pretty-bytes": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-xmlmin/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/grunt/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/grunt/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gzip-size/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ionicons": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.4.0.tgz", + "integrity": "sha512-ZK94MMqgzMCPPMhmk8Ouu6goyVHFIlw/ACP6oe3FrikcI0N7CX0xcwVaEbUc0G/v3W0shI93vo+9ve/KpvcNhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@stencil/core": "^4.0.3" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-gif": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz", + "integrity": "sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-type": "^10.4.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-gif/node_modules/file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-jpg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", + "integrity": "sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-png": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz", + "integrity": "sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-svg": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.4.0.tgz", + "integrity": "sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-xml-parser": "^4.1.3" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jpeg-recompress-bin": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jpeg-recompress-bin/-/jpeg-recompress-bin-5.1.2.tgz", + "integrity": "sha512-JjR7+gqmw1D1jYgicMpRi+t/Si13+xOMDuvYRSQFMkrKmnOwTqti+9U9ZHrbUnXjrulqK9Sjjq/Hn8E9UnOFpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.1.0" + }, + "bin": { + "jpeg-recompress": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/less": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.1.tgz", + "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-plugin-clean-css": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/less-plugin-clean-css/-/less-plugin-clean-css-1.6.0.tgz", + "integrity": "sha512-jwXX6WlXT57OVCXa5oBJBaJq1b4s1BOKeEEoAL2UTeEitogQWfTcBbLT/vow9pl0N0MXV8Mb4KyhTGG0YbEKyQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "clean-css": "5.3.3" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/liftup/node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/logalot/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/logalot/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + }, + "bin": { + "lpad-align": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/maxmin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-3.0.0.tgz", + "integrity": "sha512-wcahMInmGtg/7c6a75fr21Ch/Ks1Tb+Jtoan5Ft4bAI0ZvJqyOw8kkM7e7p8hDSzY805vmxwHT50KcjGwKyJ0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "figures": "^3.2.0", + "gzip-size": "^5.1.1", + "pretty-bytes": "^5.3.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mozjpeg": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.1.tgz", + "integrity": "sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0" + }, + "bin": { + "mozjpeg": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-url/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-url/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", + "license": "MIT" + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optipng-bin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-7.0.1.tgz", + "integrity": "sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0" + }, + "bin": { + "optipng": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/os-filter-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", + "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arch": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^1.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", + "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-reduce": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true, + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pngquant-bin": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.1.tgz", + "integrity": "sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==", + "dev": true, + "hasInstallScript": true, + "license": "GPL-3.0+", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "execa": "^4.0.0" + }, + "bin": { + "pngquant": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pngquant-bin/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/pngquant-bin/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pngquant-bin/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/pngquant-bin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pngquant-bin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngquant-bin/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-data": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/pretty-data/-/pretty-data-0.40.0.tgz", + "integrity": "sha512-YFLnEdDEDnkt/GEhet5CYZHCvALw6+Elyb/tp8kQG03ZSIuzeaDWpZYndCXwgqu4NAjh1PI534dhDS1mHarRnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/raw-body/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", + "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "dunder-proto": "^1.0.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/round10": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/round10/-/round10-1.0.3.tgz", + "integrity": "sha512-Tpnpi05D7zWuoi/kVEuOvdUOAhqzTHbVridqrCbjpVlPK1/OkQmwO6mtR1mIlUAHy3rVYjeH7OnKB4QcYiawtg==", + "dev": true, + "license": "CC-BY-SA-2.5" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==", + "dev": true + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/squeak/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true, + "license": "MIT" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz", + "integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.1.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.0.1", + "debug": "^4.3.7", + "fast-glob": "^3.3.2", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^9.1.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^6.0.2", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.35.0", + "mathml-tag-names": "^2.1.3", + "meow": "^13.2.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.1.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", + "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.1.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "36.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", + "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^14.0.1" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.1.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.3.1", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylelint/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==", + "dev": true, + "license": "WTFPL OR MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zopflipng-bin": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zopflipng-bin/-/zopflipng-bin-6.0.1.tgz", + "integrity": "sha512-+aybvXv/xafL6I67uSH5yLHrSy4/OaSOV9tniw4yZFIHpINXUcctVHE/WzHxOONrL2GHzJ8Fd4iDrNyaS6TVbg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "logalot": "^2.1.0" + }, + "bin": { + "zopflipng": "cli.js" + }, + "engines": { + "node": ">=10" + } + } + } +} diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 0114028b5..9df658bbf 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -1,28 +1,28 @@ { "devDependencies": { - "eslint": "^9.0.0", - "grunt": "~1.6.1", + "eslint": "^9.17.0", + "grunt": "^1.6.1", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^5.0.0", - "grunt-contrib-less": "~3.0.0", - "grunt-contrib-uglify": "~5.2.1", - "grunt-xmlmin": "~0.1.8", - "grunt-contrib-watch": "~1.1.0", - "grunt-eslint": "^24.0.0", - "grunt-stylelint": "^0.16.0", + "grunt-contrib-less": "^3.0.0", + "grunt-contrib-uglify": "^5.2.2", + "grunt-xmlmin": "^0.1.8", + "grunt-contrib-watch": "^1.1.0", + "grunt-eslint": "^25.0.0", + "grunt-stylelint": "^0.20.1", "grunt-image": "^6.4.0", - "ionicons": "^7.1.0", - "less": "^4.1.3", - "less-plugin-clean-css": "^1.5.1", - "sharp": "^0.33.0", - "stylelint": "^13.13.1", - "stylelint-config-standard": "^22.0.0", - "ejs": "^3.1.8", - "svgo": "^3.0.0" + "ionicons": "^7.4.0", + "less": "^4.2.1", + "less-plugin-clean-css": "^1.6.0", + "sharp": "^0.33.5", + "stylelint": "^16.12.0", + "stylelint-config-standard": "^36.0.0", + "ejs": "^3.1.10", + "svgo": "^3.3.2" }, "dependencies": { - "autocomplete-js": "2.7.1", - "leaflet": "^1.8.0", + "autocomplete-js": "^2.7.1", + "leaflet": "^1.9.4", "normalize.css": "^8.0.1" }, "scripts": { @@ -32,7 +32,7 @@ "eslint": "grunt eslint", "eslint-fix": "grunt eslint --fix", "watch": "grunt watch", - "clean": "rm -Rf node_modules package-lock.json", + "clean": "rm -Rf node_modules", "stylelint": "grunt stylelint", "stylelint-fix": "grunt stylelint --fix" } From 0abad23daae214ebb817981f882774f0b3f76567 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 2 Jan 2025 08:47:19 +0100 Subject: [PATCH 026/417] [upd] migrate .eslintrc.json to eslint.config.mjs The migration was done by the following steps, firts prepare the node enviroment an open a bash in this environment:: $ make clean nvm.nodejs ... $ ./manage nvm.bash $ which npx searxng/.nvm/versions/node/v23.5.0/bin/npx In this environment the migration command from [1] is started:: $ npx @eslint/migrate-config .eslintrc.json Need to install the following packages: @eslint/migrate-config@1.3.5 Migrating .eslintrc.json Wrote new config to ./eslint.config.mjs You will need to install the following packages to use the new config: - globals - @eslint/js - @eslint/eslintrc You can install them using the following command: npm install globals @eslint/js @eslint/eslintrc -D The following messages were generated during migration: - The 'node' environment is used, so switching sourceType to 'commonjs'. [1] https://eslint.org/docs/latest/use/configure/migration-guide#migrate-your-config-file Signed-off-by: Markus Heiser --- searx/static/themes/simple/.eslintrc.json | 28 -------- searx/static/themes/simple/eslint.config.mjs | 68 ++++++++++++++++++++ searx/static/themes/simple/gruntfile.js | 2 +- 3 files changed, 69 insertions(+), 29 deletions(-) delete mode 100644 searx/static/themes/simple/.eslintrc.json create mode 100644 searx/static/themes/simple/eslint.config.mjs diff --git a/searx/static/themes/simple/.eslintrc.json b/searx/static/themes/simple/.eslintrc.json deleted file mode 100644 index df53fcce8..000000000 --- a/searx/static/themes/simple/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true, - "node": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 12 - }, - "rules": { - "indent": ["error", 2], - "keyword-spacing": ["error", { "before": true, "after": true }], - "no-trailing-spaces": 2, - "space-before-function-paren": ["error", "always"], - "space-infix-ops": "error", - "comma-spacing": ["error", { "before": false, "after": true }], - "brace-style": ["error", "1tbs", { "allowSingleLine": true }], - "curly": ["error", "multi-line"], - "block-spacing": ["error", "always"], - "dot-location": ["error", "property"], - "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], - "spaced-comment": ["error", "always", { - "line": { "markers": ["*package", "!", "/", ",", "="] }, - "block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] } - }] - } -} diff --git a/searx/static/themes/simple/eslint.config.mjs b/searx/static/themes/simple/eslint.config.mjs new file mode 100644 index 000000000..747f6bfd4 --- /dev/null +++ b/searx/static/themes/simple/eslint.config.mjs @@ -0,0 +1,68 @@ +import globals from "globals"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [...compat.extends("eslint:recommended"), { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + + ecmaVersion: 12, + sourceType: "commonjs", + }, + + rules: { + indent: ["error", 2], + + "keyword-spacing": ["error", { + before: true, + after: true, + }], + + "no-trailing-spaces": 2, + "space-before-function-paren": ["error", "always"], + "space-infix-ops": "error", + + "comma-spacing": ["error", { + before: false, + after: true, + }], + + "brace-style": ["error", "1tbs", { + allowSingleLine: true, + }], + + curly: ["error", "multi-line"], + "block-spacing": ["error", "always"], + "dot-location": ["error", "property"], + + "key-spacing": ["error", { + beforeColon: false, + afterColon: true, + }], + + "spaced-comment": ["error", "always", { + line: { + markers: ["*package", "!", "/", ",", "="], + }, + + block: { + balanced: true, + markers: ["*package", "!", ",", ":", "::", "flow-include"], + exceptions: ["*"], + }, + }], + }, +}]; \ No newline at end of file diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index c2cbad315..bd04b2468 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -35,7 +35,7 @@ module.exports = function (grunt) { }, eslint: { options: { - overrideConfigFile: '.eslintrc.json', + overrideConfigFile: 'eslint.config.mjs', failOnError: true, fix: grunt.option('fix') }, From 9d834c0722021e895f57f7a35a80f3d82e7344c5 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 3 Jan 2025 07:57:06 +0100 Subject: [PATCH 027/417] [fix] issues reported by sytlelint "Unexpected vendor-prefixed": -webkit-transform & -ms-transform [3] -webkit-animation [2] @-webkit-keyframes [1] [1] https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes [2] https://developer.mozilla.org/en-US/docs/Web/CSS/animation [3] https://developer.mozilla.org/en-US/docs/Web/CSS/transform Signed-off-by: Markus Heiser --- .../themes/simple/src/less/toolkit_loader.less | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/searx/static/themes/simple/src/less/toolkit_loader.less b/searx/static/themes/simple/src/less/toolkit_loader.less index 83b169139..8b705e42b 100644 --- a/searx/static/themes/simple/src/less/toolkit_loader.less +++ b/searx/static/themes/simple/src/less/toolkit_loader.less @@ -14,33 +14,16 @@ border-right: 1.1em solid var(--color-loading-indicator); border-bottom: 1.1em solid var(--color-loading-indicator); border-left: 1.1em solid var(--color-loading-indicator-gap); - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); transform: translateZ(0); - -webkit-animation: load8 1.1s infinite linear; animation: load8 1.1s infinite linear; } -@-webkit-keyframes load8 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - @keyframes load8 { 0% { - -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { - -webkit-transform: rotate(360deg); transform: rotate(360deg); } } From 337a6db064ad36b3005431feaa0a5efd8548d04f Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 7 Jan 2025 14:34:50 +0100 Subject: [PATCH 028/417] [upd] stylelint: use less-compatible configuration and update rules --- searx/static/themes/simple/.stylelintrc.json | 11 ++- searx/static/themes/simple/package-lock.json | 86 ++++++++++++++++++++ searx/static/themes/simple/package.json | 7 +- 3 files changed, 99 insertions(+), 5 deletions(-) diff --git a/searx/static/themes/simple/.stylelintrc.json b/searx/static/themes/simple/.stylelintrc.json index be082eeb4..1e9b64136 100644 --- a/searx/static/themes/simple/.stylelintrc.json +++ b/searx/static/themes/simple/.stylelintrc.json @@ -1,7 +1,14 @@ { - "extends": "stylelint-config-standard", + "extends": "stylelint-config-standard-less", "rules": { "declaration-empty-line-before": null, - "no-invalid-position-at-import-rule": null + "no-invalid-position-at-import-rule": null, + "property-no-vendor-prefix": null, + "selector-no-vendor-prefix": null, + "selector-attribute-quotes": null, + "shorthand-property-no-redundant-values": null, + "at-rule-no-vendor-prefix": null, + "selector-id-pattern": null, + "selector-class-pattern": null } } diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 072e6a282..6a9f0f22f 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -28,6 +28,7 @@ "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard-less": "^3.0.1", "svgo": "^3.3.2" } }, @@ -7237,6 +7238,19 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-less": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-6.0.0.tgz", + "integrity": "sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.3.5" + } + }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", @@ -8666,6 +8680,27 @@ "stylelint": "^16.1.0" } }, + "node_modules/stylelint-config-recommended-less": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-less/-/stylelint-config-recommended-less-3.0.1.tgz", + "integrity": "sha512-4vp9Z+W0KwxgPL4L3WxXtlMurfen0NXKFFxPHzDYn2s6WVS26Gg7jt3FIO4ZLM1x8WalCR02nwK2h0TH/mafBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-less": "^6.0.0", + "stylelint-config-recommended": "^14.0.0", + "stylelint-less": "^3.0.1" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.0.2" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, "node_modules/stylelint-config-standard": { "version": "36.0.1", "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", @@ -8692,6 +8727,57 @@ "stylelint": "^16.1.0" } }, + "node_modules/stylelint-config-standard-less": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-less/-/stylelint-config-standard-less-3.0.1.tgz", + "integrity": "sha512-l6UrXbfy37hWbeOCYrJqnKzhiy5+rkxHNGNufvyhH2K1KpEWO+lO8YrLzoOTx0VyGMatPQlpR8EXrnLRcEcvhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-less": "^3.0.1", + "stylelint-config-standard": "^35.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.0.2" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard-less/node_modules/stylelint-config-standard": { + "version": "35.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-35.0.0.tgz", + "integrity": "sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.0.0" + } + }, + "node_modules/stylelint-less": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylelint-less/-/stylelint-less-3.0.1.tgz", + "integrity": "sha512-6GkZ4jhmReXxX61IiNaniZFuyTzYTTC4HvRLNNok883d1ux/wUodM1uik+iAHZM1VSCwNASaj0Th6ZX46WZLMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-value-parser": "4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4.31", + "stylelint": "^16.0.2" + } + }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 9df658bbf..5ff49057a 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -1,23 +1,24 @@ { "devDependencies": { + "ejs": "^3.1.10", "eslint": "^9.17.0", "grunt": "^1.6.1", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^5.0.0", "grunt-contrib-less": "^3.0.0", "grunt-contrib-uglify": "^5.2.2", - "grunt-xmlmin": "^0.1.8", "grunt-contrib-watch": "^1.1.0", "grunt-eslint": "^25.0.0", - "grunt-stylelint": "^0.20.1", "grunt-image": "^6.4.0", + "grunt-stylelint": "^0.20.1", + "grunt-xmlmin": "^0.1.8", "ionicons": "^7.4.0", "less": "^4.2.1", "less-plugin-clean-css": "^1.6.0", "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^36.0.0", - "ejs": "^3.1.10", + "stylelint-config-standard-less": "^3.0.1", "svgo": "^3.3.2" }, "dependencies": { From 94b6adf03d3c5e7564b08063fe8dd9bf43d18775 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 7 Jan 2025 14:39:56 +0100 Subject: [PATCH 029/417] [chore] stylelint: fix reported errors --- .../themes/simple/src/less/definitions.less | 20 ++++----- .../static/themes/simple/src/less/detail.less | 3 +- .../static/themes/simple/src/less/search.less | 9 ++-- .../themes/simple/src/less/style-center.less | 4 +- .../static/themes/simple/src/less/style.less | 42 ++++--------------- .../themes/simple/src/less/toolkit.less | 8 ++-- 6 files changed, 27 insertions(+), 59 deletions(-) diff --git a/searx/static/themes/simple/src/less/definitions.less b/searx/static/themes/simple/src/less/definitions.less index eb5f947f2..802b3abf1 100644 --- a/searx/static/themes/simple/src/less/definitions.less +++ b/searx/static/themes/simple/src/less/definitions.less @@ -85,8 +85,8 @@ --color-result-detail-background: #242424; --color-result-detail-hr: #555; --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-detail-loader-border: rgb(255 255 255 / 20%); + --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%); /// Toolkit Colors --color-toolkit-badge-font: #fff; --color-toolkit-badge-background: #545454; @@ -111,16 +111,16 @@ --color-toolkit-checkbox-input-border: #3050ff; --color-toolkit-engine-tooltip-border: #ddd; --color-toolkit-engine-tooltip-background: #fff; - --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); - --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); + --color-toolkit-loader-border: rgb(0 0 0 / 20%); + --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%); --color-doc-code: #003; --color-doc-code-background: #ddeaff; /// Other misc colors --color-bar-chart-primary: #5bc0de; --color-bar-chart-secondary: #deb15b; - --color-image-resolution-background: rgba(0, 0, 0, 50%); + --color-image-resolution-background: rgb(0 0 0 / 50%); --color-image-resolution-font: #fff; - --color-loading-indicator: rgba(255, 255, 255, 0.2); + --color-loading-indicator: rgb(255 255 255 / 20%); --color-loading-indicator-gap: #fff; --color-line-number: #64708d; // Favicons Colors @@ -200,8 +200,8 @@ --color-result-detail-background: #1a1a1c; --color-result-detail-hr: #555; --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-detail-loader-border: rgb(255 255 255 / 20%); + --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%); // Images Colors --color-result-image-span-font: #bbb; --color-result-image-span-font-selected: #222; @@ -234,8 +234,8 @@ --color-toolkit-checkbox-input-border: #58f; --color-toolkit-engine-tooltip-border: #333; --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-toolkit-loader-border: rgb(255 255 255 / 20%); + --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%); --color-doc-code: #ddd; --color-doc-code-background: #4d5a6f; // Favicons Colors diff --git a/searx/static/themes/simple/src/less/detail.less b/searx/static/themes/simple/src/less/detail.less index fd7858a1e..ad4e3d5ff 100644 --- a/searx/static/themes/simple/src/less/detail.less +++ b/searx/static/themes/simple/src/less/detail.less @@ -93,8 +93,7 @@ article.result-images .detail { p.result-url { white-space: nowrap; - overflow-x: hidden; - overflow-y: hidden; + overflow: hidden hidden; text-overflow: ellipsis; } diff --git a/searx/static/themes/simple/src/less/search.less b/searx/static/themes/simple/src/less/search.less index 458bba155..ce755e17e 100644 --- a/searx/static/themes/simple/src/less/search.less +++ b/searx/static/themes/simple/src/less/search.less @@ -15,8 +15,7 @@ background: var(--color-header-background); border-bottom: 1px solid var(--color-header-border); display: grid; - column-gap: 1.2rem; - row-gap: 1rem; + gap: 1rem 1.2rem; grid-template-columns: 3rem 1fr; grid-template-areas: "logo search" @@ -268,8 +267,7 @@ html.no-js #clear_search.hide_if_nojs { #categories { width: 100%; .ltr-text-align-left(); - overflow-x: scroll; - overflow-y: hidden; + overflow: scroll hidden; -webkit-overflow-scrolling: touch; } } @@ -280,8 +278,7 @@ html.no-js #clear_search.hide_if_nojs { width: 100%; margin: 0; padding: 0.1rem 0 0 0; - column-gap: 0; - row-gap: 0; + gap: 0 0; grid-template-areas: "logo search" "categories categories"; diff --git a/searx/static/themes/simple/src/less/style-center.less b/searx/static/themes/simple/src/less/style-center.less index 8256f45ac..3618bed86 100644 --- a/searx/static/themes/simple/src/less/style-center.less +++ b/searx/static/themes/simple/src/less/style-center.less @@ -14,7 +14,7 @@ on the /search URL and when the "center alignment" preference is enabled. } } -@media screen and (min-width: 62rem) { +@media screen and (width >= 62rem) { .center-alignment-yes #main_results { --center-page-width: 60rem; } @@ -91,7 +91,7 @@ on the /search URL and when the "center alignment" preference is enabled. align-self: flex-start; } - &:not(.only_template_images):not(.image-detail-open) { + &:not(.only_template_images, .image-detail-open) { // the gap is set in style.less .ltr-margin-left(1.5rem); grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width; diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less index 74629f47d..b46bd2591 100644 --- a/searx/static/themes/simple/src/less/style.less +++ b/searx/static/themes/simple/src/less/style.less @@ -244,9 +244,8 @@ article[data-vim-selected].category-social { align-items: center; font-size: 1rem; color: var(--color-result-url-font); - flex-wrap: nowrap; + flex-flow: row nowrap; overflow: hidden; - flex-direction: row; margin: 0; padding: 0; @@ -269,9 +268,7 @@ article[data-vim-selected].category-social { .url_o2 { overflow: hidden; white-space: nowrap; - flex-basis: content; - flex-grow: 0; - flex-shrink: 1; + flex: 0 1 content; text-align: right; padding-bottom: 1px; @@ -546,14 +543,8 @@ article[data-vim-selected].category-social { margin-bottom: 0; .ltr-margin-left(@results-offset); display: grid; - grid-template-columns: @results-width @results-sidebar-width; - grid-template-rows: min-content min-content 1fr min-content; + grid-template: "corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / @results-width @results-sidebar-width; gap: 0 @results-gap; - grid-template-areas: - "corrections sidebar" - "answers sidebar" - "urls sidebar" - "pagination sidebar"; } #results #sidebar *:first-child { @@ -676,10 +667,7 @@ summary.title { } .answer-url { - margin-left: auto; - margin-top: 5px; - margin-right: 10px; - margin-bottom: 10px; + margin: 5px 10px 10px auto; } } @@ -979,19 +967,12 @@ summary.title { margin: 0 auto; justify-content: center; display: grid; - grid-template-columns: @results-width; - grid-template-rows: min-content min-content min-content 1fr min-content min-content; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content / @results-width; gap: 0; - grid-template-areas: - "corrections" - "answers" - "sidebar" - "urls" - "pagination"; } } -@media screen and (max-width: calc(@tablet - 0.5px)) { +@media screen and (width <= calc(@tablet - 0.5px)) { #links_on_top { span { display: none; @@ -999,7 +980,7 @@ summary.title { } } -@media screen and (max-width: 52rem) { +@media screen and (width <= 52rem) { body.results_endpoint { #links_on_top { .link_on_top_about, @@ -1024,15 +1005,8 @@ summary.title { #main_results div#results.only_template_images { margin: 1rem @results-tablet-offset 0 @results-tablet-offset; display: grid; - grid-template-columns: 100%; - grid-template-rows: min-content min-content min-content 1fr min-content; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%; gap: 0; - grid-template-areas: - "corrections" - "answers" - "sidebar" - "urls" - "pagination"; #sidebar { display: none; diff --git a/searx/static/themes/simple/src/less/toolkit.less b/searx/static/themes/simple/src/less/toolkit.less index f4e3c36e1..c256aef1a 100644 --- a/searx/static/themes/simple/src/less/toolkit.less +++ b/searx/static/themes/simple/src/less/toolkit.less @@ -217,8 +217,7 @@ div.selectable_url { // .scrollx { - overflow-x: auto; - overflow-y: hidden; + overflow: auto hidden; display: block; padding: 0; margin: 0; @@ -505,7 +504,7 @@ input.checkbox-onoff.reversed-checkbox[type="checkbox"] { } // if not checked and possible to checked then display a "light" check mark on hover - input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after { + input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after { opacity: 0.5; } } @@ -593,8 +592,7 @@ td:hover .engine-tooltip, width: -moz-available; width: -webkit-fill-available; width: fill; - flex-direction: row; - flex-wrap: nowrap; + flex-flow: row nowrap; align-items: center; display: inline-flex; } From 5a1a43ef74e29e6a4b41ee29cb0788d6bab606ce Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 7 Jan 2025 14:45:38 +0100 Subject: [PATCH 030/417] [build] /static --- searx/static/themes/simple/css/searxng-rtl.min.css | 2 +- searx/static/themes/simple/css/searxng-rtl.min.css.map | 2 +- searx/static/themes/simple/css/searxng.min.css | 2 +- searx/static/themes/simple/css/searxng.min.css.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 9e0153e31..94075b096 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;overflow-y:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (min-width:62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images):not(.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images):not(.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin-left:auto;margin-top:5px;margin-right:10px;margin-bottom:10px}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (max-width:calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (max-width:52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content min-content 1fr min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index 305b5a7d7..37b9ff471 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css.map +++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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ET,MACE,MAAO,EACP,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OA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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,QACE,MAAO,KAET,aACE,OAAQ,MACR,MAAO,KACP,OAAQ,KAAK,EAEf,YACE,WAAY,KAEd,OACE,WAAY,OAEd,cACE,WAAY,0BAA0B,UACtC,WAAY,KACZ,OAAQ,KAAK,KACb,oBAAqB,OACrB,gBAAiB,QAEnB,UACE,UAAW,IACX,WAAY,OAEd,eACA,sBACE,OAAQ,EAAE,KACV,WAAY,QACZ,OAAQ,QACR,QAAS,EACT,QAAS,MAEX,uBACE,QAAS,MACT,OAAQ,IAAI,EAEd,uBACE,QAAS,IAAI,KACb,cAAe,kBAEjB,sCACE,aACE,UAAW,IAEb,YACE,WAAY,KAGhB,MACE,gBAAiB,SAGnB,SADA,SAEE,WAAY,OACZ,QAAS,KAAK,MACd,WAAY,MAEd,uBACE,YAAa,IACb,WAAY,MACZ,WAAY,6CAEd,uBACE,MAAO,KAET,2BACE,OAAQ,IACR,OAAQ,KAEV,yBACE,OAAQ,EACR,QAAS,IAAI,EAAE,EAAE,EACjB,QAAS,MACT,MAAO,MACP,MAAO,MAET,mCACE,MAAO,SACP,MAAO,qCACP,OAAQ,KACR,WAAY,KAAK,OAAO,OAAO,EAAE,EAAE,uCACnC,QAAS,MAAO,MAChB,OAAQ,KACR,cAAe,IAGjB,yCADA,yCAEE,iBAAkB,6CAEpB,yBACE,OAAQ,EACR,QAAS,EACT,MAAO,MACP,MAAO,KAGT,0CADA,gCAEE,UAAW,kBACX,WAAY,EACZ,YAAa,KACb,cAAe,EACf,aAAc,EAEhB,gCACE,MAAO,MAGT,qCADA,sCAEE,QAAS,EACT,WAAY,EAAE,EAAE,IAAI,IAAI,4BAE1B,+BACE,OAAQ,EACR,QAAS,IAAI,EAAE,EAAE,EACjB,MAAO,KACP,MAAO,IACP,MAAO,8CACP,UAAW,IAEb,wBACE,WAAY,MACZ,cAAe,IACf,iBAAkB,iCAClB,MAAO,sBACP,QAAS,MACT,OAAQ,EAAE,KAEZ,4BACE,YAAa,MAEf,kCACE,OAAQ,IAAI,MAAM,YAClB,QAAS,MAAO,MAChB,cAAe,IAEjB,+DACE,OAAQ,IAAI,MAAM,6CAMpB,oDACE,OAAQ,QAEV,8DACE,WAAY,OACZ,MAAO,8BACP,UAAW,MAEb,kFACE,WAAY,MAEd,oEACE,OAAQ,MAEV,oDACA,4CACA,gDACE,WAAY,MAEd,gCACE,MAAO,KACP,UAAW,IAGb,mCADA,mCAEE,WAAY,KACZ,YAAa,UACb,UAAW,KACX,QAAS,KACT,eAAgB,IAElB,+CACE,WAAY,SACZ,MAAO,MACP,cAAe,KAEjB,8CACE,WAAY,UAGd,0DADA,0DAEE,iBAAkB,+BAEpB,oCACE,WAAY,KAAK,OAAO,OAAO,EAAE,EAAE,4BACnC,MAAO,sBACP,OAAQ,EAAE,KACV,cAAe,KACf,OAAQ,QACR,QAAS,aACT,OAAQ,IAAI,IACZ,QAAS,KAEX,sCACE,MAAO,kCAET,oDACE,eAAgB,UAElB,gDACE,MAAO,YACP,YAAa,KAEf,yCACE,MAAO,KAET,uCACE,QAAS,KACT,YAAa,OACb,IAAK,MAEP,8DACE,MAAO,KACP,UAAW,EAEb,mCACE,MAAO,KAET,sCACE,kBACE,MAAO,KAET,gBACE,MAAO,gBAMX,QACE,QAAS,EACT,OAAQ,EAEV,eACE,YAAa,MACb,aAAc,IACd,cAAe,KACf,OAAQ,EACR,WAAY,+BACZ,cAAe,IAAI,MAAM,2BACzB,QAAS,KACT,IAAK,KAAK,OACV,sBAAuB,KAAK,IAC5B,oBAAqB,cAAc,oBAGrC,iBADA,mBAEE,QAAS,aACT,SAAU,SACV,YAAa,KACb,QAAS,EAEX,yBACE,QAAS,KAEX,yBACE,OAAQ,QACR,QAAS,MAAO,EAChB,QAAS,YACT,eAAgB,WAChB,UAAW,KACX,cAAe,IAAI,MAAM,YACzB,sBAAuB,KACvB,YAAa,KAEf,6BACE,cAAe,MAEjB,2CACE,OAAQ,KAAK,EAEf,sDACE,MAAO,2CACP,cAAe,IAAI,MAAM,6CAE3B,uBACE,iBAAkB,QAClB,MAAO,uBACP,OAAQ,QACR,QAAS,MAAO,EAChB,QAAS,YACT,YAAa,OACb,eAAgB,WAChB,UAAW,KACX,OAAQ,KACR,cAAe,IAAI,MAAM,YAE3B,2BACE,cAAe,MAEjB,gCACA,8BACE,MAAO,2CACP,cAAe,IAAI,MAAM,6CAE3B,sGACE,MAAO,uBACP,cAAe,KAEjB,0GACE,MAAO,2CACP,cAAe,IAAI,MAAM,6CAE3B,aACE,QAAS,MAAO,KAAK,EAAE,KACvB,UAAW,KACX,QAAS,KACT,YAAa,OACb,gBAAiB,OAEnB,iBACE,KAAM,EACN,MAAO,KACP,OAAQ,KACR,OAAQ,MAAO,EAAE,KAAK,EAExB,mBACE,UAAW,WAEb,yBACE,QAAS,KAEX,+BACE,QAAS,MACT,SAAU,SACV,WAAY,6BACZ,QAAS,KAAK,MAAO,MAAO,EAC5B,QAAS,KACT,MAAO,KACP,KAAM,OAER,aACE,QAAS,MAAO,MAAO,EAAE,MACzB,UAAW,OAEb,mCACE,QAAS,MAAO,OAAO,EAAE,EAE3B,YACE,cAAe,MACf,MAAO,MACP,QAAS,YACT,eAAgB,IAChB,YAAa,OACb,WAAY,2BAEd,cACE,QAAS,MACT,gBAAiB,SACjB,WAAY,WACZ,MAAO,OACP,OAAQ,EACR,QAAS,MAAO,MAChB,WAAY,KAAK,OAAO,OAAO,EAAE,EAAE,+BACnC,OAAQ,KACR,QAAS,EACT,MAAO,yBACP,UAAW,OACX,QAAS,MAEX,oBACE,MAAO,qCAET,sBACE,QAAS,KAEX,sCACE,QAAS,KAEX,GACA,aACE,QAAS,MACT,OAAQ,EACR,QAAS,MACT,WAAY,KAAK,OAAO,OAAO,EAAE,EAAE,+BACnC,OAAQ,KACR,QAAS,EACT,MAAO,yBACP,UAAW,OACX,QAAS,EAEX,GACE,MAAO,KACP,cAAe,KACf,aAAc,YACd,cAAe,EAAE,MAAO,MAAO,EAEjC,cACA,iCACE,QAAS,KAEX,aACE,cAAe,MAAO,EAAE,EAAE,MAE5B,mBACE,OAAQ,QACR,iBAAkB,qCAClB,MAAO,+BAET,qBACA,oBACE,MAAO,eACP,aAAc,IAAI,MAAM,2BAE1B,gBACE,WAAY,MACZ,YAAa,EACb,cAAe,EACf,aAAc,QACd,QAAS,KACT,WAAY,KACZ,2BAA4B,QAE9B,uBACE,iBAAkB,QAGpB,6BADA,6BAEE,MAAO,uBAET,sCACE,eACE,QAAS,MAAM,MAAO,EAAE,MACxB,WAAY,MAEd,gBACE,WAAY,MACZ,YAAa,EACb,cAAe,EACf,aAAc,OAEhB,YACE,UAAW,IACX,MAAO,MAGX,uDACE,kCACA,oCACE,MAAO,YAET,qDACA,uDACE,QAAS,aACT,MAAO,KAET,wBACA,0BACE,MAAO,KACP,WAAY,MACZ,SAAU,OAAO,OACjB,2BAA4B,OAGhC,mCACE,eACE,MAAO,KACP,OAAQ,EACR,QAAS,MAAO,EAAE,EAAE,EACpB,IAAK,EAAE,EACP,oBAAqB,cAAc,wBAErC,aACE,QAAS,EAEX,YACE,MAAO,IACP,QAAS,KAEX,GACE,MAAO,KACP,KAAM,EAER,gBACE,OAAQ,EAAE,KACV,QAAS,MAAO,EAElB,UACE,QAAS,aACT,MAAO,KACP,OAAQ,EAEV,cACE,QAAS,KAEX,yBACE,QAAS,eACT,OAAQ,YAEV,iBACE,QAAS,eACT,OAAQ,YAEV,0BACE,QAAS,MACT,iBAAkB,+BAClB,SAAU,SACV,IAAK,EACL,OAAQ,KACR,MAAO,KACP,QAAS,MAEX,sCACE,cAAe,IAAI,MAAM,2BACzB,MAAO,KACP,cAAe,EACf,WAAY,KAEd,mDACE,YAAa,YAEf,wCACE,OAAQ,KACR,cAAe,EACf,WAAY,KAEd,gDACE,YAAa,OACb,WAAY,OAAO,KAGvB,oCACE,eACE,oBAAqB,gBAAgB,wBAEvC,aACE,QAAS,MAGb,YACE,sBAAuB,KACvB,YAAa,KAEf,+BACE,MAAO,EACP,OAAQ,EAEV,sBACE,SAAU,SAEZ,aACE,OAAQ,OACR,MAAO,OACP,cAAe,IACf,iBAAkB,sCAClB,OAAQ,IAAI,MAAM,kCAClB,QAAS,KAWX,mCACE,oCACE,oBAAqB,OAGzB,mCACE,oCACE,oBAAqB,OAGzB,sCACE,oCACE,oBAAqB,OAGzB,2DACE,6CACE,sBAAuB,IAAI,iBAC3B,YAAa,EACb,aAAc,EAEhB,0CACE,aAAc,KAEhB,6CACE,YAAa,KAEf,+CACE,MAAO,kBAGX,sCACE,oCACE,QAAS,KACT,eAAgB,OAChB,YAAa,OAEf,4CACE,MAAO,KACP,QAAS,KACT,eAAgB,OAChB,YAAa,OAEf,mDACE,sBAAuB,iDAAkD,KAAK,yBAC9E,oBAAqB,iBAAiB,uBACtC,WAAY,OACZ,MAAO,KACP,aAAc,EACd,cAAe,EAEjB,oDACE,aAAc,MACd,MAAO,yBAET,6CACE,YAAa,KACb,aAAc,MAGhB,+DADA,kEAEE,WAAY,WAEd,2FACE,aAAc,OACd,sBAAuB,8CAA8C,MAEvE,sGACE,MAAO,8DAET,8DACE,UAAW,QAEb,0CACE,aAAc,EAEhB,6CACE,YAAa,GAGjB,UACE,QAAS,aACT,eAAgB,OAChB,YAAa,EACb,gBAAiB,QACjB,UAAW,YAEb,gBACE,MAAO,KACP,OAAQ,KACR,QAAS,aACT,eAAgB,OAChB,YAAa,EACb,gBAAiB,QACjB,UAAW,YAEb,cACE,MAAO,OACP,OAAQ,OACR,QAAS,aACT,eAAgB,OAChB,YAAa,EACb,gBAAiB,QACjB,UAAW,YAEb,KACE,YAAa,WACb,UAAW,KACX,yBAA0B,KAC1B,qBAAsB,KACtB,sBAAuB,KACvB,iBAAkB,KAClB,MAAO,uBACP,iBAAkB,6BAClB,QAAS,EACT,OAAQ,EACR,gBAAiB,OAEnB,KACA,KACE,QAAS,EACT,OAAQ,EAEV,KACE,QAAS,KACT,eAAgB,OAChB,OAAQ,MACR,OAAQ,EAEV,KACE,MAAO,KACP,cAAe,KACf,KAAM,EAER,kBACE,OAAQ,IAAI,KACZ,MAAO,KAET,OACE,MAAO,KACP,WAAY,KACZ,QAAS,KAAK,EACd,MAAO,KACP,WAAY,OACZ,iBAAkB,+BAClB,WAAY,IAAI,MAAM,2BACtB,SAAU,OAEZ,SACE,UAAW,KAEb,wBACE,OAAQ,KAGV,6BACA,QAFA,mBAGE,QAAS,MACT,QAAS,aACT,WAAY,4BACZ,MAAO,sBACP,cAAe,KACf,OAAQ,EACR,OAAQ,QAEV,EACE,gBAAiB,KACjB,MAAO,sBAET,UACE,MAAO,8BAET,qBACE,MAAO,8BAET,2BACE,WAAY,iCACZ,aAAc,MAAO,MAAM,8BAC3B,cAAe,KAAK,EAAE,EAAE,KAE1B,yCACE,WAAY,8BACZ,OAAQ,KACR,cAAe,KAEjB,0DACE,OAAQ,aAGV,qDADA,oDAEE,MAAO,6CAMT,0CAFA,wCACA,0CAFA,yCAIA,2CALA,2CAME,OAAQ,IAAI,MAAM,8BAClB,cAAe,KAEjB,QACE,OAAQ,QAAS,EACjB,QAAS,KACT,WAAY,WACZ,MAAO,KACP,aAAc,MAAO,MAAM,YAE7B,WACE,UAAW,OACX,UAAW,WACX,OAAQ,MAAO,EAAE,MAAO,EACxB,QAAS,EAEX,aACE,MAAO,8BACP,YAAa,IACb,UAAW,MAEb,qBACE,MAAO,sCAET,mBACA,mBACE,gBAAiB,UACjB,OAAQ,KACR,QAAS,EAEX,oBACA,wBACE,UAAW,kBACX,YAAa,MAEf,iBACA,cACE,UAAW,KACX,OAAQ,EACR,QAAS,EACT,UAAW,KACX,UAAW,WACX,YAAa,KAEf,4BACA,yBACE,MAAO,+CACP,WAAY,QACZ,YAAa,IAEf,mBACE,UAAW,KACX,OAAQ,EAAE,KAAK,EAAE,EACjB,QAAS,IAAI,KACb,cAAe,IACf,WAAY,iCACZ,MAAO,2BACP,OAAQ,QAEV,yBACE,WAAY,4BACZ,MAAO,sBAET,8BACE,MAAO,QACP,WAAY,QACZ,YAAa,IAEf,oBACE,QAAS,KACT,IAAK,MAEP,qBACE,QAAS,KACT,YAAa,OACb,UAAW,KACX,MAAO,6BACP,UAAW,IAAI,OACf,SAAU,OACV,OAAQ,EACR,QAAS,EAEX,6BACE,YAAa,OACb,YAAa,EACb,eAAgB,IAElB,qCACE,aAAc,UAEhB,oCACE,QAAS,IACT,MAAO,IACP,QAAS,aAEX,6BACE,SAAU,OACV,YAAa,OACb,KAAM,EAAE,EAAE,QACV,WAAY,MACZ,eAAgB,IAElB,qCACE,MAAO,MAET,wBAGA,uBAFA,uBAGA,yBACA,+BAHA,sBAIE,UAAW,KACX,MAAO,qCAET,sBACE,UAAW,MACX,MAAO,+CAET,sBACE,MAAO,MACP,YAAa,MACb,aAAc,KACd,MAAO,KACP,OAAQ,MAEV,eACE,MAAO,KAGT,6BADA,0BAEE,QAAS,MACT,eAAgB,SAGlB,iCADA,8BAEE,QAAS,UAGX,sCADA,mCAEE,UAAW,MACX,WAAY,OACZ,QAAS,WAGX,2CADA,wCAEE,UAAW,MAGb,kDADA,+CAEE,MAAO,uBACP,UAAW,MAGb,mDADA,gDAEE,MAAO,qCAGT,0BADA,uBAEE,WAAY,OAGd,2BADA,wBAEE,UAAW,MACX,OAAQ,OAAQ,EAAE,EAAE,EACpB,QAAS,EACT,UAAW,WACX,YAAa,KACb,WAAY,OAEd,6BACE,WAAY,MAEd,uBACE,QAAS,KACT,UAAW,KAEb,8BACE,UAAW,GACX,QAAS,GAMX,gBAFA,cACA,gBAFA,eAIA,iBALA,iBAME,OAAQ,IAAI,MAAM,2BAClB,OAAQ,EAAE,MAAO,KAAK,gBACtB,cAAe,KAEjB,wBACE,MAAO,eACP,UAAW,KACX,WAAY,KACZ,QAAS,EAAE,IAAI,KAAK,YAEtB,qBACE,MAAO,KACP,QAAS,KAAK,EAAE,EAAE,EAEpB,yBACE,MAAO,KACP,QAAS,KAAK,EAAE,EAAE,EAEpB,6BACE,MAAO,MACP,YAAa,MACb,aAAc,KACd,MAAO,MACP,OAAQ,MAEV,wBACE,SAAU,OAEZ,sCACE,MAAO,KACP,aAAc,EAAG,CAAE,EACnB,QAAS,KAAK,EAAE,EAAE,EAEpB,mCACE,sCACE,OAAQ,sBAGZ,SACE,MAAO,KACP,QAAS,KACT,UAAW,KACX,gBAAiB,SACjB,MAAO,iCAET,cACE,UAAW,QACX,WAAY,EACZ,cAAe,EACf,YAAa,MACb,aAAc,EAEhB,YACE,UAAW,KAEb,WACE,MAAO,wCACP,WAAY,QAEd,eACE,WAAY,OAEd,eACE,UAAW,EACX,QAAS,MAAO,MAAO,KAAK,MAC5B,OAAQ,OACR,OAAQ,eACR,OAAQ,MACR,MAAO,MAET,iBACE,SAAU,SACV,QAAS,EAEX,mBACE,OAAQ,EACR,QAAS,EACT,OAAQ,KACR,OAAQ,KACR,MAAO,KACP,WAAY,MACZ,eAAgB,OAChB,WAAY,qCAEd,iCACE,SAAU,SACV,MAAO,EACP,OAAQ,EACR,WAAY,yCACZ,QAAS,MAAO,MAChB,UAAW,MACX,MAAO,mCACP,uBAAwB,MAG1B,2BADA,0BAEE,QAAS,MACT,SAAU,SACV,MAAO,KACP,UAAW,MACX,MAAO,oCACP,QAAS,MAAO,EAAE,EAAE,EACpB,SAAU,OACV,cAAe,SACf,YAAa,OAEf,2BACE,QAAS,OAAO,EAAE,EAAE,EACpB,UAAW,MAEb,sBACE,MAAO,eACP,OAAQ,gBACR,MAAO,eAET,kBACE,UAAW,KACX,MAAO,KACP,gBAAiB,SACjB,eAAgB,EAAE,QAEpB,qBACE,YAAa,QACb,MAAO,MACP,eAAgB,IAChB,WAAY,MAEd,qBACE,eAAgB,IAChB,WAAY,MAEd,QACE,QAAS,eAEX,SACE,WAAY,KACZ,YAAa,KACb,cAAe,EACf,aAAc,MACd,QAAS,KACT,cAAe,sBAAsB,YAAY,kBAAkB,YAAY,eAAe,IAAI,qBAAqB,WAAY,CAAE,MAAM,MAC3I,IAAK,EAAE,KAET,+BACE,WAAY,EAEd,MACE,QAAS,EACT,UAAW,KAEb,eACE,QAAS,KAEX,sBACE,QAAS,KACT,UAAW,OACX,gBAAiB,SAEnB,2BACE,QAAS,aACT,KAAM,EAAE,EAAE,IAGZ,iBADA,mBAEE,QAAS,EACT,OAAQ,IACR,UAAW,KACX,QAAS,aACT,WAAY,IACZ,MAAO,oCACP,OAAQ,QACR,MAAO,WACP,cAAe,SACf,SAAU,OACV,WAAY,KAKd,2BAFA,8BACA,6BAFA,gCAIE,MAAO,8BACP,gBAAiB,KACjB,UAAW,MAKb,iCAFA,oCACA,mCAFA,sCAIE,gBAAiB,UAEnB,aACE,UAAW,YACX,QAAS,KACT,UAAW,IAAI,KACf,OAAQ,EAAE,EAAE,IAAI,EAElB,gBACA,gCACE,QAAS,aACT,QAAS,MACT,OAAQ,MAEV,gCACE,UAAW,MACX,cAAe,IAMjB,aADA,oBAHA,kBAEA,mBADA,oBAIE,OAAQ,IAAI,EAAE,KAAM,EACpB,MAAO,uBAET,cACE,OAAQ,QACR,YAAa,IAEf,qBACE,WAAY,IAAI,MAAM,4BACtB,eAAgB,KAElB,yBACE,cAAe,IAAI,MAAM,4BACzB,MAAO,KAET,SACE,UAAW,QACX,WAAY,+BACZ,QAAS,KACT,OAAQ,KAAK,EACb,WAAY,EACZ,MAAO,yBACP,cAAe,KAEjB,YACE,QAAS,KAEX,cACE,cAAe,SAEjB,iBACE,QAAS,KACT,eAAgB,OAElB,qBACE,OAAQ,IAAI,KAAK,KAAK,KAExB,gBACE,UAAW,MAEb,SACE,UAAW,QACX,UAAW,WACX,MAAO,0BAET,kBACE,OAAQ,KAAK,EAAE,KACf,OAAQ,IAAI,MAAM,4BAClB,QAAS,KACT,UAAW,KACX,cAAe,KAEjB,qBACE,OAAQ,EAAE,EAAE,KAAM,EAEpB,sBACE,UAAW,KACX,WAAY,KACZ,QAAS,MACT,OAAQ,EAAE,KACV,QAAS,EAEX,qBACE,YAAa,IAEf,iCACE,OAAQ,KAAM,EAEhB,iCACE,QAAS,OACT,WAAY,KACZ,YAAa,MACb,cAAe,KACf,aAAc,EACd,QAAS,EAEX,iCACE,QAAS,OACT,OAAQ,KAAM,EACd,QAAS,EAEX,wBACE,UAAW,IAEb,qBACE,MAAO,KAET,8BACA,wBACE,MAAO,KAET,YACE,UAAW,KACX,OAAQ,EAAE,KAAK,EAAE,EACjB,QAAS,IAAI,KACb,cAAe,IACf,WAAY,iCACZ,MAAO,2BACP,OAAQ,QAEV,kBACE,WAAY,4BACZ,MAAO,sBAET,0BACE,MAAO,MAET,6BACE,MAAO,mBAET,8BACE,MAAO,KAET,mCACE,MAAO,KACP,MAAO,MAET,4BACE,MAAO,MACP,QAAS,MACT,YAAa,MACb,cAAe,MACf,QAAS,KAEX,cACE,SAAU,SACV,KAAM,KACN,WAAY,KACZ,IAAK,OACL,QAAS,EACT,OAAQ,EACR,QAAS,KACT,YAAa,OACb,UAAW,IACX,MAAO,yBAET,gBACE,QAAS,KACT,YAAa,OACb,YAAa,IAEf,oBACE,UAAW,MACX,YAAa,OAEf,gBAIA,yBAFA,wBADA,uBAEA,0BAEE,MAAO,yBAET,YACE,UAAW,WAEb,eACE,MAAO,KAET,qBACE,QAAS,KACT,eAAgB,IAChB,gBAAiB,OACjB,YAAa,OACb,SAAU,OAEZ,aACE,WAAY,cACZ,MAAO,wCACP,gBAAiB,UAEnB,qBACE,WAAY,IACZ,MAAO,sCACP,OAAQ,KAEV,WACE,OAAQ,IAAI,MAAM,8BAClB,OAAQ,EACR,QAAS,EACT,UAAW,IACX,WAAY,kCACZ,SAAU,MACV,OAAQ,KACR,MAAO,QACP,WAAY,QAAQ,IACpB,QAAS,EACT,eAAgB,KAChB,cAAe,KAEjB,aACE,QAAS,MACT,OAAQ,EACR,QAAS,KAEX,aAGA,oBADA,mBADA,qBAGE,MAAO,4BAET,8BACE,QAAS,EACT,eAAgB,IAKlB,mDACE,mBACE,QAAS,MAGb,mCACE,uDACA,wDACE,QAAS,MAGb,2DACE,wCACE,QAAS,KAEX,uCACE,OAAQ,KAAK,MACb,MAAO,KAET,gCACE,SAAU,QACV,UAAW,QAEb,yCACE,MAAO,KAET,6CACE,MAAO,MACP,UAAW,KACX,WAAY,KACZ,YAAa,KACb,cAAe,KACf,aAAc,EAEhB,8BACE,OAAQ,EAAE,MAAO,QAAS,MAC1B,QAAS,EACT,MAAO,KACP,OAAQ,KACR,MAAO,KAET,oCACE,OAAQ,EAEV,wCACE,UAAW,IAEb,2CACE,QAAS,MACT,YAAa,OACb,cAAe,SACf,SAAU,OACV,MAAO,KAET,sCACE,MAAO,KACP,QAAS,KACT,UAAW,KACX,gBAAiB,SACjB,QAAS,IAAI,EAAE,EAAE,EAEnB,oCACE,cAAe,eAEjB,mCACE,UAAW,IAEb,uCACE,UAAW,IAEb,gCACE,QAAS,KAEX,iCACE,OAAQ,KAAK,EAAE,EAAE,YAEnB,+CACE,OAAQ,EAAE,KACV,gBAAiB,OACjB,QAAS,KACT,cAAe,cAAc,YAAY,UAAU,YAAY,UAAU,YAAY,OAAO,IAAI,aAAa,YAAY,WAAY,CAAE,MACvI,IAAK,GAIT,+CACE,OAAQ,KAAK,MAAO,EAAE,MACtB,QAAS,KACT,cAAe,cAAc,YAAY,UAAU,YAAY,UAAU,YAAY,OAAO,IAAI,aAAa,WAAY,CAAE,KAC3H,IAAK,EAEP,wDACE,QAAS,KAEX,qDACE,OAAQ,EACR,QAAS,KACT,UAAW,KAEb,4DACE,UAAW,GACX,QAAS,GAEX,0DACE,MAAO,KACP,KAAM,KAER,2DACE,YAAa,KAKf,mCACE,mBACE,QAAS,KAEX,kBACE,OAAQ,KAAK,MACb,MAAO,KAET,WACE,SAAU,QACV,UAAW,QAEb,oBACE,MAAO,KAET,wBACE,MAAO,MACP,UAAW,KACX,WAAY,KACZ,YAAa,KACb,cAAe,KACf,aAAc,EAEhB,SACE,OAAQ,EAAE,MAAO,QAAS,MAC1B,QAAS,EACT,MAAO,KACP,OAAQ,KACR,MAAO,KAET,eACE,OAAQ,EAEV,mBACE,UAAW,IAEb,sBACE,QAAS,MACT,YAAa,OACb,cAAe,SACf,SAAU,OACV,MAAO,KAET,iBACE,MAAO,KACP,QAAS,KACT,UAAW,KACX,gBAAiB,SACjB,QAAS,IAAI,EAAE,EAAE,EAEnB,eACE,cAAe,eAEjB,cACE,UAAW,IAEb,kBACE,UAAW,IAEb,WACE,QAAS,KAEX,YACE,OAAQ,KAAK,EAAE,EAAE,YAEnB,0BACE,OAAQ,EAAE,KACV,gBAAiB,OACjB,QAAS,KACT,cAAe,cAAc,YAAY,UAAU,YAAY,UAAU,YAAY,OAAO,IAAI,aAAa,YAAY,WAAY,CAAE,MACvI,IAAK,EAEP,KACE,iBAAkB,oCAEpB,0BACE,sBAAuB,KACvB,OAAQ,EAAE,KAEZ,cACE,IAAK,OACL,KAAM,KAER,0BACE,IAAK,MACL,KAAM,MAER,SACE,OAAQ,EACR,QAAS,EAEX,YACE,OAAQ,KAAK,KAAK,EAAE,eAEtB,2BACE,OAAQ,IAAI,MAAM,8BAClB,cAAe,KAEjB,QACE,WAAY,+BACZ,OAAQ,IAAI,MAAM,+BAClB,OAAQ,KAAK,GACb,MAAO,IACP,cAAe,KAEjB,eACE,OAAQ,EACR,OAAQ,MACR,WAAY,oCACZ,MAAO,MAET,SACE,OAAQ,eACR,iBAAkB,gCAEpB,qBACE,QAAS,KAGX,6BADA,0BAEE,QAAS,MAGX,iCADA,8BAEE,QAAS,MAGX,sCADA,mCAEE,QAAS,OAGX,kDADA,+CAEE,YAAa,IAGf,mDADA,gDAEE,aAAc,OAMlB,mCACE,6BACE,MAAO,eAET,wBACE,SAAU,SAGd,SACE,YAAa,SAEf,GACA,yBACE,UAAW,IAEb,MACE,UAAW,QACX,WAAY,MAEd,0BACE,UAAW,IAEb,2BACE,gBAAiB,IAEnB,qDACE,UAAW,IAEb,oGACE,UAAW,IAEb,+GACE,UAAW,IAEb,oHACE,UAAW,IACX,MAAO,MAET,wHACE,OACE,aAAc,EAAE,EAAE,EAAE,KACpB,sBAAuB,OAG3B,wBACE,UAAW,IACX,WAAY,KAEd,qBACA,eACE,sBAAuB,KAEzB,kBACA,kBACE,MAAO,MAET,2BAIA,kCAHA,4BAEA,6BADA,4BAGE,WAAY","sourcesContent":[null]} \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 0fa27c5d3..68a053d97 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;overflow-y:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (min-width:62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images):not(.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images):not(.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin-left:auto;margin-top:5px;margin-right:10px;margin-bottom:10px}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (max-width:calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (max-width:52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content min-content 1fr min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index f6587eaa9..03c3941c1 100644 --- a/searx/static/themes/simple/css/searxng.min.css.map +++ b/searx/static/themes/simple/css/searxng.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"AAKA,4EAUA,KACE,YAAa,KACb,yBAA0B,KAU5B,KACE,OAAQ,EAOV,KACE,QAAS,MAQX,GACE,UAAW,IACX,OAAQ,MAAO,EAWjB,GACE,WAAY,YACZ,OAAQ,EACR,SAAU,QAQZ,IACE,YAAa,SAAS,CAAE,UACxB,UAAW,IAUb,EACE,iBAAkB,YAQpB,YACE,cAAe,KACf,gBAAiB,UACjB,gBAAiB,UAAU,OAO7B,EACA,OACE,YAAa,OAQf,KACA,IACA,KACE,YAAa,SAAS,CAAE,UACxB,UAAW,IAOb,MACE,UAAW,IAQb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SACV,eAAgB,SAGlB,IACE,OAAQ,OAGV,IACE,IAAK,MAUP,IACE,aAAc,KAWhB,OACA,MACA,SACA,OACA,SACE,YAAa,QACb,UAAW,KACX,YAAa,KACb,OAAQ,EAQV,OACA,MACE,SAAU,QAQZ,OACA,OACE,eAAgB,KAQlB,cACA,aACA,cAHA,OAIE,mBAAoB,OAQtB,gCACA,+BACA,gCAHA,yBAIE,aAAc,KACd,QAAS,EAQX,6BACA,4BACA,6BAHA,sBAIE,QAAS,IAAI,OAAO,WAOtB,SACE,QAAS,MAAO,MAAO,OAUzB,OACE,WAAY,WACZ,MAAO,QACP,QAAS,MACT,UAAW,KACX,QAAS,EACT,YAAa,OAOf,SACE,eAAgB,SAOlB,SACE,SAAU,KAQZ,gBACA,aACE,WAAY,WACZ,QAAS,EAOX,yCACA,yCACE,OAAQ,KAQV,cACE,mBAAoB,UACpB,eAAgB,KAOlB,yCACE,mBAAoB,KAQtB,6BACE,mBAAoB,OACpB,KAAM,QAUR,QACE,QAAS,MAOX,QACE,QAAS,UAUX,SACE,QAAS,KAOX,SACE,QAAS,KAQX,MACE,kBAAmB,KACnB,sBAAuB,EAAE,CAAE,EAAE,CAAE,GAC/B,wBAAyB,KACzB,+BAAgC,QAChC,iBAAkB,QAClB,yBAA0B,QAC1B,0BAA2B,QAC3B,sBAAuB,KACvB,0BAA2B,QAC3B,sBAAuB,KACvB,uBAAwB,KACxB,qBAAsB,KACtB,2BAA4B,KAC5B,uBAAwB,KACxB,yBAA0B,KAC1B,6BAA8B,KAC9B,uBAAwB,QACxB,iBAAkB,KAClB,4BAA6B,KAC7B,sBAAuB,KACvB,sBAAuB,KACvB,sBAAuB,EAAE,IAAI,IAAI,uBACjC,0BAA2B,KAC3B,oBAAqB,KACrB,gCAAiC,QACjC,cAAe,QACf,yBAA0B,QAC1B,gBAAiB,QACjB,2BAA4B,QAC5B,gBAAiB,QACjB,2BAA4B,QAC5B,sCAAuC,QACvC,wCAAyC,QACzC,0BAA2B,KAC3B,4BAA6B,KAC7B,4BAA6B,EAAE,IAAI,IAAI,uBACvC,gCAAiC,KACjC,sCAAuC,QACvC,oBAAqB,KACrB,0BAA2B,KAC3B,0BAA2B,KAC3B,sBAAuB,KACvB,wBAAyB,KACzB,4BAA6B,QAC7B,yBAA0B,QAC1B,0CAA2C,KAC3C,yBAA0B,QAC1B,mCAAoC,QACpC,iCAAkC,QAClC,gCAAiC,KACjC,4BAA6B,QAC7B,iCAAkC,KAClC,+BAAgC,KAChC,+BAAgC,KAChC,wCAAyC,KACzC,gCAAiC,KACjC,0BAA2B,QAC3B,yCAA0C,QAC1C,wCAAyC,MACzC,2BAA4B,KAC5B,iCAAkC,UAClC,iCAAkC,QAClC,yBAA0B,KAC1B,2BAA4B,KAC5B,oCAAqC,yBACrC,wCAAyC,iBACzC,2BAA4B,KAC5B,iCAAkC,QAClC,yBAA0B,KAC1B,+BAAgC,KAChC,8BAA+B,KAC/B,kCAAmC,KACnC,kCAAmC,KACnC,oCAAqC,KACrC,kCAAmC,QACnC,8BAA+B,KAC/B,wCAAyC,KACzC,gCAAiC,KACjC,8CAA+C,KAC/C,6CAA8C,KAC9C,kDAAmD,QACnD,6CAA8C,KAC9C,mDAAoD,KACpD,8CAA+C,KAC/C,0CAA2C,KAC3C,sCAAuC,KACvC,sCAAuC,QACvC,sCAAuC,KACvC,0CAA2C,KAC3C,8BAA+B,mBAC/B,kCAAmC,uBACnC,iBAAkB,KAClB,4BAA6B,QAC7B,0BAA2B,QAC3B,4BAA6B,QAC7B,oCAAqC,mBACrC,8BAA+B,KAC/B,0BAA2B,yBAC3B,8BAA+B,KAC/B,oBAAqB,QACrB,iCAAkC,KAClC,6BAA8B,KAEhC,mCACE,iBACE,kBAAmB,KACnB,sBAAuB,GAAG,CAAE,GAAG,CAAE,IACjC,wBAAyB,QACzB,+BAAgC,QAChC,iBAAkB,KAClB,yBAA0B,QAC1B,0BAA2B,QAC3B,sBAAuB,KACvB,0BAA2B,QAC3B,sBAAuB,KACvB,uBAAwB,KACxB,qBAAsB,KACtB,2BAA4B,QAC5B,uBAAwB,KACxB,yBAA0B,KAC1B,6BAA8B,QAC9B,uBAAwB,KACxB,iBAAkB,KAClB,4BAA6B,KAC7B,sBAAuB,KACvB,sBAAuB,KACvB,sBAAuB,EAAE,IAAI,IAAI,uBACjC,0BAA2B,QAC3B,oBAAqB,KACrB,gCAAiC,KACjC,cAAe,QACf,yBAA0B,QAC1B,gBAAiB,QACjB,2BAA4B,QAC5B,gBAAiB,QACjB,2BAA4B,QAC5B,sCAAuC,KACvC,wCAAyC,KACzC,0BAA2B,KAC3B,4BAA6B,KAC7B,4BAA6B,EAAE,IAAI,IAAI,uBACvC,gCAAiC,QACjC,sCAAuC,QACvC,oBAAqB,KACrB,0BAA2B,QAC3B,0BAA2B,QAC3B,sBAAuB,KACvB,wBAAyB,KACzB,4BAA6B,UAC7B,yBAA0B,KAC1B,0CAA2C,KAC3C,yBAA0B,KAC1B,mCAAoC,KACpC,iCAAkC,QAClC,gCAAiC,KACjC,4BAA6B,QAC7B,iCAAkC,KAClC,+BAAgC,KAChC,2BAA4B,KAC5B,iCAAkC,UAClC,iCAAkC,QAClC,yBAA0B,KAC1B,2BAA4B,KAC5B,oCAAqC,yBACrC,wCAAyC,iBACzC,+BAAgC,KAChC,wCAAyC,KACzC,gCAAiC,KACjC,0BAA2B,QAC3B,yCAA0C,QAC1C,wCAAyC,QACzC,2BAA4B,KAC5B,iCAAkC,KAClC,yBAA0B,KAC1B,+BAAgC,KAChC,8BAA+B,KAC/B,kCAAmC,QACnC,kCAAmC,KACnC,oCAAqC,KACrC,kCAAmC,QACnC,8BAA+B,KAC/B,wCAAyC,QACzC,gCAAiC,KACjC,8CAA+C,QAC/C,6CAA8C,QAC9C,kDAAmD,KACnD,6CAA8C,KAC9C,mDAAoD,KACpD,8CAA+C,KAC/C,0CAA2C,KAC3C,sCAAuC,KACvC,sCAAuC,KACvC,sCAAuC,KACvC,0CAA2C,KAC3C,8BAA+B,yBAC/B,kCAAmC,iBACnC,iBAAkB,KAClB,4BAA6B,QAC7B,iCAAkC,KAClC,6BAA8B,MAGlC,iBACE,kBAAmB,KACnB,sBAAuB,GAAG,CAAE,GAAG,CAAE,IACjC,wBAAyB,QACzB,+BAAgC,QAChC,iBAAkB,KAClB,yBAA0B,QAC1B,0BAA2B,QAC3B,sBAAuB,KACvB,0BAA2B,QAC3B,sBAAuB,KACvB,uBAAwB,KACxB,qBAAsB,KACtB,2BAA4B,QAC5B,uBAAwB,KACxB,yBAA0B,KAC1B,6BAA8B,QAC9B,uBAAwB,KACxB,iBAAkB,KAClB,4BAA6B,KAC7B,sBAAuB,KACvB,sBAAuB,KACvB,sBAAuB,EAAE,IAAI,IAAI,uBACjC,0BAA2B,QAC3B,oBAAqB,KACrB,gCAAiC,KACjC,cAAe,QACf,yBAA0B,QAC1B,gBAAiB,QACjB,2BAA4B,QAC5B,gBAAiB,QACjB,2BAA4B,QAC5B,sCAAuC,KACvC,wCAAyC,KACzC,0BAA2B,KAC3B,4BAA6B,KAC7B,4BAA6B,EAAE,IAAI,IAAI,uBACvC,gCAAiC,QACjC,sCAAuC,QACvC,oBAAqB,KACrB,0BAA2B,QAC3B,0BAA2B,QAC3B,sBAAuB,KACvB,wBAAyB,KACzB,4BAA6B,UAC7B,yBAA0B,KAC1B,0CAA2C,KAC3C,yBAA0B,KAC1B,mCAAoC,KACpC,iCAAkC,QAClC,gCAAiC,KACjC,4BAA6B,QAC7B,iCAAkC,KAClC,+BAAgC,KAChC,2BAA4B,KAC5B,iCAAkC,UAClC,iCAAkC,QAClC,yBAA0B,KAC1B,2BAA4B,KAC5B,oCAAqC,yBACrC,wCAAyC,iBACzC,+BAAgC,KAChC,wCAAyC,KACzC,gCAAiC,KACjC,0BAA2B,QAC3B,yCAA0C,QAC1C,wCAAyC,QACzC,2BAA4B,KAC5B,iCAAkC,KAClC,yBAA0B,KAC1B,+BAAgC,KAChC,8BAA+B,KAC/B,kCAAmC,QACnC,kCAAmC,KACnC,oCAAqC,KACrC,kCAAmC,QACnC,8BAA+B,KAC/B,wCAAyC,QACzC,gCAAiC,KACjC,8CAA+C,QAC/C,6CAA8C,QAC9C,kDAAmD,KACnD,6CAA8C,KAC9C,mDAAoD,KACpD,8CAA+C,KAC/C,0CAA2C,KAC3C,sCAAuC,KACvC,sCAAuC,KACvC,sCAAuC,KACvC,0CAA2C,KAC3C,8BAA+B,yBAC/B,kCAAmC,iBACnC,iBAAkB,KAClB,4BAA6B,QAC7B,iCAAkC,KAClC,6BAA8B,KAEhC,kBACE,kBAAmB,KACnB,sBAAuB,GAAG,CAAE,GAAG,CAAE,IACjC,wBAAyB,QACzB,+BAAgC,QAChC,iBAAkB,KAClB,yBAA0B,QAC1B,0BAA2B,QAC3B,sBAAuB,KACvB,0BAA2B,QAC3B,sBAAuB,KACvB,uBAAwB,KACxB,qBAAsB,KACtB,2BAA4B,QAC5B,uBAAwB,KACxB,yBAA0B,KAC1B,6BAA8B,QAC9B,uBAAwB,KACxB,iBAAkB,KAClB,4BAA6B,KAC7B,sBAAuB,KACvB,sBAAuB,KACvB,sBAAuB,EAAE,IAAI,IAAI,uBACjC,0BAA2B,QAC3B,oBAAqB,KACrB,gCAAiC,KACjC,cAAe,QACf,yBAA0B,QAC1B,gBAAiB,QACjB,2BAA4B,QAC5B,gBAAiB,QACjB,2BAA4B,QAC5B,sCAAuC,KACvC,wCAAyC,KACzC,0BAA2B,KAC3B,4BAA6B,KAC7B,4BAA6B,EAAE,IAAI,IAAI,uBACvC,gCAAiC,QACjC,sCAAuC,QACvC,oBAAqB,KACrB,0BAA2B,QAC3B,0BAA2B,QAC3B,sBAAuB,KACvB,wBAAyB,KACzB,4BAA6B,UAC7B,yBAA0B,KAC1B,0CAA2C,KAC3C,yBAA0B,KAC1B,mCAAoC,KACpC,iCAAkC,QAClC,gCAAiC,KACjC,4BAA6B,QAC7B,iCAAkC,KAClC,+BAAgC,KAChC,2BAA4B,KAC5B,iCAAkC,UAClC,iCAAkC,QAClC,yBAA0B,KAC1B,2BAA4B,KAC5B,oCAAqC,yBACrC,wCAAyC,iBACzC,+BAAgC,KAChC,wCAAyC,KACzC,gCAAiC,KACjC,0BAA2B,QAC3B,yCAA0C,QAC1C,wCAAyC,QACzC,2BAA4B,KAC5B,iCAAkC,KAClC,yBAA0B,KAC1B,+BAAgC,KAChC,8BAA+B,KAC/B,kCAAmC,QACnC,kCAAmC,KACnC,oCAAqC,KACrC,kCAAmC,QACnC,8BAA+B,KAC/B,wCAAyC,QACzC,gCAAiC,KACjC,8CAA+C,QAC/C,6CAA8C,QAC9C,kDAAmD,KACnD,6CAA8C,KAC9C,mDAAoD,KACpD,8CAA+C,KAC/C,0CAA2C,KAC3C,sCAAuC,KACvC,sCAAuC,KACvC,sCAAuC,KACvC,0CAA2C,KAC3C,8BAA+B,yBAC/B,kCAAmC,iBACnC,iBAAkB,KAClB,4BAA6B,QAC7B,iCAAkC,KAClC,6BAA8B,KAC9B,wBAAyB,KACzB,+BAAgC,KAChC,0BAA2B,KAC3B,0BAA2B,KAC3B,2BAA4B,KA4E9B,oBACE,YAAa,KAEf,mCACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,6BACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,oCACE,MAAO,KACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,qCACE,MAAO,KACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,qBACE,iBAAkB,KAEpB,mBACE,MAAO,QACP,WAAY,OAEd,qBACE,OAAQ,IAAI,MAAM,IAEpB,mBACE,MAAO,MACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,qBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,WAAY,OAEd,qBACE,YAAa,IACb,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,YAAa,IAEf,oBACE,MAAO,OACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,mBACE,MAAO,KAET,mBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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ET,MACE,MAAO,EACP,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OA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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MACT,OAAQ,IAAI,MAAM,sCAClB,QAAS,IACT,MAAO,oCACP,OAAQ,KACR,SAAU,OACV,OAAQ,MACR,YAAa,MACb,cAAe,IAEjB,uBACE,QAAS,MACT,UAAW,KACX,WAAY,UACZ,OAAQ,KACR,YAAa,IAEf,cACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAEhB,qBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,iBACA,gBAFA,iBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,oBACE,MAAO,KAET,iBACE,eAAgB,SAElB,uBACE,WAAY,cAEd,iBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,iBACE,WAAY,KACZ,cAAe,KAEjB,oBACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,QAAS,MACT,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAEhB,2BACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,uBACA,sBAFA,uBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,0BACE,MAAO,KAET,uBACE,eAAgB,SAElB,6BACE,WAAY,cAEd,uBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,uBACE,WAAY,KACZ,cAAe,KAEjB,gBACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,MAAO,qBACP,WAAY,gCACZ,aAAc,qBAEhB,uBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,mBACA,kBAFA,mBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,sBACE,MAAO,KAET,mBACE,eAAgB,SAElB,yBACE,WAAY,cAEd,mBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,mBACE,WAAY,KACZ,cAAe,KAEjB,cACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,QAAS,MACT,WAAY,uCACZ,SAAU,MACV,IAAK,IACL,KAAM,IACN,OAAQ,EAAE,KACV,UAAW,qBACX,QAAS,SAEX,qBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,iBACA,gBAFA,iBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,oBACE,MAAO,KAET,iBACE,eAAgB,SAElB,uBACE,WAAY,cAEd,iBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,iBACE,WAAY,KACZ,cAAe,KAEjB,iBACE,WAAY,EAEd,cACE,OAAQ,QAEV,SACE,SAAU,KAAK,OACf,QAAS,MACT,QAAS,EACT,OAAQ,EACR,OAAQ,KAGV,kBACE,UAAW,IAEb,QACE,cAAe,IAAI,MAAM,yCACzB,WAAY,KACZ,aAAc,EAEhB,WACE,QAAS,KAEX,MACE,QAAS,KACT,UAAW,KACX,MAAO,KACP,UAAW,KAEb,QACE,MAAO,EAET,wBACE,QAAS,KAEX,YACA,WACE,MAAO,EACP,QAAS,KACT,OAAQ,EAAE,KACV,eAAgB,KAChB,eAAgB,UAChB,OAAQ,MAAM,uCACd,aAAc,EAAE,EAAE,IAAI,EACtB,MAAO,MACP,sBAAuB,KACvB,YAAa,KACb,OAAQ,QAEV,mBACA,kBACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CAET,kBACA,iBACE,cAAe,IAAI,MAAM,6CAE3B,cACE,UAAW,KACX,QAAS,MAAO,EAChB,WAAY,WACZ,WAAY,IAAI,MAAM,yCACtB,QAAS,KAEX,yBACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CACP,eAAgB,MAElB,2BACE,QAAS,MAEX,sCACE,QAAS,KAEX,oCACE,SAAU,UACV,WAAY,QACZ,cAAe,IAAI,MAAM,YACzB,YAAa,IACb,MAAO,QAET,0CACE,cAAe,IAAI,MAAM,6CAE3B,oCACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CAET,4CACE,QAAS,MAGX,OACE,OAAQ,OACR,WAAY,EACZ,aAAc,KACd,cAAe,EACf,YAAa,EACb,QAAS,gBACT,MAAO,yBACP,UAAW,MACX,QAAS,EAGX,aADA,aAEE,OAAQ,QAEV,wHACE,OACE,WAAY,KACZ,mBAAoB,KACpB,gBAAiB,KACjB,aAAc,EAAE,KAAK,EAAE,EACvB,aAAc,YACd,WAAY,2VAA2V,UACvW,sBAAuB,kBACvB,gBAAiB,KACjB,kBAAmB,YACnB,iBAAkB,uCAClB,QAAS,OAAO,KAChB,cAAe,SACf,cAAe,IAGjB,aADA,aAEE,iBAAkB,6CAEpB,cACE,iBAAkB,6BAEpB,mCACE,uBACA,uBACE,iBAAkB,kXAGtB,uBACE,iBAAkB,kXAItB,oCACE,mBAAoB,KACpB,gBAAiB,KACjB,WAAY,KACZ,OAAQ,QACR,QAAS,aACT,MAAO,MACP,OAAQ,KACR,WAAY,eACZ,OAAQ,EAAE,KACV,cAAe,KACf,SAAU,SAGZ,0CACA,0CACE,QAAS,EAEX,iDACE,QAAS,GACT,SAAU,SACV,MAAO,MACP,OAAQ,OACR,OAAQ,IAAI,MAAM,4BAClB,cAAe,KACf,WAAY,4BAA4B,EAAE,EAAE,IAC5C,QAAS,MACT,IAAK,OACL,KAAM,MAER,4CACE,SAAU,SACV,IAAK,MACL,QAAS,KACT,gBAAiB,OACjB,YAAa,OACb,UAAW,MACX,MAAO,QACP,OAAQ,QACR,cAAe,IAOjB,8DADA,oCAEE,WAAY,mDAGd,sEADA,4CAEE,KAAM,MACN,QAAS,QACT,MAAO,mDACP,WAAY,wDAGd,sDADA,4CAEE,WAAY,kDAGd,8DADA,oDAEE,KAAM,mBACN,QAAS,QACT,MAAO,kDACP,WAAY,uDAGd,qCACE,0CACE,mBAAoB,KACpB,gBAAiB,KACjB,WAAY,KACZ,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,SAAU,SACV,IAAK,EACL,KAAM,EACN,OAAQ,IAAI,MAAM,2CAClB,cAAe,KAEjB,iDACE,QAAS,GACT,MAAO,IACP,OAAQ,IACR,SAAU,SACV,IAAK,IACL,KAAM,IACN,OAAQ,IAAI,MAAM,2CAClB,WAAY,KACZ,aAAc,KACd,WAAY,IACZ,QAAS,EACT,UAAW,eAEb,yDACE,aAAc,2CACd,QAAS,EAEX,oDACE,OAAQ,QACR,iBAAkB,sBAClB,OAAQ,QAEV,oFACE,QAAS,IAGb,mCACE,YACE,MAAO,MAIX,QACA,eACE,cAAe,IACf,MAAO,IACP,OAAQ,IAEV,QACE,OAAQ,IAAI,KACZ,UAAW,KACX,SAAU,SACV,YAAa,QACb,WAAY,KAAM,MAAM,mCACxB,aAAc,KAAM,MAAM,mCAC1B,cAAe,KAAM,MAAM,mCAC3B,YAAa,KAAM,MAAM,uCACzB,kBAAmB,cACnB,cAAe,cACf,UAAW,cACX,kBAAmB,MAAM,KAAK,SAAS,OACvC,UAAW,MAAM,KAAK,SAAS,OAEjC,yBACE,GACE,kBAAmB,UACnB,UAAW,UAEb,KACE,kBAAmB,eACnB,UAAW,gBAGf,iBACE,GACE,kBAAmB,UACnB,UAAW,UAEb,KACE,kBAAmB,eACnB,UAAW,gBAIf,gBACE,QAAS,KACT,SAAU,SACV,QAAS,MAAO,KAChB,OAAQ,EAAE,EAAE,EAAE,KACd,OAAQ,IAAI,MAAM,2CAClB,WAAY,+CACZ,UAAW,KACX,YAAa,IACb,QAAS,QACT,WAAY,KACZ,cAAe,KAIjB,sBADA,yBADA,yBAGE,QAAS,aAGX,mBACE,OAAQ,EACR,QAAS,EAAE,QAAS,EAAE,KACtB,MAAO,KACP,MAAO,eACP,MAAO,uBACP,MAAO,KACP,UAAW,IAAI,OACf,YAAa,OACb,QAAS,YAEX,yBACE,MAAO,KACP,QAAS,aACT,SAAU,SACV,QAAS,EAAE,MACX,WAAY,MAEd,wBACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MAEd,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,uBACZ,OAAQ,IAAI,MAAM,oCAClB,QAAS,MAAO,EAElB,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,OAAQ,IAAI,MAAM,oCAClB,QAAS,MAAO,EAElB,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,cAAe,IAAI,OAAO,oCAC1B,QAAS,EAEX,2BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,YAAa,IAAI,MAAM,oCACvB,QAAS,MAAO,EAChB,MAAO,IAET,oGACA,cACE,SAAU,SACV,MAAO,MACP,WAAY,EACZ,WAAY,OACZ,WAAY,KACZ,cAAe,KAEjB,qBACA,oBACA,oBACE,iBAAkB,qCAEpB,oBACE,QAAS,KAEX,iBACE,gBAAiB,KACjB,OAAQ,EACR,QAAS,EAEX,oBACE,OAAQ,QACR,QAAS,MAAO,KAElB,2BACA,2BACA,0BACA,0BACE,iBAAkB,2CAEpB,oCAIA,mCAIA,mCAPA,oCAIA,mCAIA,mCAPA,mCAIA,kCAIA,kCAPA,mCAIA,kCAIA,kCACE,gBAAiB,KAEnB,2BACE,OAAQ,QAEV,mBACE,QAAS,MACT,iBAAkB,qCAClB,MAAO,+BACP,WAAY,MACZ,WAAY,KACZ,QAAS,IACT,WAAY,OACZ,cAAe,MAEjB,yBACE,QAAS,KAEX,mCACE,cACE,MAAO,KAET,oBACE,QAAS,MAGb,8DACE,MAAO,4BAET,yEACE,KAAM,mBACN,MAAO,QAET,8BACE,QAAS,KAEX,4EACE,QAAS,KACT,eAAgB,OAChB,SAAU,MACV,KAAM,MACN,MAAO,EACP,IAAK,OACL,WAAY,IAAI,KAAO,QAAQ,GAC/B,OAAQ,EACR,WAAY,sCACZ,OAAQ,IAAI,MAAM,sCAClB,QAAS,MACT,QAAS,KAAK,KAAK,KAAK,KAE1B,mGACE,QAAS,MACT,KAAM,EACN,WAAY,KACZ,MAAO,KACP,OAAQ,KACR,gBAAiB,KAEnB,uGACE,QAAS,EACT,OAAQ,EACR,OAAQ,KACR,WAAY,QACZ,MAAO,QACP,OAAQ,QACR,UAAW,KACX,WAAY,QACZ,WAAY,2BACZ,WAAY,QAEd,kGACE,MAAO,gCACP,OAAQ,MAEV,qGACE,WAAY,IAAI,MAAM,8BACtB,cAAe,KAEjB,qGACE,OAAQ,KACR,SAAU,OACV,cAAe,SACf,UAAW,MACX,cAAe,EAEjB,oGACE,MAAO,sCACP,UAAW,MACX,YAAa,OACb,cAAe,SACf,SAAU,OACV,OAAQ,MAAO,EAEjB,yGACE,QAAS,aACT,MAAO,MAIT,oGAFA,qGACA,oGAEE,WAAY,KAEd,mHACE,OAAQ,KACR,YAAa,MACb,SAAU,OACV,cAAe,SAEjB,+GACE,YAAa,OACb,SAAU,OAAO,OACjB,cAAe,SAEjB,yHACA,qHACE,SAAU,SACV,SAAU,kBACV,WAAY,sCACZ,cAAe,kBAEjB,oGAGA,2GADA,0GADA,4GAGE,MAAO,gCAET,0GACE,gBAAiB,UAEnB,kGACE,IAAK,KACL,KAAM,KACN,QAAS,MAEX,qGACE,IAAK,KACL,MAAO,KACP,YAAa,MACb,cAAe,MACf,eAAgB,MAChB,aAAc,MAEhB,iGACE,IAAK,KACL,MAAO,KACP,QAAS,MAEX,kGACA,iGACA,qGACE,cAAe,IACf,QAAS,MACT,MAAO,OACP,OAAQ,OACR,SAAU,SACV,OAAQ,aACR,QAAS,QAEX,uGACA,sGACA,0GACE,QAAS,MACT,MAAO,OACP,OAAQ,OACR,WAAY,OAEd,8GACA,kHACE,eAAgB,IAElB,kGAGA,yGADA,wGADA,0GAOA,iGAGA,wGADA,uGADA,yGALA,qGAGA,4GADA,2GADA,6GAOE,MAAO,gCACP,WAAY,sCACZ,OAAQ,IAAI,MAAM,gCAEpB,wGACA,wGAGA,uGACA,uGAHA,2GACA,2GAGE,OAAQ,aAEV,oFACE,SAAU,SACV,IAAK,KACL,MAAO,IACP,WAAY,KAAM,MAAM,yCACxB,aAAc,KAAM,MAAM,yCAC1B,cAAe,KAAM,MAAM,yCAC3B,YAAa,KAAM,MAAM,6CAE3B,sFACE,IAAK,EAEP,iHACE,WAAY,oBAEd,sCACE,4EACE,IAAK,EACL,KAAM,EAER,mGACE,QAAS,KACT,eAAgB,OAChB,gBAAiB,OAEnB,uGACE,MAAO,KACP,WAAY,oBAEd,iGACE,MAAO,MAGX,mCACE,4EACE,IAAK,EACL,KAAM,EACN,QAAS,KAEX,uGACE,MAAO,KACP,WAAY,oBACZ,OAAQ,EAEV,yGACE,MAAO,QACP,aAAc,MAGlB,cACE,eAAgB,YAChB,mBAAoB,KAEtB,uBACE,GACE,QAAS,EAEX,IACE,QAAS,GACT,UAAW,qBAAsB,aAGrC,4CACE,WAAY,KAAK,KAEnB,wCACE,OAAQ,MAEV,sCACE,OAAQ,KAEV,wCACE,OAAQ,MAEV,mDACE,OAAQ,MAEV,yDACE,OAAQ,MAEV,wCACE,OAAQ,KAEV,gBACE,YAAa,UACb,cAAe,IACf,iBAAkB,iCAClB,MAAO,sBACP,QAAS,MACT,OAAQ,EAAE,KAEZ,qCACE,QAAS,MACT,UAAW,KAEb,4BACE,QAAS,KAEX,oCACE,SAAU,SAEZ,sBACE,OAAQ,KAAK,KAAK,KAAK,EAEzB,8BACE,OAAQ,KAAK,KAAK,KAAK,KAEzB,uBACA,uBACE,WAAY,OAEd,6BACE,WAAY,WAAW,GAAG,OAAO,GAEnC,sCACA,sCACE,WAAY,QAEd,cACE,eAAgB,EAChB,gBAAiB,SAEnB,oBACA,oBACE,cAAe,IAAI,MAAM,2BACzB,QAAS,OAEX,mCACE,eAAgB,EAChB,gBAAiB,SAEnB,sCACA,sCACE,OAAQ,KAEV,2BACE,MAAO,MAET,4BACE,MAAO,KACP,WAAY,MAEd,kCACE,WAAY,MAId,YADA,wCADA,wCAGE,MAAO,MAET,eACE,WAAY,KAEd,kCACE,UAAW,OACX,OAAQ,KAAK,EAAE,KAAK,EACpB,OAAQ,IAAI,MAAM,2BAClB,WAAY,KAGd,wCADA,wCAEE,QAAS,MAEX,sDACE,aAAc,IAAI,MAAM,MAAM,2BAC9B,QAAS,EAAE,KAAK,EAAE,EAClB,OAAQ,EAAE,EAAE,EAAE,MAEhB,iBACE,MAAO,IACP,QAAS,aACT,WAAY,MACZ,cAAe,MAEjB,iBACE,MAAO,kBACP,QAAS,aAEX,eACE,OAAQ,IAAI,MAAM,+BAClB,OAAQ,IAAI,EAEd,kBACE,OAAQ,IAAI,MAAM,+BAClB,OAAQ,IAAI,EACZ,MAAO,KAET,kBACE,OAAQ,IAAI,MAAM,iCAClB,OAAQ,IAAI,EACZ,MAAO,KAET,MACE,MAAO,EACP,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file From e4f8f0483f418da953724ddcbc3d67cfe6373ea9 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 14 Jan 2025 15:08:05 +0100 Subject: [PATCH 031/417] [mod] slightly improve `make node.clean themes.all` Signed-off-by: Markus Heiser --- docs/dev/quickstart.rst | 6 ++---- manage | 11 ----------- utils/lib_sxng_node.sh | 19 +++++++++++++++---- utils/lib_sxng_themes.sh | 26 +++++++++++++++++++------- 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/docs/dev/quickstart.rst b/docs/dev/quickstart.rst index c45c24491..917d90c12 100644 --- a/docs/dev/quickstart.rst +++ b/docs/dev/quickstart.rst @@ -39,10 +39,8 @@ to our ":ref:`how to contribute`" guideline. - :ref:`make themes` If you implement themes, you will need to setup a :ref:`Node.js environment -`: ``make node.env`` - -Before you call *make run* (2.), you need to compile the modified styles and -JavaScript: ``make themes.all`` +`. Before you call *make run* (2.), you need to compile the +modified styles and JavaScript: ``make node.clean themes.all`` Alternatively you can also compile selective the theme you have modified, e.g. the *simple* theme. diff --git a/manage b/manage index d19458c72..714f31512 100755 --- a/manage +++ b/manage @@ -94,8 +94,6 @@ pyenv.: OK : test if virtualenv is OK format.: python : format Python code source using black -pygments.: - less : build LESS files for pygments EOF go.help node.help @@ -253,15 +251,6 @@ gecko.driver() { dump_return $? } -pygments.less() { - build_msg PYGMENTS "searxng_extra/update/update_pygments.py" - if ! pyenv.cmd python searxng_extra/update/update_pygments.py; then - build_msg PYGMENTS "building LESS files for pygments failed" - return 1 - fi - return 0 -} - py.build() { build_msg BUILD "python package ${PYDIST}" pyenv.cmd python setup.py \ diff --git a/utils/lib_sxng_node.sh b/utils/lib_sxng_node.sh index eac5bb16b..0845723e0 100755 --- a/utils/lib_sxng_node.sh +++ b/utils/lib_sxng_node.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash # SPDX-License-Identifier: AGPL-3.0-or-later +declare _Blue +declare _creset + export NODE_MINIMUM_VERSION="16.13.0" node.help(){ @@ -22,7 +25,7 @@ nodejs.ensure() { node.env() { nodejs.ensure ( set -e - build_msg INSTALL "./searx/static/themes/simple/package.json" + build_msg INSTALL "[npm] ./searx/static/themes/simple/package.json" npm --prefix searx/static/themes/simple install ) dump_return $? @@ -30,7 +33,7 @@ node.env() { node.env.dev() { nodejs.ensure - build_msg INSTALL "./package.json: developer and CI tools" + build_msg INSTALL "[npm] ./package.json: developer and CI tools" npm install } @@ -41,11 +44,19 @@ node.clean() { fi build_msg CLEAN "themes -- locally installed npm dependencies" ( set -e - npm --prefix searx/static/themes/simple run clean + npm --prefix searx/static/themes/simple run clean \ + | prefix_stdout "${_Blue}CLEAN ${_creset} " + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + return 1 + fi ) build_msg CLEAN "locally installed developer and CI tools" ( set -e - npm --prefix . run clean + npm --prefix . run clean \ + | prefix_stdout "${_Blue}CLEAN ${_creset} " + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + return 1 + fi ) dump_return $? } diff --git a/utils/lib_sxng_themes.sh b/utils/lib_sxng_themes.sh index 8d41b6480..a276dd8c5 100755 --- a/utils/lib_sxng_themes.sh +++ b/utils/lib_sxng_themes.sh @@ -9,16 +9,14 @@ themes.help(){ themes.: all : build all themes live : to get live builds of CSS & JS use 'LIVE_THEME=simple make run' - simple.: - build : build simple theme + simple.: build simple theme test : test simple theme + pygments: build pygment's LESS files for simple theme EOF } themes.all() { ( set -e - pygments.less - node.env themes.simple ) dump_return $? @@ -50,15 +48,29 @@ themes.live() { themes.simple() { ( set -e - build_msg GRUNT "theme: simple" - npm --prefix searx/static/themes/simple run build + node.env + themes.simple.pygments ) + build_msg GRUNT "theme: simple" + npm --prefix searx/static/themes/simple run build dump_return $? } +themes.simple.pygments() { + build_msg PYGMENTS "searxng_extra/update/update_pygments.py" + pyenv.cmd python searxng_extra/update/update_pygments.py \ + | prefix_stdout "${_Blue}PYGMENTS ${_creset} " + if [ "${PIPESTATUS[0]}" -ne "0" ]; then + build_msg PYGMENTS "building LESS files for pygments failed" + return 1 + fi + return 0 +} + + themes.simple.test() { build_msg TEST "theme: simple" - nodejs.ensure + node.env npm --prefix searx/static/themes/simple install npm --prefix searx/static/themes/simple run test dump_return $? From 15d0e274b39340f19c3c5dde8cfdec451fa044c0 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 15 Jan 2025 17:26:45 +0100 Subject: [PATCH 032/417] [fix] build workflows of the themes Signed-off-by: Markus Heiser --- Makefile | 7 +-- docs/dev/quickstart.rst | 6 ++- searx/static/themes/simple/gruntfile.js | 6 ++- searx/static/themes/simple/package.json | 9 ++-- utils/lib_sxng_static.sh | 3 +- utils/lib_sxng_test.sh | 7 ++- utils/lib_sxng_themes.sh | 59 +++++++++++++++++-------- 7 files changed, 66 insertions(+), 31 deletions(-) diff --git a/Makefile b/Makefile index 073b4de27..de4a7e5f0 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ search.checker.%: install $(Q)./manage pyenv.cmd searxng-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))" PHONY += test ci.test test.shell -ci.test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.pybabel +ci.test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.pybabel test.themes test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.shell test.shell: $(Q)shellcheck -x -s dash \ @@ -83,8 +83,9 @@ MANAGE += node.env node.env.dev node.clean MANAGE += py.build py.clean MANAGE += pyenv pyenv.install pyenv.uninstall MANAGE += format.python -MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean -MANAGE += themes.all themes.simple themes.simple.test pygments.less +MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes +MANAGE += themes.all themes.fix themes.test +MANAGE += themes.simple themes.simple.pygments themes.simple.fix MANAGE += static.build.commit static.build.drop static.build.restore MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs diff --git a/docs/dev/quickstart.rst b/docs/dev/quickstart.rst index 917d90c12..1b15a5b4a 100644 --- a/docs/dev/quickstart.rst +++ b/docs/dev/quickstart.rst @@ -6,7 +6,8 @@ Development Quickstart .. _npm: https://www.npmjs.com/ .. _Node.js: https://nodejs.org/ - +.. _eslint: https://eslint.org/ +.. _stylelint: https://stylelint.io/ .. sidebar:: further read @@ -40,7 +41,8 @@ to our ":ref:`how to contribute`" guideline. If you implement themes, you will need to setup a :ref:`Node.js environment `. Before you call *make run* (2.), you need to compile the -modified styles and JavaScript: ``make node.clean themes.all`` +modified styles and JavaScript: ``make node.clean themes.all``. If eslint_ or +stylelint_ report some issues, try ``make themes.fix``. Alternatively you can also compile selective the theme you have modified, e.g. the *simple* theme. diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index bd04b2468..a40e48120 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -21,9 +21,10 @@ module.exports = function (grunt) { pkg: grunt.file.readJSON('package.json'), watch: { scripts: { - files: ['gruntfile.js', 'src/**'], + files: ['gruntfile.js', 'eslint.config.mjs', '.stylelintrc.json', 'src/**'], tasks: [ 'eslint', + 'stylelint', 'copy', 'uglify', 'less', @@ -49,6 +50,7 @@ module.exports = function (grunt) { stylelint: { options: { formatter: 'unix', + fix: grunt.option('fix') }, src: [ 'src/less/**/*.less', @@ -298,7 +300,7 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-stylelint'); grunt.loadNpmTasks('grunt-eslint'); - grunt.registerTask('test', ['eslint']); + grunt.registerTask('test', ['eslint', 'stylelint']); grunt.registerTask('default', [ 'eslint', diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 5ff49057a..e56adbaa7 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -29,12 +29,13 @@ "scripts": { "all": "npm install && grunt", "build": "grunt", - "test": "grunt test", + "clean": "rm -Rf node_modules", "eslint": "grunt eslint", "eslint-fix": "grunt eslint --fix", - "watch": "grunt watch", - "clean": "rm -Rf node_modules", + "fix": "grunt test --fix", "stylelint": "grunt stylelint", - "stylelint-fix": "grunt stylelint --fix" + "stylelint-fix": "grunt stylelint --fix", + "test": "grunt test", + "watch": "grunt watch --fix" } } diff --git a/utils/lib_sxng_static.sh b/utils/lib_sxng_static.sh index 2f074b91e..d991d4b89 100755 --- a/utils/lib_sxng_static.sh +++ b/utils/lib_sxng_static.sh @@ -100,7 +100,8 @@ static.build.commit() { static.build.drop &>/dev/null ( set -e - # build the themes + # fix & build the themes + themes.fix themes.all # add build files diff --git a/utils/lib_sxng_test.sh b/utils/lib_sxng_test.sh index 9ac71aeeb..895a338fa 100755 --- a/utils/lib_sxng_test.sh +++ b/utils/lib_sxng_test.sh @@ -89,7 +89,6 @@ test.robot() { dump_return $? } - test.rst() { build_msg TEST "[reST markup] ${RST_FILES[*]}" @@ -98,6 +97,12 @@ test.rst() { done } +test.themes() { + build_msg TEST 'SearXNG themes' + themes.test + dump_return $? +} + test.pybabel() { TEST_BABEL_FOLDER="build/test/pybabel" build_msg TEST "[extract messages] pybabel" diff --git a/utils/lib_sxng_themes.sh b/utils/lib_sxng_themes.sh index a276dd8c5..95d38ae8d 100755 --- a/utils/lib_sxng_themes.sh +++ b/utils/lib_sxng_themes.sh @@ -7,21 +7,41 @@ declare _creset themes.help(){ cat <&1 \ - | prefix_stdout "${_Blue}THEME ${1} ${_creset} " \ - | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |' + } # 2>&1 \ + # | prefix_stdout "${_Blue}THEME ${1} ${_creset} " \ + # | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |' } themes.simple() { ( set -e - node.env themes.simple.pygments + build_msg SIMPLE "theme: run build" + # "run build" includes tests from eslint and stylelint + npm --prefix searx/static/themes/simple run build ) - build_msg GRUNT "theme: simple" - npm --prefix searx/static/themes/simple run build dump_return $? } @@ -67,11 +87,14 @@ themes.simple.pygments() { return 0 } +themes.simple.fix() { + build_msg SIMPLE "theme: fix" + npm --prefix searx/static/themes/simple run fix + dump_return $? +} themes.simple.test() { - build_msg TEST "theme: simple" - node.env - npm --prefix searx/static/themes/simple install + build_msg SIMPLE "theme: run test" npm --prefix searx/static/themes/simple run test dump_return $? } From f03ab00155901c4d423b6ad9512c70218dea170e Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 15 Jan 2025 17:29:36 +0100 Subject: [PATCH 033/417] [fix] broken mobile view (from #4154) Related: - https://github.com/searxng/searxng/pull/4154#issuecomment-2591881963 Closes: https://github.com/searxng/searxng/issues/4187 Signed-off-by: Markus Heiser --- .../static/themes/simple/src/less/style.less | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less index b46bd2591..7dca47402 100644 --- a/searx/static/themes/simple/src/less/style.less +++ b/searx/static/themes/simple/src/less/style.less @@ -543,7 +543,13 @@ article[data-vim-selected].category-social { margin-bottom: 0; .ltr-margin-left(@results-offset); display: grid; - grid-template: "corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / @results-width @results-sidebar-width; + grid-template: + "corrections sidebar" min-content + "answers sidebar" min-content + "urls sidebar" 1fr + "pagination sidebar" min-content + / @results-width @results-sidebar-width + ; gap: 0 @results-gap; } @@ -967,7 +973,14 @@ summary.title { margin: 0 auto; justify-content: center; display: grid; - grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content / @results-width; + grid-template: + "corrections" min-content + "answers" min-content + "sidebar" min-content + "urls" 1fr + "pagination" min-content + / @results-width + ; gap: 0; } } @@ -1005,7 +1018,13 @@ summary.title { #main_results div#results.only_template_images { margin: 1rem @results-tablet-offset 0 @results-tablet-offset; display: grid; - grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%; + grid-template: + "corrections" min-content + "answers" min-content + "sidebar" min-content + "urls" 1fr + "pagination" min-content + / 100%; gap: 0; #sidebar { From 1668ff5e6403648f41cf9a9b5421040594b4005d Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 15 Jan 2025 17:57:29 +0100 Subject: [PATCH 034/417] [fix] theme simple: image viewer hides autocomplete suggestions Closes: https://github.com/searxng/searxng/issues/3509 Signed-off-by: Markus Heiser --- searx/static/themes/simple/src/less/autocomplete.less | 2 +- searx/static/themes/simple/src/less/detail.less | 4 ++-- searx/static/themes/simple/src/less/search.less | 6 +++--- searx/static/themes/simple/src/less/toolkit.less | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/searx/static/themes/simple/src/less/autocomplete.less b/searx/static/themes/simple/src/less/autocomplete.less index 32c016e06..8285ff2c6 100644 --- a/searx/static/themes/simple/src/less/autocomplete.less +++ b/searx/static/themes/simple/src/less/autocomplete.less @@ -53,7 +53,7 @@ color: var(--color-autocomplete-font); max-height: 32rem; overflow-y: auto; - z-index: 100; + z-index: 5000; margin-top: 3.5rem; border-radius: 0.8rem; diff --git a/searx/static/themes/simple/src/less/detail.less b/searx/static/themes/simple/src/less/detail.less index ad4e3d5ff..fd5cd8e05 100644 --- a/searx/static/themes/simple/src/less/detail.less +++ b/searx/static/themes/simple/src/less/detail.less @@ -22,7 +22,7 @@ article.result-images .detail { bottom: 0; background: var(--color-result-detail-background); border: 1px solid var(--color-result-detail-background); - z-index: 10000; + z-index: 1000; padding: 4rem 3rem 3rem 3rem; a.result-images-source { @@ -148,7 +148,7 @@ article.result-images .detail { height: 1.5rem; position: absolute; filter: opacity(40%); - z-index: 2000002; + z-index: 1200; span { display: block; diff --git a/searx/static/themes/simple/src/less/search.less b/searx/static/themes/simple/src/less/search.less index ce755e17e..a46e4bf06 100644 --- a/searx/static/themes/simple/src/less/search.less +++ b/searx/static/themes/simple/src/less/search.less @@ -158,7 +158,7 @@ button.category_button { outline: none; color: var(--color-search-font); font-size: 1.1rem; - z-index: 10000; + z-index: 1000; &:hover { color: var(--color-search-background-hover); @@ -183,7 +183,7 @@ html.no-js #clear_search.hide_if_nojs { outline: none; color: var(--color-search-font); font-size: 1.1rem; - z-index: 2; + z-index: 100; } #q { @@ -332,7 +332,7 @@ html.no-js #clear_search.hide_if_nojs { top: 0; height: 100%; width: 100%; - z-index: 10000; + z-index: 2000; .search_box { border-bottom: 1px solid var(--color-search-border); diff --git a/searx/static/themes/simple/src/less/toolkit.less b/searx/static/themes/simple/src/less/toolkit.less index c256aef1a..d3fb2273b 100644 --- a/searx/static/themes/simple/src/less/toolkit.less +++ b/searx/static/themes/simple/src/less/toolkit.less @@ -203,7 +203,7 @@ div.selectable_url { left: 50%; margin: 0 auto; transform: translate(-50%, -50%); - z-index: 10000000; + z-index: 5000; h3 { margin-top: 0; @@ -339,7 +339,7 @@ select { padding: 0.2rem !important; color: var(--color-search-font); font-size: 0.9rem; - z-index: 2; + z-index: 100; &:hover, &:focus { @@ -413,7 +413,7 @@ input.checkbox-onoff[type="checkbox"] { border: 1px solid var(--color-btn-background); border-radius: 12px; box-shadow: var(--color-btn-background) 0 0 3px; - z-index: 10000; + z-index: 1200; top: -0.55em; left: -0.6em; } @@ -573,7 +573,7 @@ input.checkbox-onoff.reversed-checkbox[type="checkbox"] { background: var(--color-toolkit-engine-tooltip-background); font-size: 14px; font-weight: normal; - z-index: 1000000; + z-index: 5000; text-align: left; .rounded-corners; } From b1507f188e9b7d1c4d1ef2e64cb1369d28151bad Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 15 Jan 2025 18:08:35 +0100 Subject: [PATCH 035/417] [fix] gallery view overlaps category bar Closes: https://github.com/searxng/searxng/issues/4190 Signed-off-by: Markus Heiser --- searx/static/themes/simple/src/less/definitions.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/static/themes/simple/src/less/definitions.less b/searx/static/themes/simple/src/less/definitions.less index 802b3abf1..7501305fc 100644 --- a/searx/static/themes/simple/src/less/definitions.less +++ b/searx/static/themes/simple/src/less/definitions.less @@ -280,7 +280,7 @@ @results-image-row-height-phone: 10rem; @search-width: 44rem; // heigh of #search, see detail.less -@search-height: 7.6rem; +@search-height: 13rem; /// Device Size /// @desktop > @tablet From 41159fed324fc423a957b351b00c77960fbf06cd Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 16 Jan 2025 07:14:24 +0100 Subject: [PATCH 036/417] [build] /static --- searx/static/themes/simple/css/searxng-rtl.min.css | 2 +- searx/static/themes/simple/css/searxng-rtl.min.css.map | 2 +- searx/static/themes/simple/css/searxng.min.css | 2 +- searx/static/themes/simple/css/searxng.min.css.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 94075b096..abacadeee 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index 37b9ff471..cbdd116d5 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css.map +++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 68a053d97..dfccd41b1 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index 03c3941c1..21706751f 100644 --- a/searx/static/themes/simple/css/searxng.min.css.map +++ b/searx/static/themes/simple/css/searxng.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MACT,OAAQ,IAAI,MAAM,sCAClB,QAAS,IACT,MAAO,oCACP,OAAQ,KACR,SAAU,OACV,OAAQ,MACR,YAAa,MACb,cAAe,IAEjB,uBACE,QAAS,MACT,UAAW,KACX,WAAY,UACZ,OAAQ,KACR,YAAa,IAEf,cACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAEhB,qBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,iBACA,gBAFA,iBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,oBACE,MAAO,KAET,iBACE,eAAgB,SAElB,uBACE,WAAY,cAEd,iBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,iBACE,WAAY,KACZ,cAAe,KAEjB,oBACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,QAAS,MACT,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAEhB,2BACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,uBACA,sBAFA,uBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,0BACE,MAAO,KAET,uBACE,eAAgB,SAElB,6BACE,WAAY,cAEd,uBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,uBACE,WAAY,KACZ,cAAe,KAEjB,gBACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,MAAO,qBACP,WAAY,gCACZ,aAAc,qBAEhB,uBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,mBACA,kBAFA,mBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,sBACE,MAAO,KAET,mBACE,eAAgB,SAElB,yBACE,WAAY,cAEd,mBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,mBACE,WAAY,KACZ,cAAe,KAEjB,cACE,SAAU,SACV,QAAS,KACT,QAAS,KACT,OAAQ,EAAE,EAAE,IAAI,EAChB,OAAQ,IAAI,MAAM,mCAClB,WAAY,KACZ,cAAe,KACf,QAAS,MACT,WAAY,uCACZ,SAAU,MACV,IAAK,IACL,KAAM,IACN,OAAQ,EAAE,KACV,UAAW,qBACX,QAAS,SAEX,qBACE,MAAO,MACP,SAAU,SACV,IAAK,KACL,MAAO,QACP,UAAW,MAGb,iBACA,gBAFA,iBAGE,OAAQ,IAAI,EAAE,EAAE,EAElB,oBACE,MAAO,KAET,iBACE,eAAgB,SAElB,uBACE,WAAY,cAEd,iBACE,QAAS,EAAE,IAAI,EAAE,EACjB,YAAa,EACb,cAAe,KACf,eAAgB,EAChB,aAAc,EAEhB,iBACE,WAAY,KACZ,cAAe,KAEjB,iBACE,WAAY,EAEd,cACE,OAAQ,QAEV,SACE,SAAU,KAAK,OACf,QAAS,MACT,QAAS,EACT,OAAQ,EACR,OAAQ,KAGV,kBACE,UAAW,IAEb,QACE,cAAe,IAAI,MAAM,yCACzB,WAAY,KACZ,aAAc,EAEhB,WACE,QAAS,KAEX,MACE,QAAS,KACT,UAAW,KACX,MAAO,KACP,UAAW,KAEb,QACE,MAAO,EAET,wBACE,QAAS,KAEX,YACA,WACE,MAAO,EACP,QAAS,KACT,OAAQ,EAAE,KACV,eAAgB,KAChB,eAAgB,UAChB,OAAQ,MAAM,uCACd,aAAc,EAAE,EAAE,IAAI,EACtB,MAAO,MACP,sBAAuB,KACvB,YAAa,KACb,OAAQ,QAEV,mBACA,kBACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CAET,kBACA,iBACE,cAAe,IAAI,MAAM,6CAE3B,cACE,UAAW,KACX,QAAS,MAAO,EAChB,WAAY,WACZ,WAAY,IAAI,MAAM,yCACtB,QAAS,KAEX,yBACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CACP,eAAgB,MAElB,2BACE,QAAS,MAEX,sCACE,QAAS,KAEX,oCACE,SAAU,UACV,WAAY,QACZ,cAAe,IAAI,MAAM,YACzB,YAAa,IACb,MAAO,QAET,0CACE,cAAe,IAAI,MAAM,6CAE3B,oCACE,cAAe,IAAI,MAAM,6CACzB,WAAY,sCACZ,MAAO,2CAET,4CACE,QAAS,MAGX,OACE,OAAQ,OACR,WAAY,EACZ,aAAc,KACd,cAAe,EACf,YAAa,EACb,QAAS,gBACT,MAAO,yBACP,UAAW,MACX,QAAS,EAGX,aADA,aAEE,OAAQ,QAEV,wHACE,OACE,WAAY,KACZ,mBAAoB,KACpB,gBAAiB,KACjB,aAAc,EAAE,KAAK,EAAE,EACvB,aAAc,YACd,WAAY,2VAA2V,UACvW,sBAAuB,kBACvB,gBAAiB,KACjB,kBAAmB,YACnB,iBAAkB,uCAClB,QAAS,OAAO,KAChB,cAAe,SACf,cAAe,IAGjB,aADA,aAEE,iBAAkB,6CAEpB,cACE,iBAAkB,6BAEpB,mCACE,uBACA,uBACE,iBAAkB,kXAGtB,uBACE,iBAAkB,kXAItB,oCACE,mBAAoB,KACpB,gBAAiB,KACjB,WAAY,KACZ,OAAQ,QACR,QAAS,aACT,MAAO,MACP,OAAQ,KACR,WAAY,eACZ,OAAQ,EAAE,KACV,cAAe,KACf,SAAU,SAGZ,0CACA,0CACE,QAAS,EAEX,iDACE,QAAS,GACT,SAAU,SACV,MAAO,MACP,OAAQ,OACR,OAAQ,IAAI,MAAM,4BAClB,cAAe,KACf,WAAY,4BAA4B,EAAE,EAAE,IAC5C,QAAS,MACT,IAAK,OACL,KAAM,MAER,4CACE,SAAU,SACV,IAAK,MACL,QAAS,KACT,gBAAiB,OACjB,YAAa,OACb,UAAW,MACX,MAAO,QACP,OAAQ,QACR,cAAe,IAOjB,8DADA,oCAEE,WAAY,mDAGd,sEADA,4CAEE,KAAM,MACN,QAAS,QACT,MAAO,mDACP,WAAY,wDAGd,sDADA,4CAEE,WAAY,kDAGd,8DADA,oDAEE,KAAM,mBACN,QAAS,QACT,MAAO,kDACP,WAAY,uDAGd,qCACE,0CACE,mBAAoB,KACpB,gBAAiB,KACjB,WAAY,KACZ,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,SAAU,SACV,IAAK,EACL,KAAM,EACN,OAAQ,IAAI,MAAM,2CAClB,cAAe,KAEjB,iDACE,QAAS,GACT,MAAO,IACP,OAAQ,IACR,SAAU,SACV,IAAK,IACL,KAAM,IACN,OAAQ,IAAI,MAAM,2CAClB,WAAY,KACZ,aAAc,KACd,WAAY,IACZ,QAAS,EACT,UAAW,eAEb,yDACE,aAAc,2CACd,QAAS,EAEX,oDACE,OAAQ,QACR,iBAAkB,sBAClB,OAAQ,QAEV,oFACE,QAAS,IAGb,mCACE,YACE,MAAO,MAIX,QACA,eACE,cAAe,IACf,MAAO,IACP,OAAQ,IAEV,QACE,OAAQ,IAAI,KACZ,UAAW,KACX,SAAU,SACV,YAAa,QACb,WAAY,KAAM,MAAM,mCACxB,aAAc,KAAM,MAAM,mCAC1B,cAAe,KAAM,MAAM,mCAC3B,YAAa,KAAM,MAAM,uCACzB,kBAAmB,cACnB,cAAe,cACf,UAAW,cACX,kBAAmB,MAAM,KAAK,SAAS,OACvC,UAAW,MAAM,KAAK,SAAS,OAEjC,yBACE,GACE,kBAAmB,UACnB,UAAW,UAEb,KACE,kBAAmB,eACnB,UAAW,gBAGf,iBACE,GACE,kBAAmB,UACnB,UAAW,UAEb,KACE,kBAAmB,eACnB,UAAW,gBAIf,gBACE,QAAS,KACT,SAAU,SACV,QAAS,MAAO,KAChB,OAAQ,EAAE,EAAE,EAAE,KACd,OAAQ,IAAI,MAAM,2CAClB,WAAY,+CACZ,UAAW,KACX,YAAa,IACb,QAAS,QACT,WAAY,KACZ,cAAe,KAIjB,sBADA,yBADA,yBAGE,QAAS,aAGX,mBACE,OAAQ,EACR,QAAS,EAAE,QAAS,EAAE,KACtB,MAAO,KACP,MAAO,eACP,MAAO,uBACP,MAAO,KACP,UAAW,IAAI,OACf,YAAa,OACb,QAAS,YAEX,yBACE,MAAO,KACP,QAAS,aACT,SAAU,SACV,QAAS,EAAE,MACX,WAAY,MAEd,wBACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MAEd,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,uBACZ,OAAQ,IAAI,MAAM,oCAClB,QAAS,MAAO,EAElB,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,OAAQ,IAAI,MAAM,oCAClB,QAAS,MAAO,EAElB,0BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,cAAe,IAAI,OAAO,oCAC1B,QAAS,EAEX,2BACE,QAAS,KACT,YAAa,EACb,UAAW,EACX,WAAY,MACZ,WAAY,IACZ,YAAa,IAAI,MAAM,oCACvB,QAAS,MAAO,EAChB,MAAO,IAET,oGACA,cACE,SAAU,SACV,MAAO,MACP,WAAY,EACZ,WAAY,OACZ,WAAY,KACZ,cAAe,KAEjB,qBACA,oBACA,oBACE,iBAAkB,qCAEpB,oBACE,QAAS,KAEX,iBACE,gBAAiB,KACjB,OAAQ,EACR,QAAS,EAEX,oBACE,OAAQ,QACR,QAAS,MAAO,KAElB,2BACA,2BACA,0BACA,0BACE,iBAAkB,2CAEpB,oCAIA,mCAIA,mCAPA,oCAIA,mCAIA,mCAPA,mCAIA,kCAIA,kCAPA,mCAIA,kCAIA,kCACE,gBAAiB,KAEnB,2BACE,OAAQ,QAEV,mBACE,QAAS,MACT,iBAAkB,qCAClB,MAAO,+BACP,WAAY,MACZ,WAAY,KACZ,QAAS,IACT,WAAY,OACZ,cAAe,MAEjB,yBACE,QAAS,KAEX,mCACE,cACE,MAAO,KAET,oBACE,QAAS,MAGb,8DACE,MAAO,4BAET,yEACE,KAAM,mBACN,MAAO,QAET,8BACE,QAAS,KAEX,4EACE,QAAS,KACT,eAAgB,OAChB,SAAU,MACV,KAAM,MACN,MAAO,EACP,IAAK,OACL,WAAY,IAAI,KAAO,QAAQ,GAC/B,OAAQ,EACR,WAAY,sCACZ,OAAQ,IAAI,MAAM,sCAClB,QAAS,MACT,QAAS,KAAK,KAAK,KAAK,KAE1B,mGACE,QAAS,MACT,KAAM,EACN,WAAY,KACZ,MAAO,KACP,OAAQ,KACR,gBAAiB,KAEnB,uGACE,QAAS,EACT,OAAQ,EACR,OAAQ,KACR,WAAY,QACZ,MAAO,QACP,OAAQ,QACR,UAAW,KACX,WAAY,QACZ,WAAY,2BACZ,WAAY,QAEd,kGACE,MAAO,gCACP,OAAQ,MAEV,qGACE,WAAY,IAAI,MAAM,8BACtB,cAAe,KAEjB,qGACE,OAAQ,KACR,SAAU,OACV,cAAe,SACf,UAAW,MACX,cAAe,EAEjB,oGACE,MAAO,sCACP,UAAW,MACX,YAAa,OACb,cAAe,SACf,SAAU,OACV,OAAQ,MAAO,EAEjB,yGACE,QAAS,aACT,MAAO,MAIT,oGAFA,qGACA,oGAEE,WAAY,KAEd,mHACE,OAAQ,KACR,YAAa,MACb,SAAU,OACV,cAAe,SAEjB,+GACE,YAAa,OACb,SAAU,OAAO,OACjB,cAAe,SAEjB,yHACA,qHACE,SAAU,SACV,SAAU,kBACV,WAAY,sCACZ,cAAe,kBAEjB,oGAGA,2GADA,0GADA,4GAGE,MAAO,gCAET,0GACE,gBAAiB,UAEnB,kGACE,IAAK,KACL,KAAM,KACN,QAAS,MAEX,qGACE,IAAK,KACL,MAAO,KACP,YAAa,MACb,cAAe,MACf,eAAgB,MAChB,aAAc,MAEhB,iGACE,IAAK,KACL,MAAO,KACP,QAAS,MAEX,kGACA,iGACA,qGACE,cAAe,IACf,QAAS,MACT,MAAO,OACP,OAAQ,OACR,SAAU,SACV,OAAQ,aACR,QAAS,QAEX,uGACA,sGACA,0GACE,QAAS,MACT,MAAO,OACP,OAAQ,OACR,WAAY,OAEd,8GACA,kHACE,eAAgB,IAElB,kGAGA,yGADA,wGADA,0GAOA,iGAGA,wGADA,uGADA,yGALA,qGAGA,4GADA,2GADA,6GAOE,MAAO,gCACP,WAAY,sCACZ,OAAQ,IAAI,MAAM,gCAEpB,wGACA,wGAGA,uGACA,uGAHA,2GACA,2GAGE,OAAQ,aAEV,oFACE,SAAU,SACV,IAAK,KACL,MAAO,IACP,WAAY,KAAM,MAAM,yCACxB,aAAc,KAAM,MAAM,yCAC1B,cAAe,KAAM,MAAM,yCAC3B,YAAa,KAAM,MAAM,6CAE3B,sFACE,IAAK,EAEP,iHACE,WAAY,oBAEd,sCACE,4EACE,IAAK,EACL,KAAM,EAER,mGACE,QAAS,KACT,eAAgB,OAChB,gBAAiB,OAEnB,uGACE,MAAO,KACP,WAAY,oBAEd,iGACE,MAAO,MAGX,mCACE,4EACE,IAAK,EACL,KAAM,EACN,QAAS,KAEX,uGACE,MAAO,KACP,WAAY,oBACZ,OAAQ,EAEV,yGACE,MAAO,QACP,aAAc,MAGlB,cACE,eAAgB,YAChB,mBAAoB,KAEtB,uBACE,GACE,QAAS,EAEX,IACE,QAAS,GACT,UAAW,qBAAsB,aAGrC,4CACE,WAAY,KAAK,KAEnB,wCACE,OAAQ,MAEV,sCACE,OAAQ,KAEV,wCACE,OAAQ,MAEV,mDACE,OAAQ,MAEV,yDACE,OAAQ,MAEV,wCACE,OAAQ,KAEV,gBACE,YAAa,UACb,cAAe,IACf,iBAAkB,iCAClB,MAAO,sBACP,QAAS,MACT,OAAQ,EAAE,KAEZ,qCACE,QAAS,MACT,UAAW,KAEb,4BACE,QAAS,KAEX,oCACE,SAAU,SAEZ,sBACE,OAAQ,KAAK,KAAK,KAAK,EAEzB,8BACE,OAAQ,KAAK,KAAK,KAAK,KAEzB,uBACA,uBACE,WAAY,OAEd,6BACE,WAAY,WAAW,GAAG,OAAO,GAEnC,sCACA,sCACE,WAAY,QAEd,cACE,eAAgB,EAChB,gBAAiB,SAEnB,oBACA,oBACE,cAAe,IAAI,MAAM,2BACzB,QAAS,OAEX,mCACE,eAAgB,EAChB,gBAAiB,SAEnB,sCACA,sCACE,OAAQ,KAEV,2BACE,MAAO,MAET,4BACE,MAAO,KACP,WAAY,MAEd,kCACE,WAAY,MAId,YADA,wCADA,wCAGE,MAAO,MAET,eACE,WAAY,KAEd,kCACE,UAAW,OACX,OAAQ,KAAK,EAAE,KAAK,EACpB,OAAQ,IAAI,MAAM,2BAClB,WAAY,KAGd,wCADA,wCAEE,QAAS,MAEX,sDACE,aAAc,IAAI,MAAM,MAAM,2BAC9B,QAAS,EAAE,KAAK,EAAE,EAClB,OAAQ,EAAE,EAAE,EAAE,MAEhB,iBACE,MAAO,IACP,QAAS,aACT,WAAY,MACZ,cAAe,MAEjB,iBACE,MAAO,kBACP,QAAS,aAEX,eACE,OAAQ,IAAI,MAAM,+BAClB,OAAQ,IAAI,EAEd,kBACE,OAAQ,IAAI,MAAM,+BAClB,OAAQ,IAAI,EACZ,MAAO,KAET,kBACE,OAAQ,IAAI,MAAM,iCAClB,OAAQ,IAAI,EACZ,MAAO,KAET,MACE,MAAO,EACP,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file From 272e39893d41d6e47126957e6c82fb89e89fc80f Mon Sep 17 00:00:00 2001 From: DanielMowitz <53856770+DanielMowitz@users.noreply.github.com> Date: Fri, 29 Nov 2024 16:03:06 +0000 Subject: [PATCH 037/417] [feat]: engines: add astrophysical data system --- AUTHORS.rst | 3 +- searx/engines/astrophysics_data_system.py | 93 +++++++++++++++++++++++ searx/settings.yml | 8 ++ 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 searx/engines/astrophysics_data_system.py diff --git a/AUTHORS.rst b/AUTHORS.rst index 265a9fd41..95d154b12 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -173,4 +173,5 @@ features or generally made searx better: - Austin Olacsi `` - @micsthepick - Daniel Kukula `` -- Patrick Evans `https://github.com/holysoles` \ No newline at end of file +- Patrick Evans `https://github.com/holysoles` +- Daniel Mowitz `` diff --git a/searx/engines/astrophysics_data_system.py b/searx/engines/astrophysics_data_system.py new file mode 100644 index 000000000..a1d942b50 --- /dev/null +++ b/searx/engines/astrophysics_data_system.py @@ -0,0 +1,93 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""".. sidebar:: info + +The Astrophysics Data System (ADS) is a digital library portal for researchers in astronomy and physics, +operated by the Smithsonian Astrophysical Observatory (SAO) under a NASA grant. +The engine is adapted from the solr engine. + +""" + +# pylint: disable=global-statement + +from datetime import datetime +from json import loads +from urllib.parse import urlencode +from searx.exceptions import SearxEngineAPIException + +about = { + "website": 'https://ui.adsabs.harvard.edu/', + "wikidata_id": 'Q752099', + "official_api_documentation": 'https://ui.adsabs.harvard.edu/help/api/api-docs.html', + "use_official_api": True, + "require_api_key": True, + "results": 'JSON', +} + +base_url = 'https://api.adsabs.harvard.edu/v1/search' +result_base_url = 'https://ui.adsabs.harvard.edu/abs/' +rows = 10 +sort = '' # sorting: asc or desc +field_list = ['bibcode', 'author', 'title', 'abstract', 'doi', 'date'] # list of field names to display on the UI +default_fields = '' # default field to query +query_fields = '' # query fields +paging = True +api_key = 'unset' + + +def init(_): + if api_key == 'unset': + raise SearxEngineAPIException('missing ADS API key') + + +def request(query, params): + query_params = {'q': query, 'rows': rows} + if field_list: + query_params['fl'] = ','.join(field_list) + if query_fields: + query_params['qf'] = ','.join(query_fields) + if default_fields: + query_params['df'] = default_fields + if sort: + query_params['sort'] = sort + + query_params['start'] = rows * (params['pageno'] - 1) + + params['headers']['Authorization'] = f'Bearer {api_key}' + params['url'] = f"{base_url}/query?{urlencode(query_params)}" + + return params + + +def response(resp): + try: + resp_json = loads(resp.text) + except Exception as e: + raise SearxEngineAPIException("failed to parse response") from e + + if 'error' in resp_json: + raise SearxEngineAPIException(resp_json['error']['msg']) + + resp_json = resp_json["response"] + result_len = resp_json["numFound"] + results = [] + + for res in resp_json["docs"]: + author = res.get("author") + + if author: + author = author[0] + ' et al.' + + results.append( + { + 'url': result_base_url + res.get("bibcode") + "/", + 'title': res.get("title")[0], + 'author': author, + 'content': res.get("abstract"), + 'doi': res.get("doi"), + 'publishedDate': datetime.fromisoformat(res.get("date")), + } + ) + + results.append({'number_of_results': result_len}) + + return results diff --git a/searx/settings.yml b/searx/settings.yml index c29994227..a774b0fc0 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -380,6 +380,14 @@ engines: require_api_key: false results: JSON + # - name: astrophysics data system + # engine: astrophysics_data_system + # sort: asc + # weight: 5 + # categories: [science] + # api_key: your-new-key + # shortcut: ads + - name: alpine linux packages engine: alpinelinux disabled: true From a576f69c12d599d510b8aa486b21cc7d79516d6a Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 17 Jan 2025 07:09:46 +0000 Subject: [PATCH 038/417] [l10n] update translations from Weblate 09c56a561 - 2025-01-16 - tentsbet 219fff972 - 2025-01-14 - hirushaadi 2b4b64e60 - 2025-01-14 - return42 6a359da17 - 2025-01-14 - return42 --- searx/translations/ar/LC_MESSAGES/messages.mo | Bin 25014 -> 25258 bytes searx/translations/ar/LC_MESSAGES/messages.po | 27 +++++++++--------- searx/translations/ja/LC_MESSAGES/messages.mo | Bin 22637 -> 22847 bytes searx/translations/ja/LC_MESSAGES/messages.po | 25 ++++++++-------- searx/translations/lt/LC_MESSAGES/messages.mo | Bin 18793 -> 18829 bytes searx/translations/lt/LC_MESSAGES/messages.po | 20 ++++++------- searx/translations/si/LC_MESSAGES/messages.mo | Bin 8320 -> 8387 bytes searx/translations/si/LC_MESSAGES/messages.po | 4 +-- 8 files changed, 37 insertions(+), 39 deletions(-) diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo index ae5b49135f2ed829763047b2019ea45630e1479e..5efc106c5b54c730f8967863a17e4cf0b4acb1dc 100644 GIT binary patch delta 5646 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 V+`D1yr;)LA`~UNL^Jh#8`wyG2unYhI delta 5437 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 diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po index c3d5d069d..bbad62153 100644 --- a/searx/translations/ar/LC_MESSAGES/messages.po +++ b/searx/translations/ar/LC_MESSAGES/messages.po @@ -25,20 +25,20 @@ # Yahya-Lando , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-01-06 16:16+0000\n" -"PO-Revision-Date: 2025-01-06 15:52+0000\n" -"Last-Translator: Yahya-Lando \n" +"PO-Revision-Date: 2025-01-15 06:48+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Arabic \n" "Language: ar\n" -"Language-Team: Arabic " -"\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : " -"n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -1380,23 +1380,23 @@ msgstr "تغيير لغة واجهة البحث" #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "" +msgstr "تنسيق العنوان" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" -msgstr "" +msgstr "جميل" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" -msgstr "" +msgstr "ممتلىء" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "مضيف" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "" +msgstr "تغيير تنسيق العنوان للنتيجة" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" @@ -2004,4 +2004,3 @@ msgstr "إخفاء الفيديو" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo index b591fd59982394eb44ae9c957ef30588904fbc7a..ec462c3c2e3001251133cd07991f38f97b6a3758 100644 GIT binary patch delta 5611 zcmYk;32>Ih9mnyFxet;M63zfGImksWAOr#dfyjM?Bw#d9NDvW;kS0L{wJ(vVm6k&U zS|EgTs37HfkqIEJQw~RE>`;m#j*Li-3KGgd!6L~`W3U${+WI*3r=D*uMnCGa zFc{}z2v*?}#<GoC^U9oAqXet?R!2^Gj~R8sC?9D0$4Ka6Zn!-Kao(h+5-=(XEDP3ff^Ts-A}0K^E$)hNF&X5^6`&k^klyerPAlZ2Jal zJqFOe8Ng%0 zSP{B#I%?djI0S!-8vikB+&9*yX!5U!uG65M+(QKvLjF5oC)9uxRKyvmg@&UR9*aY< z0M+kp>joS}eKTtQZ!rv8?ej;d4STz}ve^{EQD-{_wNMGBVL2-Gn^6nzK`ng9dfa*n z75F(+%D=E)MUA_G%G@1We}L-meypc6pdD)BPN24c_Gzd;2IiqsoR5B3 zjC{PzOjPQYBA*IVi@IFf& zEYbPpF&_s~Ux`!jEb@skos-BCW}zlJi)DBlmD(a2m6@5Sg)2};^djmtUx5mEi<^SZ zb_e#wLl}UK7=$;`4}U=Q`w2B+Xo{1eNF-(xjoNu0>UlnDo@uCgX4?AmsQIc;UvwKcf13P+!Cos0lBiGH@9+PYbHw9n@v~5fw-X z9~EUF3f(HWC}>~`hT=ff1fx+C6ruttL4BY~QT?k>8C!;0U^yz#b*O+gqQ-4QZD=>@ zwcU$4y0ht=zjknohFR#J;k+Kt;pbk)yo{QlfLBBBe=+i#(^R1XcpC>{y{%tDE!>0= z_`R+FgzE3t&#?o}qVDQP{&glbG*sYf)C773G=aahD=HJI$Zt-Qg_^JkdtxbapG*z% z>%$yC?esim;!O<0o>`9RSVeu9o5B+mJjiCvzfl1s4{&aICTgL<7>{F6&ljNjFG5Yc z8;9XhTfc{GJI;3gu<3w$YmzVl`{81Amr%Gu;R0%+!+h@I@Gqz{Yq8!y?fe#Y#!&LE zKoU^n(l8f?qQ<|1!*M(A#A~SjZ}Pi08CM|zxy>;On&1>F;tLps-=I=>54B*#VCP6u za0KVmRxYwG<+8C+hWU!0z}F>dcz3 z8{V=854EYs*|evjCSGg(9X?IH4i)fyRG>jz5M|hfy7Z~&oM?>sE#L)<1*(_ z1A-rS0_lux8A4^CudNS41wPhVjQW1eMfI;j^Q<~q56e$qcl+u)EURydJ=v_Jp(oF2iqRNMbQ^840S0xBgbxXQS&Sr;dUlkM#Etm zYEctpk8}bWjeV#WS!<9_gxQbY_^q|sdL4Vw-in$hJkMFkg=?rM;3RB7ZPee*%dgwp z9u-kE>dazoeSkF=HDR88UW7fU&$Z9ruG6F^BE*@6eC>LsS6XW1PPw+hLmC z{{#wT!%Rc|o6Y>tP8+RvQFp*+tg~=BYJnlBepRUVc{v8+I#giw)K8HI9-TE76<{*Hgr%r{mr=LA z5%ci@#)~ z0jSjHV=O+29r0z`z82el|8Jy_!Gm2GfEQ7zy@Hys6_tS>(HmX-DXiyl$O~ioqdw7# zQ9E6OT6mLnyY*e`0n~g)r;z_T3SZd=FBK3abvMq(FYq}WS?K)vybsf-bD@cn(CZ! zBx-^2s0F8@#!a{Nd8oIl0yY0?jKZz9{=S=n2A)9;JcpX_OWS@8mD=mJ?mf-vAB5U* zd(^m8)DClOeJHjChFW;4b&h?$2(_;JHQVqOM$xbVHPJrQ1P4(Q9JhXg8h9Di|EjIu zx6dD0Lpevy(*wI=461)FD)2(5?luc;!|T|Q2is9QZa}5_JZguHs1MC;`@BQ36JQ@y ziU*+jO+^J*W}S!HNCj#mOHuQzz;ONE-AAEI60imIGbwWz$>HML-Z z>)C~sFO*hS&s#9pv!r90?_=fV?_BEEu|4N?i88zO$ns?Q;9NE$G z{+j0cx@$H2S-yF5L(>PVuf4XmY1doLn~!*U^}p)x*VwSEdCLKh*N|*4Pg?F|f4>%b WoqWghO5U{KAjRyA@|>Ss7w}(u7JK>t delta 5431 zcmYM%33QKF8prV)i6oNP5>b0168jcnZKy4zVy&bymPt^&wcOm+~s}$9QrWm?yexO zJUV2Z<4<~!a}97zgrfid*;LE9%7pJ=9o&Mkc);pQu`%&y7XN@@#A+nNF%)ZHBtC;t z*aXv@^IUrhRjHVRnYb83ung6q+`NSv@O$ipPq7B3)b)VLE-3Cu*zyQn_iLMk-?PT~vnqP!pU$C02?(@e*pldYqGt!~U3v8h8p; z$GP@=8ESzmunTTL9pzcnJl8!6Z7F<*+Ui8EuqN(+nz*~!*BpdOI19DKx#r8LezQQSIlV z7VQ=aP(@8AADsLPUxyh&~6*h*g_7*BY}? z?U$goxCnKo>#Tkgwjq8GQ}JJzg3*co_yf?>ZOx*fOebQ+r9kF#OHnI*-|F|9hfymy zj_Q97$KiF zhF~ky0PRr;rs90e!OB=>&o5(3;@il7u68r$Mqm#djjNGUb9bAu|6M6mZ|>Z1Oh;aE zw-JkQ4{D(F7S4^weAJeoNA1iN)Wi=^NAwu=en-(s3CCdvOvG>;i4mBKp*Y2(ptH|I z4YUxoHOr7B-73_I_t^6zsDb{05m;*R7pMVmp!(g#u^8LRPb438_Ve(0+=$xWs zG@!0(6{v#EF$Oh3Dn?;%)PO@!6J%l}jzRUGj1f4~T!2b!8CJr#Q2ke1{d$bl`(I2U zmFb`9eBfBgX&j|)o?qi|9({e67-bG zX$tx>okMlFf!eZfQ4@TR+KI4senL^Gele(>tBZPF8={V`8)^aLF&7I^Z^b1%ALQIU zRR6yxv;TVUPbT|+^SOaaAcS|O8`ea{8K|Ae#%Rp3I1lxFzPS{0iPvCNe26o!Qb)gk zK1LH4m@7N7|JsVpRPcl5wxR|+hH-cfIX?FgwZa76A#!v*u{zE$U&nmnB22@OPJESHz8I@23 zzq#sP3zcvpD&b_*4i3ONH~~2d&n=+Phl*8xg)2qf;;&E>+(%{p$l@QdDRHG|{S~x8 zUD9+^`(L2WI2V;jJ}QAi)KP9g?btDl*8BgpHK@c-lm@7ST2UOT<3P;BTx@{5QEx-3 zc>$Hc=U5BxVl}M9_VKqmR}<@FJ2L|{&m^3{{B9bBiUG|FIEwnuQ7h@v(-J{#X)fw^ zPsOqLD(cs)43+SYSn>97fz&<&bu`(i9T|^GAP*~k|L0Rs#>>s$p*|Gvp*jRm9gbLh z0yWV^R3i6L6Fo&u6xqw~7mM1-BviX$sBwOYI?{=~*nd_0nu=pM12th+Zkp=TQD3&9 zs7siQoR)jdp6^2q^f&wvkD~g|aaP%SCc@t1unUp;p?EK(;}heGk;clTqW(w&y#Lx5je^C}@IH zsLU>yw{QaSPnd+`p0_i_P~x?yop{^gGgyWAJZi!(Q9F9q;^=|?Khxt-?J_V_?|)WB zfwMzpI05J3MpVO?4F9$_#9_o8Q3)-^gSZWUkCO-aM;AWW{|)GYv#Bq{HuwaWU^6a| zUeBFa!2Iqe1!X*bsK3S2Q7c@IO|S@S<40D165A7(VmJnqRdtL)jne?N@)j73L+tqr z$i;W#QJ>&<(bEe5No%`Z>`UdK&XWw_t|PdJizCr-i2FR%+Z6Jziqw!?eK zDY`}@{Bb6sF7JvF?7uSJN`(^GjY{YMD)SPnKY`K2XHo61qgMQlJrCmhtom>>)=WV4 zYlk}8KB)2Mqvk8jWdGIiO{-XsdYy_<6C6Z+=}uXE4b|~mRKFik1BPY!^)*pjTgT#L zvny)F&!PH_MlEo%XBDqtMP{gp3(Yn5d<$ygT^8@bSmL9ofi9x@m!tas+kA}b7yhE( zzB(#SLbdZ+TOk!S&>*ab!!Q=7pfX=*@jDg=ur~E)P%FNH+UozJRv692&<7?C^}IJK z!BMCkehF#U*A-GwMn&d&RKsFahFehs?Zp~+5oh3Si^pUKZq>RO6u4J=ROK~;8(a;f zH2fwc&^nsy%-q293*~)h07<+_d~x#?6|Z*F8RO;;h+u r(^5Lbr~X_Dv`t, 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-01-06 16:16+0000\n" -"PO-Revision-Date: 2025-01-06 15:53+0000\n" -"Last-Translator: return42 " -"\n" +"PO-Revision-Date: 2025-01-17 07:09+0000\n" +"Last-Translator: tentsbet \n" +"Language-Team: Japanese \n" "Language: ja\n" -"Language-Team: Japanese " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -1348,23 +1348,23 @@ msgstr "表示する言語を変更" #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "" +msgstr "URL 書式" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" -msgstr "" +msgstr "相当" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" -msgstr "" +msgstr "一杯" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "ホスト" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "" +msgstr "検索結果のURL書式を変更" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" @@ -1947,4 +1947,3 @@ msgstr "動画を隠す" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo index d7add127987afccc182f2c9b23916d289eae6b11..3774e14e229811f5b1048a10c8361e0058fa3518 100644 GIT binary patch delta 4984 zcmYM$32>Ih8Nl%u$;BlhA#w#sIRgOq74g*vOtslq8V5@CL zN@XgCID&N)%2C=1){2y3v0?=Vgb}SJAv33Yvr%w!z2I33i|Z-$fU=fbQ(?Xu#KTCf>k} zIR2g}YKE7wE#AWV*rG+ee;Z6={V0oqJL-cjP!udh#zfOFAD7^C+>I{WnDcO4I$H09 zZX_qv`=j#>MpIsbW_l93fpUzw!%7MS9jy-!wgz`%3hlemjQj@q7ait5Cq9oZcnMwL z2HOAYU~;P{x|@0`x{>y1p#9N)gIke*BN20fx-Xuk>Q!n2X<5mlmhY8^K7{og{t1%HXTcnBT%F}lE4XaI@r<98t) zy<}N>EW-+P=f{zcTyz5sAc@bS3pPQ=jY2ax34J~TV_f8DE(KGx3QhSB(E%H<18&0= z_y&533TX8CFzk+F(EwK91bh~!;^)YasI()$AFv9?<4ef(iSBeH|1}g^cZyH+5}L|0 zXa+t)7rcq4{7dvTY|M>I!1mZ1JE4I;h>o9y9^rgU#AnviGx@i}t28+9 z4RoTn(G;CQ2VB7En8-F=cnbo$R`aVp=gXr_uL;YB&zl~0G8a=`bn2ndwc~hyla0WV02TaCnGy}0b3Mmu{ z&G{Qfl3!Fw5_-lAxi%xtk)c=9@{{sCW-9hKe=oa63COS_y^iK7|6daBXegDVR z75Kf6rfM#Fd8*KXtI-9XL<8K2ehHsJ`|mSgEl?m?`JPG;M9Q@74u$Ll@D^d=^Z+&vBf83knT+kc~##2c2jTdaH}kfiuJNhtU+S zzz(HNE75W5(92nap8Wwd^?wS_&!Lz7A{uzTLFC_#oeAF^4@A$j7_;zuXaG;60c=Av zum}08EINw3iBT<@;uie5V}M=I4fR6bibCWY7mdczSdI2SRzUuZ@C*&z@DdtG>frbe zGtqi3*4+uTe=&LqCt^9yNB`3KOK87|-jNj2>s!{(aWhr*Xl~|42LwjaXeBq8boc4$CTeu4i@D}pzikcM1k8)UWA{s~q zruhCZrr^RW>Kgd1hX(Wn+Hn&m;{|zi9Kom028qZ(Rmlr(G6t= zJ7V4Y-<^UH7oeA`6ixLkbiw6#7p_GET8AFdkI`Ga4Gm;BCgDN!ZX8AfeJ9kc5FCQZ)Tf~nmj@Sy_T^~ctI!>9Lg(L(elPZ+8$BB8 z=SGl!cW|8sKcW8)9nwa|2XsL*GB8+z?sPIb(Oh)=3iN$nk1n_o>y8Q?zZaA6aAerIEh;bDzq_g CM*Q&r delta 4930 zcmYM%3y_c38G!M_+QlO5t|b<+wXDmsZdsSjvNSAN;u3_$DshSLpm zF@ySaY=nCEu6Lf*I zX#XqG|KJ_eL#t#XP0>IL(SF@qk$)rUOG7>mLI+I4GJFipz;-mne~iA525#X;2XLg$$posmcWD`4{0ep_$g|v3bC2NM= zsCPj7jYBh7g&yU@v3(A9r@j!&@D+5vGuSjm;SvQSyNM2Lk)Q0KEm|**mY{)_p+_Y(x`E9d$-f<5r@?`{(23qb zQ&fWvIEqv8b9CYHZ1--QjQ8Pkbmu3~J5t0T??!+0tY@R`3$Z>fMb~*TMZpPwf*H6j z);D5(>c5EXzs7XxJ7fL#=mh)GqkA7a<1uu;8|Z?!(Q%D=SRb>|o#$Z#Ochda=RKmO zXduI|E{;Mc7!%tkq7zi1@B5ti{9EWwtI+_KqVqf-pTC3+sINx*Z9tx z!gMS`Z}&_15Hr7w25_TWvctOFlb?2Z=t4cQ5KGVntFR%?M0Ywr`Xu^OGKFSpEsnuA zFy(`j?Tbe1`UG&1cjM7T{3qfrIf0 zblyE^W@>tH{!J+yp@B_?)93^ZdnVt5EG(g3h6YlN?(7A0ftBcvH{heV1=nKJUdb17 z3!3UZ=nW%KS9CL9ra?D{CdUR{i zJMbFXZwGq0-bFX`9-5htqvz3a*D;g(7c%=Lk>;WkwMB1rCv@PD_xat}9GJyTb6`u{g9T`$C$TwRM33q=7GTkU z5bnV-=r>Hj zbI{9KjUM58H1*r#^S9C4{vI0mr)ag+?s9l#7>xxlhFVcqX9gNW?(h)TUgkN zym_GpP4RU!zy|!f@o zqOZ>+W_4#(ScG%Y9j?Raco1h|$HB?v{2{u~X8Z=ejqNaZ2>-3aR0#zqI*z6~d_5VE zgAWvb$Jjw;#6FM&&Bpz$Q&VkX!2jT5jc|iN;JSz$hRw8MUS$>u*807AeHD5J%9~; z|EI);+2~FlLpv@(1NuH1;PUu(D!~5e;;Etna~e>VHD#`2d~gSgfDJ zRPAl0;KJ9?OLr^UdU!IhKRWT?Xk~1lfCgTL&hrGi!1vJ9uRxFFl~~_{Zr~95`-?^@|xvFJEA)+LHi9sCzy!7=d;iSzm2s=g}$cCF#|Wo_E*vG$8WGb9*p(# zBk1jGagzokesK5o>;uhr|Dn@UX$^Yz&F@uGTGD4tc~Q&E`xh)&kY6^Re|OI*>Yum! JwPEMe{s($H=_3FD diff --git a/searx/translations/lt/LC_MESSAGES/messages.po b/searx/translations/lt/LC_MESSAGES/messages.po index 5bb1b3807..ed1be1ce7 100644 --- a/searx/translations/lt/LC_MESSAGES/messages.po +++ b/searx/translations/lt/LC_MESSAGES/messages.po @@ -14,20 +14,21 @@ # Mooo , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-01-06 16:16+0000\n" -"PO-Revision-Date: 2025-01-06 15:53+0000\n" -"Last-Translator: Mooo \n" +"PO-Revision-Date: 2025-01-15 06:48+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Lithuanian \n" "Language: lt\n" -"Language-Team: Lithuanian " -"\n" -"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100" -" < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < " -"11) ? 1 : n % 1 != 0 ? 2: 3);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" +" n % 1 != 0 ? 2: 3);\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -168,7 +169,7 @@ msgstr "tamsi" #. STYLE_NAMES['BLACK'] #: searx/searxng.msg msgid "black" -msgstr "" +msgstr "juoda" #. BRAND_CUSTOM_LINKS['UPTIME'] #: searx/searxng.msg @@ -1981,4 +1982,3 @@ msgstr "slėpti vaizdo įrašą" #~ msgid "dummy" #~ msgstr "" - diff --git a/searx/translations/si/LC_MESSAGES/messages.mo b/searx/translations/si/LC_MESSAGES/messages.mo index f79f2e4fd5227c40653512894fac54f1595e3c36..99504239b009f3d63c91df40e7908e523a85d27e 100644 GIT binary patch delta 2171 zcmYk-ZA_L`7{KuZp#l;p28CcgNU4O0qTn-PE17|rrY_eSxslc^S%g#5Tx-w6Xe(RF zGA+yXMy+gaSixY8R<>R~w6f3usaS;tcpYAjD{va#jFq@9*1Ir|`d*xg-FO*3 zgER0sWWH25PQeLJVmZE#PWXK^gZb2d$3nai+q0S7dOnt785;YNXgyA+-iRgGg3hxU zXW@OA%lhFF3J!cMx*vL<{^N6yaLa} z_KTQmqTvz+BTdrF0XLzUwW14cM6S@rZ60nzGun?n??uNQMFV{qnKJa_0(=ima171- z9D3vzr?dY~kVVZ7`RGJNv0jQUR36(aqYKe-wP>J8bbK>%g;s8k+k__8hR(YcvvGTT z{y+iy?}ME*xb^$ugGbRwd(erWM*BS*>o1}U^r3+qNBh4M+do8-44?Pwr(p`Y0nG{ar!_&sRgkE8t#q5&O7 zzqZs-3JWO=qJf;oyKw^j3hrRlb6IQ|y44$))z7I7leh!x@GUf;pKv4oiuP+DDqqUA z=)1ES4IqVc{r-C>_=o2;tie;b9{)hD&_on2d>b+#+==#k7|q~ytj1I5AE0sc$O`z# zbtd}Om*O(4K@)Aq2EYHk6dc%(4)`iMip#10fOS~JEKgxGn$eeNU}w+(&Z8O6;#P&# zconWg`)`Z&JxGk97wcF*^ieRgQS_`Q&@Ia5&zeq+=A#Q0qM0Yri8tXEyca#n&(N*@ z6W!Tj(zSmr(iCpRrMMMSz8r@sr14nnP(j#sT!v1x2HAwriCm$Z+iH9P4d53f=5PTQ zV_q5m7chy};0|oVBWQwu;VS&6jQux~=Gh_4$KB}G978AWM~~(MbgMIXEsi7aSC~Os z_NzoQUmELeXh0q4f@vhSZ~&d>4K(q$%h`WB4Aa01A3i|?_y(Q$H*^apV!fD({pX=a zR*UvqA8p4QsCUKs33TBRtjF)r!1Cuz&XY({u*3D(h%IP_-RRc8i4Oc6T`*id`8`xBl<<8B? zyQizO^PvZ~@7_1CpkOe2T767HkV!O#_VTqKQkLM+GJU4wNS&%tcz^6$*0bkz&Uw!Hp6@y5d46rh4aMHeVPQuce;)tI z{Kto>_W#cpD{P8;9Z^B%bGvQBc4$ zn1q*50q>g~IFR~N9E@+Qz1Ql$aRlwr%%`cMlAXV!l^h-!~R?OZa3Y1^|^z$vIL z$~9-0g{YMmA(yM*ra)CV5o@gdAP%8^5|#KxRHD~WJJE*m*lz7_(JQ2(n}Ra+(@O&a zNb)WpHBm8gxiW4USczKEcGPnZHLeMjXfqPhoyIJ@fLh=q)XFyQu&`T4=pxR^2QK)gLsK9>Ya+A2Je*tPiMW}J57=jh{e4({3@v;Bf@|E_W29@D@ zRN$@FahKJ1qb6uVC2#=M|ERT}M{;);QE{(Xd#ia1mDoKTiR~T*F87|B27X1IouaBe z7PX}*sOOVV0cN5SDMo!>^HD2YiW*;yTKOhazdBSxJ5XO)J^Il*K|z_c;VOKNdix8R z_1yrr4D~ML5mld25zfF$%)w?-y6^Er7(ep z7OcR>$mKG~LKEkr2FyYATY*}^J{*rNs2`pV)RFa?KTvObA5OzqK6)**1oLn?rtAAZ zOhE&$nyr{i{U+w%H{6eYqG?4}P>J0^CD4vq@h=>ML#T|xX{i3?Rfq~eK32>&!~yMqE?>5&z%An;A$*Go#iFeRzE@gl>bEaAI`EVx~Vu7OHuE} z4)hu*G+Kuc(pJX=RGgDXiR}M43RQ{yThoXNd>D16=TKXH7c;Q~dB5CuRKG};Cr6?Z$wEyu8_C6$p~lzX zzpufb*CFq@YfNJQbtcU;D9~Bd)?K!GJ1XES)Jxc7?LIoGe=^R(iB?~Sns^&d$3v*Z z?xEtmu;(AKfO@Dmx_@PJP+PtRHE<7V!W;Jd1!_k^Q~KL8QGrWP{DnHg2!fYkLInk#*$F(3k5Om7F_;jQ8Wx=E3x-4n(gOJfftkU+!TG*mby98k EUn)4Z2LJ#7 diff --git a/searx/translations/si/LC_MESSAGES/messages.po b/searx/translations/si/LC_MESSAGES/messages.po index a3d4afcfd..7c3429d49 100644 --- a/searx/translations/si/LC_MESSAGES/messages.po +++ b/searx/translations/si/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-01-06 16:16+0000\n" -"PO-Revision-Date: 2025-01-10 07:09+0000\n" +"PO-Revision-Date: 2025-01-15 06:48+0000\n" "Last-Translator: hirushaadi " "\n" "Language-Team: Sinhala Date: Mon, 20 Jan 2025 11:19:56 +0100 Subject: [PATCH 039/417] [feat] wikidata: add mastodon, peertube and Lemmy accounts to infobox Co-authored-by: Popolon Co-authored-by: Bnyro --- searx/engines/wikidata.py | 48 ++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py index 7a8539f22..2d3d477cd 100644 --- a/searx/engines/wikidata.py +++ b/searx/engines/wikidata.py @@ -60,6 +60,9 @@ WIKIDATA_PROPERTIES = { 'P2002': 'Twitter', 'P2013': 'Facebook', 'P2003': 'Instagram', + 'P4033': 'Mastodon', + 'P11947': 'Lemmy', + 'P12622': 'PeerTube', } # SERVICE wikibase:mwapi : https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual/MWAPI @@ -363,8 +366,8 @@ def get_attributes(language): def add_label(name): attributes.append(WDLabelAttribute(name)) - def add_url(name, url_id=None, **kwargs): - attributes.append(WDURLAttribute(name, url_id, kwargs)) + def add_url(name, url_id=None, url_path_prefix=None, **kwargs): + attributes.append(WDURLAttribute(name, url_id, url_path_prefix, kwargs)) def add_image(name, url_id=None, priority=1): attributes.append(WDImageAttribute(name, url_id, priority)) @@ -476,6 +479,11 @@ def get_attributes(language): add_url('P2013', url_id='facebook_profile') add_url('P2003', url_id='instagram_profile') + # Fediverse + add_url('P4033', url_path_prefix='/@') # Mastodon user + add_url('P11947', url_path_prefix='/c/') # Lemmy community + add_url('P12622', url_path_prefix='/c/') # PeerTube channel + # Map attributes.append(WDGeoAttribute('P625')) @@ -592,22 +600,50 @@ class WDURLAttribute(WDAttribute): HTTP_WIKIMEDIA_IMAGE = 'http://commons.wikimedia.org/wiki/Special:FilePath/' - __slots__ = 'url_id', 'kwargs' + __slots__ = 'url_id', 'url_path_prefix', 'kwargs' + + def __init__(self, name, url_id=None, url_path_prefix=None, kwargs=None): + """ + :param url_id: ID matching one key in ``external_urls.json`` for + converting IDs to full URLs. + + :param url_path_prefix: Path prefix if the values are of format + ``account@domain``. If provided, value are rewritten to + ``https://``. For example:: + + WDURLAttribute('P4033', url_path_prefix='/@') + + Adds Property `P4033 `_ + to the wikidata query. This field might return for example + ``libreoffice@fosstodon.org`` and the URL built from this is then: + + - account: ``libreoffice`` + - domain: ``fosstodon.org`` + - result url: https://fosstodon.org/@libreoffice + """ - def __init__(self, name, url_id=None, kwargs=None): super().__init__(name) self.url_id = url_id + self.url_path_prefix = url_path_prefix self.kwargs = kwargs def get_str(self, result, language): value = result.get(self.name + 's') - if self.url_id and value is not None and value != '': - value = value.split(',')[0] + if not value: + return None + + value = value.split(',')[0] + if self.url_id: url_id = self.url_id if value.startswith(WDURLAttribute.HTTP_WIKIMEDIA_IMAGE): value = value[len(WDURLAttribute.HTTP_WIKIMEDIA_IMAGE) :] url_id = 'wikimedia_image' return get_external_url(url_id, value) + + if self.url_path_prefix: + [account, domain] = value.split('@') + return f"https://{domain}{self.url_path_prefix}{account}" + return value From 3333d9f3854cbc707c3949087f9498e35b26276a Mon Sep 17 00:00:00 2001 From: Denperidge Date: Fri, 10 Jan 2025 18:12:16 +0100 Subject: [PATCH 040/417] [feat] engines: public domain image archive --- searx/engines/public_domain_image_archive.py | 108 +++++++++++++++++++ searx/settings.yml | 4 + 2 files changed, 112 insertions(+) create mode 100644 searx/engines/public_domain_image_archive.py diff --git a/searx/engines/public_domain_image_archive.py b/searx/engines/public_domain_image_archive.py new file mode 100644 index 000000000..3c59a0245 --- /dev/null +++ b/searx/engines/public_domain_image_archive.py @@ -0,0 +1,108 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Public domain image archive, based on the unsplash engine + +Meow meow + +""" + +from urllib.parse import urlencode, urlparse, urlunparse, parse_qsl +from json import dumps + +algolia_api_key = "153d2a10ce67a0be5484de130a132050" +"""Algolia API key. See engine documentation """ + +THUMBNAIL_SUFFIX = "?fit=max&h=360&w=360" +""" +Example thumbnail urls (from requests & html): +- https://the-public-domain-review.imgix.net + /shop/nov-2023-prints-00043.jpg + ?fit=max&h=360&w=360 +- https://the-public-domain-review.imgix.net + /collections/the-history-of-four-footed-beasts-and-serpents-1658/ + 8616383182_5740fa7851_o.jpg + ?fit=max&h=360&w=360 + +Example full image urls (from html) +- https://the-public-domain-review.imgix.net/shop/ + nov-2023-prints-00043.jpg + ?fit=clip&w=970&h=800&auto=format,compress +- https://the-public-domain-review.imgix.net/collections/ + the-history-of-four-footed-beasts-and-serpents-1658/8616383182_5740fa7851_o.jpg + ?fit=clip&w=310&h=800&auto=format,compress + +The thumbnail url from the request will be cleaned for the full image link +The cleaned thumbnail url will have THUMBNAIL_SUFFIX added to them, based on the original thumbnail parameters +""" + +# about +about = { + "website": 'https://pdimagearchive.org', + "use_official_api": False, + "require_api_key": False, + "results": 'JSON', +} + +base_url = 'https://oqi2j6v4iz-dsn.algolia.net/' +search_url = base_url + f'1/indexes/*/queries?x-algolia-api-key={algolia_api_key}&x-algolia-application-id=OQI2J6V4IZ' +categories = ['images'] +page_size = 20 +paging = True + + +def clean_url(url): + parsed = urlparse(url) + query = [(k, v) for (k, v) in parse_qsl(parsed.query) if k not in ['ixid', 's']] + + return urlunparse((parsed.scheme, parsed.netloc, parsed.path, parsed.params, urlencode(query), parsed.fragment)) + + +def request(query, params): + params['url'] = search_url + params["method"] = "POST" + request_params = { + "page": params["pageno"] - 1, + "query": query, + "highlightPostTag": "__ais-highlight__", + "highlightPreTag": "__ais-highlight__", + } + data = { + "requests": [ + {"indexName": "prod_all-images", "params": urlencode(request_params)}, + ] + } + params["data"] = dumps(data) + logger.debug("query_url --> %s", params['url']) + return params + + +def response(resp): + results = [] + json_data = resp.json() + + if 'results' not in json_data: + return [] + + for result in json_data['results'][0]['hits']: + content = [] + + if "themes" in result: + content.append("Themes: " + result['themes']) + + if "encompassingWork" in result: + content.append("Encompassing work: " + result['encompassingWork']) + content = "\n".join(content) + + base_image_url = result['thumbnail'].split("?")[0] + + results.append( + { + 'template': 'images.html', + 'url': clean_url(f"{about['website']}/images/{result['objectID']}"), + 'img_src': clean_url(base_image_url), + 'thumbnail_src': clean_url(base_image_url + THUMBNAIL_SUFFIX), + 'title': f"{result['title'].strip()} by {result['artist']} {result.get('displayYear', '')}", + 'content': content, + } + ) + + return results diff --git a/searx/settings.yml b/searx/settings.yml index a774b0fc0..da9c8174f 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1542,6 +1542,10 @@ engines: require_api_key: false results: HTML + - name: Public Domain Image Archive + engine: public_domain_image_archive + shortcut: pdia + - name: pubmed engine: pubmed shortcut: pub From 2f087a3a22f1f2a74d656e6f01f02ad34e8fb35d Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 19 Jan 2025 22:55:09 +0100 Subject: [PATCH 041/417] [feat] public domain image archive: automatically obtain algolia api key --- searx/engines/public_domain_image_archive.py | 71 +++++++++++++++----- 1 file changed, 56 insertions(+), 15 deletions(-) diff --git a/searx/engines/public_domain_image_archive.py b/searx/engines/public_domain_image_archive.py index 3c59a0245..c8ca9010c 100644 --- a/searx/engines/public_domain_image_archive.py +++ b/searx/engines/public_domain_image_archive.py @@ -1,15 +1,12 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Public domain image archive, based on the unsplash engine - -Meow meow - -""" +"""Public domain image archive""" from urllib.parse import urlencode, urlparse, urlunparse, parse_qsl from json import dumps -algolia_api_key = "153d2a10ce67a0be5484de130a132050" -"""Algolia API key. See engine documentation """ +from searx.network import get +from searx.utils import extr +from searx.exceptions import SearxEngineAccessDeniedException, SearxEngineException THUMBNAIL_SUFFIX = "?fit=max&h=360&w=360" """ @@ -42,23 +39,58 @@ about = { "results": 'JSON', } -base_url = 'https://oqi2j6v4iz-dsn.algolia.net/' -search_url = base_url + f'1/indexes/*/queries?x-algolia-api-key={algolia_api_key}&x-algolia-application-id=OQI2J6V4IZ' +base_url = 'https://oqi2j6v4iz-dsn.algolia.net' +pdia_config_url = 'https://pdimagearchive.org/_astro/config.BiNvrvzG.js' categories = ['images'] page_size = 20 paging = True -def clean_url(url): +__CACHED_API_KEY = None + + +def _clean_url(url): parsed = urlparse(url) query = [(k, v) for (k, v) in parse_qsl(parsed.query) if k not in ['ixid', 's']] return urlunparse((parsed.scheme, parsed.netloc, parsed.path, parsed.params, urlencode(query), parsed.fragment)) +def _get_algolia_api_key(): + global __CACHED_API_KEY # pylint:disable=global-statement + + if __CACHED_API_KEY: + return __CACHED_API_KEY + + resp = get(pdia_config_url) + if resp.status_code != 200: + raise LookupError("Failed to obtain Algolia API key for PDImageArchive") + + api_key = extr(resp.text, 'r="', '"', default=None) + + if api_key is None: + raise LookupError("Couldn't obtain Algolia API key for PDImageArchive") + + __CACHED_API_KEY = api_key + return api_key + + +def _clear_cached_api_key(): + global __CACHED_API_KEY # pylint:disable=global-statement + + __CACHED_API_KEY = None + + def request(query, params): - params['url'] = search_url + api_key = _get_algolia_api_key() + + args = { + 'x-algolia-api-key': api_key, + 'x-algolia-application-id': 'OQI2J6V4IZ', + } + params['url'] = f"{base_url}/1/indexes/*/queries?{urlencode(args)}" params["method"] = "POST" + request_params = { "page": params["pageno"] - 1, "query": query, @@ -71,7 +103,9 @@ def request(query, params): ] } params["data"] = dumps(data) - logger.debug("query_url --> %s", params['url']) + + # http errors are handled manually to be able to reset the api key + params['raise_for_httperror'] = False return params @@ -79,6 +113,13 @@ def response(resp): results = [] json_data = resp.json() + if resp.status_code == 403: + _clear_cached_api_key() + raise SearxEngineAccessDeniedException() + + if resp.status_code != 200: + raise SearxEngineException() + if 'results' not in json_data: return [] @@ -97,9 +138,9 @@ def response(resp): results.append( { 'template': 'images.html', - 'url': clean_url(f"{about['website']}/images/{result['objectID']}"), - 'img_src': clean_url(base_image_url), - 'thumbnail_src': clean_url(base_image_url + THUMBNAIL_SUFFIX), + 'url': _clean_url(f"{about['website']}/images/{result['objectID']}"), + 'img_src': _clean_url(base_image_url), + 'thumbnail_src': _clean_url(base_image_url + THUMBNAIL_SUFFIX), 'title': f"{result['title'].strip()} by {result['artist']} {result.get('displayYear', '')}", 'content': content, } From c760ad08087ce31ffcec1cd497a875cab83bdf8a Mon Sep 17 00:00:00 2001 From: Bnyro Date: Thu, 16 Jan 2025 20:01:11 +0100 Subject: [PATCH 042/417] [feat] image results: dismiss image viewer on back button press on mobile devices --- .../static/themes/simple/src/js/main/results.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index 5e3f8ed40..28f978a1a 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -52,6 +52,7 @@ this.innerText = this.dataset.copiedText; }); + const isMobile = screen.orientation.type.startsWith('portrait'); searxng.selectImage = function (resultElement) { /* eslint no-unused-vars: 0 */ if (resultElement) { @@ -82,26 +83,36 @@ } } d.getElementById('results').classList.add('image-detail-open'); + + // add a hash to the browser history so that pressing back doesn't return to the previous page + // this allows us to dismiss the image details on pressing the back button on mobile devices + window.location.hash = '#image-viewer'; + searxng.scrollPageToSelected(); - } + }; searxng.closeDetail = function (e) { d.getElementById('results').classList.remove('image-detail-open'); searxng.scrollPageToSelected(); - } + }; searxng.on('.result-detail-close', 'click', e => { e.preventDefault(); searxng.closeDetail(); }); searxng.on('.result-detail-previous', 'click', e => { e.preventDefault(); - searxng.selectPrevious(false) + searxng.selectPrevious(false); }); searxng.on('.result-detail-next', 'click', e => { e.preventDefault(); searxng.selectNext(false); }); + // listen for the back button to be pressed and dismiss the image details when called + window.addEventListener('hashchange', () => { + if (!window.location.hash) searxng.closeDetail(); + }); + w.addEventListener('scroll', function () { var e = d.getElementById('backToTop'), scrollTop = document.documentElement.scrollTop || document.body.scrollTop, From d9115b8d48e4f421a29f5011ae3959f0171d9bf3 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 20 Jan 2025 13:21:25 +0100 Subject: [PATCH 043/417] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 2 +- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index ec3ed252f..f5ef43609 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,i){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),r=-1;while(n[++r]&&n[r]!=t);return!!n[r]}})(Element.prototype)}function s(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var a=window.searxng||{};a.on=function(r,e,o,t){t=t||false;if(typeof r!=="string"){r.addEventListener(e,o,t)}else{i.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==i&&!(n=t.matches(r)))t=t.parentElement;if(n)s(o,t,e)},t)}};a.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};a.http=function(r,o,i=null){return new Promise(function(e,t){try{var n=new XMLHttpRequest;n.open(r,o,true);n.timeout=2e4;n.onload=function(){if(n.status==200){e(n.response,n.responseType)}else{t(Error(n.statusText))}};n.onerror=function(){t(Error("Network Error"))};n.onabort=function(){t(Error("Transaction is aborted"))};n.ontimeout=function(){t(Error("Timeout"))};if(i){n.send(i)}else{n.send()}}catch(e){t(e)}})};a.loadStyle=function(e){var t=a.settings.theme_static_path+"/"+e,n="style_"+e.replace(".","_"),r=i.getElementById(n);if(r===null){r=i.createElement("link");r.setAttribute("id",n);r.setAttribute("rel","stylesheet");r.setAttribute("type","text/css");r.setAttribute("href",t);i.body.appendChild(r)}};a.loadScript=function(e,t){var n=a.settings.theme_static_path+"/"+e,r="script_"+e.replace(".","_"),o=i.getElementById(r);if(o===null){o=i.createElement("script");o.setAttribute("id",r);o.setAttribute("src",n);o.onload=t;o.onerror=function(){o.setAttribute("error","1")};i.body.appendChild(o)}else if(!o.hasAttribute("error")){try{t.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};a.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};a.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};a.on(".close","click",function(){this.parentNode.classList.add("invisible")});function e(){for(var e of i.getElementsByTagName("body")[0].classList.values()){if(e.endsWith("_endpoint")){return e.split("_")[0]}}return""}a.endpoint=e();return a}(window,document);searxng.ready(function(){"use strict";searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype;if(searxng.endpoint!=="results"){return}if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let i=document;var s=i.getElementById("results").classList.contains("only_template_images");function n(){var e=i.createElement("div");e.classList.add("loader");return e}function r(t,e){t.textContent="";e.forEach(e=>t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='
×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(e,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;et.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(!window.location.hash)l.closeDetail()});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false)\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","isMobile","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (!window.location.hash) searxng.closeDetail();\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file From 601ffcb8a32a6e2f252cebffa6a7e6f024c8e943 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 16 Jan 2025 17:10:12 +0100 Subject: [PATCH 044/417] [mod] add swipe events to the image gallery (gesture control) Adds [1] to the searxng.min.js and horizontal swipe events to the image gallery. [1] https://www.npmjs.com/package/swiped-events Signed-off-by: Markus Heiser --- searx/static/themes/simple/gruntfile.js | 5 +++-- searx/static/themes/simple/package-lock.json | 9 ++++++++- searx/static/themes/simple/package.json | 3 ++- searx/static/themes/simple/src/js/main/results.js | 11 +++++++++++ searx/templates/simple/result_templates/images.html | 2 +- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index a40e48120..d812e559d 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -24,7 +24,7 @@ module.exports = function (grunt) { files: ['gruntfile.js', 'eslint.config.mjs', '.stylelintrc.json', 'src/**'], tasks: [ 'eslint', - 'stylelint', + 'stylelint', 'copy', 'uglify', 'less', @@ -109,7 +109,8 @@ module.exports = function (grunt) { 'js/searxng.head.min.js': ['src/js/head/*.js'], 'js/searxng.min.js': [ 'src/js/main/*.js', - './node_modules/autocomplete-js/dist/autocomplete.js' + './node_modules/autocomplete-js/dist/autocomplete.js', + './node_modules/swiped-events/src/swiped-events.js' ] } } diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 6a9f0f22f..240f58cd0 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -7,7 +7,8 @@ "dependencies": { "autocomplete-js": "^2.7.1", "leaflet": "^1.9.4", - "normalize.css": "^8.0.1" + "normalize.css": "^8.0.1", + "swiped-events": "^1.2.0" }, "devDependencies": { "ejs": "^3.1.10", @@ -8989,6 +8990,12 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/swiped-events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/swiped-events/-/swiped-events-1.2.0.tgz", + "integrity": "sha512-KRu67z1hb4sPxMdFIF2kaufYHTcWOb8NVLbIl2g5dPWZkEQ6D3wfSIVJ7iXbicTt9cO3e0vARqgx9fITtTZxQw==", + "license": "MIT" + }, "node_modules/table": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index e56adbaa7..b2ebd3087 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -24,7 +24,8 @@ "dependencies": { "autocomplete-js": "^2.7.1", "leaflet": "^1.9.4", - "normalize.css": "^8.0.1" + "normalize.css": "^8.0.1", + "swiped-events": "^1.2.0" }, "scripts": { "all": "npm install && grunt", diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index 28f978a1a..ed40086ca 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -113,6 +113,17 @@ if (!window.location.hash) searxng.closeDetail(); }); + d.querySelectorAll('.swipe-horizontal').forEach( + obj => { + obj.addEventListener('swiped-left', function (e) { + searxng.selectNext(false); + }); + obj.addEventListener('swiped-right', function (e) { + searxng.selectPrevious(false); + }); + } + ); + w.addEventListener('scroll', function () { var e = d.getElementById('backToTop'), scrollTop = document.documentElement.scrollTop || document.body.scrollTop, diff --git a/searx/templates/simple/result_templates/images.html b/searx/templates/simple/result_templates/images.html index ff62457ec..617834705 100644 --- a/searx/templates/simple/result_templates/images.html +++ b/searx/templates/simple/result_templates/images.html @@ -5,7 +5,7 @@ {{ result.title|striptags }}{{- "" -}} {{- result.parsed_url.netloc -}}{{- "" -}} {{- "" -}} -
{{- "" -}} +
{{- "" -}} {{ icon('close') }}{{- "" -}} {{ icon('chevron-left') }}{{- "" -}} {{ icon('chevron-right') }}{{- "" -}} From 073d9549a00362cb6fe0398396e139bc93ed4918 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 20 Jan 2025 13:36:34 +0100 Subject: [PATCH 045/417] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 11 ++++++++++- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index f5ef43609..97f9e8f68 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,i){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),r=-1;while(n[++r]&&n[r]!=t);return!!n[r]}})(Element.prototype)}function s(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var a=window.searxng||{};a.on=function(r,e,o,t){t=t||false;if(typeof r!=="string"){r.addEventListener(e,o,t)}else{i.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==i&&!(n=t.matches(r)))t=t.parentElement;if(n)s(o,t,e)},t)}};a.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};a.http=function(r,o,i=null){return new Promise(function(e,t){try{var n=new XMLHttpRequest;n.open(r,o,true);n.timeout=2e4;n.onload=function(){if(n.status==200){e(n.response,n.responseType)}else{t(Error(n.statusText))}};n.onerror=function(){t(Error("Network Error"))};n.onabort=function(){t(Error("Transaction is aborted"))};n.ontimeout=function(){t(Error("Timeout"))};if(i){n.send(i)}else{n.send()}}catch(e){t(e)}})};a.loadStyle=function(e){var t=a.settings.theme_static_path+"/"+e,n="style_"+e.replace(".","_"),r=i.getElementById(n);if(r===null){r=i.createElement("link");r.setAttribute("id",n);r.setAttribute("rel","stylesheet");r.setAttribute("type","text/css");r.setAttribute("href",t);i.body.appendChild(r)}};a.loadScript=function(e,t){var n=a.settings.theme_static_path+"/"+e,r="script_"+e.replace(".","_"),o=i.getElementById(r);if(o===null){o=i.createElement("script");o.setAttribute("id",r);o.setAttribute("src",n);o.onload=t;o.onerror=function(){o.setAttribute("error","1")};i.body.appendChild(o)}else if(!o.hasAttribute("error")){try{t.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};a.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};a.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};a.on(".close","click",function(){this.parentNode.classList.add("invisible")});function e(){for(var e of i.getElementsByTagName("body")[0].classList.values()){if(e.endsWith("_endpoint")){return e.split("_")[0]}}return""}a.endpoint=e();return a}(window,document);searxng.ready(function(){"use strict";searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype;if(searxng.endpoint!=="results"){return}if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let i=document;var s=i.getElementById("results").classList.contains("only_template_images");function n(){var e=i.createElement("div");e.classList.add("loader");return e}function r(t,e){t.textContent="";e.forEach(e=>t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(!window.location.hash)l.closeDetail()});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;et.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:y,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function v(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function y(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";v(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(!window.location.hash)l.closeDetail()});a.querySelectorAll(".swipe-horizontal").forEach(e=>{e.addEventListener("swiped-left",function(e){l.selectNext(false)});e.addEventListener("swiped-right",function(e){l.selectPrevious(false)})});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e=e.From&&n.keyCode<=e.To){s=!e.Not}else{s=e.Not}}}};for(var o in a.prototype.getEventsByType(e,t)){var i=a.merge({Operator:l.AND},e.KeyboardMappings[o]),s=l.AND==i.Operator;i.Conditions.forEach(r);if(s===true){i.Callback.call(e,n)}}};a.prototype.makeRequest=function(e,t,n){var r=Object.getOwnPropertyNames(e.HttpHeaders),o=new XMLHttpRequest,i=e._HttpMethod(),s=e._Url(),a=e._Pre(),l=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(a);if(i.match(/^GET$/i)){if(s.indexOf("?")!==-1){s+="&"+l}else{s+="?"+l}}o.open(i,s,true);for(var u=r.length-1;u>=0;u--){o.setRequestHeader(r[u],e.HttpHeaders[r[u]])}o.onreadystatechange=function(){if(o.readyState==4&&o.status==200){e.$Cache[a]=o.response;t(o.response)}else if(o.status>=400){n()}};return o};a.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(a.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};a.prototype.cache=function(e,t,n){var r=e._Cache(e._Pre());if(r===undefined){var o=a.prototype.makeRequest(e,t,n);a.prototype.ajax(e,o)}else{t(r)}};a.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};a.merge=function(){var e={},t;for(var n=0;n"+e+""}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:i.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:i.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),r=this.DOMResults.querySelector("li.active");if(r){var o=Array.prototype.indexOf.call(r.parentNode.children,r),i=o+(e.keyCode-39),s=this.DOMResults.getElementsByTagName("li").length;if(i<0){i=s-1}else if(i>=s){i=0}r.classList.remove("active");r.parentElement.children.item(i).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:i.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}a.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this),this._Error)}else{this._Close()}},Operator:l.AND,Event:i.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===void 0){e=false}if(e){this._Close()}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onclick=function(){t._Select(e)}}})},_Close:function(){this.DOMResults.setAttribute("class","autocomplete")},_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),r=this._Limit();if(r<0){e=e.reverse()}else if(r===0){r=e.length}for(var o=0;o0){this.DOMResults.innerHTML=e}else{var r=this._EmptyMessage();if(r!==""){n.innerHTML=r;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var r=0;r + * @license MIT + */ +(function(e,l){"use strict";if(typeof e.CustomEvent!=="function"){e.CustomEvent=function(e,t){t=t||{bubbles:false,cancelable:false,detail:undefined};var n=l.createEvent("CustomEvent");n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail);return n};e.CustomEvent.prototype=e.Event.prototype}l.addEventListener("touchstart",n,false);l.addEventListener("touchmove",r,false);l.addEventListener("touchend",t,false);var u=null;var c=null;var d=null;var f=null;var p=null;var h=null;var m=0;function t(e){if(h!==e.target)return;var t=parseInt(g(h,"data-swipe-threshold","20"),10);var n=g(h,"data-swipe-unit","px");var r=parseInt(g(h,"data-swipe-timeout","500"),10);var o=Date.now()-p;var i="";var s=e.changedTouches||e.touches||[];if(n==="vh"){t=Math.round(t/100*l.documentElement.clientHeight)}if(n==="vw"){t=Math.round(t/100*l.documentElement.clientWidth)}if(Math.abs(d)>Math.abs(f)){if(Math.abs(d)>t&&o0){i="swiped-left"}else{i="swiped-right"}}}else if(Math.abs(f)>t&&o0){i="swiped-up"}else{i="swiped-down"}}if(i!==""){var a={dir:i.replace(/swiped-/,""),touchType:(s[0]||{}).touchType||"direct",fingers:m,xStart:parseInt(u,10),xEnd:parseInt((s[0]||{}).clientX||-1,10),yStart:parseInt(c,10),yEnd:parseInt((s[0]||{}).clientY||-1,10)};h.dispatchEvent(new CustomEvent("swiped",{bubbles:true,cancelable:true,detail:a}));h.dispatchEvent(new CustomEvent(i,{bubbles:true,cancelable:true,detail:a}))}u=null;c=null;p=null}function n(e){if(e.target.getAttribute("data-swipe-ignore")==="true")return;h=e.target;p=Date.now();u=e.touches[0].clientX;c=e.touches[0].clientY;d=0;f=0;m=e.touches.length}function r(e){if(!u||!c)return;var t=e.touches[0].clientX;var n=e.touches[0].clientY;d=u-t;f=c-n}function g(e,t,n){while(e&&e!==l.documentElement){var r=e.getAttribute(t);if(r){return r}e=e.parentNode}return n}})(window,document); //# sourceMappingURL=searxng.min.js.map \ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index bf5698ec9..3318be16c 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (!window.location.hash) searxng.closeDetail();\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js","../node_modules/swiped-events/src/swiped-events.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (!window.location.hash) searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function (e) {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function (e) {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","Date","changedTouches","touches","round","eventData","dir","touchType","fingers","xStart","xEnd","clientX","yStart","yEnd","clientY","dispatchEvent","xUp","yUp","attributeName","defaultValue","attributeValue"],"mappings":"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"} \ No newline at end of file From e581921c9229f11a9ab23de2963b020546f2be0d Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 20 Jan 2025 11:45:00 +0100 Subject: [PATCH 046/417] [fix] engine brave: remove date from the content string Related: https://github.com/searxng/searxng/issues/4211#issuecomment-2601941440 Closes: https://github.com/searxng/searxng/issues/4006 Signed-off-by: Markus Heiser --- searx/engines/brave.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/searx/engines/brave.py b/searx/engines/brave.py index 648aee562..db1fc7976 100644 --- a/searx/engines/brave.py +++ b/searx/engines/brave.py @@ -291,15 +291,21 @@ def _parse_search(resp): if url is None or title_tag is None or not urlparse(url).netloc: # partial url likely means it's an ad continue - content_tag = eval_xpath_getindex(result, './/div[contains(@class, "snippet-description")]', 0, default='') + content: str = extract_text( + eval_xpath_getindex(result, './/div[contains(@class, "snippet-description")]', 0, default='') + ) # type: ignore pub_date_raw = eval_xpath(result, 'substring-before(.//div[contains(@class, "snippet-description")], "-")') + pub_date = _extract_published_date(pub_date_raw) + if pub_date and content.startswith(pub_date_raw): + content = content.lstrip(pub_date_raw).strip("- \n\t") + thumbnail = eval_xpath_getindex(result, './/img[contains(@class, "thumb")]/@src', 0, default='') item = { 'url': url, 'title': extract_text(title_tag), - 'content': extract_text(content_tag), - 'publishedDate': _extract_published_date(pub_date_raw), + 'content': content, + 'publishedDate': pub_date, 'thumbnail': thumbnail, } From c06ec65b2aad12a926f0f63fe9d2b438e61f3951 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 20 Jan 2025 14:24:09 +0100 Subject: [PATCH 047/417] [fix] LESS sourcemaps broken in less-plugin-clean-css v1.6.0 The ``less-plugin-clean-css`` lacks some maintenance: the sourcemaps are broken since v1.6.0 (08/2024) [1] - [1] https://github.com/less/less-plugin-clean-css/issues/42 Closes: https://github.com/searxng/searxng/issues/4143 Signed-off-by: Markus Heiser --- searx/static/themes/simple/gruntfile.js | 3 --- searx/static/themes/simple/package-lock.json | 14 -------------- searx/static/themes/simple/package.json | 1 - 3 files changed, 18 deletions(-) diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index d812e559d..8d7d4aaf9 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -119,9 +119,6 @@ module.exports = function (grunt) { production: { options: { paths: ["less"], - plugins: [ - new (require('less-plugin-clean-css'))() - ], sourceMap: true, sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map'; }, outputSourceFiles: true, diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 240f58cd0..7b04eb191 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -25,7 +25,6 @@ "grunt-xmlmin": "^0.1.8", "ionicons": "^7.4.0", "less": "^4.2.1", - "less-plugin-clean-css": "^1.6.0", "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^36.0.0", @@ -5790,19 +5789,6 @@ "source-map": "~0.6.0" } }, - "node_modules/less-plugin-clean-css": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/less-plugin-clean-css/-/less-plugin-clean-css-1.6.0.tgz", - "integrity": "sha512-jwXX6WlXT57OVCXa5oBJBaJq1b4s1BOKeEEoAL2UTeEitogQWfTcBbLT/vow9pl0N0MXV8Mb4KyhTGG0YbEKyQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "clean-css": "5.3.3" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/less/node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index b2ebd3087..a67fb9d09 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -14,7 +14,6 @@ "grunt-xmlmin": "^0.1.8", "ionicons": "^7.4.0", "less": "^4.2.1", - "less-plugin-clean-css": "^1.6.0", "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^36.0.0", From 98c66c0ae66d1f21ed15f16fd220b6e608190a02 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 20 Jan 2025 14:36:22 +0100 Subject: [PATCH 048/417] [build] /static --- searx/static/themes/simple/css/rss.min.css | 789 ++- .../static/themes/simple/css/rss.min.css.map | 2 +- .../themes/simple/css/searxng-rtl.min.css | 4937 ++++++++++++++++- .../themes/simple/css/searxng-rtl.min.css.map | 2 +- .../static/themes/simple/css/searxng.min.css | 4885 +++++++++++++++- .../themes/simple/css/searxng.min.css.map | 2 +- 6 files changed, 10611 insertions(+), 6 deletions(-) diff --git a/searx/static/themes/simple/css/rss.min.css b/searx/static/themes/simple/css/rss.min.css index 58279e6dd..02cfdd971 100644 --- a/searx/static/themes/simple/css/rss.min.css +++ b/searx/static/themes/simple/css/rss.min.css @@ -1 +1,788 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}body,html,main{padding:0;margin:0}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);scroll-behavior:smooth}body{margin-inline:1rem}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}/*# sourceMappingURL=rss.min.css.map */ \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/* + * SearXNG, A privacy-respecting, hackable metasearch engine + * + * To change the colors of the site, simple edit this variables + */ +:root { + --color-base-font: #444; + --color-base-font-rgb: 68, 68, 68; + --color-base-background: #fff; + --color-base-background-mobile: #f2f5f8; + --color-url-font: #334999; + --color-url-visited-font: #9822c3; + --color-header-background: #fdfbff; + --color-header-border: #ddd; + --color-footer-background: #fdfbff; + --color-footer-border: #ddd; + --color-sidebar-border: #ddd; + --color-sidebar-font: #000; + --color-sidebar-background: #fff; + --color-backtotop-font: #444; + --color-backtotop-border: #ddd; + --color-backtotop-background: #fff; + --color-btn-background: #3050ff; + --color-btn-font: #fff; + --color-show-btn-background: #bbb; + --color-show-btn-font: #000; + --color-search-border: #bbb; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #fff; + --color-search-font: #222; + --color-search-background-hover: #3050ff; + --color-error: #db3434; + --color-error-background: #fae1e1; + --color-warning: #dbba34; + --color-warning-background: #faf5e1; + --color-success: #42db34; + --color-success-background: #e3fae1; + --color-categories-item-selected-font: #3050ff; + --color-categories-item-border-selected: #3050ff; + --color-autocomplete-font: #000; + --color-autocomplete-border: #bbb; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #fff; + --color-autocomplete-background-hover: #e3e3e3; + --color-answer-font: #444; + --color-answer-background: #fff; + --color-result-background: #fff; + --color-result-border: #ddd; + --color-result-url-font: #000; + --color-result-vim-selected: #f7f7f7; + --color-result-vim-arrow: #000bbb; + --color-result-description-highlight-font: #000; + --color-result-link-font: #000bbb; + --color-result-link-font-highlight: #000bbb; + --color-result-link-visited-font: #9822c3; + --color-result-publishdate-font: #777; + --color-result-engines-font: #545454; + --color-result-search-url-border: #ddd; + --color-result-search-url-font: #000; + --color-result-image-span-font: #444; + --color-result-image-span-font-selected: #fff; + --color-result-image-background: #fff; + --color-settings-tr-hover: #ebebeb; + --color-settings-engine-description-font: #545454; + --color-settings-table-group-background: #0001; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #242424; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #545454; + --color-toolkit-kbd-font: #fff; + --color-toolkit-kbd-background: #000; + --color-toolkit-dialog-border: #ddd; + --color-toolkit-dialog-background: #fff; + --color-toolkit-tabs-label-border: #fff; + --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #e1e1e1; + --color-toolkit-select-border: #ddd; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; + --color-toolkit-checkbox-onoff-off-background: #ddd; + --color-toolkit-checkbox-onoff-on-background: #ddd; + --color-toolkit-checkbox-onoff-on-mark-background: #3050ff; + --color-toolkit-checkbox-onoff-on-mark-color: #fff; + --color-toolkit-checkbox-onoff-off-mark-background: #aaa; + --color-toolkit-checkbox-onoff-off-mark-color: #fff; + --color-toolkit-checkbox-label-background: #ddd; + --color-toolkit-checkbox-label-border: #ddd; + --color-toolkit-checkbox-input-border: #3050ff; + --color-toolkit-engine-tooltip-border: #ddd; + --color-toolkit-engine-tooltip-background: #fff; + --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); + --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); + --color-doc-code: #003; + --color-doc-code-background: #ddeaff; + --color-bar-chart-primary: #5bc0de; + --color-bar-chart-secondary: #deb15b; + --color-image-resolution-background: rgba(0, 0, 0, 0.5); + --color-image-resolution-font: #fff; + --color-loading-indicator: rgba(255, 255, 255, 0.2); + --color-loading-indicator-gap: #fff; + --color-line-number: #64708d; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +@media (prefers-color-scheme: dark) { + :root.theme-auto { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + } +} +:root.theme-dark { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +:root.theme-black { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + --color-base-background: #000; + --color-base-background-mobile: #000; + --color-header-background: #000; + --color-footer-background: #000; + --color-sidebar-background: #000; +} +html, +body, +main { + padding: 0; + margin: 0; +} +html { + font-family: sans-serif; + font-size: 0.9em; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; + color: var(--color-base-font); + background-color: var(--color-base-background); + scroll-behavior: smooth; +} +body { + margin-inline: 1rem; +} +a { + text-decoration: none; + color: var(--color-url-font); +} +a:visited { + color: var(--color-url-visited-font); +} +a:visited .highlight { + color: var(--color-url-visited-font); +} +/*# sourceMappingURL=rss.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/rss.min.css.map b/searx/static/themes/simple/css/rss.min.css.map index 210f335e6..db5b0a6f7 100644 --- a/searx/static/themes/simple/css/rss.min.css.map +++ b/searx/static/themes/simple/css/rss.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/less/rss.less"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iDAAA;E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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n// Reset padding and margin\nhtml,\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n\n scroll-behavior: smooth;\n}\n\nbody {\n margin-inline: 1rem;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n"]} \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index abacadeee..2dad77913 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1,4936 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +* +* To convert "style.less" to "style.css" run: $make styles +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/* + * SearXNG, A privacy-respecting, hackable metasearch engine + * + * To change the colors of the site, simple edit this variables + */ +:root { + --color-base-font: #444; + --color-base-font-rgb: 68, 68, 68; + --color-base-background: #fff; + --color-base-background-mobile: #f2f5f8; + --color-url-font: #334999; + --color-url-visited-font: #9822c3; + --color-header-background: #fdfbff; + --color-header-border: #ddd; + --color-footer-background: #fdfbff; + --color-footer-border: #ddd; + --color-sidebar-border: #ddd; + --color-sidebar-font: #000; + --color-sidebar-background: #fff; + --color-backtotop-font: #444; + --color-backtotop-border: #ddd; + --color-backtotop-background: #fff; + --color-btn-background: #3050ff; + --color-btn-font: #fff; + --color-show-btn-background: #bbb; + --color-show-btn-font: #000; + --color-search-border: #bbb; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #fff; + --color-search-font: #222; + --color-search-background-hover: #3050ff; + --color-error: #db3434; + --color-error-background: #fae1e1; + --color-warning: #dbba34; + --color-warning-background: #faf5e1; + --color-success: #42db34; + --color-success-background: #e3fae1; + --color-categories-item-selected-font: #3050ff; + --color-categories-item-border-selected: #3050ff; + --color-autocomplete-font: #000; + --color-autocomplete-border: #bbb; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #fff; + --color-autocomplete-background-hover: #e3e3e3; + --color-answer-font: #444; + --color-answer-background: #fff; + --color-result-background: #fff; + --color-result-border: #ddd; + --color-result-url-font: #000; + --color-result-vim-selected: #f7f7f7; + --color-result-vim-arrow: #000bbb; + --color-result-description-highlight-font: #000; + --color-result-link-font: #000bbb; + --color-result-link-font-highlight: #000bbb; + --color-result-link-visited-font: #9822c3; + --color-result-publishdate-font: #777; + --color-result-engines-font: #545454; + --color-result-search-url-border: #ddd; + --color-result-search-url-font: #000; + --color-result-image-span-font: #444; + --color-result-image-span-font-selected: #fff; + --color-result-image-background: #fff; + --color-settings-tr-hover: #ebebeb; + --color-settings-engine-description-font: #545454; + --color-settings-table-group-background: #0001; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #242424; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #545454; + --color-toolkit-kbd-font: #fff; + --color-toolkit-kbd-background: #000; + --color-toolkit-dialog-border: #ddd; + --color-toolkit-dialog-background: #fff; + --color-toolkit-tabs-label-border: #fff; + --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #e1e1e1; + --color-toolkit-select-border: #ddd; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; + --color-toolkit-checkbox-onoff-off-background: #ddd; + --color-toolkit-checkbox-onoff-on-background: #ddd; + --color-toolkit-checkbox-onoff-on-mark-background: #3050ff; + --color-toolkit-checkbox-onoff-on-mark-color: #fff; + --color-toolkit-checkbox-onoff-off-mark-background: #aaa; + --color-toolkit-checkbox-onoff-off-mark-color: #fff; + --color-toolkit-checkbox-label-background: #ddd; + --color-toolkit-checkbox-label-border: #ddd; + --color-toolkit-checkbox-input-border: #3050ff; + --color-toolkit-engine-tooltip-border: #ddd; + --color-toolkit-engine-tooltip-background: #fff; + --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); + --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); + --color-doc-code: #003; + --color-doc-code-background: #ddeaff; + --color-bar-chart-primary: #5bc0de; + --color-bar-chart-secondary: #deb15b; + --color-image-resolution-background: rgba(0, 0, 0, 0.5); + --color-image-resolution-font: #fff; + --color-loading-indicator: rgba(255, 255, 255, 0.2); + --color-loading-indicator-gap: #fff; + --color-line-number: #64708d; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +@media (prefers-color-scheme: dark) { + :root.theme-auto { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + } +} +:root.theme-dark { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +:root.theme-black { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + --color-base-background: #000; + --color-base-background-mobile: #000; + --color-header-background: #000; + --color-footer-background: #000; + --color-sidebar-background: #000; +} +/* + this file is generated automatically by searxng_extra/update/update_pygments.py + using pygments version 2.18.0 +*/ +.code-highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ +} +.code-highlight pre { + line-height: 100%; +} +.code-highlight td.linenos .normal { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight span.linenos { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight td.linenos .special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight span.linenos.special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight .hll { + background-color: #ffffcc; +} +.code-highlight .c { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .err { + border: 1px solid #FF0000; +} +.code-highlight .k { + color: #008000; + font-weight: bold; +} +.code-highlight .o { + color: #666666; +} +.code-highlight .ch { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cm { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cp { + color: #9C6500; +} +.code-highlight .cpf { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .c1 { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cs { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .gd { + color: #A00000; +} +.code-highlight .ge { + font-style: italic; +} +.code-highlight .ges { + font-weight: bold; + font-style: italic; +} +.code-highlight .gr { + color: #E40000; +} +.code-highlight .gh { + color: #000080; + font-weight: bold; +} +.code-highlight .gi { + color: #008400; +} +.code-highlight .go { + color: #717171; +} +.code-highlight .gp { + color: #000080; + font-weight: bold; +} +.code-highlight .gs { + font-weight: bold; +} +.code-highlight .gu { + color: #800080; + font-weight: bold; +} +.code-highlight .gt { + color: #0044DD; +} +.code-highlight .kc { + color: #008000; + font-weight: bold; +} +.code-highlight .kd { + color: #008000; + font-weight: bold; +} +.code-highlight .kn { + color: #008000; + font-weight: bold; +} +.code-highlight .kp { + color: #008000; +} +.code-highlight .kr { + color: #008000; + font-weight: bold; +} +.code-highlight .kt { + color: #B00040; +} +.code-highlight .m { + color: #666666; +} +.code-highlight .s { + color: #BA2121; +} +.code-highlight .na { + color: #687822; +} +.code-highlight .nb { + color: #008000; +} +.code-highlight .nc { + color: #0000FF; + font-weight: bold; +} +.code-highlight .no { + color: #880000; +} +.code-highlight .nd { + color: #AA22FF; +} +.code-highlight .ni { + color: #717171; + font-weight: bold; +} +.code-highlight .ne { + color: #CB3F38; + font-weight: bold; +} +.code-highlight .nf { + color: #0000FF; +} +.code-highlight .nl { + color: #767600; +} +.code-highlight .nn { + color: #0000FF; + font-weight: bold; +} +.code-highlight .nt { + color: #008000; + font-weight: bold; +} +.code-highlight .nv { + color: #19177C; +} +.code-highlight .ow { + color: #AA22FF; + font-weight: bold; +} +.code-highlight .w { + color: #bbbbbb; +} +.code-highlight .mb { + color: #666666; +} +.code-highlight .mf { + color: #666666; +} +.code-highlight .mh { + color: #666666; +} +.code-highlight .mi { + color: #666666; +} +.code-highlight .mo { + color: #666666; +} +.code-highlight .sa { + color: #BA2121; +} +.code-highlight .sb { + color: #BA2121; +} +.code-highlight .sc { + color: #BA2121; +} +.code-highlight .dl { + color: #BA2121; +} +.code-highlight .sd { + color: #BA2121; + font-style: italic; +} +.code-highlight .s2 { + color: #BA2121; +} +.code-highlight .se { + color: #AA5D1F; + font-weight: bold; +} +.code-highlight .sh { + color: #BA2121; +} +.code-highlight .si { + color: #A45A77; + font-weight: bold; +} +.code-highlight .sx { + color: #008000; +} +.code-highlight .sr { + color: #A45A77; +} +.code-highlight .s1 { + color: #BA2121; +} +.code-highlight .ss { + color: #19177C; +} +.code-highlight .bp { + color: #008000; +} +.code-highlight .fm { + color: #0000FF; +} +.code-highlight .vc { + color: #19177C; +} +.code-highlight .vg { + color: #19177C; +} +.code-highlight .vi { + color: #19177C; +} +.code-highlight .vm { + color: #19177C; +} +.code-highlight .il { + color: #666666; +} +.codelines { + margin: 0.125rem 0 0 0; + padding: 1rem 0 0 0; +} +.code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; +} +.code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; +} +.code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ +} +.code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ +} +.code-highlight span.linenos { + color: var(--color-line-number); +} +@media (prefers-color-scheme: dark) { + :root.theme-auto .code-highlight { + /* Comment */ + /* Error */ + /* Escape */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Punctuation.Marker */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ + } + :root.theme-auto .code-highlight pre { + line-height: 100%; + } + :root.theme-auto .code-highlight td.linenos .normal { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight span.linenos { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight td.linenos .special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight span.linenos.special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight .hll { + background-color: #6e7681; + } + :root.theme-auto .code-highlight .c { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .err { + color: #f88f7f; + } + :root.theme-auto .code-highlight .esc { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .g { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .k { + color: #FFAD66; + } + :root.theme-auto .code-highlight .l { + color: #D5FF80; + } + :root.theme-auto .code-highlight .n { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .o { + color: #FFAD66; + } + :root.theme-auto .code-highlight .x { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .p { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .ch { + color: #f88f7f; + font-style: italic; + } + :root.theme-auto .code-highlight .cm { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .cp { + color: #FFAD66; + font-weight: bold; + } + :root.theme-auto .code-highlight .cpf { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .c1 { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .cs { + color: #7e8aa1; + font-style: italic; + } + :root.theme-auto .code-highlight .gd { + color: #f88f7f; + background-color: #3d1e20; + } + :root.theme-auto .code-highlight .ge { + color: #d4d2c8; + font-style: italic; + } + :root.theme-auto .code-highlight .ges { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gr { + color: #f88f7f; + } + :root.theme-auto .code-highlight .gh { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gi { + color: #6ad4af; + background-color: #19362c; + } + :root.theme-auto .code-highlight .go { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .gp { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gs { + color: #d4d2c8; + font-weight: bold; + } + :root.theme-auto .code-highlight .gu { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gt { + color: #f88f7f; + } + :root.theme-auto .code-highlight .kc { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kd { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kn { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kp { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kr { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kt { + color: #73D0FF; + } + :root.theme-auto .code-highlight .ld { + color: #D5FF80; + } + :root.theme-auto .code-highlight .m { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .s { + color: #D5FF80; + } + :root.theme-auto .code-highlight .na { + color: #FFD173; + } + :root.theme-auto .code-highlight .nb { + color: #FFD173; + } + :root.theme-auto .code-highlight .nc { + color: #73D0FF; + } + :root.theme-auto .code-highlight .no { + color: #FFD173; + } + :root.theme-auto .code-highlight .nd { + color: #7e8aa1; + font-weight: bold; + font-style: italic; + } + :root.theme-auto .code-highlight .ni { + color: #95E6CB; + } + :root.theme-auto .code-highlight .ne { + color: #73D0FF; + } + :root.theme-auto .code-highlight .nf { + color: #FFD173; + } + :root.theme-auto .code-highlight .nl { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .nn { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .nx { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .py { + color: #FFD173; + } + :root.theme-auto .code-highlight .nt { + color: #5CCFE6; + } + :root.theme-auto .code-highlight .nv { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .ow { + color: #FFAD66; + } + :root.theme-auto .code-highlight .pm { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .w { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .mb { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mf { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mh { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mi { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mo { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .sa { + color: #F29E74; + } + :root.theme-auto .code-highlight .sb { + color: #D5FF80; + } + :root.theme-auto .code-highlight .sc { + color: #D5FF80; + } + :root.theme-auto .code-highlight .dl { + color: #D5FF80; + } + :root.theme-auto .code-highlight .sd { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .s2 { + color: #D5FF80; + } + :root.theme-auto .code-highlight .se { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sh { + color: #D5FF80; + } + :root.theme-auto .code-highlight .si { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sx { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sr { + color: #95E6CB; + } + :root.theme-auto .code-highlight .s1 { + color: #D5FF80; + } + :root.theme-auto .code-highlight .ss { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .bp { + color: #5CCFE6; + } + :root.theme-auto .code-highlight .fm { + color: #FFD173; + } + :root.theme-auto .code-highlight .vc { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vg { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vi { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vm { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .il { + color: #DFBFFF; + } + :root.theme-auto .code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; + } + :root.theme-auto .code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; + } + :root.theme-auto .code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ + } + :root.theme-auto .code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ + } + :root.theme-auto .code-highlight span.linenos { + color: var(--color-line-number); + } +} +:root.theme-dark .code-highlight { + /* Comment */ + /* Error */ + /* Escape */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Punctuation.Marker */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ +} +:root.theme-dark .code-highlight pre { + line-height: 100%; +} +:root.theme-dark .code-highlight td.linenos .normal { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight span.linenos { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight td.linenos .special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight span.linenos.special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight .hll { + background-color: #6e7681; +} +:root.theme-dark .code-highlight .c { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .err { + color: #f88f7f; +} +:root.theme-dark .code-highlight .esc { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .g { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .k { + color: #FFAD66; +} +:root.theme-dark .code-highlight .l { + color: #D5FF80; +} +:root.theme-dark .code-highlight .n { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .o { + color: #FFAD66; +} +:root.theme-dark .code-highlight .x { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .p { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .ch { + color: #f88f7f; + font-style: italic; +} +:root.theme-dark .code-highlight .cm { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .cp { + color: #FFAD66; + font-weight: bold; +} +:root.theme-dark .code-highlight .cpf { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .c1 { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .cs { + color: #7e8aa1; + font-style: italic; +} +:root.theme-dark .code-highlight .gd { + color: #f88f7f; + background-color: #3d1e20; +} +:root.theme-dark .code-highlight .ge { + color: #d4d2c8; + font-style: italic; +} +:root.theme-dark .code-highlight .ges { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gr { + color: #f88f7f; +} +:root.theme-dark .code-highlight .gh { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gi { + color: #6ad4af; + background-color: #19362c; +} +:root.theme-dark .code-highlight .go { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .gp { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gs { + color: #d4d2c8; + font-weight: bold; +} +:root.theme-dark .code-highlight .gu { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gt { + color: #f88f7f; +} +:root.theme-dark .code-highlight .kc { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kd { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kn { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kp { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kr { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kt { + color: #73D0FF; +} +:root.theme-dark .code-highlight .ld { + color: #D5FF80; +} +:root.theme-dark .code-highlight .m { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .s { + color: #D5FF80; +} +:root.theme-dark .code-highlight .na { + color: #FFD173; +} +:root.theme-dark .code-highlight .nb { + color: #FFD173; +} +:root.theme-dark .code-highlight .nc { + color: #73D0FF; +} +:root.theme-dark .code-highlight .no { + color: #FFD173; +} +:root.theme-dark .code-highlight .nd { + color: #7e8aa1; + font-weight: bold; + font-style: italic; +} +:root.theme-dark .code-highlight .ni { + color: #95E6CB; +} +:root.theme-dark .code-highlight .ne { + color: #73D0FF; +} +:root.theme-dark .code-highlight .nf { + color: #FFD173; +} +:root.theme-dark .code-highlight .nl { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .nn { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .nx { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .py { + color: #FFD173; +} +:root.theme-dark .code-highlight .nt { + color: #5CCFE6; +} +:root.theme-dark .code-highlight .nv { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .ow { + color: #FFAD66; +} +:root.theme-dark .code-highlight .pm { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .w { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .mb { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mf { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mh { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mi { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mo { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .sa { + color: #F29E74; +} +:root.theme-dark .code-highlight .sb { + color: #D5FF80; +} +:root.theme-dark .code-highlight .sc { + color: #D5FF80; +} +:root.theme-dark .code-highlight .dl { + color: #D5FF80; +} +:root.theme-dark .code-highlight .sd { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .s2 { + color: #D5FF80; +} +:root.theme-dark .code-highlight .se { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sh { + color: #D5FF80; +} +:root.theme-dark .code-highlight .si { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sx { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sr { + color: #95E6CB; +} +:root.theme-dark .code-highlight .s1 { + color: #D5FF80; +} +:root.theme-dark .code-highlight .ss { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .bp { + color: #5CCFE6; +} +:root.theme-dark .code-highlight .fm { + color: #FFD173; +} +:root.theme-dark .code-highlight .vc { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vg { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vi { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vm { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .il { + color: #DFBFFF; +} +:root.theme-dark .code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; +} +:root.theme-dark .code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; +} +:root.theme-dark .code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ +} +:root.theme-dark .code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ +} +:root.theme-dark .code-highlight span.linenos { + color: var(--color-line-number); +} +html.no-js .hide_if_nojs { + display: none; +} +html.js .show_if_nojs { + display: none; +} +.center { + text-align: center; +} +.right { + float: right; +} +.left { + float: left; +} +.invisible { + display: none !important; +} +.list-unstyled { + list-style-type: none; +} +.list-unstyled li { + margin-top: 4px; + margin-bottom: 4px; +} +.danger { + background-color: var(--color-error-background); +} +.warning { + background: var(--color-warning-background); +} +.success { + background: var(--color-success-background); +} +.badge { + display: inline-block; + color: var(--color-toolkit-badge-font); + background-color: var(--color-toolkit-badge-background); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + min-width: 10px; + padding: 1px 5px; + border-radius: 5px; +} +kbd { + padding: 2px 4px; + margin: 1px; + font-size: 90%; + color: var(--color-toolkit-kbd-font); + background: var(--color-toolkit-kbd-background); +} +table { + width: 100%; +} +table.striped tr { + border-bottom: 1px solid var(--color-settings-tr-hover); +} +th { + padding: 0.4em; +} +td { + padding: 0 4px; +} +tr:hover { + background: var(--color-settings-tr-hover) !important; +} +div.selectable_url { + display: block; + border: 1px solid var(--color-result-search-url-border); + padding: 4px; + color: var(--color-result-search-url-font); + margin: 0.1em; + overflow: hidden; + height: 1.2em; + line-height: 1.2em; + border-radius: 5px; +} +div.selectable_url pre { + display: block; + font-size: 0.8em; + word-break: break-all; + margin: 0.1em; + user-select: all; +} +.dialog-error { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: right; + border-radius: 10px; + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} +.dialog-error .close { + float: left; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-error ul, +.dialog-error ol, +.dialog-error p { + margin: 1px 0 0 0; +} +.dialog-error table { + width: auto; +} +.dialog-error tr { + vertical-align: text-top; +} +.dialog-error tr:hover { + background: transparent !important; +} +.dialog-error td { + padding: 0 1em 0 0; + padding-top: 0; + padding-left: 1rem; + padding-bottom: 0; + padding-right: 0; +} +.dialog-error h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-error-block { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: right; + border-radius: 10px; + display: block; + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} +.dialog-error-block .close { + float: left; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-error-block ul, +.dialog-error-block ol, +.dialog-error-block p { + margin: 1px 0 0 0; +} +.dialog-error-block table { + width: auto; +} +.dialog-error-block tr { + vertical-align: text-top; +} +.dialog-error-block tr:hover { + background: transparent !important; +} +.dialog-error-block td { + padding: 0 1em 0 0; + padding-top: 0; + padding-left: 1rem; + padding-bottom: 0; + padding-right: 0; +} +.dialog-error-block h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-warning { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: right; + border-radius: 10px; + color: var(--color-warning); + background: var(--color-warning-background); + border-color: var(--color-warning); +} +.dialog-warning .close { + float: left; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-warning ul, +.dialog-warning ol, +.dialog-warning p { + margin: 1px 0 0 0; +} +.dialog-warning table { + width: auto; +} +.dialog-warning tr { + vertical-align: text-top; +} +.dialog-warning tr:hover { + background: transparent !important; +} +.dialog-warning td { + padding: 0 1em 0 0; + padding-top: 0; + padding-left: 1rem; + padding-bottom: 0; + padding-right: 0; +} +.dialog-warning h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-modal { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: right; + border-radius: 10px; + display: block; + background: var(--color-toolkit-dialog-background); + position: fixed; + top: 50%; + left: 50%; + margin: 0 auto; + transform: translate(-50%, -50%); + z-index: 5000; +} +.dialog-modal .close { + float: left; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-modal ul, +.dialog-modal ol, +.dialog-modal p { + margin: 1px 0 0 0; +} +.dialog-modal table { + width: auto; +} +.dialog-modal tr { + vertical-align: text-top; +} +.dialog-modal tr:hover { + background: transparent !important; +} +.dialog-modal td { + padding: 0 1em 0 0; + padding-top: 0; + padding-left: 1rem; + padding-bottom: 0; + padding-right: 0; +} +.dialog-modal h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-modal h3 { + margin-top: 0; +} +.btn-collapse { + cursor: pointer; +} +.scrollx { + overflow: auto hidden; + display: block; + padding: 0; + margin: 0; + border: none; +} +/* -- tabs -- */ +.tabs .tabs > label { + font-size: 90%; +} +ul.tabs { + border-bottom: 1px solid var(--color-toolkit-tabs-section-border); + list-style: none; + padding-left: 0; +} +ul.tabs li { + display: flex; +} +.tabs { + display: flex; + flex-wrap: wrap; + width: 100%; + min-width: 100%; +} +.tabs > * { + order: 2; +} +.tabs > input[type=radio] { + display: none; +} +.tabs > label, +.tabs > li > a { + order: 1; + padding: 0.7em; + margin: 0 0.7em; + letter-spacing: 0.5px; + text-transform: uppercase; + border: solid var(--color-toolkit-tabs-label-border); + border-width: 0 0 2px 0; + color: unset; + -webkit-touch-callout: none; + user-select: none; + cursor: pointer; +} +.tabs > label.active, +.tabs > li > a.active { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); +} +.tabs > label:hover, +.tabs > li > a:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +.tabs > section { + min-width: 100%; + padding: 0.7rem 0; + box-sizing: border-box; + border-top: 1px solid var(--color-toolkit-tabs-section-border); + display: none; +} +.tabs > label:last-of-type { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); + letter-spacing: -0.1px; +} +.tabs > section:last-of-type { + display: block; +} +html body .tabs > input:checked ~ section { + display: none; +} +html body .tabs > input:checked ~ label { + position: inherited; + background: inherit; + border-bottom: 2px solid transparent; + font-weight: normal; + color: inherit; +} +html body .tabs > input:checked ~ label:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +html body .tabs > input:checked + label { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); +} +html body .tabs > input:checked + label + section { + display: block; +} +/* -- select -- */ +select { + height: 2.4rem; + margin-top: 0; + margin-left: 1rem; + margin-bottom: 0; + margin-right: 0; + padding: 0.2rem !important; + color: var(--color-search-font); + font-size: 0.9rem; + z-index: 100; +} +select:hover, +select:focus { + cursor: pointer; +} +@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { + select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + border-width: 0 2rem 0 0; + border-color: transparent; + background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; + background-position-x: calc(100% + 2rem); + background-size: 2rem; + background-origin: content-box; + background-color: var(--color-toolkit-select-background); + outline: medium none; + text-overflow: ellipsis; + border-radius: 5px; + } + select:hover, + select:focus { + background-color: var(--color-toolkit-select-background-hover); + } + select option { + background-color: var(--color-base-background); + } + @media (prefers-color-scheme: dark) { + html.theme-auto select, + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } + } + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } +} +/* -- checkbox-onoff -- */ +input.checkbox-onoff[type="checkbox"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + display: inline-block; + width: 2.5em; + height: 0.7em; + box-shadow: none !important; + margin: 0 16px; + border-radius: 10px; + position: relative; + /* focus & hover */ +} +input.checkbox-onoff[type="checkbox"]:focus, +input.checkbox-onoff[type="checkbox"]:hover { + outline: none; +} +input.checkbox-onoff[type="checkbox"]:focus::after { + content: ""; + position: absolute; + width: 3.5em; + height: 1.65em; + border: 1px solid var(--color-btn-background); + border-radius: 12px; + box-shadow: var(--color-btn-background) 0 0 3px; + z-index: 1200; + top: -0.55em; + left: -0.6em; +} +input.checkbox-onoff[type="checkbox"]::before { + position: absolute; + top: -0.5em; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 1.875em; + height: 1.875em; + border-radius: 50%; +} +/* check mark +reversed-checkbox displays unchecked checkedboxes as checked, and vice versa. +see https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313 +*/ +input.checkbox-onoff[type="checkbox"], +input.checkbox-onoff.reversed-checkbox[type="checkbox"]:checked { + background: var(--color-toolkit-checkbox-onoff-off-background); +} +input.checkbox-onoff[type="checkbox"]::before, +input.checkbox-onoff.reversed-checkbox[type="checkbox"]:checked::before { + left: -0.5em; + content: "\2715"; + color: var(--color-toolkit-checkbox-onoff-off-mark-color); + background: var(--color-toolkit-checkbox-onoff-off-mark-background); +} +input.checkbox-onoff[type="checkbox"]:checked, +input.checkbox-onoff.reversed-checkbox[type="checkbox"] { + background: var(--color-toolkit-checkbox-onoff-on-background); +} +input.checkbox-onoff[type="checkbox"]:checked::before, +input.checkbox-onoff.reversed-checkbox[type="checkbox"]::before { + left: calc(100% - 1.5em); + content: "\2713"; + color: var(--color-toolkit-checkbox-onoff-on-mark-color); + background: var(--color-toolkit-checkbox-onoff-on-mark-background); +} +/* -- checkbox -- */ +@supports (transform: rotate(-45deg)) { + input[type=checkbox]:not(.checkbox-onoff) { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 20px; + height: 20px; + cursor: pointer; + position: relative; + top: 0; + left: 0; + border: 2px solid var(--color-toolkit-checkbox-input-border); + border-radius: 0.3em; + } + input[type=checkbox]:not(.checkbox-onoff)::after { + content: ''; + width: 9px; + height: 5px; + position: absolute; + top: 3px; + left: 2px; + border: 3px solid var(--color-toolkit-checkbox-label-border); + border-top: none; + border-right: none; + background: transparent; + opacity: 0; + transform: rotate(-45deg); + } + input[type=checkbox]:not(.checkbox-onoff):checked::after { + border-color: var(--color-toolkit-checkbox-input-border); + opacity: 1; + } + input[type=checkbox][disabled]:not(.checkbox-onoff) { + border: inherit; + background-color: transparent !important; + cursor: inherit; + } + input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after { + opacity: 0.5; + } +} +@media screen and (max-width: 50em) { + .tabs > label { + width: 100%; + } +} +/* -- loader -- */ +.loader, +.loader::after { + border-radius: 50%; + width: 2em; + height: 2em; +} +.loader { + margin: 1em auto; + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 0.5em solid var(--color-toolkit-loader-border); + border-right: 0.5em solid var(--color-toolkit-loader-border); + border-bottom: 0.5em solid var(--color-toolkit-loader-border); + border-left: 0.5em solid var(--color-toolkit-loader-borderleft); + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation: load8 1.2s infinite linear; + animation: load8 1.2s infinite linear; +} +@-webkit-keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +/* -- engine-tooltip -- */ +.engine-tooltip { + display: none; + position: absolute; + padding: 0.5rem 1rem; + margin: 0 0 0 2rem; + border: 1px solid var(--color-toolkit-engine-tooltip-border); + background: var(--color-toolkit-engine-tooltip-background); + font-size: 14px; + font-weight: normal; + z-index: 5000; + text-align: left; + border-radius: 10px; +} +th:hover .engine-tooltip, +td:hover .engine-tooltip, +.engine-tooltip:hover { + display: inline-block; +} +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-flow: row nowrap; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: var(--color-base-font); + border: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(var(--color-base-font-rgb), 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.4rem 0; + width: 1px; +} +/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ +.autocomplete { + position: absolute; + width: 44rem; + max-height: 0; + overflow-y: hidden; + text-align: right; + border-radius: 10px; +} +.autocomplete:active, +.autocomplete:focus, +.autocomplete:hover { + background-color: var(--color-autocomplete-background); +} +.autocomplete:empty { + display: none; +} +.autocomplete > ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.autocomplete > ul > li { + cursor: pointer; + padding: 0.5rem 1rem; +} +.autocomplete > ul > li.active, +.autocomplete > ul > li:active, +.autocomplete > ul > li:focus, +.autocomplete > ul > li:hover { + background-color: var(--color-autocomplete-background-hover); +} +.autocomplete > ul > li.active a:active, +.autocomplete > ul > li:active a:active, +.autocomplete > ul > li:focus a:active, +.autocomplete > ul > li:hover a:active, +.autocomplete > ul > li.active a:focus, +.autocomplete > ul > li:active a:focus, +.autocomplete > ul > li:focus a:focus, +.autocomplete > ul > li:hover a:focus, +.autocomplete > ul > li.active a:hover, +.autocomplete > ul > li:active a:hover, +.autocomplete > ul > li:focus a:hover, +.autocomplete > ul > li:hover a:hover { + text-decoration: none; +} +.autocomplete > ul > li.locked { + cursor: inherit; +} +.autocomplete.open { + display: block; + background-color: var(--color-autocomplete-background); + color: var(--color-autocomplete-font); + max-height: 32rem; + overflow-y: auto; + z-index: 5000; + margin-top: 3.5rem; + border-radius: 0.8rem; +} +.autocomplete.open:empty { + display: none; +} +@media screen and (max-width: 50em) { + .autocomplete { + width: 100%; + } + .autocomplete > ul > li { + padding: 1rem; + } +} +#main_results #results.image-detail-open.only_template_images { + width: min(98%, 59.25rem) !important; +} +#main_results #results.only_template_images.image-detail-open #backToTop { + right: 56.75rem !important; + left: inherit; +} +article.result-images .detail { + display: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail { + display: flex; + flex-direction: column; + position: fixed; + right: 60rem; + left: 0; + top: 13rem; + transition: top 0.064s ease-in 0s; + bottom: 0; + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-background); + z-index: 1000; + padding: 4rem 3rem 3rem 3rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { + display: block; + flex: 1; + text-align: left; + width: 100%; + border: none; + text-decoration: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + padding: 0; + margin: 0; + border: none; + object-fit: contain; + width: inherit; + height: inherit; + max-width: 100%; + min-height: inherit; + max-height: calc(100vh - 25rem - 7rem); + background: inherit; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels { + color: var(--color-result-detail-font); + height: 19rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr { + border-top: 1px solid var(--color-result-detail-hr); + border-bottom: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4 { + height: 2rem; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.9rem; + margin-bottom: 0; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { + color: var(--color-result-detail-label-font); + font-size: 0.9rem; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + margin: 0.8rem 0; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { + display: inline-block; + width: 12rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a { + text-align: right; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content { + height: 2rem; + line-height: unset; + overflow: hidden; + text-overflow: ellipsis; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url { + white-space: nowrap; + overflow: hidden hidden; + text-overflow: ellipsis; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover { + position: relative; + overflow: inherit !important; + background: var(--color-result-detail-background); + text-overflow: inherit !important; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active { + color: var(--color-result-detail-link); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover { + text-decoration: underline; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close { + top: 1rem; + right: 1rem; + padding: 0.4rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { + top: 1rem; + left: 6rem; + padding-top: 0.4rem; + padding-left: 0.5rem; + padding-bottom: 0.4rem; + padding-right: 0.3rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { + top: 1rem; + left: 2rem; + padding: 0.4rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { + border-radius: 50%; + display: block; + width: 1.5rem; + height: 1.5rem; + position: absolute; + filter: opacity(40%); + z-index: 1200; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span { + display: block; + width: 1.5rem; + height: 1.5rem; + text-align: center; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before { + vertical-align: sub; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active { + color: var(--color-result-detail-font); + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-font); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover { + filter: opacity(80%); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .loader { + position: absolute; + top: 1rem; + left: 50%; + border-top: 0.5em solid var(--color-result-detail-loader-border); + border-right: 0.5em solid var(--color-result-detail-loader-border); + border-bottom: 0.5em solid var(--color-result-detail-loader-border); + border-left: 0.5em solid var(--color-result-detail-loader-borderleft); +} +#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail { + top: 0; +} +#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img { + max-height: calc(100vh - 25rem); +} +@media screen and (max-width: 79.75em) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + right: 0; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { + display: flex; + flex-direction: column; + justify-content: center; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + width: 100%; + max-height: calc(100vh - 24rem); + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { + left: 1rem; + } +} +@media screen and (max-width: 50em) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + right: 0; + padding: 1rem; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + width: 100%; + max-height: calc(100vh - 20rem); + margin: 0; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { + width: inherit; + margin-left: 1rem; + } +} +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; +} +@keyframes dialogmodal { + 0% { + opacity: 0; + } + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } +} +input.checkbox-onoff[type="checkbox"]::before { + transition: left 0.25s; +} +iframe[src^="https://w.soundcloud.com"] { + height: 120px; +} +iframe[src^="https://www.deezer.com"] { + height: 94px; +} +iframe[src^="https://www.mixcloud.com"] { + height: 250px; +} +iframe[src^="https://bandcamp.com/EmbeddedPlayer"] { + height: 350px; +} +iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"] { + height: 120px; +} +iframe[src^="https://genius.com/songs"] { + height: 65px; +} +.info-page code { + font-family: monospace; + border-radius: 5px; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; +} +.stats_endpoint .github-issue-button { + display: block; + font-size: 16px; +} +.stats_endpoint .issue-hide { + display: none; +} +.stats_endpoint input[type=checked] { + position: absolute; +} +.stats_endpoint label { + margin: 1rem 1rem 1rem 0; +} +.stats_endpoint .step_content { + margin: 1rem 1rem 1rem 2rem; +} +.stats_endpoint .step1, +.stats_endpoint .step2 { + visibility: hidden; +} +.stats_endpoint .step1_delay { + transition: visibility 0s linear 4s; +} +.stats_endpoint #step1:checked ~ .step1, +.stats_endpoint #step2:checked ~ .step2 { + visibility: visible; +} +.engine-stats { + border-spacing: 0; + border-collapse: collapse; +} +.engine-stats tr td, +.engine-stats tr th { + border-bottom: 1px solid var(--color-result-border); + padding: 0.25rem; +} +.engine-stats table.engine-tooltip { + border-spacing: 0; + border-collapse: collapse; +} +.engine-stats table.engine-tooltip td, +.engine-stats table.engine-tooltip th { + border: none; +} +.engine-stats .engine-name { + width: 20rem; +} +.engine-stats .engine-score { + width: 7rem; + text-align: right; +} +.engine-stats .engine-reliability { + text-align: right; +} +table.engine-error th.engine-error-type, +table.engine-error td.engine-error-type, +failed-test { + width: 10rem; +} +.engine-errors { + margin-top: 3rem; +} +.engine-errors table.engine-error { + max-width: 1280px; + margin: 1rem 0 3rem 0; + border: 1px solid var(--color-result-border); + text-align: right; +} +.engine-errors table.engine-error tr th, +.engine-errors table.engine-error tr td { + padding: 0.5rem; +} +.engine-errors table.engine-error span.log_parameters { + border-right: 1px solid solid var(--color-result-border); + padding: 0 1rem 0 0; + margin: 0 0 0 0.5rem; +} +.bar-chart-value { + width: 3em; + display: inline-block; + text-align: right; + padding-right: 0.5rem; +} +.bar-chart-graph { + width: calc(100% - 5rem); + display: inline-block; +} +.bar-chart-bar { + border: 3px solid var(--color-bar-chart-primary); + margin: 1px 0; +} +.bar-chart-serie1 { + border: 3px solid var(--color-bar-chart-primary); + margin: 1px 0; + float: left; +} +.bar-chart-serie2 { + border: 3px solid var(--color-bar-chart-secondary); + margin: 1px 0; + float: left; +} +.bar0 { + width: 0; + border: 0; +} +.bar1 { + width: 1%; +} +.bar2 { + width: 2%; +} +.bar3 { + width: 3%; +} +.bar4 { + width: 4%; +} +.bar5 { + width: 5%; +} +.bar6 { + width: 6%; +} +.bar7 { + width: 7%; +} +.bar8 { + width: 8%; +} +.bar9 { + width: 9%; +} +.bar10 { + width: 10%; +} +.bar11 { + width: 11%; +} +.bar12 { + width: 12%; +} +.bar13 { + width: 13%; +} +.bar14 { + width: 14%; +} +.bar15 { + width: 15%; +} +.bar16 { + width: 16%; +} +.bar17 { + width: 17%; +} +.bar18 { + width: 18%; +} +.bar19 { + width: 19%; +} +.bar20 { + width: 20%; +} +.bar21 { + width: 21%; +} +.bar22 { + width: 22%; +} +.bar23 { + width: 23%; +} +.bar24 { + width: 24%; +} +.bar25 { + width: 25%; +} +.bar26 { + width: 26%; +} +.bar27 { + width: 27%; +} +.bar28 { + width: 28%; +} +.bar29 { + width: 29%; +} +.bar30 { + width: 30%; +} +.bar31 { + width: 31%; +} +.bar32 { + width: 32%; +} +.bar33 { + width: 33%; +} +.bar34 { + width: 34%; +} +.bar35 { + width: 35%; +} +.bar36 { + width: 36%; +} +.bar37 { + width: 37%; +} +.bar38 { + width: 38%; +} +.bar39 { + width: 39%; +} +.bar40 { + width: 40%; +} +.bar41 { + width: 41%; +} +.bar42 { + width: 42%; +} +.bar43 { + width: 43%; +} +.bar44 { + width: 44%; +} +.bar45 { + width: 45%; +} +.bar46 { + width: 46%; +} +.bar47 { + width: 47%; +} +.bar48 { + width: 48%; +} +.bar49 { + width: 49%; +} +.bar50 { + width: 50%; +} +.bar51 { + width: 51%; +} +.bar52 { + width: 52%; +} +.bar53 { + width: 53%; +} +.bar54 { + width: 54%; +} +.bar55 { + width: 55%; +} +.bar56 { + width: 56%; +} +.bar57 { + width: 57%; +} +.bar58 { + width: 58%; +} +.bar59 { + width: 59%; +} +.bar60 { + width: 60%; +} +.bar61 { + width: 61%; +} +.bar62 { + width: 62%; +} +.bar63 { + width: 63%; +} +.bar64 { + width: 64%; +} +.bar65 { + width: 65%; +} +.bar66 { + width: 66%; +} +.bar67 { + width: 67%; +} +.bar68 { + width: 68%; +} +.bar69 { + width: 69%; +} +.bar70 { + width: 70%; +} +.bar71 { + width: 71%; +} +.bar72 { + width: 72%; +} +.bar73 { + width: 73%; +} +.bar74 { + width: 74%; +} +.bar75 { + width: 75%; +} +.bar76 { + width: 76%; +} +.bar77 { + width: 77%; +} +.bar78 { + width: 78%; +} +.bar79 { + width: 79%; +} +.bar80 { + width: 80%; +} +.bar81 { + width: 81%; +} +.bar82 { + width: 82%; +} +.bar83 { + width: 83%; +} +.bar84 { + width: 84%; +} +.bar85 { + width: 85%; +} +.bar86 { + width: 86%; +} +.bar87 { + width: 87%; +} +.bar88 { + width: 88%; +} +.bar89 { + width: 89%; +} +.bar90 { + width: 90%; +} +.bar91 { + width: 91%; +} +.bar92 { + width: 92%; +} +.bar93 { + width: 93%; +} +.bar94 { + width: 94%; +} +.bar95 { + width: 95%; +} +.bar96 { + width: 96%; +} +.bar97 { + width: 97%; +} +.bar98 { + width: 98%; +} +.bar99 { + width: 99%; +} +.bar100 { + width: 100%; +} +.osm-map-box { + height: 300px; + width: 100%; + margin: 10px 0; +} +#main_index { + margin-top: 26vh; +} +.index { + text-align: center; +} +.index .title { + background: url('../img/searxng.png') no-repeat; + min-height: 4rem; + margin: 4rem auto; + background-position: center; + background-size: contain; +} +.index h1 { + font-size: 4em; + visibility: hidden; +} +.index #search, +.index #search_header { + margin: 0 auto; + background: inherit; + border: inherit; + padding: 0; + display: block; +} +.index .search_filters { + display: block; + margin: 1em 0; +} +.index .category label { + padding: 6px 10px; + border-bottom: initial !important; +} +@media screen and (max-width: 79.75em) { + div.title h1 { + font-size: 1em; + } + #main_index { + margin-top: 6em; + } +} +table { + border-collapse: collapse; +} +table th, +table td { + text-align: center; + padding: 1rem 0.5rem; + text-align: right; +} +table tr.pref-group th { + font-weight: normal; + text-align: right; + background: var(--color-settings-table-group-background); +} +#main_preferences form { + width: 100%; +} +#main_preferences fieldset { + margin: 8px; + border: none; +} +#main_preferences legend { + margin: 0; + padding: 5px 0 0 0; + display: block; + float: right; + width: 300px; +} +#main_preferences input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + border-radius: 5px; +} +#main_preferences input[type="text"]:hover, +#main_preferences input[type="text"]:focus { + background-color: var(--color-toolkit-select-background-hover); +} +#main_preferences .value { + margin: 0; + padding: 0; + float: right; + width: 15em; +} +#main_preferences .value select, +#main_preferences .value input[type="text"] { + font-size: inherit !important; + margin-top: 0; + margin-left: 1rem; + margin-bottom: 0; + margin-right: 0; +} +#main_preferences .value select { + width: 14rem; +} +#main_preferences .value select:focus, +#main_preferences .value input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); +} +#main_preferences .description { + margin: 0; + padding: 5px 0 0 0; + float: left; + width: 50%; + color: var(--color-settings-engine-description-font); + font-size: 90%; +} +#main_preferences .bang { + text-align: right; + border-radius: 5px; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; +} +#main_preferences .category { + margin-left: 0.5rem; +} +#main_preferences .category label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + border-radius: 5px; +} +#main_preferences .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); +} +#main_preferences table.table_engines th.name { + /* stylelint-disable */ + /* stylelint-enable */ +} +#main_preferences table.table_engines th.name label { + cursor: pointer; +} +#main_preferences table.table_engines th.name .engine-tooltip { + margin-top: 1.8rem; + right: calc((100% - 85em) / 2 + 10em); + max-width: 40rem; +} +#main_preferences table.table_engines th.name .engine-tooltip .engine-description { + margin-top: 0.5rem; +} +#main_preferences table.table_engines th.name .engine-tooltip .bang { + margin: 0.3rem; +} +#main_preferences table.table_engines .checkbox-col, +#main_preferences table.table_engines .name, +#main_preferences table.table_engines .shortcut { + text-align: right; +} +#main_preferences table.cookies { + width: 100%; + direction: ltr; +} +#main_preferences table.cookies th, +#main_preferences table.cookies td { + text-align: left; + font-family: monospace; + font-size: 1rem; + padding: 0.5em; + vertical-align: top; +} +#main_preferences table.cookies td:first-child { + word-break: keep-all; + width: 14rem; + padding-right: 1rem; +} +#main_preferences table.cookies td:last-child { + word-break: break-all; +} +#main_preferences table.cookies > tbody > tr:nth-child(even) > th, +#main_preferences table.cookies > tbody > tr:nth-child(even) > td { + background-color: var(--color-settings-tr-hover); +} +#main_preferences .preferences_back { + background: none repeat scroll 0 0 var(--color-btn-background); + color: var(--color-btn-font); + border: 0 none; + border-radius: 10px; + cursor: pointer; + display: inline-block; + margin: 2px 4px; + padding: 0.7em; +} +#main_preferences .preferences_back a { + color: var(--color-settings-return-font); +} +#main_preferences .preferences_back a::first-letter { + text-transform: uppercase; +} +#main_preferences #toggle-all-engines-container { + width: max-content; + margin-left: auto; +} +#main_preferences div.selectable_url pre { + width: 100%; +} +#main_preferences #copy-hash-container { + display: flex; + align-items: center; + gap: 0.5rem; +} +#main_preferences #copy-hash-container div.selectable_url pre { + width: auto; + flex-grow: 1; +} +#main_preferences #pref-hash-input { + width: 100%; +} +@media screen and (max-width: 79.75em) { + .preferences_back { + clear: both; + } + .engine-tooltip { + right: 10em !important; + } +} +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +*/ +#search { + padding: 0; + margin: 0; +} +#search_header { + padding-top: 1.5em; + padding-left: 2em; + padding-right: 7rem; + margin: 0; + background: var(--color-header-background); + border-bottom: 1px solid var(--color-header-border); + display: grid; + gap: 1rem 1.2rem; + grid-template-columns: 3rem 1fr; + grid-template-areas: "logo search" "spacer categories"; +} +.category_checkbox, +.category_button { + display: inline-block; + position: relative; + margin-left: 1rem; + padding: 0; +} +.category_checkbox input { + display: none; +} +.category_checkbox label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + user-select: none; +} +.category_checkbox label svg { + padding-right: 0.2rem; +} +.category_checkbox label div.category_name { + margin: auto 0; +} +.category_checkbox input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +button.category_button { + background-color: inherit; + color: var(--color-base-font); + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + align-items: center; + text-transform: capitalize; + font-size: 0.9em; + border: none; + border-bottom: 2px solid transparent; +} +button.category_button svg { + padding-right: 0.2rem; +} +button.category_button.selected, +button.category_button:active { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected { + color: var(--color-base-font); + border-bottom: none; +} +.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +#search_logo { + padding: 0.5rem 10px 0 10px; + grid-area: logo; + display: flex; + align-items: center; + justify-content: center; +} +#search_logo svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; +} +.search_categories { + grid-area: categories; +} +.search_categories .help { + display: none; +} +.search_categories:hover .help { + display: block; + position: absolute; + background: var(--color-base-background); + padding: 1rem 0.6rem 0.6rem 0; + z-index: 1000; + width: 100%; + left: -0.1rem; +} +#search_view { + padding: 0.5rem 0.3rem 0 0.5rem; + grid-area: search; +} +body.results_endpoint #search_view { + padding: 0.5rem 2.8rem 0 0; +} +.search_box { + border-radius: 0.8rem; + width: 44rem; + display: inline-flex; + flex-direction: row; + white-space: nowrap; + box-shadow: var(--color-search-shadow); +} +#clear_search { + display: block; + border-collapse: separate; + box-sizing: border-box; + width: 1.8rem; + margin: 0; + padding: 0.8rem 0.2rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 1000; +} +#clear_search:hover { + color: var(--color-search-background-hover); +} +#clear_search.empty * { + display: none; +} +html.no-js #clear_search.hide_if_nojs { + display: none; +} +#q, +#send_search { + display: block; + margin: 0; + padding: 0.8rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 100; +} +#q { + width: 100%; + padding-right: 1rem; + padding-left: 0 !important; + border-radius: 0 0.8rem 0.8rem 0; +} +#q::-ms-clear, +#q::-webkit-search-cancel-button { + display: none; +} +#send_search { + border-radius: 0.8rem 0 0 0.8rem; +} +#send_search:hover { + cursor: pointer; + background-color: var(--color-search-background-hover); + color: var(--color-search-background); +} +.no-js #clear_search, +.no-js #send_search { + width: auto !important; + border-right: 1px solid var(--color-search-border); +} +.search_filters { + margin-top: 0.6rem; + margin-left: 0; + margin-bottom: 0; + margin-right: 10.6rem; + display: flex; + overflow-x: auto; + overscroll-behavior-inline: contain; +} +.search_filters select { + background-color: inherit; +} +.search_filters select:hover, +.search_filters select:focus { + color: var(--color-base-font); +} +@media screen and (max-width: 79.75em) { + #search_header { + padding: 1.5em 0.5rem 0 0.5rem; + column-gap: 0.5rem; + } + .search_filters { + margin-top: 0.6rem; + margin-left: 0; + margin-bottom: 0; + margin-right: 3.5rem; + } + #categories { + font-size: 90%; + clear: both; + } +} +@media screen and (max-width: 79.75em) and (hover: none) { + #main_index #categories_container, + #main_results #categories_container { + width: max-content; + } + #main_index #categories_container .category_checkbox, + #main_results #categories_container .category_checkbox { + display: inline-block; + width: auto; + } + #main_index #categories, + #main_results #categories { + width: 100%; + text-align: right; + overflow: scroll hidden; + -webkit-overflow-scrolling: touch; + } +} +@media screen and (max-width: 50em) { + #search_header { + width: 100%; + margin: 0; + padding: 0.1rem 0 0 0; + gap: 0 0; + grid-template-areas: "logo search" "categories categories"; + } + .search_logo { + padding: 0; + } + .search_box { + width: 98%; + display: flex; + } + #q { + width: 100%; + flex: 1; + } + .search_filters { + margin: 0 10px; + padding: 0.5rem 0; + } + .category { + display: inline-block; + width: auto; + margin: 0; + } + .category svg { + display: none; + } + .category_checkbox label { + padding: 1rem !important; + margin: 0 !important; + } + .category_button { + padding: 1rem !important; + margin: 0 !important; + } + #search_view:focus-within { + display: block; + background-color: var(--color-search-background); + position: absolute; + top: 0; + height: 100%; + width: 100%; + z-index: 2000; + } + #search_view:focus-within .search_box { + border-bottom: 1px solid var(--color-search-border); + width: 100%; + border-radius: 0; + box-shadow: none; + } + #search_view:focus-within .search_box #send_search { + margin-left: 0 !important; + } + #search_view:focus-within .search_box * { + border: none; + border-radius: 0; + box-shadow: none; + } + #main_results #q:placeholder-shown ~ #send_search { + margin-left: 2.6rem; + transition: margin 0.1s; + } +} +@media screen and (max-width: 20rem) { + #search_header { + grid-template-areas: "search search" "categories categories"; + } + #search_logo { + display: none; + } +} +#categories { + -webkit-touch-callout: none; + user-select: none; +} +#categories::-webkit-scrollbar { + width: 0; + height: 0; +} +#categories_container { + position: relative; +} +.favicon img { + height: 1.5rem; + width: 1.5rem; + border-radius: 10%; + background-color: var(--color-favicon-background-color); + border: 1px solid var(--color-favicon-border-color); + display: flex; +} +/* +--center-page-width overrides the less variable @results-width when the results are centered +see the CSS rules for #results in style.less ( grid-template-columns and gap). + +In this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3). + +All rules starts with ".center-alignment-yes #main_results" to be enabled only +on the /search URL and when the "center alignment" preference is enabled. +*/ +@media screen and (min-width: 50em) { + .center-alignment-yes #main_results { + --center-page-width: 48rem; + } +} +@media screen and (width >= 62rem) { + .center-alignment-yes #main_results { + --center-page-width: 60rem; + } +} +@media screen and (min-width: 79.75em) { + .center-alignment-yes #main_results { + --center-page-width: 73rem; + } +} +@media screen and (min-width: 50em) and (max-width: 79.75em) { + .center-alignment-yes #main_results #results { + grid-template-columns: 60% calc(40% - 5rem); + margin-left: 0; + margin-right: 0; + } + .center-alignment-yes #main_results #urls { + margin-right: 3rem; + } + .center-alignment-yes #main_results #sidebar { + margin-left: 1rem; + } + .center-alignment-yes #main_results #backToTop { + right: calc(60% + 1rem); + } +} +@media screen and (min-width: 79.75em) { + .center-alignment-yes #main_results { + display: flex; + flex-direction: column; + align-items: center; + } + .center-alignment-yes #main_results #search { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + .center-alignment-yes #main_results #search_header { + grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width); + grid-template-areas: "na logo search" "na spacer categories"; + column-gap: 1.2rem; + width: 100%; + padding-left: 0; + padding-right: 0; + } + .center-alignment-yes #main_results .search_filters { + margin-right: 0.5rem; + width: var(--center-page-width); + } + .center-alignment-yes #main_results #results { + margin-left: 2rem; + margin-right: 10rem; + } + .center-alignment-yes #main_results #results.only_template_images, + .center-alignment-yes #main_results #results.image-detail-open { + align-self: flex-start; + } + .center-alignment-yes #main_results #results:not(.only_template_images, .image-detail-open) { + margin-right: 1.5rem; + grid-template-columns: calc(var(--center-page-width) - 5rem - 25rem) 25rem; + } + .center-alignment-yes #main_results #results:not(.only_template_images, .image-detail-open) #backToTop { + right: calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2); + } + .center-alignment-yes #main_results #results .result .content { + max-width: inherit; + } + .center-alignment-yes #main_results #urls { + margin-right: 0; + } + .center-alignment-yes #main_results #sidebar { + margin-left: 0; + } +} +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(-1, 1); +} +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(-1, 1); +} +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(-1, 1); +} +html { + font-family: sans-serif; + font-size: 0.9em; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; + color: var(--color-base-font); + background-color: var(--color-base-background); + padding: 0; + margin: 0; + scroll-behavior: smooth; +} +body, +main { + padding: 0; + margin: 0; +} +body { + display: flex; + flex-direction: column; + height: 100vh; + margin: 0; +} +main { + width: 100%; + margin-bottom: 2rem; + flex: 1; +} +.page_with_header { + margin: 2em auto; + width: 85em; +} +footer { + clear: both; + min-height: 4rem; + padding: 1rem 0; + width: 100%; + text-align: center; + background-color: var(--color-footer-background); + border-top: 1px solid var(--color-footer-border); + overflow: hidden; +} +footer p { + font-size: 0.9em; +} +.page_with_header .logo { + height: 40px; +} +input[type="submit"], +#results button[type="submit"], +.button { + padding: 0.7rem; + display: inline-block; + background: var(--color-btn-background); + color: var(--color-btn-font); + border-radius: 10px; + border: 0; + cursor: pointer; +} +a { + text-decoration: none; + color: var(--color-url-font); +} +a:visited { + color: var(--color-url-visited-font); +} +a:visited .highlight { + color: var(--color-url-visited-font); +} +article[data-vim-selected] { + background: var(--color-result-vim-selected); + border-right: 0.2rem solid var(--color-result-vim-arrow); + border-radius: 10px 0 0 10px; +} +article.result-images[data-vim-selected] { + background: var(--color-result-vim-arrow); + border: none; + border-radius: 10px; +} +article.result-images[data-vim-selected] .image_thumbnail { + filter: opacity(60%); +} +article.result-images[data-vim-selected] span.title, +article.result-images[data-vim-selected] span.source { + color: var(--color-result-image-span-font-selected); +} +article[data-vim-selected].category-videos, +article[data-vim-selected].category-news, +article[data-vim-selected].category-map, +article[data-vim-selected].category-music, +article[data-vim-selected].category-files, +article[data-vim-selected].category-social { + border: 1px solid var(--color-result-vim-arrow); + border-radius: 10px; +} +.result { + margin: 0.125rem 0; + padding: 1rem; + box-sizing: border-box; + width: 100%; + border-right: 0.2rem solid transparent; +} +.result h3 { + font-size: 1.2rem; + word-wrap: break-word; + margin: 0.4rem 0 0.4rem 0; + padding: 0; +} +.result h3 a { + color: var(--color-result-link-font); + font-weight: normal; + font-size: 1.1em; +} +.result h3 a:visited { + color: var(--color-result-link-visited-font); +} +.result h3 a:focus, +.result h3 a:hover { + text-decoration: underline; + border: none; + outline: none; +} +.result .cache_link, +.result .proxyfied_link { + font-size: smaller !important; + margin-left: 0.5rem; +} +.result .content, +.result .stat { + font-size: 0.9em; + margin: 0; + padding: 0; + max-width: 54em; + word-wrap: break-word; + line-height: 1.24; +} +.result .content .highlight, +.result .stat .highlight { + color: var(--color-result-description-highlight-font); + background: inherit; + font-weight: bold; +} +.result .altlink a { + font-size: 0.9em; + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 5px; + background: var(--color-show-btn-background); + color: var(--color-show-btn-font); + cursor: pointer; +} +.result .altlink a:hover { + background: var(--color-btn-background); + color: var(--color-btn-font); +} +.result .codelines .highlight { + color: inherit; + background: inherit; + font-weight: normal; +} +.result .url_header { + display: flex; + gap: 0.5rem; +} +.result .url_wrapper { + display: flex; + align-items: center; + font-size: 1rem; + color: var(--color-result-url-font); + flex-flow: row nowrap; + overflow: hidden; + margin: 0; + padding: 0; +} +.result .url_wrapper .url_o1 { + white-space: nowrap; + flex-shrink: 1; + padding-bottom: 1px; +} +.result .url_wrapper .url_o1 .url_i1 { + unicode-bidi: plaintext; +} +.result .url_wrapper .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; +} +.result .url_wrapper .url_o2 { + overflow: hidden; + white-space: nowrap; + flex: 0 1 content; + text-align: right; + padding-bottom: 1px; +} +.result .url_wrapper .url_o2 .url_i2 { + float: right; +} +.result .published_date, +.result .result_length, +.result .result_views, +.result .result_author, +.result .result_shipping, +.result .result_source_country { + font-size: 0.8em; + color: var(--color-result-publishdate-font); +} +.result .result_price { + font-size: 1.2em; + color: var(--color-result-description-highlight-font); +} +.result img.thumbnail { + float: right; + padding-top: 0.6rem; + padding-left: 1rem; + width: 7rem; + height: unset; +} +.result .break { + clear: both; +} +.result-paper .attributes, +.result-packages .attributes { + display: table; + border-spacing: 0.125rem; +} +.result-paper .attributes div, +.result-packages .attributes div { + display: table-row; +} +.result-paper .attributes div span, +.result-packages .attributes div span { + font-size: 0.9rem; + margin-top: 0.25rem; + display: table-cell; +} +.result-paper .attributes div span time, +.result-packages .attributes div span time { + font-size: 0.9rem; +} +.result-paper .attributes div span:first-child, +.result-packages .attributes div span:first-child { + color: var(--color-base-font); + min-width: 10rem; +} +.result-paper .attributes div span:nth-child(2), +.result-packages .attributes div span:nth-child(2) { + color: var(--color-result-publishdate-font); +} +.result-paper .content, +.result-packages .content { + margin-top: 0.25rem; +} +.result-paper .comments, +.result-packages .comments { + font-size: 0.9rem; + margin: 0.25rem 0 0 0; + padding: 0; + word-wrap: break-word; + line-height: 1.24; + font-style: italic; +} +.result-packages .attributes { + margin-top: 0.3rem; +} +.template_group_images { + display: flex; + flex-wrap: wrap; +} +.template_group_images::after { + flex-grow: 10; + content: ""; +} +.category-videos, +.category-news, +.category-map, +.category-music, +.category-files, +.category-social { + border: 1px solid var(--color-result-border); + margin: 0 0.5rem 1rem 0.5rem !important; + border-radius: 10px; +} +.category-social .image { + width: auto !important; + min-width: 48px; + min-height: 48px; + padding: 0 5px 25px 0 !important; +} +.audio-control audio { + width: 100%; + padding: 10px 0 0 0; +} +.embedded-content iframe { + width: 100%; + padding: 10px 0 0 0; +} +.result-videos img.thumbnail { + float: right; + padding-top: 0.6rem; + padding-left: 1rem; + width: 20rem; + height: unset; +} +.result-videos .content { + overflow: hidden; +} +.result-videos .embedded-video iframe { + width: 100%; + aspect-ratio: 16 / 9; + padding: 10px 0 0 0; +} +@supports not (aspect-ratio: 1 / 1) { + .result-videos .embedded-video iframe { + height: calc(45rem * 9 / 16); + } +} +.engines { + float: left; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + color: var(--color-result-engines-font); +} +.engines span { + font-size: smaller; + margin-top: 0; + margin-bottom: 0; + margin-left: 0.5rem; + margin-right: 0; +} +.small_font { + font-size: 0.8em; +} +.highlight { + color: var(--color-result-link-font-highlight); + background: inherit; +} +.empty_element { + font-style: italic; +} +.result-images { + flex-grow: 1; + padding: 0.5rem 0.5rem 3rem 0.5rem; + margin: 0.25rem; + border: none !important; + height: 12rem; + width: unset; +} +.result-images > a { + position: relative; + outline: none; +} +.result-images img { + margin: 0; + padding: 0; + border: none; + height: 100%; + width: 100%; + object-fit: cover; + vertical-align: bottom; + background: var(--color-result-image-background); +} +.result-images .image_resolution { + position: absolute; + right: 0; + bottom: 0; + background: var(--color-image-resolution-background); + padding: 0.3rem 0.5rem; + font-size: 0.9rem; + color: var(--color-image-resolution-font); + border-top-left-radius: 0.3rem; +} +.result-images span.title, +.result-images span.source { + display: block; + position: absolute; + width: 100%; + font-size: 0.9rem; + color: var(--color-result-image-span-font); + padding: 0.5rem 0 0 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.result-images span.source { + padding: 1.8rem 0 0 0; + font-size: 0.7rem; +} +.result-map img.image { + float: left !important; + height: 100px !important; + width: auto !important; +} +.result-map table { + font-size: 0.9em; + width: auto; + border-collapse: separate; + border-spacing: 0 0.35rem; +} +.result-map table th { + font-weight: inherit; + width: 17rem; + vertical-align: top; + text-align: right; +} +.result-map table td { + vertical-align: top; + text-align: right; +} +.hidden { + display: none !important; +} +#results { + margin-top: 1rem; + margin-left: 2rem; + margin-bottom: 0; + margin-right: 10rem; + display: grid; + grid-template: "corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem; + gap: 0 5rem; +} +#results #sidebar *:first-child { + margin-top: 0; +} +#urls { + padding: 0; + grid-area: urls; +} +#apis .wrapper { + display: flex; +} +#suggestions .wrapper { + display: flex; + flex-flow: column; + justify-content: flex-end; +} +#suggestions .wrapper form { + display: inline-block; + flex: 1 1 50%; +} +#suggestions input, +#infoboxes input { + padding: 0; + margin: 3px; + font-size: 0.9em; + display: inline-block; + background: transparent; + color: var(--color-result-search-url-font); + cursor: pointer; + width: calc(100%); + text-overflow: ellipsis; + overflow: hidden; + text-align: left; +} +#suggestions input[type="submit"], +#infoboxes input[type="submit"], +#suggestions .infobox .url a, +#infoboxes .infobox .url a { + color: var(--color-result-link-font); + text-decoration: none; + font-size: 0.9rem; +} +#suggestions input[type="submit"]:hover, +#infoboxes input[type="submit"]:hover, +#suggestions .infobox .url a:hover, +#infoboxes .infobox .url a:hover { + text-decoration: underline; +} +#corrections { + grid-area: corrections; + display: flex; + flex-flow: row wrap; + margin: 0 0 1em 0; +} +#corrections h4, +#corrections input[type="submit"] { + display: inline-block; + padding: 0.5rem; + margin: 0.5rem; +} +#corrections input[type="submit"] { + font-size: 0.8rem; + border-radius: 5px; +} +#infoboxes .title, +#suggestions .title, +#search_url .title, +#engines_msg .title, +#apis .title { + margin: 2em 0 0.5em 0; + color: var(--color-base-font); +} +summary.title { + cursor: pointer; + padding-top: 1em; +} +.sidebar-collapsible { + border-top: 1px solid var(--color-sidebar-border); + padding-bottom: 0.5em; +} +#sidebar-end-collapsible { + border-bottom: 1px solid var(--color-sidebar-border); + width: 100%; +} +#answers { + grid-area: answers; + background: var(--color-answer-background); + padding: 1rem; + margin: 1rem 0; + margin-top: 0; + color: var(--color-answer-font); + border-radius: 10px; +} +#answers h4 { + display: none; +} +#answers span { + overflow-wrap: anywhere; +} +#answers .answer { + display: flex; + flex-direction: column; +} +#answers .answer-url { + margin: 5px 10px 10px auto; +} +#infoboxes form { + min-width: 210px; +} +#sidebar { + grid-area: sidebar; + word-wrap: break-word; + color: var(--color-sidebar-font); +} +#sidebar .infobox { + margin: 10px 0 10px; + border: 1px solid var(--color-sidebar-border); + padding: 1rem; + font-size: 0.9em; + border-radius: 10px; +} +#sidebar .infobox h2 { + margin: 0 0 0.5em 0; +} +#sidebar .infobox img { + max-width: 100%; + max-height: 12em; + display: block; + margin: 0 auto; + padding: 0; +} +#sidebar .infobox dt { + font-weight: bold; +} +#sidebar .infobox .attributes dl { + margin: 0.5em 0; +} +#sidebar .infobox .attributes dt { + display: inline; + margin-top: 0.5em; + margin-left: 0.25em; + margin-bottom: 0.5em; + margin-right: 0; + padding: 0; +} +#sidebar .infobox .attributes dd { + display: inline; + margin: 0.5em 0; + padding: 0; +} +#sidebar .infobox input { + font-size: 1em; +} +#sidebar .infobox br { + clear: both; +} +#sidebar .infobox .attributes, +#sidebar .infobox .urls { + clear: both; +} +#apis input { + font-size: 0.9em; + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 5px; + background: var(--color-show-btn-background); + color: var(--color-show-btn-font); + cursor: pointer; +} +#apis input:hover { + background: var(--color-btn-background); + color: var(--color-btn-font); +} +#engines_msg .engine-name { + width: 10rem; +} +#engines_msg .response-error { + color: var(--color-error); +} +#engines_msg .bar-chart-value { + width: auto; +} +#search_url div.selectable_url pre { + float: left; + width: 200em; +} +#search_url button#copy_url { + float: right; + padding: 0.4rem; + margin-left: 0.5rem; + border-radius: 0.3rem; + display: none; +} +#links_on_top { + position: absolute; + left: 1rem; + text-align: left; + top: 2.7rem; + padding: 0; + border: 0; + display: flex; + align-items: center; + font-size: 1em; + color: var(--color-search-font); +} +#links_on_top a { + display: flex; + align-items: center; + margin-left: 1em; +} +#links_on_top a svg { + font-size: 1.2em; + margin-left: 0.125em; +} +#links_on_top a, +#links_on_top a:link *, +#links_on_top a:hover *, +#links_on_top a:visited *, +#links_on_top a:active * { + color: var(--color-search-font); +} +#pagination { + grid-area: pagination; +} +#pagination br { + clear: both; +} +.numbered_pagination { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + overflow: hidden; +} +.page_number { + background: transparent !important; + color: var(--color-result-link-font) !important; + text-decoration: underline; +} +.page_number_current { + background: transparent; + color: var(--color-result-link-visited-font); + border: none; +} +#backToTop { + border: 1px solid var(--color-backtotop-border); + margin: 0; + padding: 0; + font-size: 1em; + background: var(--color-backtotop-background); + position: fixed; + bottom: 8rem; + right: 56.3rem; + transition: opacity 0.5s; + opacity: 0; + pointer-events: none; + border-radius: 10px; +} +#backToTop a { + display: block; + margin: 0; + padding: 0.7em; +} +#backToTop a, +#backToTop a:visited, +#backToTop a:hover, +#backToTop a:active { + color: var(--color-backtotop-font); +} +#results.scrolling #backToTop { + opacity: 1; + pointer-events: all; +} +/* + tablet layout +*/ +@media screen and (width <= calc(79.75em - 0.5px)) { + #links_on_top span { + display: none; + } +} +@media screen and (width <= 52rem) { + body.results_endpoint #links_on_top .link_on_top_about, + body.results_endpoint #links_on_top .link_on_top_donate { + display: none; + } +} +@media screen and (min-width: 50em) and (max-width: 79.75em) { + .center-alignment-no #links_on_top span { + display: none; + } + .center-alignment-no .page_with_header { + margin: 2rem 0.5rem; + width: auto; + } + .center-alignment-no #infoboxes { + position: inherit; + max-width: inherit; + } + .center-alignment-no #infoboxes .infobox { + clear: both; + } + .center-alignment-no #infoboxes .infobox img { + float: right; + max-width: 10em; + margin-top: 0.5em; + margin-left: 0.5em; + margin-bottom: 0.5em; + margin-right: 0; + } + .center-alignment-no #sidebar { + margin: 0 0.5rem 0.125rem 0.5rem; + padding: 0; + float: none; + border: none; + width: auto; + } + .center-alignment-no #sidebar input { + border: 0; + } + .center-alignment-no .result .thumbnail { + max-width: 98%; + } + .center-alignment-no .result .url span.url { + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + } + .center-alignment-no .result .engines { + float: left; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + padding: 3px 0 0 0; + } + .center-alignment-no .result-images { + border-bottom: none !important; + } + .center-alignment-no .image_result { + max-width: 98%; + } + .center-alignment-no .image_result img { + max-width: 98%; + } + .center-alignment-no #backToTop { + display: none; + } + .center-alignment-no #pagination { + margin: 2rem 0 0 0 !important; + } + .center-alignment-no #main_results div#results { + margin: 0 auto; + justify-content: center; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem; + gap: 0; + } +} +/* Misc */ +#main_results div#results.only_template_images { + margin: 1rem 0.5rem 0 0.5rem; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%; + gap: 0; +} +#main_results div#results.only_template_images #sidebar { + display: none; +} +#main_results div#results.only_template_images #urls { + margin: 0; + display: flex; + flex-wrap: wrap; +} +#main_results div#results.only_template_images #urls::after { + flex-grow: 10; + content: ""; +} +#main_results div#results.only_template_images #backToTop { + right: auto; + left: 1rem; +} +#main_results div#results.only_template_images #pagination { + margin-left: 4rem; +} +/* + phone layout +*/ +@media screen and (max-width: 50em) { + #links_on_top span { + display: none; + } + .page_with_header { + margin: 2rem 0.5rem; + width: auto; + } + #infoboxes { + position: inherit; + max-width: inherit; + } + #infoboxes .infobox { + clear: both; + } + #infoboxes .infobox img { + float: right; + max-width: 10em; + margin-top: 0.5em; + margin-left: 0.5em; + margin-bottom: 0.5em; + margin-right: 0; + } + #sidebar { + margin: 0 0.5rem 0.125rem 0.5rem; + padding: 0; + float: none; + border: none; + width: auto; + } + #sidebar input { + border: 0; + } + .result .thumbnail { + max-width: 98%; + } + .result .url span.url { + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + } + .result .engines { + float: left; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + padding: 3px 0 0 0; + } + .result-images { + border-bottom: none !important; + } + .image_result { + max-width: 98%; + } + .image_result img { + max-width: 98%; + } + #backToTop { + display: none; + } + #pagination { + margin: 2rem 0 0 0 !important; + } + #main_results div#results { + margin: 0 auto; + justify-content: center; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem; + gap: 0; + } + html { + background-color: var(--color-base-background-mobile); + } + #main_results div#results { + grid-template-columns: 100%; + margin: 0 auto; + } + #links_on_top { + top: 1.4rem; + left: 10px; + } + #main_index #links_on_top { + top: 0.5rem; + left: 0.5rem; + } + #results { + margin: 0; + padding: 0; + } + #pagination { + margin: 2rem 1rem 0 1rem !important; + } + article[data-vim-selected] { + border: 1px solid var(--color-result-vim-arrow); + border-radius: 10px; + } + .result { + background: var(--color-result-background); + border: 1px solid var(--color-result-background); + margin: 1rem 2%; + width: 96%; + border-radius: 10px; + } + .result-images { + margin: 0; + height: 10rem; + background: var(--color-base-background-mobile); + width: unset; + } + .infobox { + border: none !important; + background-color: var(--color-sidebar-background); + } + .numbered_pagination { + display: none; + } + .result-paper .attributes, + .result-packages .attributes { + display: block; + } + .result-paper .attributes div, + .result-packages .attributes div { + display: block; + } + .result-paper .attributes div span, + .result-packages .attributes div span { + display: inline; + } + .result-paper .attributes div span:first-child, + .result-packages .attributes div span:first-child { + font-weight: bold; + } + .result-paper .attributes div span:nth-child(2), + .result-packages .attributes div span:nth-child(2) { + margin-right: 0.5rem; + } +} +/* + small-phone layout +*/ +@media screen and (max-width: 35em) { + .result-videos img.thumbnail { + float: none !important; + } + .result-videos .content { + overflow: inherit; + } +} +pre code { + white-space: pre-wrap; +} +#q, +#sidebar .infobox dt bdi { + direction: rtl; +} +#urls { + direction: initial; + text-align: right; +} +#urls .result .url_header { + direction: rtl; +} +#urls .result .url_wrapper { + justify-content: end; +} +#main_results div#results.only_template_images #urls { + direction: rtl; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { + direction: rtl; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url { + direction: ltr; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span { + direction: rtl; + float: right; +} +@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { + select { + border-width: 0 0 0 2rem; + background-position-x: -2rem; + } +} +#vim-hotkeys-help table { + direction: ltr; + text-align: left; +} +#main_preferences h1, +#main_stats h1 { + background-position-x: 100%; +} +.bar-chart-serie1, +.bar-chart-serie2 { + float: right; +} +.engine-stats .engine-name, +.engine-stats .engine-score, +.engine-stats .result-count, +.engine-stats .response-time, +.engine-stats .engine-reliability { + text-align: right; +} +/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index cbdd116d5..8e7184b87 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css.map +++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-rtl.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iD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PqBF,iBAAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kB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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.18.0\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n right: @offset;\n}\n\n.ltr-right(@offset) {\n left: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-left: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-right: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-left: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-right: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-left: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-right: @offset;\n}\n\n.ltr-float-left() {\n float: right;\n}\n\n.ltr-float-right() {\n float: left;\n}\n\n.ltr-text-align-right() {\n text-align: left;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-text-align-left() {\n text-align: right;\n}\n\n.ltr-border-left-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(-1, 1);\n}\n\n@import \"style.less\";\n\n#q,\n#sidebar .infobox dt bdi {\n direction: rtl;\n}\n\n// URL are displayed LTR but align on the right\n#urls {\n direction: initial;\n text-align: right;\n\n .result .url_header {\n direction: rtl;\n }\n\n .result .url_wrapper {\n justify-content: end;\n }\n}\n\n// Image flexbox\n#main_results div#results.only_template_images #urls {\n direction: rtl;\n}\n\n// Image detail\n#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p {\n direction: rtl;\n\n &.result-url {\n // Display URL using the LTR direction\n direction: ltr;\n\n span {\n // And put the label on the right\n direction: rtl;\n float: right;\n }\n }\n}\n\n// select HTML element\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n border-width: 0 0 0 2rem;\n background-position-x: -2rem;\n }\n}\n\n// vim hotkey helps is not translated\n#vim-hotkeys-help table {\n direction: ltr;\n text-align: left;\n}\n\n// Logo on the right\n#main_preferences h1,\n#main_stats h1 {\n background-position-x: 100%;\n}\n\n// patch of stats.less\n.bar-chart-serie1,\n.bar-chart-serie2 {\n float: right;\n}\n\n.engine-stats .engine-name,\n.engine-stats .engine-score,\n.engine-stats .result-count,\n.engine-stats .response-time,\n.engine-stats .engine-reliability {\n text-align: right;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index dfccd41b1..75e29819c 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1,4884 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff;--color-bar-chart-primary:#5bc0de;--color-bar-chart-secondary:#deb15b;--color-image-resolution-background:rgba(0, 0, 0, 0.5);--color-image-resolution-font:#fff;--color-loading-indicator:rgba(255, 255, 255, 0.2);--color-loading-indicator-gap:#fff;--color-line-number:#64708d;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc}:root.theme-black{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f;--color-favicon-background-color:#ddd;--color-favicon-border-color:#ccc;--color-base-background:#000;--color-base-background-mobile:#000;--color-header-background:#000;--color-footer-background:#000;--color-sidebar-background:#000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3d7b7b;font-style:italic}.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf{color:#3d7b7b;font-style:italic}.code-highlight .c1{color:#3d7b7b;font-style:italic}.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#ba2121}.code-highlight .sb{color:#ba2121}.code-highlight .sc{color:#ba2121}.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc{color:#19177c}.code-highlight .vg{color:#19177c}.code-highlight .vi{color:#19177c}.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url('../img/searxng.png') no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>td,#main_preferences table.cookies>tbody>tr:nth-child(2n)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width:50em){.center-alignment-yes #main_results{--center-page-width:48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.image-detail-open,.center-alignment-yes #main_results #results.only_template_images{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country,.result .result_views{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:0.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 0.35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content/45rem 25rem;gap:0 5rem}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-alignment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result{max-width:98%}.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content/45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +* +* To convert "style.less" to "style.css" run: $make styles +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/* + * SearXNG, A privacy-respecting, hackable metasearch engine + * + * To change the colors of the site, simple edit this variables + */ +:root { + --color-base-font: #444; + --color-base-font-rgb: 68, 68, 68; + --color-base-background: #fff; + --color-base-background-mobile: #f2f5f8; + --color-url-font: #334999; + --color-url-visited-font: #9822c3; + --color-header-background: #fdfbff; + --color-header-border: #ddd; + --color-footer-background: #fdfbff; + --color-footer-border: #ddd; + --color-sidebar-border: #ddd; + --color-sidebar-font: #000; + --color-sidebar-background: #fff; + --color-backtotop-font: #444; + --color-backtotop-border: #ddd; + --color-backtotop-background: #fff; + --color-btn-background: #3050ff; + --color-btn-font: #fff; + --color-show-btn-background: #bbb; + --color-show-btn-font: #000; + --color-search-border: #bbb; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #fff; + --color-search-font: #222; + --color-search-background-hover: #3050ff; + --color-error: #db3434; + --color-error-background: #fae1e1; + --color-warning: #dbba34; + --color-warning-background: #faf5e1; + --color-success: #42db34; + --color-success-background: #e3fae1; + --color-categories-item-selected-font: #3050ff; + --color-categories-item-border-selected: #3050ff; + --color-autocomplete-font: #000; + --color-autocomplete-border: #bbb; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #fff; + --color-autocomplete-background-hover: #e3e3e3; + --color-answer-font: #444; + --color-answer-background: #fff; + --color-result-background: #fff; + --color-result-border: #ddd; + --color-result-url-font: #000; + --color-result-vim-selected: #f7f7f7; + --color-result-vim-arrow: #000bbb; + --color-result-description-highlight-font: #000; + --color-result-link-font: #000bbb; + --color-result-link-font-highlight: #000bbb; + --color-result-link-visited-font: #9822c3; + --color-result-publishdate-font: #777; + --color-result-engines-font: #545454; + --color-result-search-url-border: #ddd; + --color-result-search-url-font: #000; + --color-result-image-span-font: #444; + --color-result-image-span-font-selected: #fff; + --color-result-image-background: #fff; + --color-settings-tr-hover: #ebebeb; + --color-settings-engine-description-font: #545454; + --color-settings-table-group-background: #0001; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #242424; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #545454; + --color-toolkit-kbd-font: #fff; + --color-toolkit-kbd-background: #000; + --color-toolkit-dialog-border: #ddd; + --color-toolkit-dialog-background: #fff; + --color-toolkit-tabs-label-border: #fff; + --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #e1e1e1; + --color-toolkit-select-border: #ddd; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; + --color-toolkit-checkbox-onoff-off-background: #ddd; + --color-toolkit-checkbox-onoff-on-background: #ddd; + --color-toolkit-checkbox-onoff-on-mark-background: #3050ff; + --color-toolkit-checkbox-onoff-on-mark-color: #fff; + --color-toolkit-checkbox-onoff-off-mark-background: #aaa; + --color-toolkit-checkbox-onoff-off-mark-color: #fff; + --color-toolkit-checkbox-label-background: #ddd; + --color-toolkit-checkbox-label-border: #ddd; + --color-toolkit-checkbox-input-border: #3050ff; + --color-toolkit-engine-tooltip-border: #ddd; + --color-toolkit-engine-tooltip-background: #fff; + --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); + --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); + --color-doc-code: #003; + --color-doc-code-background: #ddeaff; + --color-bar-chart-primary: #5bc0de; + --color-bar-chart-secondary: #deb15b; + --color-image-resolution-background: rgba(0, 0, 0, 0.5); + --color-image-resolution-font: #fff; + --color-loading-indicator: rgba(255, 255, 255, 0.2); + --color-loading-indicator-gap: #fff; + --color-line-number: #64708d; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +@media (prefers-color-scheme: dark) { + :root.theme-auto { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + } +} +:root.theme-dark { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; +} +:root.theme-black { + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + --color-header-background: #1e1e22; + --color-header-border: #333; + --color-footer-background: #1e1e22; + --color-footer-border: #333; + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + --color-error: #f55b5b; + --color-error-background: #390a0a; + --color-warning: #f1d561; + --color-warning-background: #39300a; + --color-success: #79f56e; + --color-success-background: #0e390a; + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, 0.25); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + --color-answer-font: #bbb; + --color-answer-background: #26292f; + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: #909090; + --color-settings-table-group-background: #1b1b21; + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; + --color-favicon-background-color: #ddd; + --color-favicon-border-color: #ccc; + --color-base-background: #000; + --color-base-background-mobile: #000; + --color-header-background: #000; + --color-footer-background: #000; + --color-sidebar-background: #000; +} +/* + this file is generated automatically by searxng_extra/update/update_pygments.py + using pygments version 2.18.0 +*/ +.code-highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ +} +.code-highlight pre { + line-height: 100%; +} +.code-highlight td.linenos .normal { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight span.linenos { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight td.linenos .special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight span.linenos.special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +.code-highlight .hll { + background-color: #ffffcc; +} +.code-highlight .c { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .err { + border: 1px solid #FF0000; +} +.code-highlight .k { + color: #008000; + font-weight: bold; +} +.code-highlight .o { + color: #666666; +} +.code-highlight .ch { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cm { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cp { + color: #9C6500; +} +.code-highlight .cpf { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .c1 { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .cs { + color: #3D7B7B; + font-style: italic; +} +.code-highlight .gd { + color: #A00000; +} +.code-highlight .ge { + font-style: italic; +} +.code-highlight .ges { + font-weight: bold; + font-style: italic; +} +.code-highlight .gr { + color: #E40000; +} +.code-highlight .gh { + color: #000080; + font-weight: bold; +} +.code-highlight .gi { + color: #008400; +} +.code-highlight .go { + color: #717171; +} +.code-highlight .gp { + color: #000080; + font-weight: bold; +} +.code-highlight .gs { + font-weight: bold; +} +.code-highlight .gu { + color: #800080; + font-weight: bold; +} +.code-highlight .gt { + color: #0044DD; +} +.code-highlight .kc { + color: #008000; + font-weight: bold; +} +.code-highlight .kd { + color: #008000; + font-weight: bold; +} +.code-highlight .kn { + color: #008000; + font-weight: bold; +} +.code-highlight .kp { + color: #008000; +} +.code-highlight .kr { + color: #008000; + font-weight: bold; +} +.code-highlight .kt { + color: #B00040; +} +.code-highlight .m { + color: #666666; +} +.code-highlight .s { + color: #BA2121; +} +.code-highlight .na { + color: #687822; +} +.code-highlight .nb { + color: #008000; +} +.code-highlight .nc { + color: #0000FF; + font-weight: bold; +} +.code-highlight .no { + color: #880000; +} +.code-highlight .nd { + color: #AA22FF; +} +.code-highlight .ni { + color: #717171; + font-weight: bold; +} +.code-highlight .ne { + color: #CB3F38; + font-weight: bold; +} +.code-highlight .nf { + color: #0000FF; +} +.code-highlight .nl { + color: #767600; +} +.code-highlight .nn { + color: #0000FF; + font-weight: bold; +} +.code-highlight .nt { + color: #008000; + font-weight: bold; +} +.code-highlight .nv { + color: #19177C; +} +.code-highlight .ow { + color: #AA22FF; + font-weight: bold; +} +.code-highlight .w { + color: #bbbbbb; +} +.code-highlight .mb { + color: #666666; +} +.code-highlight .mf { + color: #666666; +} +.code-highlight .mh { + color: #666666; +} +.code-highlight .mi { + color: #666666; +} +.code-highlight .mo { + color: #666666; +} +.code-highlight .sa { + color: #BA2121; +} +.code-highlight .sb { + color: #BA2121; +} +.code-highlight .sc { + color: #BA2121; +} +.code-highlight .dl { + color: #BA2121; +} +.code-highlight .sd { + color: #BA2121; + font-style: italic; +} +.code-highlight .s2 { + color: #BA2121; +} +.code-highlight .se { + color: #AA5D1F; + font-weight: bold; +} +.code-highlight .sh { + color: #BA2121; +} +.code-highlight .si { + color: #A45A77; + font-weight: bold; +} +.code-highlight .sx { + color: #008000; +} +.code-highlight .sr { + color: #A45A77; +} +.code-highlight .s1 { + color: #BA2121; +} +.code-highlight .ss { + color: #19177C; +} +.code-highlight .bp { + color: #008000; +} +.code-highlight .fm { + color: #0000FF; +} +.code-highlight .vc { + color: #19177C; +} +.code-highlight .vg { + color: #19177C; +} +.code-highlight .vi { + color: #19177C; +} +.code-highlight .vm { + color: #19177C; +} +.code-highlight .il { + color: #666666; +} +.codelines { + margin: 0.125rem 0 0 0; + padding: 1rem 0 0 0; +} +.code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; +} +.code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; +} +.code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ +} +.code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ +} +.code-highlight span.linenos { + color: var(--color-line-number); +} +@media (prefers-color-scheme: dark) { + :root.theme-auto .code-highlight { + /* Comment */ + /* Error */ + /* Escape */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Punctuation.Marker */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ + } + :root.theme-auto .code-highlight pre { + line-height: 100%; + } + :root.theme-auto .code-highlight td.linenos .normal { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight span.linenos { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight td.linenos .special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight span.linenos.special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; + } + :root.theme-auto .code-highlight .hll { + background-color: #6e7681; + } + :root.theme-auto .code-highlight .c { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .err { + color: #f88f7f; + } + :root.theme-auto .code-highlight .esc { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .g { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .k { + color: #FFAD66; + } + :root.theme-auto .code-highlight .l { + color: #D5FF80; + } + :root.theme-auto .code-highlight .n { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .o { + color: #FFAD66; + } + :root.theme-auto .code-highlight .x { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .p { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .ch { + color: #f88f7f; + font-style: italic; + } + :root.theme-auto .code-highlight .cm { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .cp { + color: #FFAD66; + font-weight: bold; + } + :root.theme-auto .code-highlight .cpf { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .c1 { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .cs { + color: #7e8aa1; + font-style: italic; + } + :root.theme-auto .code-highlight .gd { + color: #f88f7f; + background-color: #3d1e20; + } + :root.theme-auto .code-highlight .ge { + color: #d4d2c8; + font-style: italic; + } + :root.theme-auto .code-highlight .ges { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gr { + color: #f88f7f; + } + :root.theme-auto .code-highlight .gh { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gi { + color: #6ad4af; + background-color: #19362c; + } + :root.theme-auto .code-highlight .go { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .gp { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gs { + color: #d4d2c8; + font-weight: bold; + } + :root.theme-auto .code-highlight .gu { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .gt { + color: #f88f7f; + } + :root.theme-auto .code-highlight .kc { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kd { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kn { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kp { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kr { + color: #FFAD66; + } + :root.theme-auto .code-highlight .kt { + color: #73D0FF; + } + :root.theme-auto .code-highlight .ld { + color: #D5FF80; + } + :root.theme-auto .code-highlight .m { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .s { + color: #D5FF80; + } + :root.theme-auto .code-highlight .na { + color: #FFD173; + } + :root.theme-auto .code-highlight .nb { + color: #FFD173; + } + :root.theme-auto .code-highlight .nc { + color: #73D0FF; + } + :root.theme-auto .code-highlight .no { + color: #FFD173; + } + :root.theme-auto .code-highlight .nd { + color: #7e8aa1; + font-weight: bold; + font-style: italic; + } + :root.theme-auto .code-highlight .ni { + color: #95E6CB; + } + :root.theme-auto .code-highlight .ne { + color: #73D0FF; + } + :root.theme-auto .code-highlight .nf { + color: #FFD173; + } + :root.theme-auto .code-highlight .nl { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .nn { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .nx { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .py { + color: #FFD173; + } + :root.theme-auto .code-highlight .nt { + color: #5CCFE6; + } + :root.theme-auto .code-highlight .nv { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .ow { + color: #FFAD66; + } + :root.theme-auto .code-highlight .pm { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .w { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .mb { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mf { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mh { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mi { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .mo { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .sa { + color: #F29E74; + } + :root.theme-auto .code-highlight .sb { + color: #D5FF80; + } + :root.theme-auto .code-highlight .sc { + color: #D5FF80; + } + :root.theme-auto .code-highlight .dl { + color: #D5FF80; + } + :root.theme-auto .code-highlight .sd { + color: #7e8aa1; + } + :root.theme-auto .code-highlight .s2 { + color: #D5FF80; + } + :root.theme-auto .code-highlight .se { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sh { + color: #D5FF80; + } + :root.theme-auto .code-highlight .si { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sx { + color: #95E6CB; + } + :root.theme-auto .code-highlight .sr { + color: #95E6CB; + } + :root.theme-auto .code-highlight .s1 { + color: #D5FF80; + } + :root.theme-auto .code-highlight .ss { + color: #DFBFFF; + } + :root.theme-auto .code-highlight .bp { + color: #5CCFE6; + } + :root.theme-auto .code-highlight .fm { + color: #FFD173; + } + :root.theme-auto .code-highlight .vc { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vg { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vi { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .vm { + color: #d4d2c8; + } + :root.theme-auto .code-highlight .il { + color: #DFBFFF; + } + :root.theme-auto .code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; + } + :root.theme-auto .code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; + } + :root.theme-auto .code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ + } + :root.theme-auto .code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ + } + :root.theme-auto .code-highlight span.linenos { + color: var(--color-line-number); + } +} +:root.theme-dark .code-highlight { + /* Comment */ + /* Error */ + /* Escape */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Hashbang */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.PreprocFile */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.EmphStrong */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Punctuation.Marker */ + /* Text.Whitespace */ + /* Literal.Number.Bin */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Affix */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Delimiter */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Function.Magic */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Name.Variable.Magic */ + /* Literal.Number.Integer.Long */ +} +:root.theme-dark .code-highlight pre { + line-height: 100%; +} +:root.theme-dark .code-highlight td.linenos .normal { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight span.linenos { + color: #3c4354; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight td.linenos .special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight span.linenos.special { + color: #3c4354; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} +:root.theme-dark .code-highlight .hll { + background-color: #6e7681; +} +:root.theme-dark .code-highlight .c { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .err { + color: #f88f7f; +} +:root.theme-dark .code-highlight .esc { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .g { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .k { + color: #FFAD66; +} +:root.theme-dark .code-highlight .l { + color: #D5FF80; +} +:root.theme-dark .code-highlight .n { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .o { + color: #FFAD66; +} +:root.theme-dark .code-highlight .x { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .p { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .ch { + color: #f88f7f; + font-style: italic; +} +:root.theme-dark .code-highlight .cm { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .cp { + color: #FFAD66; + font-weight: bold; +} +:root.theme-dark .code-highlight .cpf { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .c1 { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .cs { + color: #7e8aa1; + font-style: italic; +} +:root.theme-dark .code-highlight .gd { + color: #f88f7f; + background-color: #3d1e20; +} +:root.theme-dark .code-highlight .ge { + color: #d4d2c8; + font-style: italic; +} +:root.theme-dark .code-highlight .ges { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gr { + color: #f88f7f; +} +:root.theme-dark .code-highlight .gh { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gi { + color: #6ad4af; + background-color: #19362c; +} +:root.theme-dark .code-highlight .go { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .gp { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gs { + color: #d4d2c8; + font-weight: bold; +} +:root.theme-dark .code-highlight .gu { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .gt { + color: #f88f7f; +} +:root.theme-dark .code-highlight .kc { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kd { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kn { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kp { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kr { + color: #FFAD66; +} +:root.theme-dark .code-highlight .kt { + color: #73D0FF; +} +:root.theme-dark .code-highlight .ld { + color: #D5FF80; +} +:root.theme-dark .code-highlight .m { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .s { + color: #D5FF80; +} +:root.theme-dark .code-highlight .na { + color: #FFD173; +} +:root.theme-dark .code-highlight .nb { + color: #FFD173; +} +:root.theme-dark .code-highlight .nc { + color: #73D0FF; +} +:root.theme-dark .code-highlight .no { + color: #FFD173; +} +:root.theme-dark .code-highlight .nd { + color: #7e8aa1; + font-weight: bold; + font-style: italic; +} +:root.theme-dark .code-highlight .ni { + color: #95E6CB; +} +:root.theme-dark .code-highlight .ne { + color: #73D0FF; +} +:root.theme-dark .code-highlight .nf { + color: #FFD173; +} +:root.theme-dark .code-highlight .nl { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .nn { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .nx { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .py { + color: #FFD173; +} +:root.theme-dark .code-highlight .nt { + color: #5CCFE6; +} +:root.theme-dark .code-highlight .nv { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .ow { + color: #FFAD66; +} +:root.theme-dark .code-highlight .pm { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .w { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .mb { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mf { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mh { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mi { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .mo { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .sa { + color: #F29E74; +} +:root.theme-dark .code-highlight .sb { + color: #D5FF80; +} +:root.theme-dark .code-highlight .sc { + color: #D5FF80; +} +:root.theme-dark .code-highlight .dl { + color: #D5FF80; +} +:root.theme-dark .code-highlight .sd { + color: #7e8aa1; +} +:root.theme-dark .code-highlight .s2 { + color: #D5FF80; +} +:root.theme-dark .code-highlight .se { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sh { + color: #D5FF80; +} +:root.theme-dark .code-highlight .si { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sx { + color: #95E6CB; +} +:root.theme-dark .code-highlight .sr { + color: #95E6CB; +} +:root.theme-dark .code-highlight .s1 { + color: #D5FF80; +} +:root.theme-dark .code-highlight .ss { + color: #DFBFFF; +} +:root.theme-dark .code-highlight .bp { + color: #5CCFE6; +} +:root.theme-dark .code-highlight .fm { + color: #FFD173; +} +:root.theme-dark .code-highlight .vc { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vg { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vi { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .vm { + color: #d4d2c8; +} +:root.theme-dark .code-highlight .il { + color: #DFBFFF; +} +:root.theme-dark .code-highlight pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; +} +:root.theme-dark .code-highlight .linenos { + user-select: none; + cursor: default; + margin-right: 8px; + text-align: right; +} +:root.theme-dark .code-highlight .linenos::selection { + background: transparent; + /* WebKit/Blink Browsers */ +} +:root.theme-dark .code-highlight .linenos::-moz-selection { + background: transparent; + /* Gecko Browsers */ +} +:root.theme-dark .code-highlight span.linenos { + color: var(--color-line-number); +} +html.no-js .hide_if_nojs { + display: none; +} +html.js .show_if_nojs { + display: none; +} +.center { + text-align: center; +} +.right { + float: right; +} +.left { + float: left; +} +.invisible { + display: none !important; +} +.list-unstyled { + list-style-type: none; +} +.list-unstyled li { + margin-top: 4px; + margin-bottom: 4px; +} +.danger { + background-color: var(--color-error-background); +} +.warning { + background: var(--color-warning-background); +} +.success { + background: var(--color-success-background); +} +.badge { + display: inline-block; + color: var(--color-toolkit-badge-font); + background-color: var(--color-toolkit-badge-background); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + min-width: 10px; + padding: 1px 5px; + border-radius: 5px; +} +kbd { + padding: 2px 4px; + margin: 1px; + font-size: 90%; + color: var(--color-toolkit-kbd-font); + background: var(--color-toolkit-kbd-background); +} +table { + width: 100%; +} +table.striped tr { + border-bottom: 1px solid var(--color-settings-tr-hover); +} +th { + padding: 0.4em; +} +td { + padding: 0 4px; +} +tr:hover { + background: var(--color-settings-tr-hover) !important; +} +div.selectable_url { + display: block; + border: 1px solid var(--color-result-search-url-border); + padding: 4px; + color: var(--color-result-search-url-font); + margin: 0.1em; + overflow: hidden; + height: 1.2em; + line-height: 1.2em; + border-radius: 5px; +} +div.selectable_url pre { + display: block; + font-size: 0.8em; + word-break: break-all; + margin: 0.1em; + user-select: all; +} +.dialog-error { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: left; + border-radius: 10px; + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} +.dialog-error .close { + float: right; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-error ul, +.dialog-error ol, +.dialog-error p { + margin: 1px 0 0 0; +} +.dialog-error table { + width: auto; +} +.dialog-error tr { + vertical-align: text-top; +} +.dialog-error tr:hover { + background: transparent !important; +} +.dialog-error td { + padding: 0 1em 0 0; + padding-top: 0; + padding-right: 1rem; + padding-bottom: 0; + padding-left: 0; +} +.dialog-error h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-error-block { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: left; + border-radius: 10px; + display: block; + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} +.dialog-error-block .close { + float: right; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-error-block ul, +.dialog-error-block ol, +.dialog-error-block p { + margin: 1px 0 0 0; +} +.dialog-error-block table { + width: auto; +} +.dialog-error-block tr { + vertical-align: text-top; +} +.dialog-error-block tr:hover { + background: transparent !important; +} +.dialog-error-block td { + padding: 0 1em 0 0; + padding-top: 0; + padding-right: 1rem; + padding-bottom: 0; + padding-left: 0; +} +.dialog-error-block h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-warning { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: left; + border-radius: 10px; + color: var(--color-warning); + background: var(--color-warning-background); + border-color: var(--color-warning); +} +.dialog-warning .close { + float: right; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-warning ul, +.dialog-warning ol, +.dialog-warning p { + margin: 1px 0 0 0; +} +.dialog-warning table { + width: auto; +} +.dialog-warning tr { + vertical-align: text-top; +} +.dialog-warning tr:hover { + background: transparent !important; +} +.dialog-warning td { + padding: 0 1em 0 0; + padding-top: 0; + padding-right: 1rem; + padding-bottom: 0; + padding-left: 0; +} +.dialog-warning h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-modal { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + text-align: left; + border-radius: 10px; + display: block; + background: var(--color-toolkit-dialog-background); + position: fixed; + top: 50%; + left: 50%; + margin: 0 auto; + transform: translate(-50%, -50%); + z-index: 5000; +} +.dialog-modal .close { + float: right; + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; +} +.dialog-modal ul, +.dialog-modal ol, +.dialog-modal p { + margin: 1px 0 0 0; +} +.dialog-modal table { + width: auto; +} +.dialog-modal tr { + vertical-align: text-top; +} +.dialog-modal tr:hover { + background: transparent !important; +} +.dialog-modal td { + padding: 0 1em 0 0; + padding-top: 0; + padding-right: 1rem; + padding-bottom: 0; + padding-left: 0; +} +.dialog-modal h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; +} +.dialog-modal h3 { + margin-top: 0; +} +.btn-collapse { + cursor: pointer; +} +.scrollx { + overflow: auto hidden; + display: block; + padding: 0; + margin: 0; + border: none; +} +/* -- tabs -- */ +.tabs .tabs > label { + font-size: 90%; +} +ul.tabs { + border-bottom: 1px solid var(--color-toolkit-tabs-section-border); + list-style: none; + padding-left: 0; +} +ul.tabs li { + display: flex; +} +.tabs { + display: flex; + flex-wrap: wrap; + width: 100%; + min-width: 100%; +} +.tabs > * { + order: 2; +} +.tabs > input[type=radio] { + display: none; +} +.tabs > label, +.tabs > li > a { + order: 1; + padding: 0.7em; + margin: 0 0.7em; + letter-spacing: 0.5px; + text-transform: uppercase; + border: solid var(--color-toolkit-tabs-label-border); + border-width: 0 0 2px 0; + color: unset; + -webkit-touch-callout: none; + user-select: none; + cursor: pointer; +} +.tabs > label.active, +.tabs > li > a.active { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); +} +.tabs > label:hover, +.tabs > li > a:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +.tabs > section { + min-width: 100%; + padding: 0.7rem 0; + box-sizing: border-box; + border-top: 1px solid var(--color-toolkit-tabs-section-border); + display: none; +} +.tabs > label:last-of-type { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); + letter-spacing: -0.1px; +} +.tabs > section:last-of-type { + display: block; +} +html body .tabs > input:checked ~ section { + display: none; +} +html body .tabs > input:checked ~ label { + position: inherited; + background: inherit; + border-bottom: 2px solid transparent; + font-weight: normal; + color: inherit; +} +html body .tabs > input:checked ~ label:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +html body .tabs > input:checked + label { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); +} +html body .tabs > input:checked + label + section { + display: block; +} +/* -- select -- */ +select { + height: 2.4rem; + margin-top: 0; + margin-right: 1rem; + margin-bottom: 0; + margin-left: 0; + padding: 0.2rem !important; + color: var(--color-search-font); + font-size: 0.9rem; + z-index: 100; +} +select:hover, +select:focus { + cursor: pointer; +} +@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { + select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + border-width: 0 2rem 0 0; + border-color: transparent; + background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; + background-position-x: calc(100% + 2rem); + background-size: 2rem; + background-origin: content-box; + background-color: var(--color-toolkit-select-background); + outline: medium none; + text-overflow: ellipsis; + border-radius: 5px; + } + select:hover, + select:focus { + background-color: var(--color-toolkit-select-background-hover); + } + select option { + background-color: var(--color-base-background); + } + @media (prefers-color-scheme: dark) { + html.theme-auto select, + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } + } + html.theme-dark select { + background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); + } +} +/* -- checkbox-onoff -- */ +input.checkbox-onoff[type="checkbox"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + display: inline-block; + width: 2.5em; + height: 0.7em; + box-shadow: none !important; + margin: 0 16px; + border-radius: 10px; + position: relative; + /* focus & hover */ +} +input.checkbox-onoff[type="checkbox"]:focus, +input.checkbox-onoff[type="checkbox"]:hover { + outline: none; +} +input.checkbox-onoff[type="checkbox"]:focus::after { + content: ""; + position: absolute; + width: 3.5em; + height: 1.65em; + border: 1px solid var(--color-btn-background); + border-radius: 12px; + box-shadow: var(--color-btn-background) 0 0 3px; + z-index: 1200; + top: -0.55em; + left: -0.6em; +} +input.checkbox-onoff[type="checkbox"]::before { + position: absolute; + top: -0.5em; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 1.875em; + height: 1.875em; + border-radius: 50%; +} +/* check mark +reversed-checkbox displays unchecked checkedboxes as checked, and vice versa. +see https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313 +*/ +input.checkbox-onoff[type="checkbox"], +input.checkbox-onoff.reversed-checkbox[type="checkbox"]:checked { + background: var(--color-toolkit-checkbox-onoff-off-background); +} +input.checkbox-onoff[type="checkbox"]::before, +input.checkbox-onoff.reversed-checkbox[type="checkbox"]:checked::before { + left: -0.5em; + content: "\2715"; + color: var(--color-toolkit-checkbox-onoff-off-mark-color); + background: var(--color-toolkit-checkbox-onoff-off-mark-background); +} +input.checkbox-onoff[type="checkbox"]:checked, +input.checkbox-onoff.reversed-checkbox[type="checkbox"] { + background: var(--color-toolkit-checkbox-onoff-on-background); +} +input.checkbox-onoff[type="checkbox"]:checked::before, +input.checkbox-onoff.reversed-checkbox[type="checkbox"]::before { + left: calc(100% - 1.5em); + content: "\2713"; + color: var(--color-toolkit-checkbox-onoff-on-mark-color); + background: var(--color-toolkit-checkbox-onoff-on-mark-background); +} +/* -- checkbox -- */ +@supports (transform: rotate(-45deg)) { + input[type=checkbox]:not(.checkbox-onoff) { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 20px; + height: 20px; + cursor: pointer; + position: relative; + top: 0; + left: 0; + border: 2px solid var(--color-toolkit-checkbox-input-border); + border-radius: 0.3em; + } + input[type=checkbox]:not(.checkbox-onoff)::after { + content: ''; + width: 9px; + height: 5px; + position: absolute; + top: 3px; + left: 2px; + border: 3px solid var(--color-toolkit-checkbox-label-border); + border-top: none; + border-right: none; + background: transparent; + opacity: 0; + transform: rotate(-45deg); + } + input[type=checkbox]:not(.checkbox-onoff):checked::after { + border-color: var(--color-toolkit-checkbox-input-border); + opacity: 1; + } + input[type=checkbox][disabled]:not(.checkbox-onoff) { + border: inherit; + background-color: transparent !important; + cursor: inherit; + } + input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after { + opacity: 0.5; + } +} +@media screen and (max-width: 50em) { + .tabs > label { + width: 100%; + } +} +/* -- loader -- */ +.loader, +.loader::after { + border-radius: 50%; + width: 2em; + height: 2em; +} +.loader { + margin: 1em auto; + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 0.5em solid var(--color-toolkit-loader-border); + border-right: 0.5em solid var(--color-toolkit-loader-border); + border-bottom: 0.5em solid var(--color-toolkit-loader-border); + border-left: 0.5em solid var(--color-toolkit-loader-borderleft); + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation: load8 1.2s infinite linear; + animation: load8 1.2s infinite linear; +} +@-webkit-keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +/* -- engine-tooltip -- */ +.engine-tooltip { + display: none; + position: absolute; + padding: 0.5rem 1rem; + margin: 0 0 0 2rem; + border: 1px solid var(--color-toolkit-engine-tooltip-border); + background: var(--color-toolkit-engine-tooltip-background); + font-size: 14px; + font-weight: normal; + z-index: 5000; + text-align: left; + border-radius: 10px; +} +th:hover .engine-tooltip, +td:hover .engine-tooltip, +.engine-tooltip:hover { + display: inline-block; +} +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-flow: row nowrap; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: var(--color-base-font); + border: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(var(--color-base-font-rgb), 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.4rem 0; + width: 1px; +} +/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ +.autocomplete { + position: absolute; + width: 44rem; + max-height: 0; + overflow-y: hidden; + text-align: left; + border-radius: 10px; +} +.autocomplete:active, +.autocomplete:focus, +.autocomplete:hover { + background-color: var(--color-autocomplete-background); +} +.autocomplete:empty { + display: none; +} +.autocomplete > ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.autocomplete > ul > li { + cursor: pointer; + padding: 0.5rem 1rem; +} +.autocomplete > ul > li.active, +.autocomplete > ul > li:active, +.autocomplete > ul > li:focus, +.autocomplete > ul > li:hover { + background-color: var(--color-autocomplete-background-hover); +} +.autocomplete > ul > li.active a:active, +.autocomplete > ul > li:active a:active, +.autocomplete > ul > li:focus a:active, +.autocomplete > ul > li:hover a:active, +.autocomplete > ul > li.active a:focus, +.autocomplete > ul > li:active a:focus, +.autocomplete > ul > li:focus a:focus, +.autocomplete > ul > li:hover a:focus, +.autocomplete > ul > li.active a:hover, +.autocomplete > ul > li:active a:hover, +.autocomplete > ul > li:focus a:hover, +.autocomplete > ul > li:hover a:hover { + text-decoration: none; +} +.autocomplete > ul > li.locked { + cursor: inherit; +} +.autocomplete.open { + display: block; + background-color: var(--color-autocomplete-background); + color: var(--color-autocomplete-font); + max-height: 32rem; + overflow-y: auto; + z-index: 5000; + margin-top: 3.5rem; + border-radius: 0.8rem; +} +.autocomplete.open:empty { + display: none; +} +@media screen and (max-width: 50em) { + .autocomplete { + width: 100%; + } + .autocomplete > ul > li { + padding: 1rem; + } +} +#main_results #results.image-detail-open.only_template_images { + width: min(98%, 59.25rem) !important; +} +#main_results #results.only_template_images.image-detail-open #backToTop { + left: 56.75rem !important; + right: inherit; +} +article.result-images .detail { + display: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail { + display: flex; + flex-direction: column; + position: fixed; + left: 60rem; + right: 0; + top: 13rem; + transition: top 0.064s ease-in 0s; + bottom: 0; + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-background); + z-index: 1000; + padding: 4rem 3rem 3rem 3rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { + display: block; + flex: 1; + text-align: left; + width: 100%; + border: none; + text-decoration: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + padding: 0; + margin: 0; + border: none; + object-fit: contain; + width: inherit; + height: inherit; + max-width: 100%; + min-height: inherit; + max-height: calc(100vh - 25rem - 7rem); + background: inherit; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels { + color: var(--color-result-detail-font); + height: 19rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr { + border-top: 1px solid var(--color-result-detail-hr); + border-bottom: none; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4 { + height: 2rem; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.9rem; + margin-bottom: 0; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { + color: var(--color-result-detail-label-font); + font-size: 0.9rem; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + margin: 0.8rem 0; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { + display: inline-block; + width: 12rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a { + text-align: left; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content { + height: 2rem; + line-height: unset; + overflow: hidden; + text-overflow: ellipsis; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url { + white-space: nowrap; + overflow: hidden hidden; + text-overflow: ellipsis; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover { + position: relative; + overflow: inherit !important; + background: var(--color-result-detail-background); + text-overflow: inherit !important; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active { + color: var(--color-result-detail-link); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover { + text-decoration: underline; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close { + top: 1rem; + left: 1rem; + padding: 0.4rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { + top: 1rem; + right: 6rem; + padding-top: 0.4rem; + padding-right: 0.5rem; + padding-bottom: 0.4rem; + padding-left: 0.3rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { + top: 1rem; + right: 2rem; + padding: 0.4rem; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { + border-radius: 50%; + display: block; + width: 1.5rem; + height: 1.5rem; + position: absolute; + filter: opacity(40%); + z-index: 1200; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span { + display: block; + width: 1.5rem; + height: 1.5rem; + text-align: center; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before { + vertical-align: sub; +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active { + color: var(--color-result-detail-font); + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-font); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus, +#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover { + filter: opacity(80%); +} +#results.image-detail-open article.result-images[data-vim-selected] .detail .loader { + position: absolute; + top: 1rem; + right: 50%; + border-top: 0.5em solid var(--color-result-detail-loader-border); + border-right: 0.5em solid var(--color-result-detail-loader-border); + border-bottom: 0.5em solid var(--color-result-detail-loader-border); + border-left: 0.5em solid var(--color-result-detail-loader-borderleft); +} +#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail { + top: 0; +} +#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img { + max-height: calc(100vh - 25rem); +} +@media screen and (max-width: 79.75em) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + left: 0; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { + display: flex; + flex-direction: column; + justify-content: center; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + width: 100%; + max-height: calc(100vh - 24rem); + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { + right: 1rem; + } +} +@media screen and (max-width: 50em) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + left: 0; + padding: 1rem; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { + width: 100%; + max-height: calc(100vh - 20rem); + margin: 0; + } + #results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { + width: inherit; + margin-right: 1rem; + } +} +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; +} +@keyframes dialogmodal { + 0% { + opacity: 0; + } + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } +} +input.checkbox-onoff[type="checkbox"]::before { + transition: left 0.25s; +} +iframe[src^="https://w.soundcloud.com"] { + height: 120px; +} +iframe[src^="https://www.deezer.com"] { + height: 94px; +} +iframe[src^="https://www.mixcloud.com"] { + height: 250px; +} +iframe[src^="https://bandcamp.com/EmbeddedPlayer"] { + height: 350px; +} +iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"] { + height: 120px; +} +iframe[src^="https://genius.com/songs"] { + height: 65px; +} +.info-page code { + font-family: monospace; + border-radius: 5px; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; +} +.stats_endpoint .github-issue-button { + display: block; + font-size: 16px; +} +.stats_endpoint .issue-hide { + display: none; +} +.stats_endpoint input[type=checked] { + position: absolute; +} +.stats_endpoint label { + margin: 1rem 1rem 1rem 0; +} +.stats_endpoint .step_content { + margin: 1rem 1rem 1rem 2rem; +} +.stats_endpoint .step1, +.stats_endpoint .step2 { + visibility: hidden; +} +.stats_endpoint .step1_delay { + transition: visibility 0s linear 4s; +} +.stats_endpoint #step1:checked ~ .step1, +.stats_endpoint #step2:checked ~ .step2 { + visibility: visible; +} +.engine-stats { + border-spacing: 0; + border-collapse: collapse; +} +.engine-stats tr td, +.engine-stats tr th { + border-bottom: 1px solid var(--color-result-border); + padding: 0.25rem; +} +.engine-stats table.engine-tooltip { + border-spacing: 0; + border-collapse: collapse; +} +.engine-stats table.engine-tooltip td, +.engine-stats table.engine-tooltip th { + border: none; +} +.engine-stats .engine-name { + width: 20rem; +} +.engine-stats .engine-score { + width: 7rem; + text-align: right; +} +.engine-stats .engine-reliability { + text-align: right; +} +table.engine-error th.engine-error-type, +table.engine-error td.engine-error-type, +failed-test { + width: 10rem; +} +.engine-errors { + margin-top: 3rem; +} +.engine-errors table.engine-error { + max-width: 1280px; + margin: 1rem 0 3rem 0; + border: 1px solid var(--color-result-border); + text-align: left; +} +.engine-errors table.engine-error tr th, +.engine-errors table.engine-error tr td { + padding: 0.5rem; +} +.engine-errors table.engine-error span.log_parameters { + border-right: 1px solid solid var(--color-result-border); + padding: 0 1rem 0 0; + margin: 0 0 0 0.5rem; +} +.bar-chart-value { + width: 3em; + display: inline-block; + text-align: right; + padding-right: 0.5rem; +} +.bar-chart-graph { + width: calc(100% - 5rem); + display: inline-block; +} +.bar-chart-bar { + border: 3px solid var(--color-bar-chart-primary); + margin: 1px 0; +} +.bar-chart-serie1 { + border: 3px solid var(--color-bar-chart-primary); + margin: 1px 0; + float: left; +} +.bar-chart-serie2 { + border: 3px solid var(--color-bar-chart-secondary); + margin: 1px 0; + float: left; +} +.bar0 { + width: 0; + border: 0; +} +.bar1 { + width: 1%; +} +.bar2 { + width: 2%; +} +.bar3 { + width: 3%; +} +.bar4 { + width: 4%; +} +.bar5 { + width: 5%; +} +.bar6 { + width: 6%; +} +.bar7 { + width: 7%; +} +.bar8 { + width: 8%; +} +.bar9 { + width: 9%; +} +.bar10 { + width: 10%; +} +.bar11 { + width: 11%; +} +.bar12 { + width: 12%; +} +.bar13 { + width: 13%; +} +.bar14 { + width: 14%; +} +.bar15 { + width: 15%; +} +.bar16 { + width: 16%; +} +.bar17 { + width: 17%; +} +.bar18 { + width: 18%; +} +.bar19 { + width: 19%; +} +.bar20 { + width: 20%; +} +.bar21 { + width: 21%; +} +.bar22 { + width: 22%; +} +.bar23 { + width: 23%; +} +.bar24 { + width: 24%; +} +.bar25 { + width: 25%; +} +.bar26 { + width: 26%; +} +.bar27 { + width: 27%; +} +.bar28 { + width: 28%; +} +.bar29 { + width: 29%; +} +.bar30 { + width: 30%; +} +.bar31 { + width: 31%; +} +.bar32 { + width: 32%; +} +.bar33 { + width: 33%; +} +.bar34 { + width: 34%; +} +.bar35 { + width: 35%; +} +.bar36 { + width: 36%; +} +.bar37 { + width: 37%; +} +.bar38 { + width: 38%; +} +.bar39 { + width: 39%; +} +.bar40 { + width: 40%; +} +.bar41 { + width: 41%; +} +.bar42 { + width: 42%; +} +.bar43 { + width: 43%; +} +.bar44 { + width: 44%; +} +.bar45 { + width: 45%; +} +.bar46 { + width: 46%; +} +.bar47 { + width: 47%; +} +.bar48 { + width: 48%; +} +.bar49 { + width: 49%; +} +.bar50 { + width: 50%; +} +.bar51 { + width: 51%; +} +.bar52 { + width: 52%; +} +.bar53 { + width: 53%; +} +.bar54 { + width: 54%; +} +.bar55 { + width: 55%; +} +.bar56 { + width: 56%; +} +.bar57 { + width: 57%; +} +.bar58 { + width: 58%; +} +.bar59 { + width: 59%; +} +.bar60 { + width: 60%; +} +.bar61 { + width: 61%; +} +.bar62 { + width: 62%; +} +.bar63 { + width: 63%; +} +.bar64 { + width: 64%; +} +.bar65 { + width: 65%; +} +.bar66 { + width: 66%; +} +.bar67 { + width: 67%; +} +.bar68 { + width: 68%; +} +.bar69 { + width: 69%; +} +.bar70 { + width: 70%; +} +.bar71 { + width: 71%; +} +.bar72 { + width: 72%; +} +.bar73 { + width: 73%; +} +.bar74 { + width: 74%; +} +.bar75 { + width: 75%; +} +.bar76 { + width: 76%; +} +.bar77 { + width: 77%; +} +.bar78 { + width: 78%; +} +.bar79 { + width: 79%; +} +.bar80 { + width: 80%; +} +.bar81 { + width: 81%; +} +.bar82 { + width: 82%; +} +.bar83 { + width: 83%; +} +.bar84 { + width: 84%; +} +.bar85 { + width: 85%; +} +.bar86 { + width: 86%; +} +.bar87 { + width: 87%; +} +.bar88 { + width: 88%; +} +.bar89 { + width: 89%; +} +.bar90 { + width: 90%; +} +.bar91 { + width: 91%; +} +.bar92 { + width: 92%; +} +.bar93 { + width: 93%; +} +.bar94 { + width: 94%; +} +.bar95 { + width: 95%; +} +.bar96 { + width: 96%; +} +.bar97 { + width: 97%; +} +.bar98 { + width: 98%; +} +.bar99 { + width: 99%; +} +.bar100 { + width: 100%; +} +.osm-map-box { + height: 300px; + width: 100%; + margin: 10px 0; +} +#main_index { + margin-top: 26vh; +} +.index { + text-align: center; +} +.index .title { + background: url('../img/searxng.png') no-repeat; + min-height: 4rem; + margin: 4rem auto; + background-position: center; + background-size: contain; +} +.index h1 { + font-size: 4em; + visibility: hidden; +} +.index #search, +.index #search_header { + margin: 0 auto; + background: inherit; + border: inherit; + padding: 0; + display: block; +} +.index .search_filters { + display: block; + margin: 1em 0; +} +.index .category label { + padding: 6px 10px; + border-bottom: initial !important; +} +@media screen and (max-width: 79.75em) { + div.title h1 { + font-size: 1em; + } + #main_index { + margin-top: 6em; + } +} +table { + border-collapse: collapse; +} +table th, +table td { + text-align: center; + padding: 1rem 0.5rem; + text-align: left; +} +table tr.pref-group th { + font-weight: normal; + text-align: left; + background: var(--color-settings-table-group-background); +} +#main_preferences form { + width: 100%; +} +#main_preferences fieldset { + margin: 8px; + border: none; +} +#main_preferences legend { + margin: 0; + padding: 5px 0 0 0; + display: block; + float: left; + width: 300px; +} +#main_preferences input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + border-radius: 5px; +} +#main_preferences input[type="text"]:hover, +#main_preferences input[type="text"]:focus { + background-color: var(--color-toolkit-select-background-hover); +} +#main_preferences .value { + margin: 0; + padding: 0; + float: left; + width: 15em; +} +#main_preferences .value select, +#main_preferences .value input[type="text"] { + font-size: inherit !important; + margin-top: 0; + margin-right: 1rem; + margin-bottom: 0; + margin-left: 0; +} +#main_preferences .value select { + width: 14rem; +} +#main_preferences .value select:focus, +#main_preferences .value input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); +} +#main_preferences .description { + margin: 0; + padding: 5px 0 0 0; + float: right; + width: 50%; + color: var(--color-settings-engine-description-font); + font-size: 90%; +} +#main_preferences .bang { + text-align: left; + border-radius: 5px; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; +} +#main_preferences .category { + margin-right: 0.5rem; +} +#main_preferences .category label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + border-radius: 5px; +} +#main_preferences .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); +} +#main_preferences table.table_engines th.name { + /* stylelint-disable */ + /* stylelint-enable */ +} +#main_preferences table.table_engines th.name label { + cursor: pointer; +} +#main_preferences table.table_engines th.name .engine-tooltip { + margin-top: 1.8rem; + left: calc((100% - 85em) / 2 + 10em); + max-width: 40rem; +} +#main_preferences table.table_engines th.name .engine-tooltip .engine-description { + margin-top: 0.5rem; +} +#main_preferences table.table_engines th.name .engine-tooltip .bang { + margin: 0.3rem; +} +#main_preferences table.table_engines .checkbox-col, +#main_preferences table.table_engines .name, +#main_preferences table.table_engines .shortcut { + text-align: left; +} +#main_preferences table.cookies { + width: 100%; + direction: ltr; +} +#main_preferences table.cookies th, +#main_preferences table.cookies td { + text-align: left; + font-family: monospace; + font-size: 1rem; + padding: 0.5em; + vertical-align: top; +} +#main_preferences table.cookies td:first-child { + word-break: keep-all; + width: 14rem; + padding-right: 1rem; +} +#main_preferences table.cookies td:last-child { + word-break: break-all; +} +#main_preferences table.cookies > tbody > tr:nth-child(even) > th, +#main_preferences table.cookies > tbody > tr:nth-child(even) > td { + background-color: var(--color-settings-tr-hover); +} +#main_preferences .preferences_back { + background: none repeat scroll 0 0 var(--color-btn-background); + color: var(--color-btn-font); + border: 0 none; + border-radius: 10px; + cursor: pointer; + display: inline-block; + margin: 2px 4px; + padding: 0.7em; +} +#main_preferences .preferences_back a { + color: var(--color-settings-return-font); +} +#main_preferences .preferences_back a::first-letter { + text-transform: uppercase; +} +#main_preferences #toggle-all-engines-container { + width: max-content; + margin-left: auto; +} +#main_preferences div.selectable_url pre { + width: 100%; +} +#main_preferences #copy-hash-container { + display: flex; + align-items: center; + gap: 0.5rem; +} +#main_preferences #copy-hash-container div.selectable_url pre { + width: auto; + flex-grow: 1; +} +#main_preferences #pref-hash-input { + width: 100%; +} +@media screen and (max-width: 79.75em) { + .preferences_back { + clear: both; + } + .engine-tooltip { + left: 10em !important; + } +} +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +*/ +#search { + padding: 0; + margin: 0; +} +#search_header { + padding-top: 1.5em; + padding-right: 2em; + padding-left: 7rem; + margin: 0; + background: var(--color-header-background); + border-bottom: 1px solid var(--color-header-border); + display: grid; + gap: 1rem 1.2rem; + grid-template-columns: 3rem 1fr; + grid-template-areas: "logo search" "spacer categories"; +} +.category_checkbox, +.category_button { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; +} +.category_checkbox input { + display: none; +} +.category_checkbox label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + user-select: none; +} +.category_checkbox label svg { + padding-right: 0.2rem; +} +.category_checkbox label div.category_name { + margin: auto 0; +} +.category_checkbox input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +button.category_button { + background-color: inherit; + color: var(--color-base-font); + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + align-items: center; + text-transform: capitalize; + font-size: 0.9em; + border: none; + border-bottom: 2px solid transparent; +} +button.category_button svg { + padding-right: 0.2rem; +} +button.category_button.selected, +button.category_button:active { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected { + color: var(--color-base-font); + border-bottom: none; +} +.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} +#search_logo { + padding: 0.5rem 10px 0 10px; + grid-area: logo; + display: flex; + align-items: center; + justify-content: center; +} +#search_logo svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; +} +.search_categories { + grid-area: categories; +} +.search_categories .help { + display: none; +} +.search_categories:hover .help { + display: block; + position: absolute; + background: var(--color-base-background); + padding: 1rem 0.6rem 0.6rem 0; + z-index: 1000; + width: 100%; + left: -0.1rem; +} +#search_view { + padding: 0.5rem 0.3rem 0 0.5rem; + grid-area: search; +} +body.results_endpoint #search_view { + padding: 0.5rem 2.8rem 0 0; +} +.search_box { + border-radius: 0.8rem; + width: 44rem; + display: inline-flex; + flex-direction: row; + white-space: nowrap; + box-shadow: var(--color-search-shadow); +} +#clear_search { + display: block; + border-collapse: separate; + box-sizing: border-box; + width: 1.8rem; + margin: 0; + padding: 0.8rem 0.2rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 1000; +} +#clear_search:hover { + color: var(--color-search-background-hover); +} +#clear_search.empty * { + display: none; +} +html.no-js #clear_search.hide_if_nojs { + display: none; +} +#q, +#send_search { + display: block; + margin: 0; + padding: 0.8rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 100; +} +#q { + width: 100%; + padding-left: 1rem; + padding-right: 0 !important; + border-radius: 0.8rem 0 0 0.8rem; +} +#q::-ms-clear, +#q::-webkit-search-cancel-button { + display: none; +} +#send_search { + border-radius: 0 0.8rem 0.8rem 0; +} +#send_search:hover { + cursor: pointer; + background-color: var(--color-search-background-hover); + color: var(--color-search-background); +} +.no-js #clear_search, +.no-js #send_search { + width: auto !important; + border-left: 1px solid var(--color-search-border); +} +.search_filters { + margin-top: 0.6rem; + margin-right: 0; + margin-bottom: 0; + margin-left: 10.6rem; + display: flex; + overflow-x: auto; + overscroll-behavior-inline: contain; +} +.search_filters select { + background-color: inherit; +} +.search_filters select:hover, +.search_filters select:focus { + color: var(--color-base-font); +} +@media screen and (max-width: 79.75em) { + #search_header { + padding: 1.5em 0.5rem 0 0.5rem; + column-gap: 0.5rem; + } + .search_filters { + margin-top: 0.6rem; + margin-right: 0; + margin-bottom: 0; + margin-left: 3.5rem; + } + #categories { + font-size: 90%; + clear: both; + } +} +@media screen and (max-width: 79.75em) and (hover: none) { + #main_index #categories_container, + #main_results #categories_container { + width: max-content; + } + #main_index #categories_container .category_checkbox, + #main_results #categories_container .category_checkbox { + display: inline-block; + width: auto; + } + #main_index #categories, + #main_results #categories { + width: 100%; + text-align: left; + overflow: scroll hidden; + -webkit-overflow-scrolling: touch; + } +} +@media screen and (max-width: 50em) { + #search_header { + width: 100%; + margin: 0; + padding: 0.1rem 0 0 0; + gap: 0 0; + grid-template-areas: "logo search" "categories categories"; + } + .search_logo { + padding: 0; + } + .search_box { + width: 98%; + display: flex; + } + #q { + width: 100%; + flex: 1; + } + .search_filters { + margin: 0 10px; + padding: 0.5rem 0; + } + .category { + display: inline-block; + width: auto; + margin: 0; + } + .category svg { + display: none; + } + .category_checkbox label { + padding: 1rem !important; + margin: 0 !important; + } + .category_button { + padding: 1rem !important; + margin: 0 !important; + } + #search_view:focus-within { + display: block; + background-color: var(--color-search-background); + position: absolute; + top: 0; + height: 100%; + width: 100%; + z-index: 2000; + } + #search_view:focus-within .search_box { + border-bottom: 1px solid var(--color-search-border); + width: 100%; + border-radius: 0; + box-shadow: none; + } + #search_view:focus-within .search_box #send_search { + margin-right: 0 !important; + } + #search_view:focus-within .search_box * { + border: none; + border-radius: 0; + box-shadow: none; + } + #main_results #q:placeholder-shown ~ #send_search { + margin-right: 2.6rem; + transition: margin 0.1s; + } +} +@media screen and (max-width: 20rem) { + #search_header { + grid-template-areas: "search search" "categories categories"; + } + #search_logo { + display: none; + } +} +#categories { + -webkit-touch-callout: none; + user-select: none; +} +#categories::-webkit-scrollbar { + width: 0; + height: 0; +} +#categories_container { + position: relative; +} +.favicon img { + height: 1.5rem; + width: 1.5rem; + border-radius: 10%; + background-color: var(--color-favicon-background-color); + border: 1px solid var(--color-favicon-border-color); + display: flex; +} +/* +--center-page-width overrides the less variable @results-width when the results are centered +see the CSS rules for #results in style.less ( grid-template-columns and gap). + +In this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3). + +All rules starts with ".center-alignment-yes #main_results" to be enabled only +on the /search URL and when the "center alignment" preference is enabled. +*/ +@media screen and (min-width: 50em) { + .center-alignment-yes #main_results { + --center-page-width: 48rem; + } +} +@media screen and (width >= 62rem) { + .center-alignment-yes #main_results { + --center-page-width: 60rem; + } +} +@media screen and (min-width: 79.75em) { + .center-alignment-yes #main_results { + --center-page-width: 73rem; + } +} +@media screen and (min-width: 50em) and (max-width: 79.75em) { + .center-alignment-yes #main_results #results { + grid-template-columns: 60% calc(40% - 5rem); + margin-left: 0; + margin-right: 0; + } + .center-alignment-yes #main_results #urls { + margin-left: 3rem; + } + .center-alignment-yes #main_results #sidebar { + margin-right: 1rem; + } + .center-alignment-yes #main_results #backToTop { + left: calc(60% + 1rem); + } +} +@media screen and (min-width: 79.75em) { + .center-alignment-yes #main_results { + display: flex; + flex-direction: column; + align-items: center; + } + .center-alignment-yes #main_results #search { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + .center-alignment-yes #main_results #search_header { + grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width); + grid-template-areas: "na logo search" "na spacer categories"; + column-gap: 1.2rem; + width: 100%; + padding-left: 0; + padding-right: 0; + } + .center-alignment-yes #main_results .search_filters { + margin-left: 0.5rem; + width: var(--center-page-width); + } + .center-alignment-yes #main_results #results { + margin-right: 2rem; + margin-left: 10rem; + } + .center-alignment-yes #main_results #results.only_template_images, + .center-alignment-yes #main_results #results.image-detail-open { + align-self: flex-start; + } + .center-alignment-yes #main_results #results:not(.only_template_images, .image-detail-open) { + margin-left: 1.5rem; + grid-template-columns: calc(var(--center-page-width) - 5rem - 25rem) 25rem; + } + .center-alignment-yes #main_results #results:not(.only_template_images, .image-detail-open) #backToTop { + left: calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2); + } + .center-alignment-yes #main_results #results .result .content { + max-width: inherit; + } + .center-alignment-yes #main_results #urls { + margin-left: 0; + } + .center-alignment-yes #main_results #sidebar { + margin-right: 0; + } +} +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(1, 1); +} +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(1, 1); +} +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + transform: scale(1, 1); +} +html { + font-family: sans-serif; + font-size: 0.9em; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; + color: var(--color-base-font); + background-color: var(--color-base-background); + padding: 0; + margin: 0; + scroll-behavior: smooth; +} +body, +main { + padding: 0; + margin: 0; +} +body { + display: flex; + flex-direction: column; + height: 100vh; + margin: 0; +} +main { + width: 100%; + margin-bottom: 2rem; + flex: 1; +} +.page_with_header { + margin: 2em auto; + width: 85em; +} +footer { + clear: both; + min-height: 4rem; + padding: 1rem 0; + width: 100%; + text-align: center; + background-color: var(--color-footer-background); + border-top: 1px solid var(--color-footer-border); + overflow: hidden; +} +footer p { + font-size: 0.9em; +} +.page_with_header .logo { + height: 40px; +} +input[type="submit"], +#results button[type="submit"], +.button { + padding: 0.7rem; + display: inline-block; + background: var(--color-btn-background); + color: var(--color-btn-font); + border-radius: 10px; + border: 0; + cursor: pointer; +} +a { + text-decoration: none; + color: var(--color-url-font); +} +a:visited { + color: var(--color-url-visited-font); +} +a:visited .highlight { + color: var(--color-url-visited-font); +} +article[data-vim-selected] { + background: var(--color-result-vim-selected); + border-left: 0.2rem solid var(--color-result-vim-arrow); + border-radius: 0 10px 10px 0; +} +article.result-images[data-vim-selected] { + background: var(--color-result-vim-arrow); + border: none; + border-radius: 10px; +} +article.result-images[data-vim-selected] .image_thumbnail { + filter: opacity(60%); +} +article.result-images[data-vim-selected] span.title, +article.result-images[data-vim-selected] span.source { + color: var(--color-result-image-span-font-selected); +} +article[data-vim-selected].category-videos, +article[data-vim-selected].category-news, +article[data-vim-selected].category-map, +article[data-vim-selected].category-music, +article[data-vim-selected].category-files, +article[data-vim-selected].category-social { + border: 1px solid var(--color-result-vim-arrow); + border-radius: 10px; +} +.result { + margin: 0.125rem 0; + padding: 1rem; + box-sizing: border-box; + width: 100%; + border-left: 0.2rem solid transparent; +} +.result h3 { + font-size: 1.2rem; + word-wrap: break-word; + margin: 0.4rem 0 0.4rem 0; + padding: 0; +} +.result h3 a { + color: var(--color-result-link-font); + font-weight: normal; + font-size: 1.1em; +} +.result h3 a:visited { + color: var(--color-result-link-visited-font); +} +.result h3 a:focus, +.result h3 a:hover { + text-decoration: underline; + border: none; + outline: none; +} +.result .cache_link, +.result .proxyfied_link { + font-size: smaller !important; + margin-left: 0.5rem; +} +.result .content, +.result .stat { + font-size: 0.9em; + margin: 0; + padding: 0; + max-width: 54em; + word-wrap: break-word; + line-height: 1.24; +} +.result .content .highlight, +.result .stat .highlight { + color: var(--color-result-description-highlight-font); + background: inherit; + font-weight: bold; +} +.result .altlink a { + font-size: 0.9em; + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 5px; + background: var(--color-show-btn-background); + color: var(--color-show-btn-font); + cursor: pointer; +} +.result .altlink a:hover { + background: var(--color-btn-background); + color: var(--color-btn-font); +} +.result .codelines .highlight { + color: inherit; + background: inherit; + font-weight: normal; +} +.result .url_header { + display: flex; + gap: 0.5rem; +} +.result .url_wrapper { + display: flex; + align-items: center; + font-size: 1rem; + color: var(--color-result-url-font); + flex-flow: row nowrap; + overflow: hidden; + margin: 0; + padding: 0; +} +.result .url_wrapper .url_o1 { + white-space: nowrap; + flex-shrink: 1; + padding-bottom: 1px; +} +.result .url_wrapper .url_o1 .url_i1 { + unicode-bidi: plaintext; +} +.result .url_wrapper .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; +} +.result .url_wrapper .url_o2 { + overflow: hidden; + white-space: nowrap; + flex: 0 1 content; + text-align: right; + padding-bottom: 1px; +} +.result .url_wrapper .url_o2 .url_i2 { + float: right; +} +.result .published_date, +.result .result_length, +.result .result_views, +.result .result_author, +.result .result_shipping, +.result .result_source_country { + font-size: 0.8em; + color: var(--color-result-publishdate-font); +} +.result .result_price { + font-size: 1.2em; + color: var(--color-result-description-highlight-font); +} +.result img.thumbnail { + float: left; + padding-top: 0.6rem; + padding-right: 1rem; + width: 7rem; + height: unset; +} +.result .break { + clear: both; +} +.result-paper .attributes, +.result-packages .attributes { + display: table; + border-spacing: 0.125rem; +} +.result-paper .attributes div, +.result-packages .attributes div { + display: table-row; +} +.result-paper .attributes div span, +.result-packages .attributes div span { + font-size: 0.9rem; + margin-top: 0.25rem; + display: table-cell; +} +.result-paper .attributes div span time, +.result-packages .attributes div span time { + font-size: 0.9rem; +} +.result-paper .attributes div span:first-child, +.result-packages .attributes div span:first-child { + color: var(--color-base-font); + min-width: 10rem; +} +.result-paper .attributes div span:nth-child(2), +.result-packages .attributes div span:nth-child(2) { + color: var(--color-result-publishdate-font); +} +.result-paper .content, +.result-packages .content { + margin-top: 0.25rem; +} +.result-paper .comments, +.result-packages .comments { + font-size: 0.9rem; + margin: 0.25rem 0 0 0; + padding: 0; + word-wrap: break-word; + line-height: 1.24; + font-style: italic; +} +.result-packages .attributes { + margin-top: 0.3rem; +} +.template_group_images { + display: flex; + flex-wrap: wrap; +} +.template_group_images::after { + flex-grow: 10; + content: ""; +} +.category-videos, +.category-news, +.category-map, +.category-music, +.category-files, +.category-social { + border: 1px solid var(--color-result-border); + margin: 0 0.5rem 1rem 0.5rem !important; + border-radius: 10px; +} +.category-social .image { + width: auto !important; + min-width: 48px; + min-height: 48px; + padding: 0 5px 25px 0 !important; +} +.audio-control audio { + width: 100%; + padding: 10px 0 0 0; +} +.embedded-content iframe { + width: 100%; + padding: 10px 0 0 0; +} +.result-videos img.thumbnail { + float: left; + padding-top: 0.6rem; + padding-right: 1rem; + width: 20rem; + height: unset; +} +.result-videos .content { + overflow: hidden; +} +.result-videos .embedded-video iframe { + width: 100%; + aspect-ratio: 16 / 9; + padding: 10px 0 0 0; +} +@supports not (aspect-ratio: 1 / 1) { + .result-videos .embedded-video iframe { + height: calc(45rem * 9 / 16); + } +} +.engines { + float: right; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + color: var(--color-result-engines-font); +} +.engines span { + font-size: smaller; + margin-top: 0; + margin-bottom: 0; + margin-right: 0.5rem; + margin-left: 0; +} +.small_font { + font-size: 0.8em; +} +.highlight { + color: var(--color-result-link-font-highlight); + background: inherit; +} +.empty_element { + font-style: italic; +} +.result-images { + flex-grow: 1; + padding: 0.5rem 0.5rem 3rem 0.5rem; + margin: 0.25rem; + border: none !important; + height: 12rem; + width: unset; +} +.result-images > a { + position: relative; + outline: none; +} +.result-images img { + margin: 0; + padding: 0; + border: none; + height: 100%; + width: 100%; + object-fit: cover; + vertical-align: bottom; + background: var(--color-result-image-background); +} +.result-images .image_resolution { + position: absolute; + right: 0; + bottom: 0; + background: var(--color-image-resolution-background); + padding: 0.3rem 0.5rem; + font-size: 0.9rem; + color: var(--color-image-resolution-font); + border-top-left-radius: 0.3rem; +} +.result-images span.title, +.result-images span.source { + display: block; + position: absolute; + width: 100%; + font-size: 0.9rem; + color: var(--color-result-image-span-font); + padding: 0.5rem 0 0 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.result-images span.source { + padding: 1.8rem 0 0 0; + font-size: 0.7rem; +} +.result-map img.image { + float: right !important; + height: 100px !important; + width: auto !important; +} +.result-map table { + font-size: 0.9em; + width: auto; + border-collapse: separate; + border-spacing: 0 0.35rem; +} +.result-map table th { + font-weight: inherit; + width: 17rem; + vertical-align: top; + text-align: left; +} +.result-map table td { + vertical-align: top; + text-align: left; +} +.hidden { + display: none !important; +} +#results { + margin-top: 1rem; + margin-right: 2rem; + margin-bottom: 0; + margin-left: 10rem; + display: grid; + grid-template: "corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem; + gap: 0 5rem; +} +#results #sidebar *:first-child { + margin-top: 0; +} +#urls { + padding: 0; + grid-area: urls; +} +#apis .wrapper { + display: flex; +} +#suggestions .wrapper { + display: flex; + flex-flow: column; + justify-content: flex-end; +} +#suggestions .wrapper form { + display: inline-block; + flex: 1 1 50%; +} +#suggestions input, +#infoboxes input { + padding: 0; + margin: 3px; + font-size: 0.9em; + display: inline-block; + background: transparent; + color: var(--color-result-search-url-font); + cursor: pointer; + width: calc(100%); + text-overflow: ellipsis; + overflow: hidden; + text-align: left; +} +#suggestions input[type="submit"], +#infoboxes input[type="submit"], +#suggestions .infobox .url a, +#infoboxes .infobox .url a { + color: var(--color-result-link-font); + text-decoration: none; + font-size: 0.9rem; +} +#suggestions input[type="submit"]:hover, +#infoboxes input[type="submit"]:hover, +#suggestions .infobox .url a:hover, +#infoboxes .infobox .url a:hover { + text-decoration: underline; +} +#corrections { + grid-area: corrections; + display: flex; + flex-flow: row wrap; + margin: 0 0 1em 0; +} +#corrections h4, +#corrections input[type="submit"] { + display: inline-block; + padding: 0.5rem; + margin: 0.5rem; +} +#corrections input[type="submit"] { + font-size: 0.8rem; + border-radius: 5px; +} +#infoboxes .title, +#suggestions .title, +#search_url .title, +#engines_msg .title, +#apis .title { + margin: 2em 0 0.5em 0; + color: var(--color-base-font); +} +summary.title { + cursor: pointer; + padding-top: 1em; +} +.sidebar-collapsible { + border-top: 1px solid var(--color-sidebar-border); + padding-bottom: 0.5em; +} +#sidebar-end-collapsible { + border-bottom: 1px solid var(--color-sidebar-border); + width: 100%; +} +#answers { + grid-area: answers; + background: var(--color-answer-background); + padding: 1rem; + margin: 1rem 0; + margin-top: 0; + color: var(--color-answer-font); + border-radius: 10px; +} +#answers h4 { + display: none; +} +#answers span { + overflow-wrap: anywhere; +} +#answers .answer { + display: flex; + flex-direction: column; +} +#answers .answer-url { + margin: 5px 10px 10px auto; +} +#infoboxes form { + min-width: 210px; +} +#sidebar { + grid-area: sidebar; + word-wrap: break-word; + color: var(--color-sidebar-font); +} +#sidebar .infobox { + margin: 10px 0 10px; + border: 1px solid var(--color-sidebar-border); + padding: 1rem; + font-size: 0.9em; + border-radius: 10px; +} +#sidebar .infobox h2 { + margin: 0 0 0.5em 0; +} +#sidebar .infobox img { + max-width: 100%; + max-height: 12em; + display: block; + margin: 0 auto; + padding: 0; +} +#sidebar .infobox dt { + font-weight: bold; +} +#sidebar .infobox .attributes dl { + margin: 0.5em 0; +} +#sidebar .infobox .attributes dt { + display: inline; + margin-top: 0.5em; + margin-right: 0.25em; + margin-bottom: 0.5em; + margin-left: 0; + padding: 0; +} +#sidebar .infobox .attributes dd { + display: inline; + margin: 0.5em 0; + padding: 0; +} +#sidebar .infobox input { + font-size: 1em; +} +#sidebar .infobox br { + clear: both; +} +#sidebar .infobox .attributes, +#sidebar .infobox .urls { + clear: both; +} +#apis input { + font-size: 0.9em; + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 5px; + background: var(--color-show-btn-background); + color: var(--color-show-btn-font); + cursor: pointer; +} +#apis input:hover { + background: var(--color-btn-background); + color: var(--color-btn-font); +} +#engines_msg .engine-name { + width: 10rem; +} +#engines_msg .response-error { + color: var(--color-error); +} +#engines_msg .bar-chart-value { + width: auto; +} +#search_url div.selectable_url pre { + float: left; + width: 200em; +} +#search_url button#copy_url { + float: right; + padding: 0.4rem; + margin-left: 0.5rem; + border-radius: 0.3rem; + display: none; +} +#links_on_top { + position: absolute; + right: 1rem; + text-align: right; + top: 2.7rem; + padding: 0; + border: 0; + display: flex; + align-items: center; + font-size: 1em; + color: var(--color-search-font); +} +#links_on_top a { + display: flex; + align-items: center; + margin-left: 1em; +} +#links_on_top a svg { + font-size: 1.2em; + margin-right: 0.125em; +} +#links_on_top a, +#links_on_top a:link *, +#links_on_top a:hover *, +#links_on_top a:visited *, +#links_on_top a:active * { + color: var(--color-search-font); +} +#pagination { + grid-area: pagination; +} +#pagination br { + clear: both; +} +.numbered_pagination { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + overflow: hidden; +} +.page_number { + background: transparent !important; + color: var(--color-result-link-font) !important; + text-decoration: underline; +} +.page_number_current { + background: transparent; + color: var(--color-result-link-visited-font); + border: none; +} +#backToTop { + border: 1px solid var(--color-backtotop-border); + margin: 0; + padding: 0; + font-size: 1em; + background: var(--color-backtotop-background); + position: fixed; + bottom: 8rem; + left: 56.3rem; + transition: opacity 0.5s; + opacity: 0; + pointer-events: none; + border-radius: 10px; +} +#backToTop a { + display: block; + margin: 0; + padding: 0.7em; +} +#backToTop a, +#backToTop a:visited, +#backToTop a:hover, +#backToTop a:active { + color: var(--color-backtotop-font); +} +#results.scrolling #backToTop { + opacity: 1; + pointer-events: all; +} +/* + tablet layout +*/ +@media screen and (width <= calc(79.75em - 0.5px)) { + #links_on_top span { + display: none; + } +} +@media screen and (width <= 52rem) { + body.results_endpoint #links_on_top .link_on_top_about, + body.results_endpoint #links_on_top .link_on_top_donate { + display: none; + } +} +@media screen and (min-width: 50em) and (max-width: 79.75em) { + .center-alignment-no #links_on_top span { + display: none; + } + .center-alignment-no .page_with_header { + margin: 2rem 0.5rem; + width: auto; + } + .center-alignment-no #infoboxes { + position: inherit; + max-width: inherit; + } + .center-alignment-no #infoboxes .infobox { + clear: both; + } + .center-alignment-no #infoboxes .infobox img { + float: left; + max-width: 10em; + margin-top: 0.5em; + margin-right: 0.5em; + margin-bottom: 0.5em; + margin-left: 0; + } + .center-alignment-no #sidebar { + margin: 0 0.5rem 0.125rem 0.5rem; + padding: 0; + float: none; + border: none; + width: auto; + } + .center-alignment-no #sidebar input { + border: 0; + } + .center-alignment-no .result .thumbnail { + max-width: 98%; + } + .center-alignment-no .result .url span.url { + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + } + .center-alignment-no .result .engines { + float: right; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + padding: 3px 0 0 0; + } + .center-alignment-no .result-images { + border-bottom: none !important; + } + .center-alignment-no .image_result { + max-width: 98%; + } + .center-alignment-no .image_result img { + max-width: 98%; + } + .center-alignment-no #backToTop { + display: none; + } + .center-alignment-no #pagination { + margin: 2rem 0 0 0 !important; + } + .center-alignment-no #main_results div#results { + margin: 0 auto; + justify-content: center; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem; + gap: 0; + } +} +/* Misc */ +#main_results div#results.only_template_images { + margin: 1rem 0.5rem 0 0.5rem; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%; + gap: 0; +} +#main_results div#results.only_template_images #sidebar { + display: none; +} +#main_results div#results.only_template_images #urls { + margin: 0; + display: flex; + flex-wrap: wrap; +} +#main_results div#results.only_template_images #urls::after { + flex-grow: 10; + content: ""; +} +#main_results div#results.only_template_images #backToTop { + left: auto; + right: 1rem; +} +#main_results div#results.only_template_images #pagination { + margin-right: 4rem; +} +/* + phone layout +*/ +@media screen and (max-width: 50em) { + #links_on_top span { + display: none; + } + .page_with_header { + margin: 2rem 0.5rem; + width: auto; + } + #infoboxes { + position: inherit; + max-width: inherit; + } + #infoboxes .infobox { + clear: both; + } + #infoboxes .infobox img { + float: left; + max-width: 10em; + margin-top: 0.5em; + margin-right: 0.5em; + margin-bottom: 0.5em; + margin-left: 0; + } + #sidebar { + margin: 0 0.5rem 0.125rem 0.5rem; + padding: 0; + float: none; + border: none; + width: auto; + } + #sidebar input { + border: 0; + } + .result .thumbnail { + max-width: 98%; + } + .result .url span.url { + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + } + .result .engines { + float: right; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + padding: 3px 0 0 0; + } + .result-images { + border-bottom: none !important; + } + .image_result { + max-width: 98%; + } + .image_result img { + max-width: 98%; + } + #backToTop { + display: none; + } + #pagination { + margin: 2rem 0 0 0 !important; + } + #main_results div#results { + margin: 0 auto; + justify-content: center; + display: grid; + grid-template: "corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem; + gap: 0; + } + html { + background-color: var(--color-base-background-mobile); + } + #main_results div#results { + grid-template-columns: 100%; + margin: 0 auto; + } + #links_on_top { + top: 1.4rem; + right: 10px; + } + #main_index #links_on_top { + top: 0.5rem; + right: 0.5rem; + } + #results { + margin: 0; + padding: 0; + } + #pagination { + margin: 2rem 1rem 0 1rem !important; + } + article[data-vim-selected] { + border: 1px solid var(--color-result-vim-arrow); + border-radius: 10px; + } + .result { + background: var(--color-result-background); + border: 1px solid var(--color-result-background); + margin: 1rem 2%; + width: 96%; + border-radius: 10px; + } + .result-images { + margin: 0; + height: 10rem; + background: var(--color-base-background-mobile); + width: unset; + } + .infobox { + border: none !important; + background-color: var(--color-sidebar-background); + } + .numbered_pagination { + display: none; + } + .result-paper .attributes, + .result-packages .attributes { + display: block; + } + .result-paper .attributes div, + .result-packages .attributes div { + display: block; + } + .result-paper .attributes div span, + .result-packages .attributes div span { + display: inline; + } + .result-paper .attributes div span:first-child, + .result-packages .attributes div span:first-child { + font-weight: bold; + } + .result-paper .attributes div span:nth-child(2), + .result-packages .attributes div span:nth-child(2) { + margin-left: 0.5rem; + } +} +/* + small-phone layout +*/ +@media screen and (max-width: 35em) { + .result-videos img.thumbnail { + float: none !important; + } + .result-videos .content { + overflow: inherit; + } +} +pre code { + white-space: pre-wrap; +} +/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index 21706751f..4dec295b7 100644 --- a/searx/static/themes/simple/css/searxng.min.css.map +++ b/searx/static/themes/simple/css/searxng.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["$stdin"],"names":[],"mappings":"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KACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,oBACE,MAAO,MACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,KACP,YAAa,IAEf,mBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QACP,WAAY,OAEd,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,QAET,oBACE,MAAO,QACP,YAAa,IAEf,oBACE,MAAO,MAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,MAET,oBACE,MAAO,KAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,QAET,oBACE,MAAO,KAET,WACE,OAAQ,QAAS,EAAE,EAAE,EACrB,QAAS,KAAK,EAAE,EAAE,EAEpB,oBACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,yBACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,oCACE,WAAY,IAGd,yCACE,WAAY,IAGd,6BACE,MAAO,yBAET,mCAiFE,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,0BAmFX,qCACE,YAAa,KAEf,oDACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,8CACE,MAAO,QACP,iBAAkB,YAClB,aAAc,IACd,cAAe,IAEjB,qDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sDACE,MAAO,QACP,iBAAkB,QAClB,aAAc,IACd,cAAe,IAEjB,sCACE,iBAAkB,QAEpB,oCACE,MAAO,QAET,sCACE,MAAO,QAET,sCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,WAAY,OAEd,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QACP,WAAY,OAEd,sCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,iBAAkB,QAEpB,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IAEf,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QACP,YAAa,IACb,WAAY,OAEd,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,oCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,MAAO,QAET,qCACE,SAAU,KACV,OAAQ,EACR,QAAS,EAAE,EAAE,OAAQ,EAEvB,0CACE,YAAa,KACb,OAAQ,QACR,aAAc,IACd,WAAY,MAEd,qDACE,WAAY,IAGd,0DACE,WAAY,IAGd,8CACE,MAAO,yBAET,yBACE,QAAS,KAEX,sBACE,QAAS,KAEX,QACE,WAAY,OAEd,OACE,MAAO,MAET,MACE,MAAO,KAET,WACE,QAAS,eAEX,eACE,gBAAiB,KAEnB,kBACE,WAAY,IACZ,cAAe,IAEjB,QACE,iBAAkB,8BAEpB,SACE,WAAY,gCAEd,SACE,WAAY,gCAEd,OACE,QAAS,aACT,MAAO,gCACP,iBAAkB,sCAClB,WAAY,OACZ,YAAa,OACb,eAAgB,SAChB,UAAW,KACX,QAAS,IAAI,IACb,cAAe,IAEjB,IACE,QAAS,IAAI,IACb,OAAQ,IACR,UAAW,IACX,MAAO,8BACP,WAAY,oCAEd,MACE,MAAO,KAET,iBACE,cAAe,IAAI,MAAM,+BAE3B,GACE,QAAS,KAEX,GACE,QAAS,EAAE,IAEb,SACE,WAAY,yCAEd,mBACE,QAAS,MA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P,OAAQ,EAEV,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,MACE,MAAO,GAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OACE,MAAO,IAET,OAC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","sourcesContent":[null]} \ No newline at end of file +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-ltr.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iD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,gBAAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kBAAA;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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.18.0\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n left: @offset;\n}\n\n.ltr-right(@offset) {\n right: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-right: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-left: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-right: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-left: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-right: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-left: @offset;\n}\n\n.ltr-float-left() {\n float: left;\n}\n\n.ltr-float-right() {\n float: right;\n}\n\n.ltr-text-align-right() {\n text-align: right;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-text-align-left() {\n text-align: left;\n}\n\n.ltr-border-left-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(1, 1);\n}\n\n@import \"style.less\";\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file From 46b16e6ff16c931cf909183dd865a7cbf81218b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:42:15 +0000 Subject: [PATCH 049/417] [upd] npm: Bump stylelint-config-standard in /searx/static/themes/simple Bumps [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard) from 36.0.1 to 37.0.0. - [Release notes](https://github.com/stylelint/stylelint-config-standard/releases) - [Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint-config-standard/compare/36.0.1...37.0.0) --- updated-dependencies: - dependency-name: stylelint-config-standard dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- searx/static/themes/simple/package-lock.json | 151 ++++++++++++++----- searx/static/themes/simple/package.json | 2 +- 2 files changed, 117 insertions(+), 36 deletions(-) diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 7b04eb191..602a2d91d 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -27,7 +27,7 @@ "less": "^4.2.1", "sharp": "^0.33.5", "stylelint": "^16.12.0", - "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard": "^37.0.0", "stylelint-config-standard-less": "^3.0.1", "svgo": "^3.3.2" } @@ -431,6 +431,41 @@ "@img/sharp-libvips-linuxmusl-x64": "1.0.4" } }, + "node_modules/@keyv/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/@keyv/serialize/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1278,6 +1313,17 @@ "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==", "dev": true }, + "node_modules/cacheable": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.7.tgz", + "integrity": "sha512-AbfG7dAuYNjYxFUtL1lAqmlWdxczCJ47w7cFjhGcnGnUdwSo6VgmSojfoW3tUI12HUkgTJ5kqj78yyq6TsFtlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.6.0", + "keyv": "^5.2.3" + } + }, "node_modules/cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", @@ -1321,6 +1367,16 @@ "node": ">=0.10.0" } }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz", + "integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.0.2" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -2913,9 +2969,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2923,7 +2979,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -4798,6 +4854,13 @@ "node": "*" } }, + "node_modules/hookified": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.7.0.tgz", + "integrity": "sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==", + "dev": true, + "license": "MIT" + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -8582,9 +8645,9 @@ "license": "MIT" }, "node_modules/stylelint": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.12.0.tgz", - "integrity": "sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==", + "version": "16.13.2", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.13.2.tgz", + "integrity": "sha512-wDlgh0mRO9RtSa3TdidqHd0nOG8MmUyVKl+dxA6C1j8aZRzpNeEgdhFmU5y4sZx4Fc6r46p0fI7p1vR5O2DZqA==", "dev": true, "funding": [ { @@ -8607,16 +8670,16 @@ "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", - "css-tree": "^3.0.1", + "css-tree": "^3.1.0", "debug": "^4.3.7", - "fast-glob": "^3.3.2", + "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.1.0", + "file-entry-cache": "^10.0.5", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^6.0.2", + "ignore": "^7.0.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.35.0", @@ -8689,9 +8752,9 @@ } }, "node_modules/stylelint-config-standard": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", - "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", + "version": "37.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-37.0.0.tgz", + "integrity": "sha512-+6eBlbSTrOn/il2RlV0zYGQwRTkr+WtzuVSs1reaWGObxnxLpbcspCUYajVQHonVfxVw2U+h42azGhrBvcg8OA==", "dev": true, "funding": [ { @@ -8705,13 +8768,13 @@ ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^14.0.1" + "stylelint-config-recommended": "^15.0.0" }, "engines": { "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.1.0" + "stylelint": "^16.13.0" } }, "node_modules/stylelint-config-standard-less": { @@ -8750,6 +8813,29 @@ "stylelint": "^16.0.0" } }, + "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-15.0.0.tgz", + "integrity": "sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.13.0" + } + }, "node_modules/stylelint-less": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/stylelint-less/-/stylelint-less-3.0.1.tgz", @@ -8773,30 +8859,25 @@ "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", - "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz", + "integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^5.0.0" - }, - "engines": { - "node": ">=18" + "flat-cache": "^6.1.5" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", - "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz", + "integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.3.1", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=18" + "cacheable": "^1.8.7", + "flatted": "^3.3.2", + "hookified": "^1.6.0" } }, "node_modules/stylelint/node_modules/global-modules": { @@ -8828,9 +8909,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", "dev": true, "license": "MIT", "engines": { diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index a67fb9d09..fcaa045ae 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -16,7 +16,7 @@ "less": "^4.2.1", "sharp": "^0.33.5", "stylelint": "^16.12.0", - "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard": "^37.0.0", "stylelint-config-standard-less": "^3.0.1", "svgo": "^3.3.2" }, From c020a964e4bcbe1c9a543f45ba40ae549b5b5373 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 07:39:00 +0000 Subject: [PATCH 050/417] [upd] npm: Bump eslint in /searx/static/themes/simple Bumps [eslint](https://github.com/eslint/eslint) from 9.17.0 to 9.18.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- searx/static/themes/simple/package-lock.json | 40 +++++++++----------- searx/static/themes/simple/package.json | 2 +- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 602a2d91d..67cde3ae0 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -12,7 +12,7 @@ }, "devDependencies": { "ejs": "^3.1.10", - "eslint": "^9.17.0", + "eslint": "^9.18.0", "grunt": "^1.6.1", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^5.0.0", @@ -216,11 +216,10 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -253,11 +252,10 @@ } }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -273,12 +271,12 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, - "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -549,8 +547,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/q": { "version": "1.5.8", @@ -2624,19 +2621,18 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index fcaa045ae..61deafd18 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -1,7 +1,7 @@ { "devDependencies": { "ejs": "^3.1.10", - "eslint": "^9.17.0", + "eslint": "^9.18.0", "grunt": "^1.6.1", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^5.0.0", From f766faca3fa48a8c2fe65d4a72f318857a01dbd5 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 15 Dec 2024 12:25:56 +0100 Subject: [PATCH 051/417] [feat] engines: add ipernity (images) --- searx/engines/ipernity.py | 76 +++++++++++++++++++++++++++++++++++++++ searx/settings.yml | 5 +++ 2 files changed, 81 insertions(+) create mode 100644 searx/engines/ipernity.py diff --git a/searx/engines/ipernity.py b/searx/engines/ipernity.py new file mode 100644 index 000000000..6e5eb7872 --- /dev/null +++ b/searx/engines/ipernity.py @@ -0,0 +1,76 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Ipernity (images)""" + +from datetime import datetime +from json import loads, JSONDecodeError + +from urllib.parse import quote_plus +from lxml import html + +from searx.utils import extr, extract_text, eval_xpath, eval_xpath_list + +about = { + 'website': 'https://www.ipernity.com', + 'official_api_documentation': 'https://www.ipernity.com/help/api', + 'use_official_api': False, + 'require_api_key': False, + 'results': 'HTML', +} + +paging = True +categories = ['images'] + + +base_url = 'https://www.ipernity.com' +page_size = 10 + + +def request(query, params): + params['url'] = f"{base_url}/search/photo/@/page:{params['pageno']}:{page_size}?q={quote_plus(query)}" + return params + + +def response(resp): + results = [] + + doc = html.fromstring(resp.text) + + images = eval_xpath_list(doc, '//a[starts-with(@href, "/doc")]//img') + + result_index = 0 + for result in eval_xpath_list(doc, '//script[@type="text/javascript"]'): + info_js = extr(extract_text(result), '] = ', '};') + '}' + + if not info_js: + continue + + try: + info_item = loads(info_js) + + if not info_item.get('mediakey'): + continue + + thumbnail_src = extract_text(eval_xpath(images[result_index], './@src')) + img_src = thumbnail_src.replace('240.jpg', '640.jpg') + + resolution = None + if info_item.get("width") and info_item.get("height"): + resolution = f'{info_item["width"]}x{info_item["height"]}' + + item = { + 'template': 'images.html', + 'url': f"{base_url}/doc/{info_item['user_id']}/{info_item['doc_id']}", + 'title': info_item.get('title'), + 'content': info_item.get('content', ''), + 'resolution': resolution, + 'publishedDate': datetime.fromtimestamp(int(info_item['posted_at'])), + 'thumbnail_src': thumbnail_src, + 'img_src': img_src, + } + results.append(item) + + result_index += 1 + except JSONDecodeError: + continue + + return results diff --git a/searx/settings.yml b/searx/settings.yml index da9c8174f..46de5d855 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1072,6 +1072,11 @@ engines: timeout: 3.0 disabled: true + - name: ipernity + engine: ipernity + shortcut: ip + disabled: true + - name: jisho engine: jisho shortcut: js From e92d1bc6af5a301938ebe6e3c66377f4c1aece22 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 20 Jan 2025 18:20:57 +0100 Subject: [PATCH 052/417] [fix] results.js: back button not working after closing image result manually --- searx/static/themes/simple/src/js/main/results.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index ed40086ca..e7c34aded 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -91,8 +91,10 @@ searxng.scrollPageToSelected(); }; - searxng.closeDetail = function (e) { + searxng.closeDetail = function () { d.getElementById('results').classList.remove('image-detail-open'); + // remove #image-viewer hash from url by navigating back + if (window.location.hash == '#image-viewer') window.history.back(); searxng.scrollPageToSelected(); }; searxng.on('.result-detail-close', 'click', e => { @@ -110,7 +112,7 @@ // listen for the back button to be pressed and dismiss the image details when called window.addEventListener('hashchange', () => { - if (!window.location.hash) searxng.closeDetail(); + if (window.location.hash != '#image-viewer') searxng.closeDetail(); }); d.querySelectorAll('.swipe-horizontal').forEach( From 8731e37796d686044084b14cebbb043b522061d4 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 20 Jan 2025 18:38:17 +0100 Subject: [PATCH 053/417] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 2 +- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index 97f9e8f68..d8b0fac3e 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,i){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),r=-1;while(n[++r]&&n[r]!=t);return!!n[r]}})(Element.prototype)}function s(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var a=window.searxng||{};a.on=function(r,e,o,t){t=t||false;if(typeof r!=="string"){r.addEventListener(e,o,t)}else{i.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==i&&!(n=t.matches(r)))t=t.parentElement;if(n)s(o,t,e)},t)}};a.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};a.http=function(r,o,i=null){return new Promise(function(e,t){try{var n=new XMLHttpRequest;n.open(r,o,true);n.timeout=2e4;n.onload=function(){if(n.status==200){e(n.response,n.responseType)}else{t(Error(n.statusText))}};n.onerror=function(){t(Error("Network Error"))};n.onabort=function(){t(Error("Transaction is aborted"))};n.ontimeout=function(){t(Error("Timeout"))};if(i){n.send(i)}else{n.send()}}catch(e){t(e)}})};a.loadStyle=function(e){var t=a.settings.theme_static_path+"/"+e,n="style_"+e.replace(".","_"),r=i.getElementById(n);if(r===null){r=i.createElement("link");r.setAttribute("id",n);r.setAttribute("rel","stylesheet");r.setAttribute("type","text/css");r.setAttribute("href",t);i.body.appendChild(r)}};a.loadScript=function(e,t){var n=a.settings.theme_static_path+"/"+e,r="script_"+e.replace(".","_"),o=i.getElementById(r);if(o===null){o=i.createElement("script");o.setAttribute("id",r);o.setAttribute("src",n);o.onload=t;o.onerror=function(){o.setAttribute("error","1")};i.body.appendChild(o)}else if(!o.hasAttribute("error")){try{t.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};a.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};a.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};a.on(".close","click",function(){this.parentNode.classList.add("invisible")});function e(){for(var e of i.getElementsByTagName("body")[0].classList.values()){if(e.endsWith("_endpoint")){return e.split("_")[0]}}return""}a.endpoint=e();return a}(window,document);searxng.ready(function(){"use strict";searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype;if(searxng.endpoint!=="results"){return}if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let i=document;var s=i.getElementById("results").classList.contains("only_template_images");function n(){var e=i.createElement("div");e.classList.add("loader");return e}function r(t,e){t.textContent="";e.forEach(e=>t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:y,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function v(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function y(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";v(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(!window.location.hash)l.closeDetail()});a.querySelectorAll(".swipe-horizontal").forEach(e=>{e.addEventListener("swiped-left",function(e){l.selectNext(false)});e.addEventListener("swiped-right",function(e){l.selectPrevious(false)})});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;et.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:y,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function v(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function y(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";v(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(){a.getElementById("results").classList.remove("image-detail-open");if(window.location.hash=="#image-viewer")window.history.back();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(window.location.hash!="#image-viewer")l.closeDetail()});a.querySelectorAll(".swipe-horizontal").forEach(e=>{e.addEventListener("swiped-left",function(e){l.selectNext(false)});e.addEventListener("swiped-right",function(e){l.selectPrevious(false)})});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (!window.location.hash) searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function (e) {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function (e) {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","Date","changedTouches","touches","round","eventData","dir","touchType","fingers","xStart","xEnd","clientX","yStart","yEnd","clientY","dispatchEvent","xUp","yUp","attributeName","defaultValue","attributeValue"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js","../node_modules/swiped-events/src/swiped-events.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function (e) {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function (e) {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","history","back","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","Date","changedTouches","touches","round","eventData","dir","touchType","fingers","xStart","xEnd","clientX","yStart","yEnd","clientY","dispatchEvent","xUp","yUp","attributeName","defaultValue","attributeValue"],"mappings":"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"} \ No newline at end of file From 1fde000499a56a77dd1d1f1fc1c10302cec93d97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 07:13:51 +0000 Subject: [PATCH 054/417] [upd] pypi: Bump pygments from 2.18.0 to 2.19.1 Bumps [pygments](https://github.com/pygments/pygments) from 2.18.0 to 2.19.1. - [Release notes](https://github.com/pygments/pygments/releases) - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES) - [Commits](https://github.com/pygments/pygments/compare/2.18.0...2.19.1) --- updated-dependencies: - dependency-name: pygments dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e8cf3bd95..533fa3edb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ flask-babel==4.0.0 flask==3.1.0 jinja2==3.1.5 lxml==5.3.0 -pygments==2.18.0 +pygments==2.19.1 python-dateutil==2.9.0.post0 pyyaml==6.0.2 httpx[http2]==0.24.1 From e7081bb2c1baee3cf7b5b96e8086ab904ac4dac1 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 21 Jan 2025 08:09:27 +0100 Subject: [PATCH 055/417] [update] make pygments.less Signed-off-by: Markus Heiser --- .../themes/simple/src/generated/pygments.less | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/searx/static/themes/simple/src/generated/pygments.less b/searx/static/themes/simple/src/generated/pygments.less index f14974321..971409116 100644 --- a/searx/static/themes/simple/src/generated/pygments.less +++ b/searx/static/themes/simple/src/generated/pygments.less @@ -1,6 +1,6 @@ /* this file is generated automatically by searxng_extra/update/update_pygments.py - using pygments version 2.18.0 + using pygments version 2.19.1 */ @@ -13,9 +13,9 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .hll { background-color: #ffffcc } .c { color: #3D7B7B; font-style: italic } /* Comment */ - .err { border: 1px solid #FF0000 } /* Error */ + .err { border: 1px solid #F00 } /* Error */ .k { color: #008000; font-weight: bold } /* Keyword */ - .o { color: #666666 } /* Operator */ + .o { color: #666 } /* Operator */ .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ .cp { color: #9C6500 } /* Comment.Preproc */ @@ -32,34 +32,34 @@ .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .gs { font-weight: bold } /* Generic.Strong */ .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ - .gt { color: #0044DD } /* Generic.Traceback */ + .gt { color: #04D } /* Generic.Traceback */ .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .kp { color: #008000 } /* Keyword.Pseudo */ .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .kt { color: #B00040 } /* Keyword.Type */ - .m { color: #666666 } /* Literal.Number */ + .m { color: #666 } /* Literal.Number */ .s { color: #BA2121 } /* Literal.String */ .na { color: #687822 } /* Name.Attribute */ .nb { color: #008000 } /* Name.Builtin */ - .nc { color: #0000FF; font-weight: bold } /* Name.Class */ - .no { color: #880000 } /* Name.Constant */ - .nd { color: #AA22FF } /* Name.Decorator */ + .nc { color: #00F; font-weight: bold } /* Name.Class */ + .no { color: #800 } /* Name.Constant */ + .nd { color: #A2F } /* Name.Decorator */ .ni { color: #717171; font-weight: bold } /* Name.Entity */ .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ - .nf { color: #0000FF } /* Name.Function */ + .nf { color: #00F } /* Name.Function */ .nl { color: #767600 } /* Name.Label */ - .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ + .nn { color: #00F; font-weight: bold } /* Name.Namespace */ .nt { color: #008000; font-weight: bold } /* Name.Tag */ .nv { color: #19177C } /* Name.Variable */ - .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ - .w { color: #bbbbbb } /* Text.Whitespace */ - .mb { color: #666666 } /* Literal.Number.Bin */ - .mf { color: #666666 } /* Literal.Number.Float */ - .mh { color: #666666 } /* Literal.Number.Hex */ - .mi { color: #666666 } /* Literal.Number.Integer */ - .mo { color: #666666 } /* Literal.Number.Oct */ + .ow { color: #A2F; font-weight: bold } /* Operator.Word */ + .w { color: #BBB } /* Text.Whitespace */ + .mb { color: #666 } /* Literal.Number.Bin */ + .mf { color: #666 } /* Literal.Number.Float */ + .mh { color: #666 } /* Literal.Number.Hex */ + .mi { color: #666 } /* Literal.Number.Integer */ + .mo { color: #666 } /* Literal.Number.Oct */ .sa { color: #BA2121 } /* Literal.String.Affix */ .sb { color: #BA2121 } /* Literal.String.Backtick */ .sc { color: #BA2121 } /* Literal.String.Char */ @@ -74,12 +74,12 @@ .s1 { color: #BA2121 } /* Literal.String.Single */ .ss { color: #19177C } /* Literal.String.Symbol */ .bp { color: #008000 } /* Name.Builtin.Pseudo */ - .fm { color: #0000FF } /* Name.Function.Magic */ + .fm { color: #00F } /* Name.Function.Magic */ .vc { color: #19177C } /* Name.Variable.Class */ .vg { color: #19177C } /* Name.Variable.Global */ .vi { color: #19177C } /* Name.Variable.Instance */ .vm { color: #19177C } /* Name.Variable.Magic */ - .il { color: #666666 } /* Literal.Number.Integer.Long */ + .il { color: #666 } /* Literal.Number.Integer.Long */ } .code-highlight-dark(){ @@ -91,33 +91,33 @@ td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .hll { background-color: #6e7681 } - .c { color: #7e8aa1 } /* Comment */ - .err { color: #f88f7f } /* Error */ - .esc { color: #d4d2c8 } /* Escape */ - .g { color: #d4d2c8 } /* Generic */ + .c { color: #7E8AA1 } /* Comment */ + .err { color: #F88F7F } /* Error */ + .esc { color: #D4D2C8 } /* Escape */ + .g { color: #D4D2C8 } /* Generic */ .k { color: #FFAD66 } /* Keyword */ .l { color: #D5FF80 } /* Literal */ - .n { color: #d4d2c8 } /* Name */ + .n { color: #D4D2C8 } /* Name */ .o { color: #FFAD66 } /* Operator */ - .x { color: #d4d2c8 } /* Other */ - .p { color: #d4d2c8 } /* Punctuation */ - .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */ - .cm { color: #7e8aa1 } /* Comment.Multiline */ + .x { color: #D4D2C8 } /* Other */ + .p { color: #D4D2C8 } /* Punctuation */ + .ch { color: #F88F7F; font-style: italic } /* Comment.Hashbang */ + .cm { color: #7E8AA1 } /* Comment.Multiline */ .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */ - .cpf { color: #7e8aa1 } /* Comment.PreprocFile */ - .c1 { color: #7e8aa1 } /* Comment.Single */ - .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */ - .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */ - .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */ - .ges { color: #d4d2c8 } /* Generic.EmphStrong */ - .gr { color: #f88f7f } /* Generic.Error */ - .gh { color: #d4d2c8 } /* Generic.Heading */ - .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */ - .go { color: #7e8aa1 } /* Generic.Output */ - .gp { color: #d4d2c8 } /* Generic.Prompt */ - .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */ - .gu { color: #d4d2c8 } /* Generic.Subheading */ - .gt { color: #f88f7f } /* Generic.Traceback */ + .cpf { color: #7E8AA1 } /* Comment.PreprocFile */ + .c1 { color: #7E8AA1 } /* Comment.Single */ + .cs { color: #7E8AA1; font-style: italic } /* Comment.Special */ + .gd { color: #F88F7F; background-color: #3D1E20 } /* Generic.Deleted */ + .ge { color: #D4D2C8; font-style: italic } /* Generic.Emph */ + .ges { color: #D4D2C8 } /* Generic.EmphStrong */ + .gr { color: #F88F7F } /* Generic.Error */ + .gh { color: #D4D2C8 } /* Generic.Heading */ + .gi { color: #6AD4AF; background-color: #19362C } /* Generic.Inserted */ + .go { color: #7E8AA1 } /* Generic.Output */ + .gp { color: #D4D2C8 } /* Generic.Prompt */ + .gs { color: #D4D2C8; font-weight: bold } /* Generic.Strong */ + .gu { color: #D4D2C8 } /* Generic.Subheading */ + .gt { color: #F88F7F } /* Generic.Traceback */ .kc { color: #FFAD66 } /* Keyword.Constant */ .kd { color: #FFAD66 } /* Keyword.Declaration */ .kn { color: #FFAD66 } /* Keyword.Namespace */ @@ -131,19 +131,19 @@ .nb { color: #FFD173 } /* Name.Builtin */ .nc { color: #73D0FF } /* Name.Class */ .no { color: #FFD173 } /* Name.Constant */ - .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */ + .nd { color: #7E8AA1; font-weight: bold; font-style: italic } /* Name.Decorator */ .ni { color: #95E6CB } /* Name.Entity */ .ne { color: #73D0FF } /* Name.Exception */ .nf { color: #FFD173 } /* Name.Function */ - .nl { color: #d4d2c8 } /* Name.Label */ - .nn { color: #d4d2c8 } /* Name.Namespace */ - .nx { color: #d4d2c8 } /* Name.Other */ + .nl { color: #D4D2C8 } /* Name.Label */ + .nn { color: #D4D2C8 } /* Name.Namespace */ + .nx { color: #D4D2C8 } /* Name.Other */ .py { color: #FFD173 } /* Name.Property */ .nt { color: #5CCFE6 } /* Name.Tag */ - .nv { color: #d4d2c8 } /* Name.Variable */ + .nv { color: #D4D2C8 } /* Name.Variable */ .ow { color: #FFAD66 } /* Operator.Word */ - .pm { color: #d4d2c8 } /* Punctuation.Marker */ - .w { color: #d4d2c8 } /* Text.Whitespace */ + .pm { color: #D4D2C8 } /* Punctuation.Marker */ + .w { color: #D4D2C8 } /* Text.Whitespace */ .mb { color: #DFBFFF } /* Literal.Number.Bin */ .mf { color: #DFBFFF } /* Literal.Number.Float */ .mh { color: #DFBFFF } /* Literal.Number.Hex */ @@ -153,7 +153,7 @@ .sb { color: #D5FF80 } /* Literal.String.Backtick */ .sc { color: #D5FF80 } /* Literal.String.Char */ .dl { color: #D5FF80 } /* Literal.String.Delimiter */ - .sd { color: #7e8aa1 } /* Literal.String.Doc */ + .sd { color: #7E8AA1 } /* Literal.String.Doc */ .s2 { color: #D5FF80 } /* Literal.String.Double */ .se { color: #95E6CB } /* Literal.String.Escape */ .sh { color: #D5FF80 } /* Literal.String.Heredoc */ @@ -164,10 +164,10 @@ .ss { color: #DFBFFF } /* Literal.String.Symbol */ .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */ .fm { color: #FFD173 } /* Name.Function.Magic */ - .vc { color: #d4d2c8 } /* Name.Variable.Class */ - .vg { color: #d4d2c8 } /* Name.Variable.Global */ - .vi { color: #d4d2c8 } /* Name.Variable.Instance */ - .vm { color: #d4d2c8 } /* Name.Variable.Magic */ + .vc { color: #D4D2C8 } /* Name.Variable.Class */ + .vg { color: #D4D2C8 } /* Name.Variable.Global */ + .vi { color: #D4D2C8 } /* Name.Variable.Instance */ + .vm { color: #D4D2C8 } /* Name.Variable.Magic */ .il { color: #DFBFFF } /* Literal.Number.Integer.Long */ } } From bee26779292fa28e3927bce3f850f7f4cbdb1e53 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 21 Jan 2025 22:28:47 +0100 Subject: [PATCH 056/417] [build] /static --- .../themes/simple/css/searxng-rtl.min.css | 186 +++++++++--------- .../themes/simple/css/searxng-rtl.min.css.map | 2 +- .../static/themes/simple/css/searxng.min.css | 186 +++++++++--------- .../themes/simple/css/searxng.min.css.map | 2 +- 4 files changed, 188 insertions(+), 188 deletions(-) diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 2dad77913..d98eda1b5 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -762,7 +762,7 @@ template { } /* this file is generated automatically by searxng_extra/update/update_pygments.py - using pygments version 2.18.0 + using pygments version 2.19.1 */ .code-highlight { /* Comment */ @@ -869,14 +869,14 @@ template { font-style: italic; } .code-highlight .err { - border: 1px solid #FF0000; + border: 1px solid #F00; } .code-highlight .k { color: #008000; font-weight: bold; } .code-highlight .o { - color: #666666; + color: #666; } .code-highlight .ch { color: #3D7B7B; @@ -936,7 +936,7 @@ template { font-weight: bold; } .code-highlight .gt { - color: #0044DD; + color: #04D; } .code-highlight .kc { color: #008000; @@ -961,7 +961,7 @@ template { color: #B00040; } .code-highlight .m { - color: #666666; + color: #666; } .code-highlight .s { color: #BA2121; @@ -973,14 +973,14 @@ template { color: #008000; } .code-highlight .nc { - color: #0000FF; + color: #00F; font-weight: bold; } .code-highlight .no { - color: #880000; + color: #800; } .code-highlight .nd { - color: #AA22FF; + color: #A2F; } .code-highlight .ni { color: #717171; @@ -991,13 +991,13 @@ template { font-weight: bold; } .code-highlight .nf { - color: #0000FF; + color: #00F; } .code-highlight .nl { color: #767600; } .code-highlight .nn { - color: #0000FF; + color: #00F; font-weight: bold; } .code-highlight .nt { @@ -1008,26 +1008,26 @@ template { color: #19177C; } .code-highlight .ow { - color: #AA22FF; + color: #A2F; font-weight: bold; } .code-highlight .w { - color: #bbbbbb; + color: #BBB; } .code-highlight .mb { - color: #666666; + color: #666; } .code-highlight .mf { - color: #666666; + color: #666; } .code-highlight .mh { - color: #666666; + color: #666; } .code-highlight .mi { - color: #666666; + color: #666; } .code-highlight .mo { - color: #666666; + color: #666; } .code-highlight .sa { color: #BA2121; @@ -1075,7 +1075,7 @@ template { color: #008000; } .code-highlight .fm { - color: #0000FF; + color: #00F; } .code-highlight .vc { color: #19177C; @@ -1090,7 +1090,7 @@ template { color: #19177C; } .code-highlight .il { - color: #666666; + color: #666; } .codelines { margin: 0.125rem 0 0 0; @@ -1230,16 +1230,16 @@ template { background-color: #6e7681; } :root.theme-auto .code-highlight .c { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .err { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .esc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .g { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .k { color: #FFAD66; @@ -1248,74 +1248,74 @@ template { color: #D5FF80; } :root.theme-auto .code-highlight .n { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .o { color: #FFAD66; } :root.theme-auto .code-highlight .x { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .p { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .ch { - color: #f88f7f; + color: #F88F7F; font-style: italic; } :root.theme-auto .code-highlight .cm { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .cp { color: #FFAD66; font-weight: bold; } :root.theme-auto .code-highlight .cpf { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .c1 { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .cs { - color: #7e8aa1; + color: #7E8AA1; font-style: italic; } :root.theme-auto .code-highlight .gd { - color: #f88f7f; - background-color: #3d1e20; + color: #F88F7F; + background-color: #3D1E20; } :root.theme-auto .code-highlight .ge { - color: #d4d2c8; + color: #D4D2C8; font-style: italic; } :root.theme-auto .code-highlight .ges { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gr { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .gh { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gi { - color: #6ad4af; - background-color: #19362c; + color: #6AD4AF; + background-color: #19362C; } :root.theme-auto .code-highlight .go { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .gp { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gs { - color: #d4d2c8; + color: #D4D2C8; font-weight: bold; } :root.theme-auto .code-highlight .gu { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gt { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .kc { color: #FFAD66; @@ -1357,7 +1357,7 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .nd { - color: #7e8aa1; + color: #7E8AA1; font-weight: bold; font-style: italic; } @@ -1371,13 +1371,13 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .nl { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .nn { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .nx { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .py { color: #FFD173; @@ -1386,16 +1386,16 @@ template { color: #5CCFE6; } :root.theme-auto .code-highlight .nv { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .ow { color: #FFAD66; } :root.theme-auto .code-highlight .pm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .w { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .mb { color: #DFBFFF; @@ -1425,7 +1425,7 @@ template { color: #D5FF80; } :root.theme-auto .code-highlight .sd { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .s2 { color: #D5FF80; @@ -1458,16 +1458,16 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .vc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vg { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vi { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .il { color: #DFBFFF; @@ -1606,16 +1606,16 @@ template { background-color: #6e7681; } :root.theme-dark .code-highlight .c { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .err { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .esc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .g { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .k { color: #FFAD66; @@ -1624,74 +1624,74 @@ template { color: #D5FF80; } :root.theme-dark .code-highlight .n { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .o { color: #FFAD66; } :root.theme-dark .code-highlight .x { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .p { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .ch { - color: #f88f7f; + color: #F88F7F; font-style: italic; } :root.theme-dark .code-highlight .cm { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .cp { color: #FFAD66; font-weight: bold; } :root.theme-dark .code-highlight .cpf { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .c1 { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .cs { - color: #7e8aa1; + color: #7E8AA1; font-style: italic; } :root.theme-dark .code-highlight .gd { - color: #f88f7f; - background-color: #3d1e20; + color: #F88F7F; + background-color: #3D1E20; } :root.theme-dark .code-highlight .ge { - color: #d4d2c8; + color: #D4D2C8; font-style: italic; } :root.theme-dark .code-highlight .ges { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gr { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .gh { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gi { - color: #6ad4af; - background-color: #19362c; + color: #6AD4AF; + background-color: #19362C; } :root.theme-dark .code-highlight .go { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .gp { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gs { - color: #d4d2c8; + color: #D4D2C8; font-weight: bold; } :root.theme-dark .code-highlight .gu { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gt { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .kc { color: #FFAD66; @@ -1733,7 +1733,7 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .nd { - color: #7e8aa1; + color: #7E8AA1; font-weight: bold; font-style: italic; } @@ -1747,13 +1747,13 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .nl { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .nn { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .nx { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .py { color: #FFD173; @@ -1762,16 +1762,16 @@ template { color: #5CCFE6; } :root.theme-dark .code-highlight .nv { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .ow { color: #FFAD66; } :root.theme-dark .code-highlight .pm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .w { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .mb { color: #DFBFFF; @@ -1801,7 +1801,7 @@ template { color: #D5FF80; } :root.theme-dark .code-highlight .sd { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .s2 { color: #D5FF80; @@ -1834,16 +1834,16 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .vc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vg { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vi { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .il { color: #DFBFFF; diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index 8e7184b87..86ede06a0 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css.map +++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-rtl.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iD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PqBF,iBAAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kB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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.18.0\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n right: @offset;\n}\n\n.ltr-right(@offset) {\n left: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-left: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-right: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-left: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-right: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-left: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-right: @offset;\n}\n\n.ltr-float-left() {\n float: right;\n}\n\n.ltr-float-right() {\n float: left;\n}\n\n.ltr-text-align-right() {\n text-align: left;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-text-align-left() {\n text-align: right;\n}\n\n.ltr-border-left-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(-1, 1);\n}\n\n@import \"style.less\";\n\n#q,\n#sidebar .infobox dt bdi {\n direction: rtl;\n}\n\n// URL are displayed LTR but align on the right\n#urls {\n direction: initial;\n text-align: right;\n\n .result .url_header {\n direction: rtl;\n }\n\n .result .url_wrapper {\n justify-content: end;\n }\n}\n\n// Image flexbox\n#main_results div#results.only_template_images #urls {\n direction: rtl;\n}\n\n// Image detail\n#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p {\n direction: rtl;\n\n &.result-url {\n // Display URL using the LTR direction\n direction: ltr;\n\n span {\n // And put the label on the right\n direction: rtl;\n float: right;\n }\n }\n}\n\n// select HTML element\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n border-width: 0 0 0 2rem;\n background-position-x: -2rem;\n }\n}\n\n// vim hotkey helps is not translated\n#vim-hotkeys-help table {\n direction: ltr;\n text-align: left;\n}\n\n// Logo on the right\n#main_preferences h1,\n#main_stats h1 {\n background-position-x: 100%;\n}\n\n// patch of stats.less\n.bar-chart-serie1,\n.bar-chart-serie2 {\n float: right;\n}\n\n.engine-stats .engine-name,\n.engine-stats .engine-score,\n.engine-stats .result-count,\n.engine-stats .response-time,\n.engine-stats .engine-reliability {\n text-align: right;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-rtl.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iDAAA;EACA,8CAAA;EAEA,gCAAA;EACA,2CAAA;EACA,yCAAA;EACA,8BAAA;EACA,gCAAA;EACA,6DAAA;EACA,yDAAA;EAEA,gCAAA;EACA,yCAAA;EACA,8BAAA;EACA,oCAAA;EACA,mCAAA;EACA,uCAAA;EACA,uCAAA;EACA,yCAAA;EACA,0CAAA;EACA,mCAAA;EACA,6CAAA;EACA,qCAAA;EACA,mDAAA;EACA,kDAAA;EACA,0DAAA;EACA,kDAAA;EACA,wDAAA;EACA,mDAAA;EACA,+CAAA;EACA,2CAAA;EACA,8CAAA;EACA,2CAAA;EACA,+CAAA;EACA,iDAAA;EACA,yDAAA;EACA,sBAAA;EACA,oCAAA;EAEA,kCAAA;EACA,oCAAA;EACA,uDAAA;EACA,mCAAA;EACA,mDAAA;EACA,mCAAA;EACA,4BAAA;EAEA,sCAAA;EACA,kCAAA;;AA+HF,QAAoC;EAClC,KAAK;IA3HL,uBAAA;IACA,oCAAA;IACA,gCAAA;IACA,uCAAA;IACA,sBAAA;IACA,iCAAA;IAEA,kCAAA;IACA,2BAAA;IAEA,kCAAA;IACA,2BAAA;IAEA,4BAAA;IACA,0BAAA;IACA,mCAAA;IAEA,4BAAA;IACA,8BAAA;IACA,qCAAA;IAEA,4BAAA;IACA,sBAAA;IACA,iCAAA;IACA,2BAAA;IAEA,2BAAA;IACA,uDAAA;IACA,kCAAA;IACA,yBAAA;IACA,qCAAA;IAEA,sBAAA;IACA,iCAAA;IACA,wBAAA;IACA,mCAAA;IACA,wBAAA;IACA,mCAAA;IAEA,2CAAA;IACA,6CAAA;IAEA,+BAAA;IACA,iCAAA;IACA,6DAAA;IACA,wCAAA;IACA,8CAAA;IAEA,yBAAA;IACA,kCAAA;IAEA,kCAAA;IACA,2BAAA;IACA,6BAAA;IACA,sCAAA;IACA,8BAAA;IACA,+CAAA;IACA,8BAAA;IACA,wCAAA;IACA,yCAAA;IACA,qCAAA;IACA,oCAAA;IACA,sCAAA;IACA,oCAAA;IAEA,gCAAA;IACA,2CAAA;IACA,yCAAA;IACA,8BAAA;IACA,gCAAA;IACA,6DAAA;IACA,yDAAA;IAEA,oCAAA;IACA,6CAAA;IACA,qCAAA;IAEA,kCAAA;IACA,iDAAA;IACA,gDAAA;IAEA,gCAAA;IACA,sCAAA;IACA,8BAAA;IACA,oCAAA;IACA,mCAAA;IACA,0CAAA;IACA,uCAAA;IACA,yCAAA;IACA,0CAAA;IACA,mCAAA;IACA,gDAAA;IACA,qCAAA;IACA,sDAAA;IACA,qDAAA;IACA,uDAAA;IACA,kDAAA;IACA,wDAAA;IACA,mDAAA;IACA,+CAAA;IACA,2CAAA;IACA,2CAAA;IACA,2CAAA;IACA,+CAAA;IACA,uDAAA;IACA,mDAAA;IACA,sBAAA;IACA,oCAAA;IAEA,sCAAA;IACA,kCAAA;;;AAmBF,KAAK;EAjIH,uBAAA;EACA,oCAAA;EACA,gCAAA;EACA,uCAAA;EACA,sBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,mCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,qCAAA;EAEA,4BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,kCAAA;EACA,yBAAA;EACA,qCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,2CAAA;EACA,6CAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,wCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,kCAAA;EAEA,kCAAA;EACA,2BAAA;EACA,6BAAA;EACA,sCAAA;EACA,8BAAA;EACA,+CAAA;EACA,8BAAA;EACA,wCAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,gCAAA;EACA,2CAAA;EACA,yCAAA;EACA,8BAAA;EACA,gCAAA;EACA,6DAAA;EACA,yDAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iDAAA;EACA,gDAAA;EAEA,gCAAA;EACA,sCAAA;EACA,8BAAA;EACA,oCAAA;EACA,mCAAA;EACA,0CAAA;EACA,uCAAA;EACA,yCAAA;EACA,0CAAA;EACA,mCAAA;EACA,gDAAA;EACA,qCAAA;EACA,sDAAA;EACA,qDAAA;EACA,uDAAA;EACA,kDAAA;EACA,wDAAA;EACA,mDAAA;EACA,+CAAA;EACA,2CAAA;EACA,2CAAA;EACA,2CAAA;EACA,+CAAA;EACA,uDAAA;EACA,mDAAA;EACA,sBAAA;EACA,oCAAA;EAEA,sCAAA;EACA,kCAAA;;AAuBF,KAAK;EArIH,uBAAA;EACA,oCAAA;EACA,gCAAA;EACA,uCAAA;EACA,sBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,mCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,qCAAA;EAEA,4BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,kCAAA;EACA,yBAAA;EACA,qCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,2CAAA;EACA,6CAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,wCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,kCAAA;EAEA,kCAAA;EACA,2BAAA;EACA,6BAAA;EACA,sCAAA;EACA,8BAAA;EACA,+CAAA;EACA,8BAAA;EACA,wCAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,gCAAA;EACA,2CAAA;EACA,yCAAA;EACA,8BAAA;EACA,gCAAA;EACA,6DAAA;EACA,yDAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iDAAA;EACA,gDAAA;EAEA,gCAAA;EACA,sCAAA;EACA,8BAAA;EACA,oCAAA;EACA,mCAAA;EACA,0CAAA;EACA,uCAAA;EACA,yCAAA;EACA,0CAAA;EACA,mCAAA;EACA,gDAAA;EACA,qCAAA;EACA,sDAAA;EACA,qDAAA;EACA,uDAAA;EACA,kDAAA;EACA,wDAAA;EACA,mDAAA;EACA,+CAAA;EACA,2CAAA;EACA,2CAAA;EACA,2CAAA;EACA,+CAAA;EACA,uDAAA;EACA,mDAAA;EACA,sBAAA;EACA,oCAAA;EAEA,sCAAA;EACA,kCAAA;EAIA,6BAAA;EACA,oCAAA;EACA,+BAAA;EACA,+BAAA;EACA,gCAAA;;;;;;ACpPF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAEE;EAAM,iBAAA;;AAFR,eAGE,GAAE,QAAS;EAAU,cAAA;EAAgB,6BAAA;EAA+B,iBAAA;EAAmB,kBAAA;;AAHzF,eAIE,KAAI;EAAW,cAAA;EAAgB,6BAAA;EAA+B,iBAAA;EAAmB,kBAAA;;AAJnF,eAKE,GAAE,QAAS;EAAW,cAAA;EAAgB,yBAAA;EAA2B,iBAAA;EAAmB,kBAAA;;AALtF,eAME,KAAI,QAAQ;EAAW,cAAA;EAAgB,yBAAA;EAA2B,iBAAA;EAAmB,kBAAA;;AANvF,eAOE;EAAO,yBAAA;;AAPT,eAQE;EAAK,cAAA;EAAgB,kBAAA;;AARvB,eASE;EAAO,sBAAA;;AATT,eAUE;EAAK,cAAA;EAAgB,iBAAA;;AAVvB,eAWE;EAAK,WAAA;;AAXP,eAYE;EAAM,cAAA;EAAgB,kBAAA;;AAZxB,eAaE;EAAM,cAAA;EAAgB,kBAAA;;AAbxB,eAcE;EAAM,cAAA;;AAdR,eAeE;EAAO,cAAA;EAAgB,kBAAA;;AAfzB,eAgBE;EAAM,cAAA;EAAgB,kBAAA;;AAhBxB,eAiBE;EAAM,cAAA;EAAgB,kBAAA;;AAjBxB,eAkBE;EAAM,cAAA;;AAlBR,eAmBE;EAAM,kBAAA;;AAnBR,eAoBE;EAAO,iBAAA;EAAmB,kBAAA;;AApB5B,eAqBE;EAAM,cAAA;;AArBR,eAsBE;EAAM,cAAA;EAAgB,iBAAA;;AAtBxB,eAuBE;EAAM,cAAA;;AAvBR,eAwBE;EAAM,cAAA;;AAxBR,eAyBE;EAAM,cAAA;EAAgB,iBAAA;;AAzBxB,eA0BE;EAAM,iBAAA;;AA1BR,eA2BE;EAAM,cAAA;EAAgB,iBAAA;;AA3BxB,eA4BE;EAAM,WAAA;;AA5BR,eA6BE;EAAM,cAAA;EAAgB,iBAAA;;AA7BxB,eA8BE;EAAM,cAAA;EAAgB,iBAAA;;AA9BxB,eA+BE;EAAM,cAAA;EAAgB,iBAAA;;AA/BxB,eAgCE;EAAM,cAAA;;AAhCR,eAiCE;EAAM,cAAA;EAAgB,iBAAA;;AAjCxB,eAkCE;EAAM,cAAA;;AAlCR,eAmCE;EAAK,WAAA;;AAnCP,eAoCE;EAAK,cAAA;;AApCP,eAqCE;EAAM,cAAA;;AArCR,eAsCE;EAAM,cAAA;;AAtCR,eAuCE;EAAM,WAAA;EAAa,iBAAA;;AAvCrB,eAwCE;EAAM,WAAA;;AAxCR,eAyCE;EAAM,WAAA;;AAzCR,eA0CE;EAAM,cAAA;EAAgB,iBAAA;;AA1CxB,eA2CE;EAAM,cAAA;EAAgB,iBAAA;;AA3CxB,eA4CE;EAAM,WAAA;;AA5CR,eA6CE;EAAM,cAAA;;AA7CR,eA8CE;EAAM,WAAA;EAAa,iBAAA;;AA9CrB,eA+CE;EAAM,cAAA;EAAgB,iBAAA;;AA/CxB,eAgDE;EAAM,cAAA;;AAhDR,eAiDE;EAAM,WAAA;EAAa,iBAAA;;AAjDrB,eAkDE;EAAK,WAAA;;AAlDP,eAmDE;EAAM,WAAA;;AAnDR,eAoDE;EAAM,WAAA;;AApDR,eAqDE;EAAM,WAAA;;AArDR,eAsDE;EAAM,WAAA;;AAtDR,eAuDE;EAAM,WAAA;;AAvDR,eAwDE;EAAM,cAAA;;AAxDR,eAyDE;EAAM,cAAA;;AAzDR,eA0DE;EAAM,cAAA;;AA1DR,eA2DE;EAAM,cAAA;;AA3DR,eA4DE;EAAM,cAAA;EAAgB,kBAAA;;AA5DxB,eA6DE;EAAM,cAAA;;AA7DR,eA8DE;EAAM,cAAA;EAAgB,iBAAA;;AA9DxB,eA+DE;EAAM,cAAA;;AA/DR,eAgEE;EAAM,cAAA;EAAgB,iBAAA;;AAhExB,eAiEE;EAAM,cAAA;;AAjER,eAkEE;EAAM,cAAA;;AAlER,eAmEE;EAAM,cAAA;;AAnER,eAoEE;EAAM,cAAA;;AApER,eAqEE;EAAM,cAAA;;AArER,eAsEE;EAAM,WAAA;;AAtER,eAuEE;EAAM,cAAA;;AAvER,eAwEE;EAAM,cAAA;;AAxER,eAyEE;EAAM,cAAA;;AAzER,eA0EE;EAAM,cAAA;;AA1ER,eA2EE;EAAM,WAAA;;AC/ER;EACE,sBAAA;EACA,mBAAA;;AAIA,eACE;EACE,cAAA;EACA,SAAA;EACA,sBAAA;;AAJJ,eAOE;EACE,iBAAA;EACA,eAAA;EASA,iBAAA;EACA,iBAAA;;AARA,eAJF,SAIG;EACC,uBAAA;;;AAGF,eARF,SAQG;EACC,uBAAA;;;AAhBN,eAsBE,KAAI;EACF,OAAO,wBAAP;;AAQN,QAAoC;EAClC,KAAK,WD6CL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC7CA,KAAK,WD6CL,gBAEE;IAAM,iBAAA;;EC/CR,KAAK,WD6CL,gBAGE,GAAE,QAAS;IAAU,cAAA;IAAgB,6BAAA;IAA+B,iBAAA;IAAmB,kBAAA;;EChDzF,KAAK,WD6CL,gBAIE,KAAI;IAAW,cAAA;IAAgB,6BAAA;IAA+B,iBAAA;IAAmB,kBAAA;;ECjDnF,KAAK,WD6CL,gBAKE,GAAE,QAAS;IAAW,cAAA;IAAgB,yBAAA;IAA2B,iBAAA;IAAmB,kBAAA;;EClDtF,KAAK,WD6CL,gBAME,KAAI,QAAQ;IAAW,cAAA;IAAgB,yBAAA;IAA2B,iBAAA;IAAmB,kBAAA;;ECnDvF,KAAK,WD6CL,gBAOE;IAAO,yBAAA;;ECpDT,KAAK,WD6CL,gBAQE;IAAK,cAAA;;ECrDP,KAAK,WD6CL,gBASE;IAAO,cAAA;;ECtDT,KAAK,WD6CL,gBAUE;IAAO,cAAA;;ECvDT,KAAK,WD6CL,gBAWE;IAAK,cAAA;;ECxDP,KAAK,WD6CL,gBAYE;IAAK,cAAA;;ECzDP,KAAK,WD6CL,gBAaE;IAAK,cAAA;;EC1DP,KAAK,WD6CL,gBAcE;IAAK,cAAA;;EC3DP,KAAK,WD6CL,gBAeE;IAAK,cAAA;;EC5DP,KAAK,WD6CL,gBAgBE;IAAK,cAAA;;EC7DP,KAAK,WD6CL,gBAiBE;IAAK,cAAA;;EC9DP,KAAK,WD6CL,gBAkBE;IAAM,cAAA;IAAgB,kBAAA;;EC/DxB,KAAK,WD6CL,gBAmBE;IAAM,cAAA;;EChER,KAAK,WD6CL,gBAoBE;IAAM,cAAA;IAAgB,iBAAA;;ECjExB,KAAK,WD6CL,gBAqBE;IAAO,cAAA;;EClET,KAAK,WD6CL,gBAsBE;IAAM,cAAA;;ECnER,KAAK,WD6CL,gBAuBE;IAAM,cAAA;IAAgB,kBAAA;;ECpExB,KAAK,WD6CL,gBAwBE;IAAM,cAAA;IAAgB,yBAAA;;ECrExB,KAAK,WD6CL,gBAyBE;IAAM,cAAA;IAAgB,kBAAA;;ECtExB,KAAK,WD6CL,gBA0BE;IAAO,cAAA;;ECvET,KAAK,WD6CL,gBA2BE;IAAM,cAAA;;ECxER,KAAK,WD6CL,gBA4BE;IAAM,cAAA;;ECzER,KAAK,WD6CL,gBA6BE;IAAM,cAAA;IAAgB,yBAAA;;EC1ExB,KAAK,WD6CL,gBA8BE;IAAM,cAAA;;EC3ER,KAAK,WD6CL,gBA+BE;IAAM,cAAA;;EC5ER,KAAK,WD6CL,gBAgCE;IAAM,cAAA;IAAgB,iBAAA;;EC7ExB,KAAK,WD6CL,gBAiCE;IAAM,cAAA;;EC9ER,KAAK,WD6CL,gBAkCE;IAAM,cAAA;;EC/ER,KAAK,WD6CL,gBAmCE;IAAM,cAAA;;EChFR,KAAK,WD6CL,gBAoCE;IAAM,cAAA;;ECjFR,KAAK,WD6CL,gBAqCE;IAAM,cAAA;;EClFR,KAAK,WD6CL,gBAsCE;IAAM,cAAA;;ECnFR,KAAK,WD6CL,gBAuCE;IAAM,cAAA;;ECpFR,KAAK,WD6CL,gBAwCE;IAAM,cAAA;;ECrFR,KAAK,WD6CL,gBAyCE;IAAM,cAAA;;ECtFR,KAAK,WD6CL,gBA0CE;IAAK,cAAA;;ECvFP,KAAK,WD6CL,gBA2CE;IAAK,cAAA;;ECxFP,KAAK,WD6CL,gBA4CE;IAAM,cAAA;;ECzFR,KAAK,WD6CL,gBA6CE;IAAM,cAAA;;EC1FR,KAAK,WD6CL,gBA8CE;IAAM,cAAA;;EC3FR,KAAK,WD6CL,gBA+CE;IAAM,cAAA;;EC5FR,KAAK,WD6CL,gBAgDE;IAAM,cAAA;IAAgB,iBAAA;IAAmB,kBAAA;;EC7F3C,KAAK,WD6CL,gBAiDE;IAAM,cAAA;;EC9FR,KAAK,WD6CL,gBAkDE;IAAM,cAAA;;EC/FR,KAAK,WD6CL,gBAmDE;IAAM,cAAA;;EChGR,KAAK,WD6CL,gBAoDE;IAAM,cAAA;;ECjGR,KAAK,WD6CL,gBAqDE;IAAM,cAAA;;EClGR,KAAK,WD6CL,gBAsDE;IAAM,cAAA;;ECnGR,KAAK,WD6CL,gBAuDE;IAAM,cAAA;;ECpGR,KAAK,WD6CL,gBAwDE;IAAM,cAAA;;ECrGR,KAAK,WD6CL,gBAyDE;IAAM,cAAA;;ECtGR,KAAK,WD6CL,gBA0DE;IAAM,cAAA;;ECvGR,KAAK,WD6CL,gBA2DE;IAAM,cAAA;;ECxGR,KAAK,WD6CL,gBA4DE;IAAK,cAAA;;ECzGP,KAAK,WD6CL,gBA6DE;IAAM,cAAA;;EC1GR,KAAK,WD6CL,gBA8DE;IAAM,cAAA;;EC3GR,KAAK,WD6CL,gBA+DE;IAAM,cAAA;;EC5GR,KAAK,WD6CL,gBAgEE;IAAM,cAAA;;EC7GR,KAAK,WD6CL,gBAiEE;IAAM,cAAA;;EC9GR,KAAK,WD6CL,gBAkEE;IAAM,cAAA;;EC/GR,KAAK,WD6CL,gBAmEE;IAAM,cAAA;;EChHR,KAAK,WD6CL,gBAoEE;IAAM,cAAA;;ECjHR,KAAK,WD6CL,gBAqEE;IAAM,cAAA;;EClHR,KAAK,WD6CL,gBAsEE;IAAM,cAAA;;ECnHR,KAAK,WD6CL,gBAuEE;IAAM,cAAA;;ECpHR,KAAK,WD6CL,gBAwEE;IAAM,cAAA;;ECrHR,KAAK,WD6CL,gBAyEE;IAAM,cAAA;;ECtHR,KAAK,WD6CL,gBA0EE;IAAM,cAAA;;ECvHR,KAAK,WD6CL,gBA2EE;IAAM,cAAA;;ECxHR,KAAK,WD6CL,gBA4EE;IAAM,cAAA;;ECzHR,KAAK,WD6CL,gBA6EE;IAAM,cAAA;;EC1HR,KAAK,WD6CL,gBA8EE;IAAM,cAAA;;EC3HR,KAAK,WD6CL,gBA+EE;IAAM,cAAA;;EC5HR,KAAK,WD6CL,gBAgFE;IAAM,cAAA;;EC7HR,KAAK,WD6CL,gBAiFE;IAAM,cAAA;;EC9HR,KAAK,WD6CL,gBAkFE;IAAM,cAAA;;EC/HR,KAAK,WD6CL,gBAmFE;IAAM,cAAA;;EChIR,KAAK,WD6CL,gBAoFE;IAAM,cAAA;;ECjIR,KAAK,WD6CL,gBAqFE;IAAM,cAAA;;EClIR,KAAK,WAhCL,gBACE;IACE,cAAA;IACA,SAAA;IACA,sBAAA;;EA4BJ,KAAK,WAhCL,gBAOE;IACE,iBAAA;IACA,eAAA;IASA,iBAAA;IACA,iBAAA;;EARA,KAqBC,WAhCL,gBAOE,SAIG;IACC,uBAAA;;;EAGF,KAiBC,WAhCL,gBAOE,SAQG;IACC,uBAAA;;;EAgBN,KAAK,WAhCL,gBAsBE,KAAI;IACF,OAAO,wBAAP;;;AAgBN,KAAK,WDsCH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtCF,KAAK,WDsCH,gBAEE;EAAM,iBAAA;;ACxCV,KAAK,WDsCH,gBAGE,GAAE,QAAS;EAAU,cAAA;EAAgB,6BAAA;EAA+B,iBAAA;EAAmB,kBAAA;;ACzC3F,KAAK,WDsCH,gBAIE,KAAI;EAAW,cAAA;EAAgB,6BAAA;EAA+B,iBAAA;EAAmB,kBAAA;;AC1CrF,KAAK,WDsCH,gBAKE,GAAE,QAAS;EAAW,cAAA;EAAgB,yBAAA;EAA2B,iBAAA;EAAmB,kBAAA;;AC3CxF,KAAK,WDsCH,gBAME,KAAI,QAAQ;EAAW,cAAA;EAAgB,yBAAA;EAA2B,iBAAA;EAAmB,kBAAA;;AC5CzF,KAAK,WDsCH,gBAOE;EAAO,yBAAA;;AC7CX,KAAK,WDsCH,gBAQE;EAAK,cAAA;;AC9CT,KAAK,WDsCH,gBASE;EAAO,cAAA;;AC/CX,KAAK,WDsCH,gBAUE;EAAO,cAAA;;AChDX,KAAK,WDsCH,gBAWE;EAAK,cAAA;;ACjDT,KAAK,WDsCH,gBAYE;EAAK,cAAA;;AClDT,KAAK,WDsCH,gBAaE;EAAK,cAAA;;ACnDT,KAAK,WDsCH,gBAcE;EAAK,cAAA;;ACpDT,KAAK,WDsCH,gBAeE;EAAK,cAAA;;ACrDT,KAAK,WDsCH,gBAgBE;EAAK,cAAA;;ACtDT,KAAK,WDsCH,gBAiBE;EAAK,cAAA;;ACvDT,KAAK,WDsCH,gBAkBE;EAAM,cAAA;EAAgB,kBAAA;;ACxD1B,KAAK,WDsCH,gBAmBE;EAAM,cAAA;;ACzDV,KAAK,WDsCH,gBAoBE;EAAM,cAAA;EAAgB,iBAAA;;AC1D1B,KAAK,WDsCH,gBAqBE;EAAO,cAAA;;AC3DX,KAAK,WDsCH,gBAsBE;EAAM,cAAA;;AC5DV,KAAK,WDsCH,gBAuBE;EAAM,cAAA;EAAgB,kBAAA;;AC7D1B,KAAK,WDsCH,gBAwBE;EAAM,cAAA;EAAgB,yBAAA;;AC9D1B,KAAK,WDsCH,gBAyBE;EAAM,cAAA;EAAgB,kBAAA;;AC/D1B,KAAK,WDsCH,gBA0BE;EAAO,cAAA;;AChEX,KAAK,WDsCH,gBA2BE;EAAM,cAAA;;ACjEV,KAAK,WDsCH,gBA4BE;EAAM,cAAA;;AClEV,KAAK,WDsCH,gBA6BE;EAAM,cAAA;EAAgB,yBAAA;;ACnE1B,KAAK,WDsCH,gBA8BE;EAAM,cAAA;;ACpEV,KAAK,WDsCH,gBA+BE;EAAM,cAAA;;ACrEV,KAAK,WDsCH,gBAgCE;EAAM,cAAA;EAAgB,iBAAA;;ACtE1B,KAAK,WDsCH,gBAiCE;EAAM,cAAA;;ACvEV,KAAK,WDsCH,gBAkCE;EAAM,cAAA;;ACxEV,KAAK,WDsCH,gBAmCE;EAAM,cAAA;;ACzEV,KAAK,WDsCH,gBAoCE;EAAM,cAAA;;AC1EV,KAAK,WDsCH,gBAqCE;EAAM,cAAA;;AC3EV,KAAK,WDsCH,gBAsCE;EAAM,cAAA;;AC5EV,KAAK,WDsCH,gBAuCE;EAAM,cAAA;;AC7EV,KAAK,WDsCH,gBAwCE;EAAM,cAAA;;AC9EV,KAAK,WDsCH,gBAyCE;EAAM,cAAA;;AC/EV,KAAK,WDsCH,gBA0CE;EAAK,cAAA;;AChFT,KAAK,WDsCH,gBA2CE;EAAK,cAAA;;ACjFT,KAAK,WDsCH,gBA4CE;EAAM,cAAA;;AClFV,KAAK,WDsCH,gBA6CE;EAAM,cAAA;;ACnFV,KAAK,WDsCH,gBA8CE;EAAM,cAAA;;ACpFV,KAAK,WDsCH,gBA+CE;EAAM,cAAA;;ACrFV,KAAK,WDsCH,gBAgDE;EAAM,cAAA;EAAgB,iBAAA;EAAmB,kBAAA;;ACtF7C,KAAK,WDsCH,gBAiDE;EAAM,cAAA;;ACvFV,KAAK,WDsCH,gBAkDE;EAAM,cAAA;;ACxFV,KAAK,WDsCH,gBAmDE;EAAM,cAAA;;ACzFV,KAAK,WDsCH,gBAoDE;EAAM,cAAA;;AC1FV,KAAK,WDsCH,gBAqDE;EAAM,cAAA;;AC3FV,KAAK,WDsCH,gBAsDE;EAAM,cAAA;;AC5FV,KAAK,WDsCH,gBAuDE;EAAM,cAAA;;AC7FV,KAAK,WDsCH,gBAwDE;EAAM,cAAA;;AC9FV,KAAK,WDsCH,gBAyDE;EAAM,cAAA;;AC/FV,KAAK,WDsCH,gBA0DE;EAAM,cAAA;;AChGV,KAAK,WDsCH,gBA2DE;EAAM,cAAA;;ACjGV,KAAK,WDsCH,gBA4DE;EAAK,cAAA;;AClGT,KAAK,WDsCH,gBA6DE;EAAM,cAAA;;ACnGV,KAAK,WDsCH,gBA8DE;EAAM,cAAA;;ACpGV,KAAK,WDsCH,gBA+DE;EAAM,cAAA;;ACrGV,KAAK,WDsCH,gBAgEE;EAAM,cAAA;;ACtGV,KAAK,WDsCH,gBAiEE;EAAM,cAAA;;ACvGV,KAAK,WDsCH,gBAkEE;EAAM,cAAA;;ACxGV,KAAK,WDsCH,gBAmEE;EAAM,cAAA;;ACzGV,KAAK,WDsCH,gBAoEE;EAAM,cAAA;;AC1GV,KAAK,WDsCH,gBAqEE;EAAM,cAAA;;AC3GV,KAAK,WDsCH,gBAsEE;EAAM,cAAA;;AC5GV,KAAK,WDsCH,gBAuEE;EAAM,cAAA;;AC7GV,KAAK,WDsCH,gBAwEE;EAAM,cAAA;;AC9GV,KAAK,WDsCH,gBAyEE;EAAM,cAAA;;AC/GV,KAAK,WDsCH,gBA0EE;EAAM,cAAA;;AChHV,KAAK,WDsCH,gBA2EE;EAAM,cAAA;;ACjHV,KAAK,WDsCH,gBA4EE;EAAM,cAAA;;AClHV,KAAK,WDsCH,gBA6EE;EAAM,cAAA;;ACnHV,KAAK,WDsCH,gBA8EE;EAAM,cAAA;;ACpHV,KAAK,WDsCH,gBA+EE;EAAM,cAAA;;ACrHV,KAAK,WDsCH,gBAgFE;EAAM,cAAA;;ACtHV,KAAK,WDsCH,gBAiFE;EAAM,cAAA;;ACvHV,KAAK,WDsCH,gBAkFE;EAAM,cAAA;;ACxHV,KAAK,WDsCH,gBAmFE;EAAM,cAAA;;ACzHV,KAAK,WDsCH,gBAoFE;EAAM,cAAA;;AC1HV,KAAK,WDsCH,gBAqFE;EAAM,cAAA;;AC3HV,KAAK,WAvCH,gBACE;EACE,cAAA;EACA,SAAA;EACA,sBAAA;;AAmCN,KAAK,WAvCH,gBAOE;EACE,iBAAA;EACA,eAAA;EASA,iBAAA;EACA,iBAAA;;AARA,KA4BD,WAvCH,gBAOE,SAIG;EACC,uBAAA;;;AAGF,KAwBD,WAvCH,gBAOE,SAQG;EACC,uBAAA;;;AAuBR,KAAK,WAvCH,gBAsBE,KAAI;EACF,OAAO,wBAAP;;AC3BN,IAAI,MAAO;EACT,aAAA;;AAGF,IAAI,GAAI;EACN,aAAA;;AAGF;EACE,kBAAA;;AAGF;EACE,YAAA;;AAGF;EACE,WAAA;;AAGF;EACE,wBAAA;;AAGF;EACE,qBAAA;;AADF,cAGE;EACE,eAAA;EACA,kBAAA;;AAIJ;EACE,kBAAkB,6BAAlB;;AAGF;EACE,YAAY,+BAAZ;;AAGF;EACE,YAAY,+BAAZ;;AAGF;EACE,qBAAA;EACA,OAAO,+BAAP;EACA,kBAAkB,qCAAlB;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AAIF;EACE,gBAAA;EACA,WAAA;EACA,cAAA;EACA,OAAO,6BAAP;EACA,YAAY,mCAAZ;;AAIF;EACE,WAAA;;AAEA,KAAC,QACC;EACE,yBAAyB,8BAAzB;;AAKN;EACE,cAAA;;AAGF;EACE,cAAA;;AAIA,EAAC;EACC,YAAY,8BAAZ;;AAaJ,GAAG;EACD,cAAA;EACA,kBAAkB,qCAAlB;EACA,YAAA;EACA,OAAO,mCAAP;EACA,aAAA;EACA,gBAAA;EACA,aAAA;EACA,kBAAA;EC7FA,kBAAA;;ADqFF,GAAG,eAWD;EAlBA,cAAA;EACA,gBAAA;EACA,qBAAA;EACA,aAAA;EACA,gBAAA;;AAqEF;EAhDE,kBAAA;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,kBAAkB,kCAAlB;EEzDA,iBAAA;ED1DA,mBAAA;EDkKA,OAAO,kBAAP;EACA,YAAY,6BAAZ;EACA,cAAc,kBAAd;;AALF,aAxCE;EE7FA,WAAA;EF+FE,kBAAA;EACA,SAAA;EACA,cAAA;EACA,gBAAA;;AAmCJ,aAhCE;AAgCF,aA/BE;AA+BF,aA9BE;EACE,iBAAA;;AA6BJ,aA1BE;EACE,WAAA;;AAyBJ,aAtBE;EACE,wBAAA;;AAEA,aAHF,GAGG;EACC,kCAAA;;AAkBN,aAdE;EACE,kBAAA;EACA,cAAA;EErIF,kBAAA;EFuIE,iBAAA;EEnIF,gBAAA;;AF6IF,aANE;EACE,iBAAA;EACA,oBAAA;;AAYJ;EAxDE,kBAAA;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,kBAAkB,kCAAlB;EEzDA,iBAAA;ED1DA,mBAAA;ED0KA,cAAA;EACA,OAAO,kBAAP;EACA,YAAY,6BAAZ;EACA,cAAc,kBAAd;;AANF,mBAhDE;EE7FA,WAAA;EF+FE,kBAAA;EACA,SAAA;EACA,cAAA;EACA,gBAAA;;AA2CJ,mBAxCE;AAwCF,mBAvCE;AAuCF,mBAtCE;EACE,iBAAA;;AAqCJ,mBAlCE;EACE,WAAA;;AAiCJ,mBA9BE;EACE,wBAAA;;AAEA,mBAHF,GAGG;EACC,kCAAA;;AA0BN,mBAtBE;EACE,kBAAA;EACA,cAAA;EErIF,kBAAA;EFuIE,iBAAA;EEnIF,gBAAA;;AFqJF,mBAdE;EACE,iBAAA;EACA,oBAAA;;AAqBJ;EAjEE,kBAAA;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,kBAAkB,kCAAlB;EEzDA,iBAAA;ED1DA,mBAAA;EDmLA,OAAO,oBAAP;EACA,YAAY,+BAAZ;EACA,cAAc,oBAAd;;AALF,eAzDE;EE7FA,WAAA;EF+FE,kBAAA;EACA,SAAA;EACA,cAAA;EACA,gBAAA;;AAoDJ,eAjDE;AAiDF,eAhDE;AAgDF,eA/CE;EACE,iBAAA;;AA8CJ,eA3CE;EACE,WAAA;;AA0CJ,eAvCE;EACE,wBAAA;;AAEA,eAHF,GAGG;EACC,kCAAA;;AAmCN,eA/BE;EACE,kBAAA;EACA,cAAA;EErIF,kBAAA;EFuIE,iBAAA;EEnIF,gBAAA;;AF8JF,eAvBE;EACE,iBAAA;EACA,oBAAA;;AA6BJ;EAzEE,kBAAA;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,kBAAkB,kCAAlB;EEzDA,iBAAA;ED1DA,mBAAA;ED2LA,cAAA;EACA,YAAY,sCAAZ;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,cAAA;EACA,WAAW,qBAAX;EACA,aAAA;;AAVF,aAjEE;EE7FA,WAAA;EF+FE,kBAAA;EACA,SAAA;EACA,cAAA;EACA,gBAAA;;AA4DJ,aAzDE;AAyDF,aAxDE;AAwDF,aAvDE;EACE,iBAAA;;AAsDJ,aAnDE;EACE,WAAA;;AAkDJ,aA/CE;EACE,wBAAA;;AAEA,aAHF,GAGG;EACC,kCAAA;;AA2CN,aAvCE;EACE,kBAAA;EACA,cAAA;EErIF,kBAAA;EFuIE,iBAAA;EEnIF,gBAAA;;AFsKF,aA/BE;EACE,iBAAA;EACA,oBAAA;;AA6BJ,aAYE;EACE,aAAA;;AAKJ;EACE,eAAA;;AAIF;EACE,qBAAA;EACA,cAAA;EACA,UAAA;EACA,SAAA;EACA,YAAA;;;AAIF,KAAM,MAAM;EACV,cAAA;;AAGF,EAAE;EACA,yBAAyB,wCAAzB;EACA,gBAAA;EACA,eAAA;;AAHF,EAAE,KAKA;EACE,aAAA;;AAIJ;EACE,aAAA;EACA,eAAA;EACA,WAAA;EACA,eAAA;;AAEA,KAAE;EACA,QAAA;;AAGF,KAAE,QAAO;EACP,aAAA;;AAGF,KAAE;AACF,KAAE,KAAK;EACL,QAAA;EACA,cAAA;EACA,eAAA;EACA,qBAAA;EACA,yBAAA;EACA,cAAc,sCAAd;EACA,uBAAA;EACA,YAAA;EChPF,2BAAA;EACA,iBAAA;EDmPE,eAAA;;AAEA,KAfA,QAeC;AAAD,KAdA,KAAK,IAcJ;EACC,yBAAyB,4CAAzB;EACA,YAAY,qCAAZ;EACA,OAAO,0CAAP;;AAIJ,KAAE,QAAO;AACT,KAAE,KAAK,IAAG;EACR,yBAAyB,4CAAzB;;AAGF,KAAE;EACA,eAAA;EACA,iBAAA;EACA,sBAAA;EACA,sBAAsB,wCAAtB;EACA,aAAA;;AAIF,KAAE,QAAO;EACP,yBAAyB,4CAAzB;EACA,YAAY,qCAAZ;EACA,OAAO,0CAAP;EACA,sBAAA;;AAGF,KAAE,UAAS;EACT,cAAA;;AAIJ,IAAK,KAAK,MAAM,QAAO,QACrB;EACE,aAAA;;AAFJ,IAAK,KAAK,MAAM,QAAO,QAKrB;EACE,mBAAA;EACA,mBAAA;EACA,oCAAA;EACA,mBAAA;EACA,cAAA;;AAEA,IAZC,KAAK,MAAM,QAAO,QAKrB,QAOG;EACC,yBAAyB,4CAAzB;;AAbN,IAAK,KAAK,MAAM,QAAO,QAiBrB;EACE,yBAAyB,4CAAzB;EACA,YAAY,qCAAZ;EACA,OAAO,0CAAP;;AApBJ,IAAK,KAAK,MAAM,QAAO,QAuBrB,QAAQ;EACN,cAAA;;;AAKJ;EACE,cAAA;EACA,aAAA;EErUA,iBAAA;EFuUA,gBAAA;EEnUA,eAAA;EFqUA,eAAA;EACA,OAAO,wBAAP;EACA,iBAAA;EACA,YAAA;;AAEA,MAAC;AACD,MAAC;EACC,eAAA;;AAIJ;EACE;IACE,gBAAA;IACA,wBAAA;IACA,qBAAA;IACA,wBAAA;IACA,yBAAA;IACA,gBAAY,gWAAZ;IACA,uBAAuB,iBAAvB;IACA,qBAAA;IACA,8BAAA;IACA,kBAAkB,sCAAlB;IACA,oBAAA;IACA,uBAAA;ICvVF,kBAAA;;ED0VE,MAAC;EACD,MAAC;IACC,kBAAkB,4CAAlB;;EAjBJ,MAoBE;IACE,kBAAkB,4BAAlB;;EAIJ,QAAoC;IAClC,IAAI,WAAY;IAChB,IAAI,WAAY;MACd,sBAAkB,4WAAlB;;;EAIJ,IAAI,WAAY;IACd,sBAAkB,4WAAlB;;;;AAKJ,KAAK,eAAe;EAClB,wBAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,2BAAA;EACA,cAAA;EACA,mBAAA;EACA,kBAAA;;;AAGA,KAdG,eAAe,iBAcjB;AACD,KAfG,eAAe,iBAejB;EACC,aAAA;;AAGF,KAnBG,eAAe,iBAmBjB,MAAM;EACL,SAAS,EAAT;EACA,kBAAA;EACA,YAAA;EACA,cAAA;EACA,kBAAkB,2BAAlB;EACA,mBAAA;EACA,YAAY,mCAAZ;EACA,aAAA;EACA,YAAA;EACA,YAAA;;AAGF,KAhCG,eAAe,iBAgCjB;EACC,kBAAA;EACA,WAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,cAAA;EACA,eAAA;EACA,kBAAA;;;;;;AAQJ,KAAK,eAAe;AACpB,KAAK,eAAe,kBAAkB,iBAAiB;EACrD,YAAY,kDAAZ;;AAEA,KAJG,eAAe,iBAIjB;AAAD,KAHG,eAAe,kBAAkB,iBAAiB,QAGpD;EACC,YAAA;EACA,SAAS,OAAT;EACA,OAAO,kDAAP;EACA,YAAY,uDAAZ;;AAIJ,KAAK,eAAe,iBAAiB;AACrC,KAAK,eAAe,kBAAkB;EACpC,YAAY,iDAAZ;;AAEA,KAJG,eAAe,iBAAiB,QAIlC;AAAD,KAHG,eAAe,kBAAkB,iBAGnC;EACC,MAAM,kBAAN;EACA,SAAS,OAAT;EACA,OAAO,iDAAP;EACA,YAAY,sDAAZ;;;AAKJ;EACE,KAAK,eAAe,IAAI;IACtB,wBAAA;IACA,qBAAA;IACA,gBAAA;IAEA,WAAA;IACA,YAAA;IACA,eAAA;IACA,kBAAA;IACA,MAAA;IACA,OAAA;IACA,kBAAkB,0CAAlB;IC/cF,oBAAA;;EDkdE,KAdG,eAAe,IAAI,iBAcrB;IACC,SAAS,EAAT;IACA,UAAA;IACA,WAAA;IACA,kBAAA;IACA,QAAA;IACA,SAAA;IACA,kBAAkB,0CAAlB;IACA,gBAAA;IACA,kBAAA;IACA,uBAAA;IACA,UAAA;IACA,WAAW,cAAX;;EAGF,KA7BG,eAAe,IAAI,iBA6BrB,QAAQ;IACP,cAAc,0CAAd;IACA,UAAA;;EAKJ,KAAK,eAAe,UAAU,IAAI;IAChC,eAAA;IACA,wCAAA;IACA,eAAA;;EAIF,KAAK,SAAS,eAAe,IAAI,uCAAuC,MAAM;IAC5E,YAAA;;;AAIJ,mBAAsC;EACpC,KAAM;IACJ,WAAA;;;;AAKJ;AACA,OAAO;EACL,kBAAA;EACA,UAAA;EACA,WAAA;;AAGF;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,wBAAwB,kCAAxB;EACA,0BAA0B,kCAA1B;EACA,2BAA2B,kCAA3B;EACA,yBAAyB,sCAAzB;EACA,mBAAmB,aAAnB;EACA,eAAe,aAAf;EACA,WAAW,aAAX;EACA,6CAAA;EACA,qCAAA;;AAGF;EACE;IACE,mBAAmB,YAAnB;IACA,WAAW,YAAX;;EAGF;IACE,mBAAmB,cAAnB;IACA,WAAW,cAAX;;;AAIJ;EACE;IACE,mBAAmB,YAAnB;IACA,WAAW,YAAX;;EAGF;IACE,mBAAmB,cAAnB;IACA,WAAW,cAAX;;;;AAKJ;EACE,aAAA;EACA,kBAAA;EACA,oBAAA;EACA,kBAAA;EACA,kBAAkB,0CAAlB;EACA,YAAY,8CAAZ;EACA,eAAA;EACA,mBAAA;EACA,aAAA;EACA,gBAAA;ECrjBA,mBAAA;;ADyjBF,EAAE,MAAO;AACT,EAAE,MAAO;AACT,eAAe;EACb,qBAAA;;;AAIF;EACE,SAAA;EACA,0BAAA;EACA,WAAA;EACA,qBAAA;EACA,6BAAA;EACA,WAAA;EACA,qBAAA;EACA,mBAAA;EACA,oBAAA;;AAGF;EACE,WAAA;EACA,qBAAA;EACA,kBAAA;EACA,iBAAA;EACA,iBAAA;;AAGF;EACE,aAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;;AAGF;EANE,aAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EAMA,YAAY,sBAAZ;EACA,kBAAkB,KAAK,gCAAvB;EACA,iBAAA;;AAGF;EAdE,aAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EAcA,uBAAA;EACA,kBAAkB,KAAK,gCAAvB;EACA,iBAAA;;AAGF;EAtBE,aAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EAsBA,uBAAA;EACA,0BAA0B,KAAK,gCAA/B;EACA,UAAA;;AAGF;EA9BE,aAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EA8BA,uBAAA;EACA,uBAAuB,KAAK,gCAA5B;EACA,iBAAA;EACA,UAAA;;;AGloBF;EACE,kBAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;ED+DA,iBAAA;ED1DA,mBAAA;;AEAA,aAAC;AACD,aAAC;AACD,aAAC;EACC,kBAAkB,oCAAlB;;AAGF,aAAC;EACC,aAAA;;AAhBJ,aAmBE;EACE,qBAAA;EACA,SAAA;EACA,UAAA;;AAtBJ,aAmBE,KAKE;EACE,eAAA;EACA,oBAAA;;AAEA,aATJ,KAKE,KAIG;AACD,aAVJ,KAKE,KAKG;AACD,aAXJ,KAKE,KAMG;AACD,aAZJ,KAKE,KAOG;EACC,kBAAkB,0CAAlB;;AAJF,aATJ,KAKE,KAIG,OAMC,EAAC;AALH,aAVJ,KAKE,KAKG,OAKC,EAAC;AAJH,aAXJ,KAKE,KAMG,MAIC,EAAC;AAHH,aAZJ,KAKE,KAOG,MAGC,EAAC;AANH,aATJ,KAKE,KAIG,OAOC,EAAC;AANH,aAVJ,KAKE,KAKG,OAMC,EAAC;AALH,aAXJ,KAKE,KAMG,MAKC,EAAC;AAJH,aAZJ,KAKE,KAOG,MAIC,EAAC;AAPH,aATJ,KAKE,KAIG,OAQC,EAAC;AAPH,aAVJ,KAKE,KAKG,OAOC,EAAC;AANH,aAXJ,KAKE,KAMG,MAMC,EAAC;AALH,aAZJ,KAKE,KAOG,MAKC,EAAC;EACC,qBAAA;;AAIJ,aAtBJ,KAKE,KAiBG;EACC,eAAA;;AAKN,aAAC;EACC,cAAA;EACA,kBAAkB,oCAAlB;EACA,OAAO,8BAAP;EACA,iBAAA;EACA,gBAAA;EACA,aAAA;EACA,kBAAA;EACA,qBAAA;;AAEA,aAVD,KAUE;EACC,aAAA;;AAKN,mBAAsC;EACpC;IACE,WAAA;;EADF,aAGE,KAAK;IACH,aAAA;;;ACtEN,aAAc,SAAQ,kBAAkB;EACtC,OAAO,kBAAP;;AAGF,aAAc,SAAQ,qBAAqB,kBAAmB;EFH5D,eAAA;EAIA,aAAA;;AEIF,OAAO,cAAe;EACpB,aAAA;;AAGF,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB;EAClE,aAAA;EACA,sBAAA;EACA,eAAA;EFfA,YAAA;EAIA,OAAA;EEcA,UAAA;EACA,iCAAA;EACA,SAAA;EACA,YAAY,qCAAZ;EACA,kBAAkB,qCAAlB;EACA,aAAA;EACA,4BAAA;;AAZF,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAclE,EAAC;EACC,cAAA;EACA,OAAA;EACA,gBAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;;AApBJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAclE,EAAC,qBAQC;EACE,UAAA;EACA,SAAA;EACA,YAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,YAAY,0BAAZ;EACA,mBAAA;;AAhCN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE;EACE,OAAO,+BAAP;EACA,aAAA;;AAtCJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAIE;EACE,sBAAsB,6BAAtB;EACA,mBAAA;;AA1CN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBASE;EACE,YAAA;EACA,gBAAA;EACA,uBAAA;EACA,iBAAA;EACA,gBAAA;;AAlDN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAiBE;EACE,OAAO,qCAAP;EACA,iBAAA;EACA,mBAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;;AA3DN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAiBE,EAQE;EACE,qBAAA;EACA,YAAA;;AA/DR,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA+BE;AAnEJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAgCE;AApEJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAiCE;EFbF,iBAAA;;AExDF,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAqCE,EAAC;EACC,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,uBAAA;;AA7EN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA4CE,EAAC;EACC,mBAAA;EACA,uBAAA;EACA,uBAAA;;AAnFN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAkDE,EAAC,eAAe;AAtFpB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAmDE,EAAC,WAAW;EACV,kBAAA;EACA,4BAAA;EACA,YAAY,qCAAZ;EACA,iCAAA;;AA3FN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA0DE;AA9FJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA2DE,EAAC;AA/FL,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA4DE,EAAC;AAhGL,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBA6DE,EAAC;EACC,OAAO,+BAAP;;AAlGN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoClE,sBAiEE,EAAC;EACC,0BAAA;;AAtGN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA0GlE,EAAC;EACC,SAAA;EFvHF,WAAA;EEyHE,eAAA;;AA7GJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAgHlE,EAAC;EACC,SAAA;EFzHF,UAAA;EE4HE,mBAAA;EFxGF,oBAAA;EE0GE,sBAAA;EFtGF,qBAAA;;AEhBF,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA0HlE,EAAC;EACC,SAAA;EFnIF,UAAA;EEqIE,eAAA;;AA7HJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAgIlE,EAAC;AAhIH,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAiIlE,EAAC;AAjIH,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAkIlE,EAAC;EACC,kBAAA;EACA,cAAA;EACA,aAAA;EACA,cAAA;EACA,kBAAA;EACA,QAAQ,YAAR;EACA,aAAA;;AAzIJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAgIlE,EAAC,oBAWC;AA3IJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAiIlE,EAAC,mBAUC;AA3IJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAkIlE,EAAC,uBASC;EACE,cAAA;EACA,aAAA;EACA,cAAA;EACA,kBAAA;;AA/IN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAmJlE,EAAC,mBAEC,KAAI;AArJR,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoJlE,EAAC,uBACC,KAAI;EAEF,mBAAA;;AAvJN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA2JlE,EAAC;AA3JH,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA4JlE,EAAC,oBAAoB;AA5JvB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA6JlE,EAAC,oBAAoB;AA7JvB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA8JlE,EAAC,oBAAoB;AA9JvB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA+JlE,EAAC;AA/JH,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAgKlE,EAAC,uBAAuB;AAhK1B,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAiKlE,EAAC,uBAAuB;AAjK1B,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAkKlE,EAAC,uBAAuB;AAlK1B,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAmKlE,EAAC;AAnKH,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAoKlE,EAAC,mBAAmB;AApKtB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAqKlE,EAAC,mBAAmB;AArKtB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAsKlE,EAAC,mBAAmB;EAClB,OAAO,+BAAP;EACA,YAAY,qCAAZ;EACA,kBAAkB,+BAAlB;;AAzKJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA4KlE,EAAC,oBAAoB;AA5KvB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA6KlE,EAAC,oBAAoB;AA7KvB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA8KlE,EAAC,uBAAuB;AA9K1B,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QA+KlE,EAAC,uBAAuB;AA/K1B,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAgLlE,EAAC,mBAAmB;AAhLtB,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAiLlE,EAAC,mBAAmB;EAClB,QAAQ,YAAR;;AAlLJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAqLlE;EACE,kBAAA;EACA,SAAA;EF/LF,SAAA;EEiME,wBAAwB,wCAAxB;EACA,0BAA0B,wCAA1B;EACA,2BAA2B,wCAA3B;EACA,yBAAyB,4CAAzB;;AAIJ,QAAQ,kBAAkB,UAAW,QAAO,cAAc,mBAAoB;EAC5E,MAAA;;AADF,QAAQ,kBAAkB,UAAW,QAAO,cAAc,mBAAoB,QAG5E,EAAC,qBAAsB;EACrB,YAAY,mBAAZ;;AAIJ,mBAAuC;EACrC,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB;IAClE,MAAA;IFtNF,QAAA;;EEqNA,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAIlE,EAAC;IACC,aAAA;IACA,sBAAA;IACA,uBAAA;;EAPJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAIlE,EAAC,qBAKC;IACE,WAAA;IACA,YAAY,mBAAZ;;EAXN,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAelE,EAAC;IFhOH,UAAA;;;AEsOF,mBAAsC;EACpC,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB;IAClE,MAAA;IF5OF,QAAA;IE8OE,aAAA;;EAHF,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAKlE,EAAC,qBAAsB;IACrB,WAAA;IACA,YAAY,mBAAZ;IACA,SAAA;;EARJ,QAAQ,kBAAmB,QAAO,cAAc,mBAAoB,QAWlE,sBAAsB,EAAE;IACtB,cAAA;IF/OJ,iBAAA;;;AGTF;EACE,2BAAA;EACA,yBAAA;;AAEA;EACE;IACE,UAAA;;EAGF;IACE,YAAA;IACA,WAAW,sBAAsB,WAAjC;;;AAKN,KAAK,eAAe,iBAAiB;EACnC,sBAAA;;ACjBF,MAAM;EACJ,aAAA;;AAGF,MAAM;EAGJ,YAAA;;AAGF,MAAM;EAOJ,aAAA;;AAGF,MAAM;EAEJ,aAAA;;AAGF,MAAM;EAEJ,aAAA;;AAGF,MAAM;EACJ,YAAA;;AC/BF,UACE;EACE,sBAAA;ENiBF,kBAAA;EMfE,kBAAkB,gCAAlB;EACA,OAAO,qBAAP;EACA,eAAA;EACA,cAAA;;ACNJ,eACE;EACE,cAAA;EACA,eAAA;;AAHJ,eAME;EACE,aAAA;;AAPJ,eAUE,MAAK;EACH,kBAAA;;AAXJ,eAcE;EACE,wBAAA;;AAfJ,eAkBE;EACE,2BAAA;;AAnBJ,eAsBE;AAtBF,eAuBE;EACE,kBAAA;;AAxBJ,eA2BE;EACE,mCAAA;;AA5BJ,eA+BE,OAAM,QAAS;AA/BjB,eAgCE,OAAM,QAAS;EACb,mBAAA;;AChCJ;EACE,iBAAA;EACA,yBAAA;;AAFF,aAIE,GAAG;AAJL,aAKE,GAAG;EACD,yBAAyB,0BAAzB;EACA,gBAAA;;AAPJ,aAUE,MAAK;EACH,iBAAA;EACA,yBAAA;;AAZJ,aAUE,MAAK,eAIH;AAdJ,aAUE,MAAK,eAKH;EACE,YAAA;;AAhBN,aAoBE;EACE,YAAA;;AArBJ,aAwBE;EACE,WAAA;EACA,iBAAA;;AA1BJ,aA6BE;EACE,iBAAA;;AAIJ,KAAK,aAAc,GAAE;AACrB,KAAK,aAAc,GAAE;AACrB;EACE,YAAA;;AAGF;EACE,gBAAA;;AADF,cAGE,MAAK;EACH,iBAAA;EACA,qBAAA;EACA,kBAAkB,0BAAlB;EPqBF,iBAAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kBAAA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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.19.1\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #F00 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #04D } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #00F; font-weight: bold } /* Name.Class */\n .no { color: #800 } /* Name.Constant */\n .nd { color: #A2F } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #00F } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #00F; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #A2F; font-weight: bold } /* Operator.Word */\n .w { color: #BBB } /* Text.Whitespace */\n .mb { color: #666 } /* Literal.Number.Bin */\n .mf { color: #666 } /* Literal.Number.Float */\n .mh { color: #666 } /* Literal.Number.Hex */\n .mi { color: #666 } /* Literal.Number.Integer */\n .mo { color: #666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #00F } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7E8AA1 } /* Comment */\n .err { color: #F88F7F } /* Error */\n .esc { color: #D4D2C8 } /* Escape */\n .g { color: #D4D2C8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #D4D2C8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #D4D2C8 } /* Other */\n .p { color: #D4D2C8 } /* Punctuation */\n .ch { color: #F88F7F; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7E8AA1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7E8AA1 } /* Comment.PreprocFile */\n .c1 { color: #7E8AA1 } /* Comment.Single */\n .cs { color: #7E8AA1; font-style: italic } /* Comment.Special */\n .gd { color: #F88F7F; background-color: #3D1E20 } /* Generic.Deleted */\n .ge { color: #D4D2C8; font-style: italic } /* Generic.Emph */\n .ges { color: #D4D2C8 } /* Generic.EmphStrong */\n .gr { color: #F88F7F } /* Generic.Error */\n .gh { color: #D4D2C8 } /* Generic.Heading */\n .gi { color: #6AD4AF; background-color: #19362C } /* Generic.Inserted */\n .go { color: #7E8AA1 } /* Generic.Output */\n .gp { color: #D4D2C8 } /* Generic.Prompt */\n .gs { color: #D4D2C8; font-weight: bold } /* Generic.Strong */\n .gu { color: #D4D2C8 } /* Generic.Subheading */\n .gt { color: #F88F7F } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7E8AA1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #D4D2C8 } /* Name.Label */\n .nn { color: #D4D2C8 } /* Name.Namespace */\n .nx { color: #D4D2C8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #D4D2C8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #D4D2C8 } /* Punctuation.Marker */\n .w { color: #D4D2C8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7E8AA1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #D4D2C8 } /* Name.Variable.Class */\n .vg { color: #D4D2C8 } /* Name.Variable.Global */\n .vi { color: #D4D2C8 } /* Name.Variable.Instance */\n .vm { color: #D4D2C8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n right: @offset;\n}\n\n.ltr-right(@offset) {\n left: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-left: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-right: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-left: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-right: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-left: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-right: @offset;\n}\n\n.ltr-float-left() {\n float: right;\n}\n\n.ltr-float-right() {\n float: left;\n}\n\n.ltr-text-align-right() {\n text-align: left;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-text-align-left() {\n text-align: right;\n}\n\n.ltr-border-left-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(-1, 1);\n}\n\n@import \"style.less\";\n\n#q,\n#sidebar .infobox dt bdi {\n direction: rtl;\n}\n\n// URL are displayed LTR but align on the right\n#urls {\n direction: initial;\n text-align: right;\n\n .result .url_header {\n direction: rtl;\n }\n\n .result .url_wrapper {\n justify-content: end;\n }\n}\n\n// Image flexbox\n#main_results div#results.only_template_images #urls {\n direction: rtl;\n}\n\n// Image detail\n#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p {\n direction: rtl;\n\n &.result-url {\n // Display URL using the LTR direction\n direction: ltr;\n\n span {\n // And put the label on the right\n direction: rtl;\n float: right;\n }\n }\n}\n\n// select HTML element\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n border-width: 0 0 0 2rem;\n background-position-x: -2rem;\n }\n}\n\n// vim hotkey helps is not translated\n#vim-hotkeys-help table {\n direction: ltr;\n text-align: left;\n}\n\n// Logo on the right\n#main_preferences h1,\n#main_stats h1 {\n background-position-x: 100%;\n}\n\n// patch of stats.less\n.bar-chart-serie1,\n.bar-chart-serie2 {\n float: right;\n}\n\n.engine-stats .engine-name,\n.engine-stats .engine-score,\n.engine-stats .result-count,\n.engine-stats .response-time,\n.engine-stats .engine-reliability {\n text-align: right;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 75e29819c..b62dbb49a 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -762,7 +762,7 @@ template { } /* this file is generated automatically by searxng_extra/update/update_pygments.py - using pygments version 2.18.0 + using pygments version 2.19.1 */ .code-highlight { /* Comment */ @@ -869,14 +869,14 @@ template { font-style: italic; } .code-highlight .err { - border: 1px solid #FF0000; + border: 1px solid #F00; } .code-highlight .k { color: #008000; font-weight: bold; } .code-highlight .o { - color: #666666; + color: #666; } .code-highlight .ch { color: #3D7B7B; @@ -936,7 +936,7 @@ template { font-weight: bold; } .code-highlight .gt { - color: #0044DD; + color: #04D; } .code-highlight .kc { color: #008000; @@ -961,7 +961,7 @@ template { color: #B00040; } .code-highlight .m { - color: #666666; + color: #666; } .code-highlight .s { color: #BA2121; @@ -973,14 +973,14 @@ template { color: #008000; } .code-highlight .nc { - color: #0000FF; + color: #00F; font-weight: bold; } .code-highlight .no { - color: #880000; + color: #800; } .code-highlight .nd { - color: #AA22FF; + color: #A2F; } .code-highlight .ni { color: #717171; @@ -991,13 +991,13 @@ template { font-weight: bold; } .code-highlight .nf { - color: #0000FF; + color: #00F; } .code-highlight .nl { color: #767600; } .code-highlight .nn { - color: #0000FF; + color: #00F; font-weight: bold; } .code-highlight .nt { @@ -1008,26 +1008,26 @@ template { color: #19177C; } .code-highlight .ow { - color: #AA22FF; + color: #A2F; font-weight: bold; } .code-highlight .w { - color: #bbbbbb; + color: #BBB; } .code-highlight .mb { - color: #666666; + color: #666; } .code-highlight .mf { - color: #666666; + color: #666; } .code-highlight .mh { - color: #666666; + color: #666; } .code-highlight .mi { - color: #666666; + color: #666; } .code-highlight .mo { - color: #666666; + color: #666; } .code-highlight .sa { color: #BA2121; @@ -1075,7 +1075,7 @@ template { color: #008000; } .code-highlight .fm { - color: #0000FF; + color: #00F; } .code-highlight .vc { color: #19177C; @@ -1090,7 +1090,7 @@ template { color: #19177C; } .code-highlight .il { - color: #666666; + color: #666; } .codelines { margin: 0.125rem 0 0 0; @@ -1230,16 +1230,16 @@ template { background-color: #6e7681; } :root.theme-auto .code-highlight .c { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .err { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .esc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .g { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .k { color: #FFAD66; @@ -1248,74 +1248,74 @@ template { color: #D5FF80; } :root.theme-auto .code-highlight .n { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .o { color: #FFAD66; } :root.theme-auto .code-highlight .x { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .p { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .ch { - color: #f88f7f; + color: #F88F7F; font-style: italic; } :root.theme-auto .code-highlight .cm { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .cp { color: #FFAD66; font-weight: bold; } :root.theme-auto .code-highlight .cpf { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .c1 { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .cs { - color: #7e8aa1; + color: #7E8AA1; font-style: italic; } :root.theme-auto .code-highlight .gd { - color: #f88f7f; - background-color: #3d1e20; + color: #F88F7F; + background-color: #3D1E20; } :root.theme-auto .code-highlight .ge { - color: #d4d2c8; + color: #D4D2C8; font-style: italic; } :root.theme-auto .code-highlight .ges { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gr { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .gh { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gi { - color: #6ad4af; - background-color: #19362c; + color: #6AD4AF; + background-color: #19362C; } :root.theme-auto .code-highlight .go { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .gp { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gs { - color: #d4d2c8; + color: #D4D2C8; font-weight: bold; } :root.theme-auto .code-highlight .gu { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .gt { - color: #f88f7f; + color: #F88F7F; } :root.theme-auto .code-highlight .kc { color: #FFAD66; @@ -1357,7 +1357,7 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .nd { - color: #7e8aa1; + color: #7E8AA1; font-weight: bold; font-style: italic; } @@ -1371,13 +1371,13 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .nl { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .nn { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .nx { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .py { color: #FFD173; @@ -1386,16 +1386,16 @@ template { color: #5CCFE6; } :root.theme-auto .code-highlight .nv { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .ow { color: #FFAD66; } :root.theme-auto .code-highlight .pm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .w { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .mb { color: #DFBFFF; @@ -1425,7 +1425,7 @@ template { color: #D5FF80; } :root.theme-auto .code-highlight .sd { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-auto .code-highlight .s2 { color: #D5FF80; @@ -1458,16 +1458,16 @@ template { color: #FFD173; } :root.theme-auto .code-highlight .vc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vg { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vi { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .vm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-auto .code-highlight .il { color: #DFBFFF; @@ -1606,16 +1606,16 @@ template { background-color: #6e7681; } :root.theme-dark .code-highlight .c { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .err { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .esc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .g { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .k { color: #FFAD66; @@ -1624,74 +1624,74 @@ template { color: #D5FF80; } :root.theme-dark .code-highlight .n { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .o { color: #FFAD66; } :root.theme-dark .code-highlight .x { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .p { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .ch { - color: #f88f7f; + color: #F88F7F; font-style: italic; } :root.theme-dark .code-highlight .cm { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .cp { color: #FFAD66; font-weight: bold; } :root.theme-dark .code-highlight .cpf { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .c1 { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .cs { - color: #7e8aa1; + color: #7E8AA1; font-style: italic; } :root.theme-dark .code-highlight .gd { - color: #f88f7f; - background-color: #3d1e20; + color: #F88F7F; + background-color: #3D1E20; } :root.theme-dark .code-highlight .ge { - color: #d4d2c8; + color: #D4D2C8; font-style: italic; } :root.theme-dark .code-highlight .ges { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gr { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .gh { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gi { - color: #6ad4af; - background-color: #19362c; + color: #6AD4AF; + background-color: #19362C; } :root.theme-dark .code-highlight .go { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .gp { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gs { - color: #d4d2c8; + color: #D4D2C8; font-weight: bold; } :root.theme-dark .code-highlight .gu { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .gt { - color: #f88f7f; + color: #F88F7F; } :root.theme-dark .code-highlight .kc { color: #FFAD66; @@ -1733,7 +1733,7 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .nd { - color: #7e8aa1; + color: #7E8AA1; font-weight: bold; font-style: italic; } @@ -1747,13 +1747,13 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .nl { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .nn { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .nx { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .py { color: #FFD173; @@ -1762,16 +1762,16 @@ template { color: #5CCFE6; } :root.theme-dark .code-highlight .nv { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .ow { color: #FFAD66; } :root.theme-dark .code-highlight .pm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .w { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .mb { color: #DFBFFF; @@ -1801,7 +1801,7 @@ template { color: #D5FF80; } :root.theme-dark .code-highlight .sd { - color: #7e8aa1; + color: #7E8AA1; } :root.theme-dark .code-highlight .s2 { color: #D5FF80; @@ -1834,16 +1834,16 @@ template { color: #FFD173; } :root.theme-dark .code-highlight .vc { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vg { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vi { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .vm { - color: #d4d2c8; + color: #D4D2C8; } :root.theme-dark .code-highlight .il { color: #DFBFFF; diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index 4dec295b7..f63624474 100644 --- a/searx/static/themes/simple/css/searxng.min.css.map +++ b/searx/static/themes/simple/css/searxng.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-ltr.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iD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,gBAAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kBAAA;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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.18.0\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n left: @offset;\n}\n\n.ltr-right(@offset) {\n right: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-right: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-left: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-right: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-left: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-right: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-left: @offset;\n}\n\n.ltr-float-left() {\n float: left;\n}\n\n.ltr-float-right() {\n float: right;\n}\n\n.ltr-text-align-right() {\n text-align: right;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-text-align-left() {\n text-align: left;\n}\n\n.ltr-border-left-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(1, 1);\n}\n\n@import \"style.less\";\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-ltr.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtVA;EAEE,uBAAA;EACA,iCAAA;EACA,6BAAA;EACA,uCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,kCAAA;EACA,2BAAA;EAEA,4BAAA;EACA,0BAAA;EACA,gCAAA;EAEA,4BAAA;EACA,8BAAA;EACA,kCAAA;EAEA,+BAAA;EACA,sBAAA;EACA,iCAAA;EACA,2BAAA;EAEA,2BAAA;EACA,uDAAA;EACA,+BAAA;EACA,yBAAA;EACA,wCAAA;EAEA,sBAAA;EACA,iCAAA;EACA,wBAAA;EACA,mCAAA;EACA,wBAAA;EACA,mCAAA;EAEA,8CAAA;EACA,gDAAA;EAEA,+BAAA;EACA,iCAAA;EACA,6DAAA;EACA,qCAAA;EACA,8CAAA;EAEA,yBAAA;EACA,+BAAA;EAEA,+BAAA;EACA,2BAAA;EACA,6BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,iCAAA;EACA,2CAAA;EACA,yCAAA;EACA,qCAAA;EACA,oCAAA;EACA,sCAAA;EACA,oCAAA;EAEA,oCAAA;EACA,6CAAA;EACA,qCAAA;EAEA,kCAAA;EACA,iD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AAA;;AO3BF,cAGE,MAAK,aAMH,GAAG;AATP,cAGE,MAAK,aAOH,GAAG;EACD,eAAA;;AAGF,cAXF,MAAK,aAWD,KAAI;EACJ,8BAA8B,0BAA9B;EACA,mBAAA;EACA,oBAAA;;AAKN;EACE,UAAA;EACA,qBAAA;EACA,iBAAA;EACA,qBAAA;;AAGF;EACE,OAAO,iBAAP;EACA,qBAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;;AAGF;EACE,kBAAkB,8BAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,kBAAkB,gCAAlB;EACA,aAAA;EACA,WAAA;;AAGF;EACE,QAAA;EACA,SAAA;;AAMC;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,SAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,UAAA;;AADD;EACC,WAAA;;ACpGJ;EACE,aAAA;EACA,WAAA;EACA,cAAA;;ACLF;EACE,gBAAA;;AAGF;EACE,kBAAA;;AADF,MAGE;EACE,gBAAgB,+BAAhB;EACA,gBAAA;EACA,iBAAA;EACA,2BAAA;EACA,wBAAA;;AARJ,MAWE;EACE,cAAA;EACA,kBAAA;;AAbJ,MAgBE;AAhBF,MAiBE;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,UAAA;EACA,cAAA;;AAtBJ,MAyBE;EACE,cAAA;EACA,aAAA;;AA3BJ,MA8BE,UAAU;EACR,iBAAA;EACA,iCAAA;;AAIJ,mBAAuC;EACrC,GAAG,MACD;IACE,cAAA;;EAIJ;IACE,eAAA;;;AChDJ;EACE,yBAAA;;AADF,KAGE;AAHF,KAIE;EACE,kBAAA;EAC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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgb(0 0 0 / 20%);\n --color-toolkit-loader-borderleft: rgb(255 255 255 / 0%);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n /// Other misc colors\n --color-bar-chart-primary: #5bc0de;\n --color-bar-chart-secondary: #deb15b;\n --color-image-resolution-background: rgb(0 0 0 / 50%);\n --color-image-resolution-font: #fff;\n --color-loading-indicator: rgb(255 255 255 / 20%);\n --color-loading-indicator-gap: #fff;\n --color-line-number: #64708d;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgb(255 255 255 / 20%);\n --color-result-detail-loader-borderleft: rgb(0 0 0 / 0%);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgb(255 255 255 / 20%);\n --color-toolkit-loader-borderleft: rgb(0 0 0 / 0%);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n // Favicons Colors\n --color-favicon-background-color: #ddd;\n --color-favicon-border-color: #ccc;\n}\n\n.black-themes() {\n --color-base-background: #000;\n --color-base-background-mobile: #000;\n --color-header-background: #000;\n --color-footer-background: #000;\n --color-sidebar-background: #000;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n:root.theme-black {\n .dark-themes();\n .black-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 10rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 13rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.19.1\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #F00 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #04D } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #00F; font-weight: bold } /* Name.Class */\n .no { color: #800 } /* Name.Constant */\n .nd { color: #A2F } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #00F } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #00F; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #A2F; font-weight: bold } /* Operator.Word */\n .w { color: #BBB } /* Text.Whitespace */\n .mb { color: #666 } /* Literal.Number.Bin */\n .mf { color: #666 } /* Literal.Number.Float */\n .mh { color: #666 } /* Literal.Number.Hex */\n .mi { color: #666 } /* Literal.Number.Integer */\n .mo { color: #666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #00F } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7E8AA1 } /* Comment */\n .err { color: #F88F7F } /* Error */\n .esc { color: #D4D2C8 } /* Escape */\n .g { color: #D4D2C8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #D4D2C8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #D4D2C8 } /* Other */\n .p { color: #D4D2C8 } /* Punctuation */\n .ch { color: #F88F7F; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7E8AA1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7E8AA1 } /* Comment.PreprocFile */\n .c1 { color: #7E8AA1 } /* Comment.Single */\n .cs { color: #7E8AA1; font-style: italic } /* Comment.Special */\n .gd { color: #F88F7F; background-color: #3D1E20 } /* Generic.Deleted */\n .ge { color: #D4D2C8; font-style: italic } /* Generic.Emph */\n .ges { color: #D4D2C8 } /* Generic.EmphStrong */\n .gr { color: #F88F7F } /* Generic.Error */\n .gh { color: #D4D2C8 } /* Generic.Heading */\n .gi { color: #6AD4AF; background-color: #19362C } /* Generic.Inserted */\n .go { color: #7E8AA1 } /* Generic.Output */\n .gp { color: #D4D2C8 } /* Generic.Prompt */\n .gs { color: #D4D2C8; font-weight: bold } /* Generic.Strong */\n .gu { color: #D4D2C8 } /* Generic.Subheading */\n .gt { color: #F88F7F } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7E8AA1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #D4D2C8 } /* Name.Label */\n .nn { color: #D4D2C8 } /* Name.Namespace */\n .nx { color: #D4D2C8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #D4D2C8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #D4D2C8 } /* Punctuation.Marker */\n .w { color: #D4D2C8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7E8AA1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #D4D2C8 } /* Name.Variable.Class */\n .vg { color: #D4D2C8 } /* Name.Variable.Global */\n .vi { color: #D4D2C8 } /* Name.Variable.Instance */\n .vm { color: #D4D2C8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: var(--color-line-number);\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 5000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow: auto hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 100;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 1200;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked, [disabled], .checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 5000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-flow: row nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n left: @offset;\n}\n\n.ltr-right(@offset) {\n right: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-right: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-left: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-right: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-left: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-right: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-left: @offset;\n}\n\n.ltr-float-left() {\n float: left;\n}\n\n.ltr-float-right() {\n float: right;\n}\n\n.ltr-text-align-right() {\n text-align: right;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-text-align-left() {\n text-align: left;\n}\n\n.ltr-border-left-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(1, 1);\n}\n\n@import \"style.less\";\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 5000;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 1000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow: hidden hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 1200;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, sometimes the shown player has an height of\n // 200px, sometimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n font-size: 16px;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid var(--color-bar-chart-primary);\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid var(--color-bar-chart-secondary);\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n gap: 1rem 1.2rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n// only used when JavaScript is disabled\n.no-js #categories_container:has(button.category_button:focus-within) button.category_button {\n &.selected {\n color: var(--color-base-font);\n border-bottom: none;\n }\n\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 1000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 100;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow: scroll hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n gap: 0 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 2000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n\n.favicon img {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 10%;\n background-color: var(--color-favicon-background-color);\n border: 1px solid var(--color-favicon-border-color);\n display: flex;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-alignment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-alignment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (width >= 62rem) {\n .center-alignment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-alignment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-alignment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images, .image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n box-sizing: border-box;\n width: 100%;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_header {\n display: flex;\n gap: 0.5rem;\n }\n\n .url_wrapper {\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-flow: row nowrap;\n overflow: hidden;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n padding-bottom: 1px;\n\n .url_i1 {\n unicode-bidi: plaintext;\n }\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex: 0 1 content;\n text-align: right;\n padding-bottom: 1px;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_views,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos {\n img.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove height value that was needed for lazy loading\n }\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n width: unset;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: var(--color-image-resolution-background);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: var(--color-image-resolution-font);\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template:\n \"corrections sidebar\" min-content\n \"answers sidebar\" min-content\n \"urls sidebar\" 1fr\n \"pagination sidebar\" min-content\n / @results-width @results-sidebar-width\n ;\n gap: 0 @results-gap;\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsible {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsible {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin: 5px 10px 10px auto;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#engines_msg {\n .engine-name {\n width: 10rem;\n }\n\n .response-error {\n color: var(--color-error);\n }\n\n .bar-chart-value {\n width: auto;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / @results-width\n ;\n gap: 0;\n }\n}\n\n@media screen and (width <= calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (width <= 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-alignment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-alignment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template:\n \"corrections\" min-content\n \"answers\" min-content\n \"sidebar\" min-content\n \"urls\" 1fr\n \"pagination\" min-content\n / 100%;\n gap: 0;\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 2%;\n width: 96%;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n width: unset;\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file From fa50324dae492ef9ab4c1fc47260f53356f373a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 07:32:44 +0000 Subject: [PATCH 057/417] [upd] pypi: Bump selenium from 4.27.1 to 4.28.1 Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.27.1 to 4.28.1. - [Release notes](https://github.com/SeleniumHQ/Selenium/releases) - [Commits](https://github.com/SeleniumHQ/Selenium/commits) --- updated-dependencies: - dependency-name: selenium dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 9882599e2..15e7bd3c9 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,7 +4,7 @@ cov-core==1.15.0 black==24.3.0 pylint==3.3.3 splinter==0.21.0 -selenium==4.27.1 +selenium==4.28.1 Pallets-Sphinx-Themes==2.3.0 Sphinx==7.4.7 sphinx-issues==5.0.0 From edf6d96625444b5b214b4ca0e2885467ed265411 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 24 Jan 2025 07:09:45 +0000 Subject: [PATCH 058/417] [l10n] update translations from Weblate 8a0e2e2d6 - 2025-01-21 - return42 b70a88fec - 2025-01-19 - rajeeban --- searx/translations/ga/LC_MESSAGES/messages.mo | Bin 21854 -> 21854 bytes searx/translations/ga/LC_MESSAGES/messages.po | 4 +- searx/translations/ta/LC_MESSAGES/messages.mo | Bin 24109 -> 27939 bytes searx/translations/ta/LC_MESSAGES/messages.po | 51 ++++++++++-------- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/searx/translations/ga/LC_MESSAGES/messages.mo b/searx/translations/ga/LC_MESSAGES/messages.mo index ca35d24a9aa250ca357e402a41ffaec28f3e20d0..a9ac07a2b83dbf54c2882484caf7d1d7b81120f1 100644 GIT binary patch delta 31 ncmcb&it*km#tm$S97cu;hL%>wCY$*Ty%m`}LpDbTF*5@Ir4b18 delta 31 ncmcb&it*km#tm$S90ukJhUQiV7MuADy%m`buiP9R#LNr;s+\n" "Language-Team: Irish \n" @@ -74,7 +74,7 @@ msgstr "teilifíse" #. CATEGORY_NAMES['IT'] #: searx/searxng.msg msgid "it" -msgstr "é" +msgstr "IT" #. CATEGORY_NAMES['NEWS'] #: searx/searxng.msg diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo index 08a8da42c0136d1d4b1a9f63278993e8351daa64..a575cd4753de7208f42848682ee5918ffeaa3245 100644 GIT binary patch delta 7579 zcmcJS33OHUoyTuj0|D7hScFSJ5)1(Z0uqEq7&bu+CR9*aUS4j(gYaJZ7BJe*!&Vga zAdDB(IxMBo4p>RVCzc~rYnM4A?slwGrOq2VqoqBHmZG-W&V0W2|4$&)o}QU=hU0mk z|N7g1{~He-&)N4@PWqj`opw0V%g8=iqZVOd|tsfM#)C-^YTbDXrZ%M6@@Py&y@GWY{H0G@?X+^wJ4FR`2m zOIV)zf;UW3sWsCpf1jZ z3S|{k2v(^Bvm16|0?H|zs1 zVLk}5<&1_hu)^-og)*cPx^OAf`6j6Io1r4I$8tZEp$DN9KMM)Eb0VMkOYu7_%z*Df zT^xnEVhNlB$3t1Z0rrC5u=_rg0}n%m{yR{iKMKdf=b<9^DU`uo1{w!1vCJPx{AGa4 zf-D;i6|zZ|GoUWcgNi_47?gX4R!t#sK|62YWDLW zL3R2l!9GQk@ybO{lid^c-r!(P=>t82(0=;RcI|F@IdqZ6)gbL9(Cu*z93{v3ETW|{e96kvrU11)o(=Zo-152#oW6Vcq9IW8n3MhGd;BI&nehJ=K z>NwZJhhQ)CJEs`v^Y}aXD9jz}ICsDd90tpH7A0s2bYT=Ogj-<`coL@IX{at*Ii4>h z%s@mqQ?4`-s)O${|2n)M!yD=KG@a-C_e3fj7SfbKQ9ud)2GloU8^lTH1t>#4fiqz5 zGROH1ydKJd^2v_#cd!x?9A^hqYJLd0;+%vsun*zX+?zuDhckGDg?r#}_+>cfD)WcL zE+|8ugxqzWgF62y48uWFF&h3oRPOge>dQG{*FS^>%=_VmQaA=;t5XY=@<+;vzbrh& zf)qUuBk<=?7b>P1Pi}=O!hMzpAa&#%f-2rOpgevLN?~6<2q$3))V=+ydU$*?f@{$U3 zZ!DC)^tB9h;U=iitb0@`*RjI(wlM{u=Iu zU9UHu9E7s`WmpV9fVD8c(zNAQp#*23s`}?}6+8>?%b_+F8;7!lL595#vDN8XMf`us zpqf|V1`bZB=Kp$_Z(72iS@0#O5YEOuww!S{5&_QL36spHEi(!qhibc*U_E>nDiw=v zGEc7$$1tC8v-tyOB^=BAft!iHs`NP)4!}2|JluGTDUyRw5qT3T*B`@1ICME4V8~Xe z(4Ji3INyh7;A`-oR^l=HO{+|;+!Zoyd<@F)vrt{JI$eVo4898`=oBo6=b$_qA2w|> zANFFt7AmK=Lm9poDwp4f-Qa0B9G7p1#qp_SQN+x@40Uc3EP)4LkRI!yab|@Y!l{N((sS2^lB+#_BH>Vj>)qNI_Y#RnEShlFM?x-JZo&)2!>iqz zP&~7(Pmi2S+!`;r!SkYSDjG>9{Ox@gRMo~dL>pqE+TeUcB$0Gub#8Smj=V^+G#ab* z5^h~QwyxY=olG_+%EyfhulB-g$0lR(#&~Rv7fz0i#p}lfr$e>1G9mMN-x(d#Za5aL zi^SJSaNKhv2{#&((1e_EYf|-Ys3w+526`ijM9OpLyIwRLOGT4j+?iiBa}hsP{M2!T z+x!=D8&fq6k+2(yCX%6O*c;i=QTHMvzy(O9%;T_Q7e za7~AFV?zpC+`wqUpm1=}gj&hcH12&R<&nD}NbRyW#tlVlt%gK!HkI(=5`&46#5A`d zveq-gFUsi{l9Y7o@<_g0MIkL+G}qsL+1ZZXhJ=6T&^OY{VktL7W}~sBn@Y$dDVDY- zc2e5;o9bzc}tBulH~p=g3mjm67p;x(RE6NAX~JEBFsf5qFMr7n7+jyT0G3}T=L3fHtq`?*m99Y zErFYdjVs(>8wU}65K;brEGWv|Y(($(L(7NwZ_k-t`oDN_yhP@;lH=Xd+2#Y;W_(7d zG~9ndM2-FT24P@KFi@@-bMBGA5k)5O8UM+G{4z2Q1RLZ=VP%P&u>Yiu!3A>sy!k!T z=8h}~PVVOzOZQ}(jq@hOZ3!~j;Si_!H9n+t3N2^(KoJfqD^y_nhNZ9#_RpvnH>z|A&GF=|g+F=AKd!LkRs zrqN(!8+FF-oxxScRLS|E;S*j;tbJ6?6&vWSfzu`f2Lnaw2;xSnSj{lGFz}`}yQ1I` z_Wf^7DDdxJbZMq|dXL;IO^jQ(@fVquMY_=50)KgB(Pc^kR{-I})z;=vQoiXAo1Lm@ z*Q@O;Ln8(qX{#DG$t-4L@*e5Z(;wu+dP`Igd)`p%n!mWRBC~yV_nbWPD}(rT{m_(x z%Glwii?*Farf)0L$>-0&xdc7c~iz>SN<10I*c@}Ji z{neU65MJ;okUdj%tsP}tZH+Fk)Z;;Y5H5=9!b9rEX%Lo$QS})v}UsRBNUfT7@kuP|r6`#ZUR<%Bgrj`^XBU&vm zO`Q-pebLu5=)k{ie^+b2U%7bbs{dz`@AeN*?mtz}6wxDRw&<~-E%~@ekZc++^2lF2 zu3ur0z(W!ykpKRGu?)s;v4_T(t44&dF8=ycaG(;M4FD1oK0t=#f);stWN9DZaarMCaAqXe)n`aPG0xl@80kI-uwH- zJC|L*`OxLL8XmCS@Du1VW(XGcR_*^kYx^0~i|RUz#aC?oT@0dr$m+vD>YW&h-8daT z!KW~?zcD2kj{*1+_A$m|)=|(zuVEx^LoM`c+kVn|7L#eegd?z5_>&3DDAa^m7=lwU z0Shn~>o6J{QO|Ej7B*cN#QNqm1*PC`$lPYx0Aq&YI`qfgs0H3ehL~R=n=yk(Q1vQnHR`!K3}t<@hJsS`Dk>8@P!YGFGV+0KKV$tAbxPMzJG_Ze zcn39cC=V$UQK+McM~zRjPQbp@r=drY&!wOUtL=a~R3I;*8`q;A*ozu}7?qKatf!EF z<}AOo@C_sh<~C~KKpxWgFlz)V&_M&qe;9>C+mV5aI182PJXEU7aTG2?Woj2HzyqiS z4qH2{-KaqRg38bZ>owGKw@@3tJ&^pX;l3T<`i?VUAJl*dRDU#TqIlb%YTGkWJDY6# zb5U>0Y*b*ysDKxs#x1qhVLkN*4+Ul52I}(NL!D(XzbKkGOvEhIWvsL=vR0#xW;rUr zHK?6$v~IQTMx}f|DzH{mV4hA2+TlsmL}yVGT*Kk`CF%&m2RZ%msD;vzeB+rzh z7I+b##zxe92T=f40ci!gGzk@sy!J~F%vb>B2>oekw?u> zP~-QY0)5BUk61fVfpw#v`xtpq%+)9Toc|p=pa+$SK;At~*cWLsk*FP~p(e`0IGllv zSc5wA>$d+UDsy+S7>Dp#osTO}AGT9C9{-JV_5LUEwV`YpaU||Q?Ys*$@hMcw&Y|9l zFEAbNqs}sAm=kaYD&^Uz=VoCN&P4^@h?;jJ>bb4x(SWxoRA3kCmd3;wGZqt2DW8Wr zyCtX$HJ~O~iyFTXm9d}M`ZmcM={Ne1J2{)r6e=~{m#l6Tk%6x`X@BtR!M55EeKSlj<+JW!k`}i`J zeV2>Q{WF&+XoCCb#_*8@fn!h$t;bdPI=+Jb$<806O{h$?;Tr^Y4%w`!O67Zx8&Dbh zCu*M0F$-@aLrv-^)@6M&kHTcE$6NSYRK$DO_A}UutZnY07K}@CUeC#>56nti{|IBL zKg8E?*l0e>cmVZ@evAraARmuRj7N_iD5tOx*P?cC4at)6ALIP-NkO%L50$A^s3Up< zGw=k4<3m({VSGHaP%_rwc+~iPsEu4k-LYO7_qw$i z^~KzY3iJr-tgm1{{FiP22DNY!+uefSN7es>3N&dP`6pv^m|UB))+2UgE93c8iusGUDTE!>Y)<#1F0 z+5F<-nkJ0G1E`&Lp)zs{IaU+MHuXAB#0^-E3h*DO{ytNjqn?Vh_4mJ;!ZUQVVFEtD zo9Ld(g~N~>=O`+W7sIT>8TdXn;T_vvJI%@5FHixzhg^7b65H?rGSsx@I(O%5EY_G*PGTm8dB_>dB#u#izW#%F-LJj7=nZ-B+_h2P< z;AW4DZ+e~+`Tm(s06r{az-hdKgY(G*UF({EATNE65xut zPR4%ExwX@N2DujI)ne`goPk7#x0B1_1>A}pdI7HcpJH)A61My0$9gYgb(+#_qu zb581WP!qp^o3Rl!Pp?wvXd^L_`e@Wq=Aq_aTFUvWu$2a#U7PK=fO_B|D$?*WCxF?g z3Cd8XT4`mSQMwLj}@;3b+&F@ha+w{mLCZqivxQHE;{+eQiaZ@l{(7obN1{ zj=Bpotv^KF{#~ez97m=8YmCN#1&(f1do~teA=asDCj~C1394`|+jFQ0zp3!;>L1_= zud7?;uCHpSsa;}nbBaoGXXf~Bhljen5fQn*_K4B`y^E*KG5N*Cb9}3#8vT4Dql^5! zdxu7Q?+=~qn>wt@&zm0ml{X>oocDVCbl<3iAN!9<%XE*<$jTU#oW@T`Vb#ip)ROwD z+Lg, 2025. # return42 , 2025. # Eshan-K-I , 2025. +# rajeeban , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-01-06 16:16+0000\n" -"PO-Revision-Date: 2025-01-06 15:53+0000\n" -"Last-Translator: ecevinoth " -"\n" +"PO-Revision-Date: 2025-01-20 03:36+0000\n" +"Last-Translator: rajeeban \n" +"Language-Team: Tamil \n" "Language: ta\n" -"Language-Team: Tamil " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: Babel 2.16.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -178,7 +179,7 @@ msgstr "இருள்" #. STYLE_NAMES['BLACK'] #: searx/searxng.msg msgid "black" -msgstr "" +msgstr "கருப்பு" #. BRAND_CUSTOM_LINKS['UPTIME'] #: searx/searxng.msg @@ -465,7 +466,7 @@ msgstr "வாதங்களின் {functions} கணக்கிடவு #: searx/engines/mozhi.py:57 msgid "Synonyms" -msgstr "" +msgstr "ஒத்த சொற்கள்" #: searx/engines/openstreetmap.py:159 msgid "Get directions" @@ -541,7 +542,7 @@ msgstr "கோப்பின் தரம்" #: searx/plugins/calculator.py:18 msgid "Calculate mathematical expressions via the search bar" -msgstr "" +msgstr "தேடல் பட்டியின் மூலம் கணித வெளிப்பாடுகளைக் கணக்கிடுங்கள்" #: searx/plugins/hash_plugin.py:10 msgid "Converts strings to different hash digests." @@ -585,11 +586,11 @@ msgstr "" #: searx/plugins/self_info.py:28 msgid "Your IP is: " -msgstr "" +msgstr "உங்கள் இணைய முகவரி: " #: searx/plugins/self_info.py:31 msgid "Your user-agent is: " -msgstr "" +msgstr "உங்கள் பயனர் முகவர்: " #: searx/plugins/tor_check.py:24 msgid "Tor check plugin" @@ -600,22 +601,30 @@ msgid "" "This plugin checks if the address of the request is a Tor exit-node, and " "informs the user if it is; like check.torproject.org, but from SearXNG." msgstr "" +"இந்தச் செருகுநிரல் கோரிக்கையின் முகவரி டோர் வெளியேறும் முனையா என்பதைச் சரிபார்த்து, அது " +"இருந்தால் பயனருக்குத் தெரிவிக்கும்; check.torproject.org போன்றது, ஆனால் SearXNG " +"இலிருந்து." #: searx/plugins/tor_check.py:61 msgid "" "Could not download the list of Tor exit-nodes from: " "https://check.torproject.org/exit-addresses" msgstr "" +"டோர் வெளியேறும் முனைகளின் பட்டியலை இதிலிருந்து பதிவிறக்க முடியவில்லை: https://" +"check.torproject.org/exit-addresses" #: searx/plugins/tor_check.py:77 msgid "" "You are using Tor and it looks like you have this external IP address: " "{ip_address}" msgstr "" +"நீங்கள் Tor ஐப் பயன்படுத்துகிறீர்கள், உங்களிடம் இந்த வெளிப்புற IP முகவரி இருப்பது போல் " +"தெரிகிறது: {ip_address}" #: searx/plugins/tor_check.py:85 msgid "You are not using Tor and you have this external IP address: {ip_address}" msgstr "" +"நீங்கள் Tor ஐப் பயன்படுத்தவில்லை, உங்களிடம் இந்த வெளிப்புற IP முகவரி உள்ளது: {ip_address}" #: searx/plugins/tracker_url_remover.py:16 msgid "Tracker URL remover" @@ -629,7 +638,7 @@ msgstr "" #: searx/plugins/unit_converter.py:29 msgid "Convert between units" -msgstr "" +msgstr "அலகுகளுக்கு இடையில் மாற்றவும்" #: searx/templates/simple/404.html:4 msgid "Page not found" @@ -659,7 +668,7 @@ msgstr "மூலம் இயக்கப்படுகிறது" #: searx/templates/simple/base.html:68 msgid "a privacy-respecting, open metasearch engine" -msgstr "" +msgstr "தனியுரிமையை மதிக்கும், திறந்த மீதேடல் பொறி" #: searx/templates/simple/base.html:69 #: searx/templates/simple/result_templates/packages.html:59 @@ -696,7 +705,7 @@ msgstr "நீளம்" #: searx/templates/simple/macros.html:41 msgid "Views" -msgstr "" +msgstr "பார்க்கப்பட்டது" #: searx/templates/simple/macros.html:42 #: searx/templates/simple/result_templates/files.html:34 @@ -715,23 +724,24 @@ msgstr "ப்ராக்ஸி" #: searx/templates/simple/new_issue.html:64 msgid "Start submitting a new issue on GitHub" -msgstr "" +msgstr "புதிய சிக்கலைச் GitHub இல் சமர்ப்பிக்கத் தொடங்குங்கள்" #: searx/templates/simple/new_issue.html:66 msgid "Please check for existing bugs about this engine on GitHub" -msgstr "" +msgstr "இந்த இன்ஜினைப் பற்றி GitHub இல் ஏற்கனவே உள்ள பிழைகளைச் சரிபார்க்கவும்" #: searx/templates/simple/new_issue.html:69 msgid "I confirm there is no existing bug about the issue I encounter" msgstr "" +"நான் எதிர்கொள்ளும் சிக்கலில் எந்தப் பிழையும் இல்லை என்பதை உறுதிப்படுத்துகிறேன்" #: searx/templates/simple/new_issue.html:71 msgid "If this is a public instance, please specify the URL in the bug report" -msgstr "" +msgstr "இது ஒரு பொது நிகழ்வாக இருந்தால், பிழை அறிக்கையில் URL ஐக் குறிப்பிடவும்" #: searx/templates/simple/new_issue.html:72 msgid "Submit a new issue on Github including the above information" -msgstr "" +msgstr "மேலே உள்ள தகவல் உட்பட Github இல் புதிய பிழையைச் சமர்ப்பிக்கவும்" #: searx/templates/simple/preferences.html:65 msgid "No HTTPS" @@ -824,7 +834,7 @@ msgstr "இதுபோல் தேடி பார்க்கவும்" #: searx/templates/simple/results.html:107 msgid "Back to top" -msgstr "" +msgstr "மேலே திரும்பவும்" #: searx/templates/simple/results.html:125 msgid "Previous page" @@ -1978,4 +1988,3 @@ msgstr "காணொளிகளை மறை" #~ msgid "dummy" #~ msgstr "" - From 04a6ab12fb6d7ec300df515831f13b228e1c5625 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 07:57:52 +0000 Subject: [PATCH 059/417] [upd] npm: Bump less from 4.2.1 to 4.2.2 in /searx/static/themes/simple Bumps [less](https://github.com/less/less.js) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/less/less.js/releases) - [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/less/less.js/commits) --- updated-dependencies: - dependency-name: less dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- searx/static/themes/simple/package-lock.json | 8 ++++---- searx/static/themes/simple/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/searx/static/themes/simple/package-lock.json b/searx/static/themes/simple/package-lock.json index 67cde3ae0..6687a4a70 100644 --- a/searx/static/themes/simple/package-lock.json +++ b/searx/static/themes/simple/package-lock.json @@ -24,7 +24,7 @@ "grunt-stylelint": "^0.20.1", "grunt-xmlmin": "^0.1.8", "ionicons": "^7.4.0", - "less": "^4.2.1", + "less": "^4.2.2", "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^37.0.0", @@ -5822,9 +5822,9 @@ "license": "BSD-2-Clause" }, "node_modules/less": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.1.tgz", - "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.2.tgz", + "integrity": "sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 61deafd18..22f195e92 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -13,7 +13,7 @@ "grunt-stylelint": "^0.20.1", "grunt-xmlmin": "^0.1.8", "ionicons": "^7.4.0", - "less": "^4.2.1", + "less": "^4.2.2", "sharp": "^0.33.5", "stylelint": "^16.12.0", "stylelint-config-standard": "^37.0.0", From f3f13519ff8bad181ddb1e749a3e57dfd92f003c Mon Sep 17 00:00:00 2001 From: Zhijie He Date: Sat, 25 Jan 2025 18:59:10 +0800 Subject: [PATCH 060/417] [feat] autocompletion: add baidu search autocompleter (#4227) --- searx/autocomplete.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/searx/autocomplete.py b/searx/autocomplete.py index 09589cf1f..206589c67 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -36,6 +36,21 @@ def post(*args, **kwargs): return http_post(*args, **kwargs) +def baidu(query, _lang): + # baidu search autocompleter + base_url = "https://www.baidu.com/sugrec?" + response = get(base_url + urlencode({'ie': 'utf-8', 'json': 1, 'prod': 'pc', 'wd': query})) + + results = [] + + if response.ok: + data = response.json() + if 'g' in data: + for item in data['g']: + results.append(item['q']) + return results + + def brave(query, _lang): # brave search autocompleter url = 'https://search.brave.com/api/suggest?' @@ -238,6 +253,7 @@ def yandex(query, _lang): backends = { + 'baidu': baidu, 'dbpedia': dbpedia, 'duckduckgo': duckduckgo, 'google': google_complete, From 176079977d9c12edcc4ded6fd7cd9092d9c75327 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sat, 25 Jan 2025 12:02:10 +0100 Subject: [PATCH 061/417] [chore] autocomplete.py: order autocompletion engines alphabetically --- searx/autocomplete.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/autocomplete.py b/searx/autocomplete.py index 206589c67..32a2bf188 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -254,17 +254,17 @@ def yandex(query, _lang): backends = { 'baidu': baidu, + 'brave': brave, 'dbpedia': dbpedia, 'duckduckgo': duckduckgo, 'google': google_complete, 'mwmbl': mwmbl, + 'qwant': qwant, 'seznam': seznam, 'startpage': startpage, 'stract': stract, 'swisscows': swisscows, - 'qwant': qwant, 'wikipedia': wikipedia, - 'brave': brave, 'yandex': yandex, } From c1fcee9d9ff55c88ae6c6a1ba53c9b2a63fef19b Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sat, 25 Jan 2025 12:08:58 +0100 Subject: [PATCH 062/417] [docs] settings_search.rst: add missing autocompletion providers --- docs/admin/settings/settings_search.rst | 21 +++++++++++++-------- searx/settings.yml | 6 +++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/admin/settings/settings_search.rst b/docs/admin/settings/settings_search.rst index b8f37b423..5fa94f25f 100644 --- a/docs/admin/settings/settings_search.rst +++ b/docs/admin/settings/settings_search.rst @@ -33,14 +33,19 @@ ``autocomplete``: Existing autocomplete backends, leave blank to turn it off. - - ``dbpedia`` - - ``duckduckgo`` - - ``google`` - - ``mwmbl`` - - ``startpage`` - - ``swisscows`` - - ``qwant`` - - ``wikipedia`` + - ``baidu``` + - ``brave``` + - ``dbpedia``` + - ``duckduckgo``` + - ``google``` + - ``mwmbl``` + - ``qwant``` + - ``seznam``` + - ``startpage``` + - ``stract``` + - ``swisscows``` + - ``wikipedia``` + - ``yandex``` ``favicon_resolver``: To activate favicons in SearXNG's result list select a default diff --git a/searx/settings.yml b/searx/settings.yml index 46de5d855..29cee7445 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -33,9 +33,9 @@ brand: search: # Filter results. 0: None, 1: Moderate, 2: Strict safe_search: 0 - # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "yandex", "mwmbl", - # "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" - leave blank to turn it off - # by default. + # Existing autocomplete backends: "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex", + # "mwmbl", "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" - + # leave blank to turn it off by default. autocomplete: "" # minimun characters to type before autocompleter starts autocomplete_min: 4 From cf4e183790760e13aa1bb19fb41997c1579eec90 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 20 Jan 2025 18:03:10 +0100 Subject: [PATCH 063/417] [refactor] results.js: cancel image loading after next one selected --- .../themes/simple/src/js/main/results.js | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index e7c34aded..adde916ea 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -52,35 +52,43 @@ this.innerText = this.dataset.copiedText; }); - const isMobile = screen.orientation.type.startsWith('portrait'); + // progress spinner that is being attached while an image is loading + const imgLoaderSpinner = d.createElement('div'); + imgLoaderSpinner.classList.add('loader'); + const imgLoader = new Image(); + + const loadImage = (imgSrc, onSuccess) => { + imgLoader.onload = () => { + onSuccess(); + imgLoaderSpinner.remove(); + }; + imgLoader.onerror = () => { + imgLoaderSpinner.remove(); + }; + imgLoader.src = imgSrc; + } searxng.selectImage = function (resultElement) { /* eslint no-unused-vars: 0 */ if (resultElement) { // load full size image in background - const imgElement = resultElement.querySelector('.result-images-source img'); const thumbnailElement = resultElement.querySelector('.image_thumbnail'); const detailElement = resultElement.querySelector('.detail'); - if (imgElement) { - const imgSrc = imgElement.getAttribute('data-src'); - if (imgSrc) { - const loader = d.createElement('div'); - const imgLoader = new Image(); + const imgElement = resultElement.querySelector('.result-images-source img'); + if (!imgElement) return; - loader.classList.add('loader'); - detailElement.appendChild(loader); + const imgSrc = imgElement.getAttribute('data-src'); + // already loaded high-res image or no high-res image available + if (!imgSrc) return; - imgLoader.onload = e => { - imgElement.src = imgSrc; - loader.remove(); - }; - imgLoader.onerror = e => { - loader.remove(); - }; - imgLoader.src = imgSrc; - imgElement.src = thumbnailElement.src; - imgElement.removeAttribute('data-src'); - } - } + // show a progress spinner and start loading the full high-res image + detailElement.appendChild(imgLoaderSpinner); + loadImage(imgSrc, () => { + imgElement.src = imgSrc; + imgElement.removeAttribute('data-src'); + }) + + // use the image thumbnail until the image is fully loaded + imgElement.src = thumbnailElement.src; } d.getElementById('results').classList.add('image-detail-open'); From 9beff8212b44e8ac0fd0049a78d930504025e1d1 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 21 Jan 2025 14:05:58 +0100 Subject: [PATCH 064/417] [refactor] results.js: wait one second before loading full high-res image Signed-off-by: Markus Heiser --- .../themes/simple/src/js/main/results.js | 85 +++++++++++++------ 1 file changed, 57 insertions(+), 28 deletions(-) diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index adde916ea..cc7c7efcd 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -52,12 +52,30 @@ this.innerText = this.dataset.copiedText; }); - // progress spinner that is being attached while an image is loading + // searxng.selectImage (gallery) + // ----------------------------- + + // setTimeout() ID, needed to cancel *last* loadImage + let imgTimeoutID; + + // progress spinner, while an image is loading const imgLoaderSpinner = d.createElement('div'); imgLoaderSpinner.classList.add('loader'); + + // singleton image object, which is used for all loading processes of a + // detailed image const imgLoader = new Image(); const loadImage = (imgSrc, onSuccess) => { + // if defered image load exists, stop defered task. + if (imgTimeoutID) clearTimeout(imgTimeoutID); + + // defer load of the detail image for 1 sec + imgTimeoutID = setTimeout(() => { + imgLoader.src = imgSrc; + }, 1000); + + // set handlers in the on-properties imgLoader.onload = () => { onSuccess(); imgLoaderSpinner.remove(); @@ -65,38 +83,49 @@ imgLoader.onerror = () => { imgLoaderSpinner.remove(); }; - imgLoader.src = imgSrc; - } - searxng.selectImage = function (resultElement) { - /* eslint no-unused-vars: 0 */ - if (resultElement) { - // load full size image in background - const thumbnailElement = resultElement.querySelector('.image_thumbnail'); - const detailElement = resultElement.querySelector('.detail'); - const imgElement = resultElement.querySelector('.result-images-source img'); - if (!imgElement) return; + }; - const imgSrc = imgElement.getAttribute('data-src'); - // already loaded high-res image or no high-res image available - if (!imgSrc) return; + searxng.selectImage = (resultElement) => { - // show a progress spinner and start loading the full high-res image - detailElement.appendChild(imgLoaderSpinner); - loadImage(imgSrc, () => { - imgElement.src = imgSrc; - imgElement.removeAttribute('data-src'); - }) - - // use the image thumbnail until the image is fully loaded - imgElement.src = thumbnailElement.src; - } + // add a class that can be evaluated in the CSS and indicates that the + // detail view is open d.getElementById('results').classList.add('image-detail-open'); - // add a hash to the browser history so that pressing back doesn't return to the previous page - // this allows us to dismiss the image details on pressing the back button on mobile devices + // add a hash to the browser history so that pressing back doesn't return + // to the previous page this allows us to dismiss the image details on + // pressing the back button on mobile devices window.location.hash = '#image-viewer'; searxng.scrollPageToSelected(); + + // if there is none element given by the caller, stop here + if (!resultElement) return; + + // find object in the element, if there is none, stop here. + const img = resultElement.querySelector('.result-images-source img'); + if (!img) return; + + // + const src = img.getAttribute('data-src'); + + // already loaded high-res image or no high-res image available + if (!src) return; + + // use the image thumbnail until the image is fully loaded + const thumbnail = resultElement.querySelector('.image_thumbnail'); + img.src = thumbnail.src; + + // show a progress spinner + const detailElement = resultElement.querySelector('.detail'); + detailElement.appendChild(imgLoaderSpinner); + + // load full size image in background + loadImage(src, () => { + // after the singelton loadImage has loaded the detail image into the + // cache, it can be used in the origin as src property. + img.src = src; + img.removeAttribute('data-src'); + }); }; searxng.closeDetail = function () { @@ -125,10 +154,10 @@ d.querySelectorAll('.swipe-horizontal').forEach( obj => { - obj.addEventListener('swiped-left', function (e) { + obj.addEventListener('swiped-left', function () { searxng.selectNext(false); }); - obj.addEventListener('swiped-right', function (e) { + obj.addEventListener('swiped-right', function () { searxng.selectPrevious(false); }); } From 06f6ee4e365a90bd06ba8eefad5963c3b1fc32f8 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 21 Jan 2025 14:06:44 +0100 Subject: [PATCH 065/417] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 2 +- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index d8b0fac3e..a68118ebc 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,i){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),r=-1;while(n[++r]&&n[r]!=t);return!!n[r]}})(Element.prototype)}function s(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var a=window.searxng||{};a.on=function(r,e,o,t){t=t||false;if(typeof r!=="string"){r.addEventListener(e,o,t)}else{i.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==i&&!(n=t.matches(r)))t=t.parentElement;if(n)s(o,t,e)},t)}};a.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};a.http=function(r,o,i=null){return new Promise(function(e,t){try{var n=new XMLHttpRequest;n.open(r,o,true);n.timeout=2e4;n.onload=function(){if(n.status==200){e(n.response,n.responseType)}else{t(Error(n.statusText))}};n.onerror=function(){t(Error("Network Error"))};n.onabort=function(){t(Error("Transaction is aborted"))};n.ontimeout=function(){t(Error("Timeout"))};if(i){n.send(i)}else{n.send()}}catch(e){t(e)}})};a.loadStyle=function(e){var t=a.settings.theme_static_path+"/"+e,n="style_"+e.replace(".","_"),r=i.getElementById(n);if(r===null){r=i.createElement("link");r.setAttribute("id",n);r.setAttribute("rel","stylesheet");r.setAttribute("type","text/css");r.setAttribute("href",t);i.body.appendChild(r)}};a.loadScript=function(e,t){var n=a.settings.theme_static_path+"/"+e,r="script_"+e.replace(".","_"),o=i.getElementById(r);if(o===null){o=i.createElement("script");o.setAttribute("id",r);o.setAttribute("src",n);o.onload=t;o.onerror=function(){o.setAttribute("error","1")};i.body.appendChild(o)}else if(!o.hasAttribute("error")){try{t.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};a.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};a.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};a.on(".close","click",function(){this.parentNode.classList.add("invisible")});function e(){for(var e of i.getElementsByTagName("body")[0].classList.values()){if(e.endsWith("_endpoint")){return e.split("_")[0]}}return""}a.endpoint=e();return a}(window,document);searxng.ready(function(){"use strict";searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype;if(searxng.endpoint!=="results"){return}if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let i=document;var s=i.getElementById("results").classList.contains("only_template_images");function n(){var e=i.createElement("div");e.classList.add("loader");return e}function r(t,e){t.textContent="";e.forEach(e=>t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:y,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function v(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function y(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";v(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(t,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});const e=screen.orientation.type.startsWith("portrait");l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected()};l.closeDetail=function(){a.getElementById("results").classList.remove("image-detail-open");if(window.location.hash=="#image-viewer")window.history.back();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(window.location.hash!="#image-viewer")l.closeDetail()});a.querySelectorAll(".swipe-horizontal").forEach(e=>{e.addEventListener("swiped-left",function(e){l.selectNext(false)});e.addEventListener("swiped-right",function(e){l.selectPrevious(false)})});t.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;et.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:y,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function v(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function y(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";v(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(e,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img").forEach(e=>e.addEventListener("error",()=>{e.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:true}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});let n;const i=a.createElement("div");i.classList.add("loader");const r=new Image;const s=(e,t)=>{if(n)clearTimeout(n);n=setTimeout(()=>{r.src=e},1e3);r.onload=()=>{t();i.remove()};r.onerror=()=>{i.remove()}};l.selectImage=e=>{a.getElementById("results").classList.add("image-detail-open");window.location.hash="#image-viewer";l.scrollPageToSelected();if(!e)return;const t=e.querySelector(".result-images-source img");if(!t)return;const n=t.getAttribute("data-src");if(!n)return;const r=e.querySelector(".image_thumbnail");t.src=r.src;const o=e.querySelector(".detail");o.appendChild(i);s(n,()=>{t.src=n;t.removeAttribute("data-src")})};l.closeDetail=function(){a.getElementById("results").classList.remove("image-detail-open");if(window.location.hash=="#image-viewer")window.history.back();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});window.addEventListener("hashchange",()=>{if(window.location.hash!="#image-viewer")l.closeDetail()});a.querySelectorAll(".swipe-horizontal").forEach(e=>{e.addEventListener("swiped-left",function(){l.selectNext(false)});e.addEventListener("swiped-right",function(){l.selectPrevious(false)})});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,o,i){"use strict";var n="q",s;const a=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(s.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}i.ready(function(){s=o.getElementById(n);if(s!==null){u(s);if(i.settings.autocomplete){i.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:i.settings.translations.no_item_found,HttpMethod:i.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:i.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+n)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!a&&document.querySelector(".index_endpoint")){s.focus()}}if(s!==null&&i.settings.search_on_category_select&&o.querySelector(".search_filters")!=null){i.on(o.getElementById("safesearch"),"change",l);i.on(o.getElementById("time_range"),"change",l);i.on(o.getElementById("language"),"change",l)}const r=o.querySelectorAll("button.category_button");for(let n of r){i.on(n,"click",e=>{if(e.shiftKey){e.preventDefault();n.classList.toggle("selected");return}const t=o.querySelectorAll("button.category_button.selected");for(let e of t){e.classList.remove("selected")}n.classList.add("selected")})}const t=o.querySelector("#search");if(t!=null){i.on(t,"submit",e=>{e.preventDefault();const n=o.querySelector("#selected-categories");if(n){let t=[];for(let e of r){if(e.classList.contains("selected")){t.push(e.name.replace("category_",""))}}n.value=t.join(",")}t.submit()})}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n const isMobile = screen.orientation.type.startsWith('portrait');\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return to the previous page\n // this allows us to dismiss the image details on pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function (e) {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function (e) {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","isMobile","screen","orientation","type","startsWith","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","history","back","qinput_id","qinput","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","Date","changedTouches","touches","round","eventData","dir","touchType","fingers","xStart","xEnd","clientX","yStart","yEnd","clientY","dispatchEvent","xUp","yUp","attributeName","defaultValue","attributeValue"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js","../node_modules/swiped-events/src/swiped-events.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","once","style","display","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","Image","loadImage","imgSrc","onSuccess","clearTimeout","thumbnail","detailElement","history","back","qinput_id","qinput","isMobile","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues","name","join","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","Date","changedTouches","touches","round","eventData","dir","touchType","fingers","xStart","xEnd","clientX","yStart","yEnd","clientY","dispatchEvent","xUp","yUp","attributeName","defaultValue","attributeValue"],"mappings":"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"} \ No newline at end of file From 70f1b6500861970f8b9e52fbfe52a1796350ea69 Mon Sep 17 00:00:00 2001 From: Denperidge Date: Thu, 9 Jan 2025 20:56:35 +0100 Subject: [PATCH 066/417] [feat] engines: add NixOS Wiki Co-authored-by: Bnyro --- searx/settings.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/searx/settings.yml b/searx/settings.yml index 29cee7445..eab947ed6 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -442,6 +442,14 @@ engines: engine: archlinux shortcut: al + - name: nixos wiki + engine: mediawiki + shortcut: nixw + base_url: https://wiki.nixos.org/ + search_type: text + disabled: true + categories: [it, software wikis] + - name: artic engine: artic shortcut: arc From 9079d0cac0156139952446f0fdc8b37b94c10756 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 15 Oct 2024 15:39:14 +0200 Subject: [PATCH 067/417] [refactor] translation engines: common interface --- searx/engines/deepl.py | 14 +++--- searx/engines/dictzone.py | 21 +++++---- searx/engines/libretranslate.py | 13 +++--- searx/engines/lingva.py | 43 ++++++++++++------- searx/engines/mozhi.py | 24 +++++------ searx/engines/translated.py | 28 ++++++------ .../templates/simple/answerers/translate.html | 38 ++++++++++++++++ searx/templates/simple/results.html | 22 ++++++---- 8 files changed, 125 insertions(+), 78 deletions(-) create mode 100644 searx/templates/simple/answerers/translate.html diff --git a/searx/engines/deepl.py b/searx/engines/deepl.py index ce2109138..484f56ec4 100644 --- a/searx/engines/deepl.py +++ b/searx/engines/deepl.py @@ -1,8 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later """Deepl translation engine""" -from json import loads - about = { "website": 'https://deepl.com', "wikidata_id": 'Q43968444', @@ -41,16 +39,14 @@ def request(_query, params): def response(resp): results = [] - result = loads(resp.text) - translations = result['translations'] - infobox = "
" + result = resp.json() - for translation in translations: - infobox += f"
{translation['text']}
" + if not result.get('translations'): + return results - infobox += "
" + translations = [{'text': translation['text']} for translation in result['translations']] - results.append({'answer': infobox}) + results.append({'answer': translations[0]['text'], 'answer_type': 'translations', 'translations': translations}) return results diff --git a/searx/engines/dictzone.py b/searx/engines/dictzone.py index 4a9c4811e..acd682911 100644 --- a/searx/engines/dictzone.py +++ b/searx/engines/dictzone.py @@ -3,7 +3,6 @@ Dictzone """ -from urllib.parse import urljoin from lxml import html from searx.utils import eval_xpath @@ -33,11 +32,10 @@ def request(query, params): # pylint: disable=unused-argument def response(resp): - results = [] - dom = html.fromstring(resp.text) - for k, result in enumerate(eval_xpath(dom, results_xpath)[1:]): + translations = [] + for result in eval_xpath(dom, results_xpath)[1:]: try: from_result, to_results_raw = eval_xpath(result, './td') except: # pylint: disable=bare-except @@ -49,12 +47,17 @@ def response(resp): if t.strip(): to_results.append(to_result.text_content()) - results.append( + translations.append( { - 'url': urljoin(str(resp.url), '?%d' % k), - 'title': from_result.text_content(), - 'content': '; '.join(to_results), + 'text': f"{from_result.text_content()} - {'; '.join(to_results)}", } ) - return results + if translations: + result = { + 'answer': translations[0]['text'], + 'translations': translations, + 'answer_type': 'translations', + } + + return [result] diff --git a/searx/engines/libretranslate.py b/searx/engines/libretranslate.py index a62d88d8a..d9b9cf2f9 100644 --- a/searx/engines/libretranslate.py +++ b/searx/engines/libretranslate.py @@ -24,7 +24,7 @@ def request(_query, params): request_url = random.choice(base_url) if isinstance(base_url, list) else base_url params['url'] = f"{request_url}/translate" - args = {'source': params['from_lang'][1], 'target': params['to_lang'][1], 'q': params['query']} + args = {'source': params['from_lang'][1], 'target': params['to_lang'][1], 'q': params['query'], 'alternatives': 3} if api_key: args['api_key'] = api_key params['data'] = dumps(args) @@ -42,12 +42,11 @@ def response(resp): json_resp = resp.json() text = json_resp.get('translatedText') - from_lang = resp.search_params["from_lang"][1] - to_lang = resp.search_params["to_lang"][1] - query = resp.search_params["query"] - req_url = resp.search_params["req_url"] + if not text: + return results - if text: - results.append({"answer": text, "url": f"{req_url}/?source={from_lang}&target={to_lang}&q={query}"}) + translations = [{'text': text}] + [{'text': alternative} for alternative in json_resp.get('alternatives', [])] + + results.append({'answer': text, 'answer_type': 'translations', 'translations': translations}) return results diff --git a/searx/engines/lingva.py b/searx/engines/lingva.py index bf35deed4..ecebe4587 100644 --- a/searx/engines/lingva.py +++ b/searx/engines/lingva.py @@ -1,8 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later """Lingva (alternative Google Translate frontend)""" -from json import loads - about = { "website": 'https://lingva.ml', "wikidata_id": None, @@ -29,7 +27,7 @@ def request(_query, params): def response(resp): results = [] - result = loads(resp.text) + result = resp.json() info = result["info"] from_to_prefix = "%s-%s " % (resp.search_params['from_lang'][1], resp.search_params['to_lang'][1]) @@ -38,27 +36,40 @@ def response(resp): if 'definitions' in info: # pylint: disable=too-many-nested-blocks for definition in info['definitions']: - if 'list' in definition: - for item in definition['list']: - if 'synonyms' in item: - for synonym in item['synonyms']: - results.append({"suggestion": from_to_prefix + synonym}) + for item in definition.get('list', []): + for synonym in item.get('synonyms', []): + results.append({"suggestion": from_to_prefix + synonym}) - infobox = "" + data = [] + + for definition in info['definitions']: + for translation in definition['list']: + data.append( + { + 'text': result['translation'], + 'definitions': [translation['definition']] if translation['definition'] else [], + 'examples': [translation['example']] if translation['example'] else [], + 'synonyms': translation['synonyms'], + } + ) for translation in info["extraTranslations"]: for word in translation["list"]: - infobox += f"
{word['word']}
" + data.append( + { + 'text': word['word'], + 'definitions': word['meanings'], + } + ) - for meaning in word["meanings"]: - infobox += f"
{meaning}
" - - infobox += "
" + if not data and result['translation']: + data.append({'text': result['translation']}) results.append( { - 'infobox': result["translation"], - 'content': infobox, + 'answer': data[0]['text'], + 'answer_type': 'translations', + 'translations': data, } ) diff --git a/searx/engines/mozhi.py b/searx/engines/mozhi.py index 63c90084e..a36bfbec8 100644 --- a/searx/engines/mozhi.py +++ b/searx/engines/mozhi.py @@ -4,7 +4,6 @@ import random import re from urllib.parse import urlencode -from flask_babel import gettext about = { "website": 'https://codeberg.org/aryak/mozhi', @@ -35,30 +34,27 @@ def request(_query, params): def response(resp): translation = resp.json() - infobox = "" + data = {'text': translation['translated-text'], 'definitions': [], 'examples': []} if translation['target_transliteration'] and not re.match( re_transliteration_unsupported, translation['target_transliteration'] ): - infobox = f"{translation['target_transliteration']}" + data['transliteration'] = translation['target_transliteration'] if translation['word_choices']: for word in translation['word_choices']: - infobox += f"
{word['word']}: {word['definition']}
" + if word.get('definition'): + data['definitions'].append(word['definition']) - if word['examples_target']: - for example in word['examples_target']: - infobox += f"
{re.sub(r'<|>', '', example)}
" - infobox += f"
{re.sub(r'<|>', '', example)}
" + for example in word.get('examples_target', []): + data['examples'].append(re.sub(r"<|>", "", example).lstrip('- ')) - infobox += "
" - - if translation['source_synonyms']: - infobox += f"
{gettext('Synonyms')}: {', '.join(translation['source_synonyms'])}
" + data['synonyms'] = translation.get('source_synonyms', []) result = { - 'infobox': translation['translated-text'], - 'content': infobox, + 'answer': translation['translated-text'], + 'answer_type': 'translations', + 'translations': [data], } return [result] diff --git a/searx/engines/translated.py b/searx/engines/translated.py index ea8c081dc..190707a95 100644 --- a/searx/engines/translated.py +++ b/searx/engines/translated.py @@ -35,18 +35,16 @@ def request(query, params): # pylint: disable=unused-argument def response(resp): - results = [] - results.append( - { - 'url': web_url.format( - from_lang=resp.search_params['from_lang'][2], - to_lang=resp.search_params['to_lang'][2], - query=resp.search_params['query'], - ), - 'title': '[{0}-{1}] {2}'.format( - resp.search_params['from_lang'][1], resp.search_params['to_lang'][1], resp.search_params['query'] - ), - 'content': resp.json()['responseData']['translatedText'], - } - ) - return results + json_resp = resp.json() + text = json_resp['responseData']['translatedText'] + + alternatives = [match['translation'] for match in json_resp['matches'] if match['translation'] != text] + translations = [{'text': translation} for translation in [text] + alternatives] + + result = { + 'answer': translations[0]['text'], + 'answer_type': 'translations', + 'translations': translations, + } + + return [result] diff --git a/searx/templates/simple/answerers/translate.html b/searx/templates/simple/answerers/translate.html new file mode 100644 index 000000000..a1c38eecf --- /dev/null +++ b/searx/templates/simple/answerers/translate.html @@ -0,0 +1,38 @@ +
+{% for translation in translations %} + {% if loop.index > 1 %} +
+ {% endif %} +

{{ translation.text }}

+ {% if translation.transliteration %} + translation.transliteration + {% endif %} {% if translation.definitions %} +
+
{{ _('Definitions') }}
+
    + {% for definition in translation.definitions %} +
  • {{ definition }}
  • + {% endfor %} +
      +
+ {% endif %} {% if translation.examples %} +
+
{{ _('Examples') }}
+
    + {% for example in translation.examples %} +
  • {{ example }}
  • + {% endfor %} +
+
+ {% endif %} {% if translation.synonyms %} +
+
{{ _('Synonyms') }}
+
    + {% for synonym in translation.synonyms %} +
  • {{ synonym }}
  • + {% endfor %} +
+
+ {% endif %} +{% endfor %} +
diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html index e2d4217d5..047c49dbd 100644 --- a/searx/templates/simple/results.html +++ b/searx/templates/simple/results.html @@ -23,14 +23,20 @@ From edfbf1e1183815cea3b723f3b66260bc55679f32 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 15 Dec 2024 09:59:50 +0100 Subject: [PATCH 068/417] [refactor] typification of SearXNG (initial) / result items (part 1) Typification of SearXNG ======================= This patch introduces the typing of the results. The why and how is described in the documentation, please generate the documentation .. $ make docs.clean docs.live and read the following articles in the "Developer documentation": - result types --> http://0.0.0.0:8000/dev/result_types/index.html The result types are available from the `searx.result_types` module. The following have been implemented so far: - base result type: `searx.result_type.Result` --> http://0.0.0.0:8000/dev/result_types/base_result.html - answer results --> http://0.0.0.0:8000/dev/result_types/answer.html including the type for translations (inspired by #3925). For all other types (which still need to be set up in subsequent PRs), template documentation has been created for the transition period. Doc of the fields used in Templates =================================== The template documentation is the basis for the typing and is the first complete documentation of the results (needed for engine development). It is the "working paper" (the plan) with which further typifications can be implemented in subsequent PRs. - https://github.com/searxng/searxng/issues/357 Answer Templates ================ With the new (sub) types for `Answer`, the templates for the answers have also been revised, `Translation` are now displayed with collapsible entries (inspired by #3925). !en-de dog Plugins & Answerer ================== The implementation for `Plugin` and `Answer` has been revised, see documentation: - Plugin: http://0.0.0.0:8000/dev/plugins/index.html - Answerer: http://0.0.0.0:8000/dev/answerers/index.html With `AnswerStorage` and `AnswerStorage` to manage those items (in follow up PRs, `ArticleStorage`, `InfoStorage` and .. will be implemented) Autocomplete ============ The autocompletion had a bug where the results from `Answer` had not been shown in the past. To test activate autocompletion and try search terms for which we have answerers - statistics: type `min 1 2 3` .. in the completion list you should find an entry like `[de] min(1, 2, 3) = 1` - random: type `random uuid` .. in the completion list, the first item is a random UUID Extended Types ============== SearXNG extends e.g. the request and response types of flask and httpx, a module has been set up for type extensions: - Extended Types --> http://0.0.0.0:8000/dev/extended_types.html Unit-Tests ========== The unit tests have been completely revised. In the previous implementation, the runtime (the global variables such as `searx.settings`) was not initialized before each test, so the runtime environment with which a test ran was always determined by the tests that ran before it. This was also the reason why we sometimes had to observe non-deterministic errors in the tests in the past: - https://github.com/searxng/searxng/issues/2988 is one example for the Runtime issues, with non-deterministic behavior .. - https://github.com/searxng/searxng/pull/3650 - https://github.com/searxng/searxng/pull/3654 - https://github.com/searxng/searxng/pull/3642#issuecomment-2226884469 - https://github.com/searxng/searxng/pull/3746#issuecomment-2300965005 Why msgspec.Struct ================== We have already discussed typing based on e.g. `TypeDict` or `dataclass` in the past: - https://github.com/searxng/searxng/pull/1562/files - https://gist.github.com/dalf/972eb05e7a9bee161487132a7de244d2 - https://github.com/searxng/searxng/pull/1412/files - https://github.com/searxng/searxng/pull/1356 In my opinion, TypeDict is unsuitable because the objects are still dictionaries and not instances of classes / the `dataclass` are classes but ... The `msgspec.Struct` combine the advantages of typing, runtime behaviour and also offer the option of (fast) serializing (incl. type check) the objects. Currently not possible but conceivable with `msgspec`: Outsourcing the engines into separate processes, what possibilities this opens up in the future is left to the imagination! Internally, we have already defined that it is desirable to decouple the development of the engines from the development of the SearXNG core / The serialization of the `Result` objects is a prerequisite for this. HINT: The threads listed above were the template for this PR, even though the implementation here is based on msgspec. They should also be an inspiration for the following PRs of typification, as the models and implementations can provide a good direction. Why just one commit? ==================== I tried to create several (thematically separated) commits, but gave up at some point ... there are too many things to tackle at once / The comprehensibility of the commits would not be improved by a thematic separation. On the contrary, we would have to make multiple changes at the same places and the goal of a change would be vaguely recognizable in the fog of the commits. Signed-off-by: Markus Heiser --- Makefile | 6 +- docs/admin/plugins.rst | 19 +- docs/admin/settings/index.rst | 2 +- docs/admin/settings/settings_plugins.rst | 67 ++ docs/conf.py | 5 +- docs/dev/answerers/builtins.rst | 11 + docs/dev/answerers/development.rst | 7 + docs/dev/answerers/index.rst | 9 + docs/dev/answerers/random.rst | 8 + docs/dev/answerers/statistics.rst | 8 + docs/dev/engines/engine_overview.rst | 335 +--------- docs/dev/extended_types.rst | 7 + docs/dev/index.rst | 6 +- docs/dev/plugins.rst | 106 ---- docs/dev/plugins/builtins.rst | 15 + docs/dev/plugins/calculator.rst | 8 + docs/dev/plugins/development.rst | 7 + docs/dev/plugins/hash_plugin.rst | 8 + .../plugins/hostnames.rst} | 9 +- docs/dev/plugins/index.rst | 9 + docs/dev/plugins/self_info.rst | 8 + .../plugins/tor_check.rst} | 9 +- .../plugins/unit_converter.rst} | 7 +- docs/dev/result_types/answer.rst | 7 + docs/dev/result_types/base_result.rst | 5 + docs/dev/result_types/correction.rst | 34 ++ docs/dev/result_types/index.rst | 95 +++ docs/dev/result_types/infobox.rst | 60 ++ docs/dev/result_types/main_result.rst | 17 + docs/dev/result_types/suggestion.rst | 38 ++ docs/dev/searxng_extra/update.rst | 1 + docs/dev/templates.rst | 577 ++++++++++++++++++ docs/src/index.rst | 6 +- searx/__init__.py | 77 ++- searx/answerers/__init__.py | 86 ++- searx/answerers/_core.py | 169 +++++ searx/answerers/random.py | 80 +++ searx/answerers/random/__init__.py | 2 - searx/answerers/random/answerer.py | 79 --- searx/answerers/statistics.py | 64 ++ searx/answerers/statistics/__init__.py | 2 - searx/answerers/statistics/answerer.py | 53 -- searx/autocomplete.py | 12 +- searx/botdetection/_helpers.py | 6 +- searx/botdetection/http_accept.py | 8 +- searx/botdetection/http_accept_encoding.py | 8 +- searx/botdetection/http_accept_language.py | 9 +- searx/botdetection/http_connection.py | 8 +- searx/botdetection/http_user_agent.py | 8 +- searx/botdetection/ip_limit.py | 3 +- searx/botdetection/link_token.py | 8 +- searx/engines/brave.py | 7 +- searx/engines/deepl.py | 7 +- searx/engines/dictzone.py | 95 ++- searx/engines/duckduckgo.py | 8 +- searx/engines/duckduckgo_definitions.py | 8 +- searx/engines/google.py | 8 +- searx/engines/libretranslate.py | 25 +- searx/engines/lingva.py | 41 +- searx/engines/mozhi.py | 29 +- searx/engines/openstreetmap.py | 35 +- searx/engines/tineye.py | 9 +- searx/engines/translated.py | 45 +- searx/engines/xpath.py | 2 +- searx/extended_types.py | 82 +++ searx/favicons/proxy.py | 13 +- searx/infopage/__init__.py | 3 +- searx/limiter.py | 7 +- searx/locales.py | 9 +- searx/network/__init__.py | 17 +- searx/network/network.py | 8 +- searx/plugins/__init__.py | 250 ++------ searx/plugins/_core.py | 394 ++++++++++++ searx/plugins/ahmia_filter.py | 14 +- searx/plugins/calculator.py | 70 ++- searx/plugins/hash_plugin.py | 83 ++- searx/plugins/hostnames.py | 21 +- searx/plugins/oa_doi_rewrite.py | 10 +- searx/plugins/self_info.py | 69 ++- searx/plugins/tor_check.py | 53 +- searx/plugins/tracker_url_remover.py | 18 +- searx/plugins/unit_converter.py | 30 +- searx/preferences.py | 21 +- searx/result_types/__init__.py | 18 + searx/result_types/_base.py | 223 +++++++ searx/result_types/answer.py | 141 +++++ searx/results.py | 121 ++-- searx/search/__init__.py | 51 +- searx/search/processors/abstract.py | 1 + searx/settings.yml | 24 +- searx/settings_defaults.py | 5 - .../plugins/external_plugins/.gitignore | 3 - .../themes/simple/src/less/preferences.less | 8 + searx/templates/simple/answer/legacy.html | 8 + .../templates/simple/answer/translations.html | 52 ++ .../templates/simple/answerers/translate.html | 38 -- searx/templates/simple/base.html | 1 - searx/templates/simple/elements/answers.html | 8 + .../simple/elements/corrections.html | 19 + searx/templates/simple/preferences.html | 44 +- .../simple/preferences/answerers.html | 18 +- .../simple/preferences/doi_resolver.html | 6 +- searx/templates/simple/results.html | 50 +- searx/webapp.py | 290 ++++----- tests/__init__.py | 60 +- tests/robot/__init__.py | 2 +- tests/robot/__main__.py | 3 +- tests/robot/test_webapp.py | 2 +- tests/unit/__init__.py | 10 +- tests/unit/engines/__init__.py | 2 +- tests/unit/engines/test_command.py | 21 +- tests/unit/engines/test_xpath.py | 5 +- tests/unit/network/__init__.py | 2 +- tests/unit/network/test_network.py | 22 +- tests/unit/processors/__init__.py | 2 +- tests/unit/processors/test_online.py | 21 +- tests/unit/settings/limiter.toml | 2 + tests/unit/settings/test_result_container.yml | 8 + tests/unit/settings/test_settings.yml | 24 +- tests/unit/settings/test_tineye.yml | 16 + tests/unit/test_answerers.py | 37 +- tests/unit/test_engine_mariadb_server.py | 5 +- tests/unit/test_engine_tineye.py | 21 +- tests/unit/test_engines_init.py | 13 +- tests/unit/test_exceptions.py | 5 +- tests/unit/test_external_bangs.py | 13 +- tests/unit/test_locales.py | 3 +- tests/unit/test_plugin_calculator.py | 105 ++-- tests/unit/test_plugin_hash.py | 96 +-- tests/unit/test_plugin_self_info.py | 96 +-- tests/unit/test_plugins.py | 116 +++- tests/unit/test_preferences.py | 47 +- tests/unit/test_query.py | 37 +- tests/unit/test_results.py | 93 ++- tests/unit/test_search.py | 34 +- tests/unit/test_settings_loader.py | 11 +- tests/unit/test_toml.py | 4 +- tests/unit/test_utils.py | 8 +- tests/unit/test_webadapter.py | 42 +- tests/unit/test_webapp.py | 87 ++- tests/unit/test_webutils.py | 11 +- utils/lib_sxng_test.sh | 75 ++- utils/lib_sxng_themes.sh | 16 +- 143 files changed, 3877 insertions(+), 2118 deletions(-) create mode 100644 docs/admin/settings/settings_plugins.rst create mode 100644 docs/dev/answerers/builtins.rst create mode 100644 docs/dev/answerers/development.rst create mode 100644 docs/dev/answerers/index.rst create mode 100644 docs/dev/answerers/random.rst create mode 100644 docs/dev/answerers/statistics.rst create mode 100644 docs/dev/extended_types.rst delete mode 100644 docs/dev/plugins.rst create mode 100644 docs/dev/plugins/builtins.rst create mode 100644 docs/dev/plugins/calculator.rst create mode 100644 docs/dev/plugins/development.rst create mode 100644 docs/dev/plugins/hash_plugin.rst rename docs/{src/searx.plugins.hostnames.rst => dev/plugins/hostnames.rst} (50%) create mode 100644 docs/dev/plugins/index.rst create mode 100644 docs/dev/plugins/self_info.rst rename docs/{src/searx.plugins.tor_check.rst => dev/plugins/tor_check.rst} (50%) rename docs/{src/searx.plugins.unit_converter.rst => dev/plugins/unit_converter.rst} (56%) create mode 100644 docs/dev/result_types/answer.rst create mode 100644 docs/dev/result_types/base_result.rst create mode 100644 docs/dev/result_types/correction.rst create mode 100644 docs/dev/result_types/index.rst create mode 100644 docs/dev/result_types/infobox.rst create mode 100644 docs/dev/result_types/main_result.rst create mode 100644 docs/dev/result_types/suggestion.rst create mode 100644 docs/dev/templates.rst create mode 100644 searx/answerers/_core.py create mode 100644 searx/answerers/random.py delete mode 100644 searx/answerers/random/__init__.py delete mode 100644 searx/answerers/random/answerer.py create mode 100644 searx/answerers/statistics.py delete mode 100644 searx/answerers/statistics/__init__.py delete mode 100644 searx/answerers/statistics/answerer.py create mode 100644 searx/extended_types.py create mode 100644 searx/plugins/_core.py create mode 100644 searx/result_types/__init__.py create mode 100644 searx/result_types/_base.py create mode 100644 searx/result_types/answer.py delete mode 100644 searx/static/plugins/external_plugins/.gitignore create mode 100644 searx/templates/simple/answer/legacy.html create mode 100644 searx/templates/simple/answer/translations.html delete mode 100644 searx/templates/simple/answerers/translate.html create mode 100644 searx/templates/simple/elements/answers.html create mode 100644 searx/templates/simple/elements/corrections.html create mode 100644 tests/unit/settings/limiter.toml create mode 100644 tests/unit/settings/test_result_container.yml create mode 100644 tests/unit/settings/test_tineye.yml diff --git a/Makefile b/Makefile index de4a7e5f0..0b08c8cc3 100644 --- a/Makefile +++ b/Makefile @@ -50,8 +50,8 @@ search.checker.%: install $(Q)./manage pyenv.cmd searxng-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))" PHONY += test ci.test test.shell -ci.test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.pybabel test.themes -test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.shell +ci.test: test.yamllint test.black test.types.ci test.pylint test.unit test.robot test.rst test.shell test.pybabel test.themes +test: test.yamllint test.black test.types.dev test.pylint test.unit test.robot test.rst test.shell test.shell: $(Q)shellcheck -x -s dash \ dockerfiles/docker-entrypoint.sh @@ -83,7 +83,7 @@ MANAGE += node.env node.env.dev node.clean MANAGE += py.build py.clean MANAGE += pyenv pyenv.install pyenv.uninstall MANAGE += format.python -MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes +MANAGE += test.yamllint test.pylint test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes test.types.dev test.types.ci MANAGE += themes.all themes.fix themes.test MANAGE += themes.simple themes.simple.pygments themes.simple.fix MANAGE += static.build.commit static.build.drop static.build.restore diff --git a/docs/admin/plugins.rst b/docs/admin/plugins.rst index d97b3dada..d3d137fcf 100644 --- a/docs/admin/plugins.rst +++ b/docs/admin/plugins.rst @@ -1,12 +1,14 @@ -.. _plugins generic: +.. _plugins admin: =============== -Plugins builtin +List of plugins =============== .. sidebar:: Further reading .. + - :ref:`SearXNG settings ` - :ref:`dev plugin` + - :ref:`builtin plugins` Configuration defaults (at built time): @@ -25,15 +27,10 @@ Configuration defaults (at built time): - DO - Description - JS & CSS dependencies + {% for plg in plugins %} - {% for plgin in plugins %} - - * - {{plgin.name}} - - {{(plgin.default_on and "y") or ""}} - - {{plgin.description}} - - {% for dep in (plgin.js_dependencies + plgin.css_dependencies) %} - | ``{{dep}}`` {% endfor %} + * - {{plg.info.name}} + - {{(plg.default_on and "y") or ""}} + - {{plg.info.description}} {% endfor %} diff --git a/docs/admin/settings/index.rst b/docs/admin/settings/index.rst index acc91dbdd..d1f808f3d 100644 --- a/docs/admin/settings/index.rst +++ b/docs/admin/settings/index.rst @@ -22,6 +22,6 @@ Settings settings_redis settings_outgoing settings_categories_as_tabs - + settings_plugins diff --git a/docs/admin/settings/settings_plugins.rst b/docs/admin/settings/settings_plugins.rst new file mode 100644 index 000000000..991e7ee53 --- /dev/null +++ b/docs/admin/settings/settings_plugins.rst @@ -0,0 +1,67 @@ +.. _settings plugins: + +======= +Plugins +======= + +.. sidebar:: Further reading .. + + - :ref:`plugins admin` + - :ref:`dev plugin` + - :ref:`builtin plugins` + + +The built-in plugins can be activated or deactivated via the settings +(:ref:`settings enabled_plugins`) and external plugins can be integrated into +SearXNG (:ref:`settings external_plugins`). + + +.. _settings enabled_plugins: + +``enabled_plugins:`` (internal) +=============================== + +In :ref:`plugins admin` you find a complete list of all plugins, the default +configuration looks like: + +.. code:: yaml + + enabled_plugins: + - 'Basic Calculator' + - 'Hash plugin' + - 'Self Information' + - 'Tracker URL remover' + - 'Unit converter plugin' + - 'Ahmia blacklist' + + +.. _settings external_plugins: + +``plugins:`` (external) +======================= + +SearXNG supports *external plugins* / there is no need to install one, SearXNG +runs out of the box. But to demonstrate; in the example below we install the +SearXNG plugins from *The Green Web Foundation* `[ref] +`__: + +.. code:: bash + + $ sudo utils/searxng.sh instance cmd bash -c + (searxng-pyenv)$ pip install git+https://github.com/return42/tgwf-searx-plugins + +In the :ref:`settings.yml` activate the ``plugins:`` section and add module +``only_show_green_results`` from ``tgwf-searx-plugins``. + +.. code:: yaml + + plugins: + - only_show_green_results + # - mypackage.mymodule.MyPlugin + # - mypackage.mymodule.MyOtherPlugin + +.. hint:: + + ``only_show_green_results`` is an old plugin that was still implemented in + the old style. There is a legacy treatment for backward compatibility, but + new plugins should be implemented as a :py:obj:`searx.plugins.Plugin` class. diff --git a/docs/conf.py b/docs/conf.py index fec9eb64b..aeb62e337 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -54,7 +54,7 @@ searx.engines.load_engines(searx.settings['engines']) jinja_contexts = { 'searx': { 'engines': searx.engines.engines, - 'plugins': searx.plugins.plugins, + 'plugins': searx.plugins.STORAGE, 'version': { 'node': os.getenv('NODE_MINIMUM_VERSION') }, @@ -129,8 +129,9 @@ extensions = [ 'notfound.extension', # https://github.com/readthedocs/sphinx-notfound-page ] +# autodoc_typehints = "description" autodoc_default_options = { - 'member-order': 'groupwise', + 'member-order': 'bysource', } myst_enable_extensions = [ diff --git a/docs/dev/answerers/builtins.rst b/docs/dev/answerers/builtins.rst new file mode 100644 index 000000000..cca020a7a --- /dev/null +++ b/docs/dev/answerers/builtins.rst @@ -0,0 +1,11 @@ +.. _builtin answerers: + +================== +Built-in Answerers +================== + +.. toctree:: + :maxdepth: 1 + + random + statistics diff --git a/docs/dev/answerers/development.rst b/docs/dev/answerers/development.rst new file mode 100644 index 000000000..04a1da0bb --- /dev/null +++ b/docs/dev/answerers/development.rst @@ -0,0 +1,7 @@ +.. _dev answerers: + +==================== +Answerer Development +==================== + +.. automodule:: searx.answerers diff --git a/docs/dev/answerers/index.rst b/docs/dev/answerers/index.rst new file mode 100644 index 000000000..02af238bf --- /dev/null +++ b/docs/dev/answerers/index.rst @@ -0,0 +1,9 @@ +========= +Answerers +========= + +.. toctree:: + :maxdepth: 2 + + development + builtins diff --git a/docs/dev/answerers/random.rst b/docs/dev/answerers/random.rst new file mode 100644 index 000000000..4489d2a34 --- /dev/null +++ b/docs/dev/answerers/random.rst @@ -0,0 +1,8 @@ +.. _answerer.random: + +====== +Random +====== + +.. autoclass:: searx.answerers.random.SXNGAnswerer + :members: diff --git a/docs/dev/answerers/statistics.rst b/docs/dev/answerers/statistics.rst new file mode 100644 index 000000000..86ae6861e --- /dev/null +++ b/docs/dev/answerers/statistics.rst @@ -0,0 +1,8 @@ +.. _answerer.statistics: + +========== +Statistics +========== + +.. autoclass:: searx.answerers.statistics.SXNGAnswerer + :members: diff --git a/docs/dev/engines/engine_overview.rst b/docs/dev/engines/engine_overview.rst index 1a6270a3b..4aeb5b624 100644 --- a/docs/dev/engines/engine_overview.rst +++ b/docs/dev/engines/engine_overview.rst @@ -237,335 +237,18 @@ following parameters can be used to specify a search request: =================== =========== ========================================================================== -.. _engine results: -.. _engine media types: +Making a Response +================= -Result Types (``template``) -=========================== +In the ``response`` function of the engine, the HTTP response (``resp``) is +parsed and a list of results is returned. -Each result item of an engine can be of different media-types. Currently the -following media-types are supported. To set another media-type as -:ref:`template default`, the parameter ``template`` must be set to the desired -type. +A engine can append result-items of different media-types and different +result-types to the result list. The list of the result items is render to HTML +by templates. For more details read section: -.. _template default: +- :ref:`simple theme templates` +- :ref:`result types` -``default`` ------------ -.. table:: Parameter of the **default** media type: - :width: 100% - ========================= ===================================================== - result-parameter information - ========================= ===================================================== - url string, url of the result - title string, title of the result - content string, general result-text - publishedDate :py:class:`datetime.datetime`, time of publish - ========================= ===================================================== - - -.. _template images: - -``images`` ----------- - -.. list-table:: Parameter of the **images** media type - :header-rows: 2 - :width: 100% - - * - result-parameter - - Python type - - information - - * - template - - :py:class:`str` - - is set to ``images.html`` - - * - url - - :py:class:`str` - - url to the result site - - * - title - - :py:class:`str` - - title of the result - - * - content - - :py:class:`str` - - description of the image - - * - publishedDate - - :py:class:`datetime ` - - time of publish - - * - img_src - - :py:class:`str` - - url to the result image - - * - thumbnail_src - - :py:class:`str` - - url to a small-preview image - - * - resolution - - :py:class:`str` - - the resolution of the image (e.g. ``1920 x 1080`` pixel) - - * - img_format - - :py:class:`str` - - the format of the image (e.g. ``png``) - - * - filesize - - :py:class:`str` - - size of bytes in :py:obj:`human readable ` notation - (e.g. ``MB`` for 1024 \* 1024 Bytes filesize). - - -.. _template videos: - -``videos`` ----------- - -.. table:: Parameter of the **videos** media type: - :width: 100% - - ========================= ===================================================== - result-parameter information - ------------------------- ----------------------------------------------------- - template is set to ``videos.html`` - ========================= ===================================================== - url string, url of the result - title string, title of the result - content *(not implemented yet)* - publishedDate :py:class:`datetime.datetime`, time of publish - thumbnail string, url to a small-preview image - length :py:class:`datetime.timedelta`, duration of result - views string, view count in humanized number format - ========================= ===================================================== - - -.. _template torrent: - -``torrent`` ------------ - -.. _magnetlink: https://en.wikipedia.org/wiki/Magnet_URI_scheme - -.. table:: Parameter of the **torrent** media type: - :width: 100% - - ========================= ===================================================== - result-parameter information - ------------------------- ----------------------------------------------------- - template is set to ``torrent.html`` - ========================= ===================================================== - url string, url of the result - title string, title of the result - content string, general result-text - publishedDate :py:class:`datetime.datetime`, - time of publish *(not implemented yet)* - seed int, number of seeder - leech int, number of leecher - filesize int, size of file in bytes - files int, number of files - magnetlink string, magnetlink_ of the result - torrentfile string, torrentfile of the result - ========================= ===================================================== - - -.. _template map: - -``map`` -------- - -.. table:: Parameter of the **map** media type: - :width: 100% - - ========================= ===================================================== - result-parameter information - ------------------------- ----------------------------------------------------- - template is set to ``map.html`` - ========================= ===================================================== - url string, url of the result - title string, title of the result - content string, general result-text - publishedDate :py:class:`datetime.datetime`, time of publish - latitude latitude of result (in decimal format) - longitude longitude of result (in decimal format) - boundingbox boundingbox of result (array of 4. values - ``[lat-min, lat-max, lon-min, lon-max]``) - geojson geojson of result (https://geojson.org/) - osm.type type of osm-object (if OSM-Result) - osm.id id of osm-object (if OSM-Result) - address.name name of object - address.road street name of object - address.house_number house number of object - address.locality city, place of object - address.postcode postcode of object - address.country country of object - ========================= ===================================================== - - -.. _template paper: - -``paper`` ---------- - -.. _BibTeX format: https://www.bibtex.com/g/bibtex-format/ -.. _BibTeX field types: https://en.wikipedia.org/wiki/BibTeX#Field_types - -.. list-table:: Parameter of the **paper** media type / - see `BibTeX field types`_ and `BibTeX format`_ - :header-rows: 2 - :width: 100% - - * - result-parameter - - Python type - - information - - * - template - - :py:class:`str` - - is set to ``paper.html`` - - * - title - - :py:class:`str` - - title of the result - - * - content - - :py:class:`str` - - abstract - - * - comments - - :py:class:`str` - - free text display in italic below the content - - * - tags - - :py:class:`List `\ [\ :py:class:`str`\ ] - - free tag list - - * - publishedDate - - :py:class:`datetime ` - - last publication date - - * - type - - :py:class:`str` - - short description of medium type, e.g. *book*, *pdf* or *html* ... - - * - authors - - :py:class:`List `\ [\ :py:class:`str`\ ] - - list of authors of the work (authors with a "s") - - * - editor - - :py:class:`str` - - list of editors of a book - - * - publisher - - :py:class:`str` - - name of the publisher - - * - journal - - :py:class:`str` - - name of the journal or magazine the article was - published in - - * - volume - - :py:class:`str` - - volume number - - * - pages - - :py:class:`str` - - page range where the article is - - * - number - - :py:class:`str` - - number of the report or the issue number for a journal article - - * - doi - - :py:class:`str` - - DOI number (like ``10.1038/d41586-018-07848-2``) - - * - issn - - :py:class:`List `\ [\ :py:class:`str`\ ] - - ISSN number like ``1476-4687`` - - * - isbn - - :py:class:`List `\ [\ :py:class:`str`\ ] - - ISBN number like ``9780201896831`` - - * - pdf_url - - :py:class:`str` - - URL to the full article, the PDF version - - * - html_url - - :py:class:`str` - - URL to full article, HTML version - - -.. _template packages: - -``packages`` ------------- - -.. list-table:: Parameter of the **packages** media type - :header-rows: 2 - :width: 100% - - * - result-parameter - - Python type - - information - - * - template - - :py:class:`str` - - is set to ``packages.html`` - - * - title - - :py:class:`str` - - title of the result - - * - content - - :py:class:`str` - - abstract - - * - package_name - - :py:class:`str` - - the name of the package - - * - version - - :py:class:`str` - - the current version of the package - - * - maintainer - - :py:class:`str` - - the maintainer or author of the project - - * - publishedDate - - :py:class:`datetime ` - - date of latest update or release - - * - tags - - :py:class:`List `\ [\ :py:class:`str`\ ] - - free tag list - - * - popularity - - :py:class:`str` - - the popularity of the package, e.g. rating or download count - - * - license_name - - :py:class:`str` - - the name of the license - - * - license_url - - :py:class:`str` - - the web location of a license copy - - * - homepage - - :py:class:`str` - - the url of the project's homepage - - * - source_code_url - - :py:class:`str` - - the location of the project's source code - - * - links - - :py:class:`dict` - - additional links in the form of ``{'link_name': 'http://example.com'}`` diff --git a/docs/dev/extended_types.rst b/docs/dev/extended_types.rst new file mode 100644 index 000000000..59013eef2 --- /dev/null +++ b/docs/dev/extended_types.rst @@ -0,0 +1,7 @@ +.. _extended_types.: + +============== +Extended Types +============== + +.. automodule:: searx.extended_types diff --git a/docs/dev/index.rst b/docs/dev/index.rst index 09be9de5e..01a16ba80 100644 --- a/docs/dev/index.rst +++ b/docs/dev/index.rst @@ -8,9 +8,13 @@ Developer documentation quickstart rtm_asdf contribution_guide + extended_types engines/index + result_types/index + templates search_api - plugins + plugins/index + answerers/index translation lxcdev makefile diff --git a/docs/dev/plugins.rst b/docs/dev/plugins.rst deleted file mode 100644 index fb3201e66..000000000 --- a/docs/dev/plugins.rst +++ /dev/null @@ -1,106 +0,0 @@ -.. _dev plugin: - -======= -Plugins -======= - -.. sidebar:: Further reading .. - - - :ref:`plugins generic` - -Plugins can extend or replace functionality of various components of searx. - -Example plugin -============== - -.. code:: python - - name = 'Example plugin' - description = 'This plugin extends the suggestions with the word "example"' - default_on = False # disabled by default - - # attach callback to the post search hook - # request: flask request object - # ctx: the whole local context of the post search hook - def post_search(request, search): - search.result_container.suggestions.add('example') - return True - -External plugins -================ - -SearXNG supports *external plugins* / there is no need to install one, SearXNG -runs out of the box. But to demonstrate; in the example below we install the -SearXNG plugins from *The Green Web Foundation* `[ref] -`__: - -.. code:: bash - - $ sudo utils/searxng.sh instance cmd bash -c - (searxng-pyenv)$ pip install git+https://github.com/return42/tgwf-searx-plugins - -In the :ref:`settings.yml` activate the ``plugins:`` section and add module -``only_show_green_results`` from ``tgwf-searx-plugins``. - -.. code:: yaml - - plugins: - ... - - only_show_green_results - ... - - -Plugin entry points -=================== - -Entry points (hooks) define when a plugin runs. Right now only three hooks are -implemented. So feel free to implement a hook if it fits the behaviour of your -plugin. A plugin doesn't need to implement all the hooks. - - -.. py:function:: pre_search(request, search) -> bool - - Runs BEFORE the search request. - - `search.result_container` can be changed. - - Return a boolean: - - * True to continue the search - * False to stop the search - - :param flask.request request: - :param searx.search.SearchWithPlugins search: - :return: False to stop the search - :rtype: bool - - -.. py:function:: post_search(request, search) -> None - - Runs AFTER the search request. - - :param flask.request request: Flask request. - :param searx.search.SearchWithPlugins search: Context. - - -.. py:function:: on_result(request, search, result) -> bool - - Runs for each result of each engine. - - `result` can be changed. - - If `result["url"]` is defined, then `result["parsed_url"] = urlparse(result['url'])` - - .. warning:: - `result["url"]` can be changed, but `result["parsed_url"]` must be updated too. - - Return a boolean: - - * True to keep the result - * False to remove the result - - :param flask.request request: - :param searx.search.SearchWithPlugins search: - :param typing.Dict result: Result, see - :ref:`engine results` - :return: True to keep the result - :rtype: bool diff --git a/docs/dev/plugins/builtins.rst b/docs/dev/plugins/builtins.rst new file mode 100644 index 000000000..902092e11 --- /dev/null +++ b/docs/dev/plugins/builtins.rst @@ -0,0 +1,15 @@ +.. _builtin plugins: + +================ +Built-in Plugins +================ + +.. toctree:: + :maxdepth: 1 + + calculator + hash_plugin + hostnames + self_info + tor_check + unit_converter diff --git a/docs/dev/plugins/calculator.rst b/docs/dev/plugins/calculator.rst new file mode 100644 index 000000000..7ca9e32ed --- /dev/null +++ b/docs/dev/plugins/calculator.rst @@ -0,0 +1,8 @@ +.. _plugins.calculator: + +========== +Calculator +========== + +.. automodule:: searx.plugins.calculator + :members: diff --git a/docs/dev/plugins/development.rst b/docs/dev/plugins/development.rst new file mode 100644 index 000000000..6bece72c0 --- /dev/null +++ b/docs/dev/plugins/development.rst @@ -0,0 +1,7 @@ +.. _dev plugin: + +================== +Plugin Development +================== + +.. automodule:: searx.plugins diff --git a/docs/dev/plugins/hash_plugin.rst b/docs/dev/plugins/hash_plugin.rst new file mode 100644 index 000000000..a5ac0728f --- /dev/null +++ b/docs/dev/plugins/hash_plugin.rst @@ -0,0 +1,8 @@ +.. _hash_plugin plugin: + +=========== +Hash Values +=========== + +.. autoclass:: searx.plugins.hash_plugin.SXNGPlugin + :members: diff --git a/docs/src/searx.plugins.hostnames.rst b/docs/dev/plugins/hostnames.rst similarity index 50% rename from docs/src/searx.plugins.hostnames.rst rename to docs/dev/plugins/hostnames.rst index 5d0365536..434f170ea 100644 --- a/docs/src/searx.plugins.hostnames.rst +++ b/docs/dev/plugins/hostnames.rst @@ -1,9 +1,8 @@ .. _hostnames plugin: -================ -Hostnames plugin -================ +========= +Hostnames +========= .. automodule:: searx.plugins.hostnames - :members: - + :members: diff --git a/docs/dev/plugins/index.rst b/docs/dev/plugins/index.rst new file mode 100644 index 000000000..bed8095e2 --- /dev/null +++ b/docs/dev/plugins/index.rst @@ -0,0 +1,9 @@ +======= +Plugins +======= + +.. toctree:: + :maxdepth: 2 + + development + builtins diff --git a/docs/dev/plugins/self_info.rst b/docs/dev/plugins/self_info.rst new file mode 100644 index 000000000..a1dd66b17 --- /dev/null +++ b/docs/dev/plugins/self_info.rst @@ -0,0 +1,8 @@ +.. _self_info plugin: + +========= +Self-Info +========= + +.. autoclass:: searx.plugins.self_info.SXNGPlugin + :members: diff --git a/docs/src/searx.plugins.tor_check.rst b/docs/dev/plugins/tor_check.rst similarity index 50% rename from docs/src/searx.plugins.tor_check.rst rename to docs/dev/plugins/tor_check.rst index 905328ebf..f1a02381e 100644 --- a/docs/src/searx.plugins.tor_check.rst +++ b/docs/dev/plugins/tor_check.rst @@ -1,9 +1,8 @@ .. _tor check plugin: -================ -Tor check plugin -================ +========= +Tor check +========= .. automodule:: searx.plugins.tor_check - :members: - + :members: diff --git a/docs/src/searx.plugins.unit_converter.rst b/docs/dev/plugins/unit_converter.rst similarity index 56% rename from docs/src/searx.plugins.unit_converter.rst rename to docs/dev/plugins/unit_converter.rst index 48d495d80..2e19bc38e 100644 --- a/docs/src/searx.plugins.unit_converter.rst +++ b/docs/dev/plugins/unit_converter.rst @@ -1,9 +1,8 @@ .. _unit converter plugin: -===================== -Unit converter plugin -===================== +============== +Unit Converter +============== .. automodule:: searx.plugins.unit_converter :members: - diff --git a/docs/dev/result_types/answer.rst b/docs/dev/result_types/answer.rst new file mode 100644 index 000000000..72368be39 --- /dev/null +++ b/docs/dev/result_types/answer.rst @@ -0,0 +1,7 @@ +.. _result_types.answer: + +============== +Answer Results +============== + +.. automodule:: searx.result_types.answer diff --git a/docs/dev/result_types/base_result.rst b/docs/dev/result_types/base_result.rst new file mode 100644 index 000000000..24fd96a9d --- /dev/null +++ b/docs/dev/result_types/base_result.rst @@ -0,0 +1,5 @@ +====== +Result +====== + +.. automodule:: searx.result_types._base diff --git a/docs/dev/result_types/correction.rst b/docs/dev/result_types/correction.rst new file mode 100644 index 000000000..51cdd45d2 --- /dev/null +++ b/docs/dev/result_types/correction.rst @@ -0,0 +1,34 @@ +.. _result_types.corrections: + +================== +Correction Results +================== + +.. hint:: + + There is still no typing for these result items. The templates can be used as + orientation until the final typing is complete. + +The corrections area shows the user alternative search terms. + +A result of this type is a very simple dictionary with only one key/value pair + +.. code:: python + + {"correction" : "lorem ipsum .."} + +From this simple dict another dict is build up: + +.. code:: python + + # use RawTextQuery to get the corrections URLs with the same bang + {"url" : "!bang lorem ipsum ..", "title": "lorem ipsum .." } + +and used in the template :origin:`corrections.html +`: + +title : :py:class:`str` + Corrected search term. + +url : :py:class:`str` + Not really an URL, its the value to insert in a HTML form for a SearXNG query. diff --git a/docs/dev/result_types/index.rst b/docs/dev/result_types/index.rst new file mode 100644 index 000000000..e90dba849 --- /dev/null +++ b/docs/dev/result_types/index.rst @@ -0,0 +1,95 @@ +.. _result types: + +============ +Result Types +============ + +To understand the typification of the results, let's take a brief look at the +structure of SearXNG .. At its core, SearXNG is nothing more than an aggregator +that aggregates the results from various sources, renders them via templates and +displays them to the user. + +The **sources** can be: + +1. :ref:`engines ` +2. :ref:`plugins ` +3. :ref:`answerers ` + +The sources provide the results, which are displayed in different **areas** +depending on the type of result. The areas are: + +main results: + It is the main area in which -- as is typical for search engines -- the + results that a search engine has found for the search term are displayed. + +answers: + This area displays short answers that could be found for the search term. + +info box: + An area in which additional information can be displayed, e.g. excerpts from + wikipedia or other sources such as maps. + +suggestions: + Suggestions for alternative search terms can be found in this area. These can + be clicked on and a search is carried out with these search terms. + +corrections: + Results in this area are like the suggestion of alternative search terms, + which usually result from spelling corrections + +At this point it is important to note that all **sources** can contribute +results to all of the areas mentioned above. + +In most cases, however, the :ref:`engines ` will fill +the *main results* and the :ref:`answerers ` will generally +provide the contributions for the *answer* area. Not necessary to mention here +but for a better understanding: the plugins can also filter out or change +results from the main results area (e.g. the URL of the link). + +The result items are organized in the :py:obj:`results.ResultContainer` and +after all sources have delivered their results, this container is passed to the +templating to build a HTML output. The output is usually HTML, but it is also +possible to output the result lists as JSON or RSS feed. Thats quite all we need +to know before we dive into typification of result items. + +.. hint:: + + Typification of result items: we are at the very first beginng! + +The first thing we have to realize is that there is no typification of the +result items so far, we have to build it up first .. and that is quite a big +task, which we will only be able to accomplish gradually. + +The foundation for the typeless results was laid back in 2013 in the very first +commit :commit:`ae9fb1d7d`, and the principle has not changed since then. At +the time, the approach was perfectly adequate, but we have since evolved and the +demands on SearXNG increase with every feature request. + +**Motivation:** in the meantime, it has become very difficult to develop new +features that require structural changes and it is especially hard for newcomers +to find their way in this typeless world. As long as the results are only +simple key/value dictionaries, it is not even possible for the IDEs to support +the application developer in his work. + +**Planning:** The procedure for subsequent typing will have to be based on the +circumstances .. + +.. attention:: + + As long as there is no type defined for a kind of result the HTML template + specify what the properties of a type are. + + In this sense, you will either find a type definition here in the + documentation or, if this does not yet exist, a description of the HTML + template. + + +.. toctree:: + :maxdepth: 2 + + base_result + main_result + answer + correction + suggestion + infobox diff --git a/docs/dev/result_types/infobox.rst b/docs/dev/result_types/infobox.rst new file mode 100644 index 000000000..428dc8db7 --- /dev/null +++ b/docs/dev/result_types/infobox.rst @@ -0,0 +1,60 @@ +.. _result_types.infobox: + +=============== +Infobox Results +=============== + +.. hint:: + + There is still no typing for these result items. The templates can be used as + orientation until the final typing is complete. + +The infobox is an area where addtional infos shown to the user. + +Fields used in the :origin:`infobox.html +`: + +img_src: :py:class:`str` + URL of a image or thumbnail that is displayed in the infobox. + +infobox: :py:class:`str` + Title of the info box. + +content: :py:class:`str` + Text of the info box. + +The infobox has additional subsections for *attributes*, *urls* and +*relatedTopics*: + +attributes: :py:class:`List `\ [\ :py:class:`dict`\ ] + A list of attributes. An *attribute* is a dictionary with keys: + + - label :py:class:`str`: (mandatory) + + - value :py:class:`str`: (mandatory) + + - image :py:class:`List `\ [\ :py:class:`dict`\ ] (optional) + + A list of images. An *image* is a dictionary with keys: + + - src :py:class:`str`: URL of an image/thumbnail (mandatory) + - alt :py:class:`str`: alternative text for the image (mandatory) + +urls: :py:class:`List `\ [\ :py:class:`dict`\ ] + A list of links. An *link* is a dictionary with keys: + + - url :py:class:`str`: URL of the link (mandatory) + - title :py:class:`str`: Title of the link (mandatory) + +relatedTopics: :py:class:`List `\ [\ :py:class:`dict`\ ] + A list of topics. An *topic* is a dictionary with keys: + + - name: :py:class:`str`: (mandatory) + + - suggestions: :py:class:`List `\ [\ :py:class:`dict`\ ] (optional) + + A list of suggestions. A *suggestion* is simple dictionary with just one + key/value pair: + + - suggestion: :py:class:`str`: suggested search term (mandatory) + diff --git a/docs/dev/result_types/main_result.rst b/docs/dev/result_types/main_result.rst new file mode 100644 index 000000000..1f178cbd1 --- /dev/null +++ b/docs/dev/result_types/main_result.rst @@ -0,0 +1,17 @@ +============ +Main Results +============ + +There is still no typing for the items in the :ref:`main result list`. The +templates can be used as orientation until the final typing is complete. + +- :ref:`template default` +- :ref:`template images` +- :ref:`template videos` +- :ref:`template torrent` +- :ref:`template map` +- :ref:`template paper` +- :ref:`template packages` +- :ref:`template code` +- :ref:`template files` +- :ref:`template products` diff --git a/docs/dev/result_types/suggestion.rst b/docs/dev/result_types/suggestion.rst new file mode 100644 index 000000000..52e8a05a8 --- /dev/null +++ b/docs/dev/result_types/suggestion.rst @@ -0,0 +1,38 @@ +.. _result_types.suggestion: + +================== +Suggestion Results +================== + +.. hint:: + + There is still no typing for these result items. The templates can be used as + orientation until the final typing is complete. + +The suggestions area shows the user alternative search terms. + +A result of this type is a very simple dictionary with only one key/value pair + +.. code:: python + + {"suggestion" : "lorem ipsum .."} + +From this simple dict another dict is build up: + +.. code:: python + + {"url" : "!bang lorem ipsum ..", "title": "lorem ipsum" } + +and used in the template :origin:`suggestions.html +`: + +.. code:: python + + # use RawTextQuery to get the suggestion URLs with the same bang + {"url" : "!bang lorem ipsum ..", "title": "lorem ipsum" } + +title : :py:class:`str` + Suggested search term + +url : :py:class:`str` + Not really an URL, its the value to insert in a HTML form for a SearXNG query. diff --git a/docs/dev/searxng_extra/update.rst b/docs/dev/searxng_extra/update.rst index dc3b06744..000085970 100644 --- a/docs/dev/searxng_extra/update.rst +++ b/docs/dev/searxng_extra/update.rst @@ -60,6 +60,7 @@ Scripts to update static data in :origin:`searx/data/` .. automodule:: searxng_extra.update.update_engine_traits :members: +.. _update_osm_keys_tags.py: ``update_osm_keys_tags.py`` =========================== diff --git a/docs/dev/templates.rst b/docs/dev/templates.rst new file mode 100644 index 000000000..b62c6b732 --- /dev/null +++ b/docs/dev/templates.rst @@ -0,0 +1,577 @@ +.. _simple theme templates: + +====================== +Simple Theme Templates +====================== + +The simple template is complex, it consists of many different elements and also +uses macros and include statements. The following is a rough overview that we +would like to give the developerat hand, details must still be taken from the +:origin:`sources `. + +A :ref:`result item ` can be of different media types. The media +type of a result is defined by the :py:obj:`result_type.Result.template`. To +set another media-type as :ref:`template default`, the field ``template`` +in the result item must be set to the desired type. + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: entry + + +.. _result template macros: + +Result template macros +====================== + +.. _macro result_header: + +``result_header`` +----------------- + +Execpt ``image.html`` and some others this macro is used in nearly all result +types in the :ref:`main result list`. + +Fields used in the template :origin:`macro result_header +`: + +url : :py:class:`str` + Link URL of the result item. + +title : :py:class:`str` + Link title of the result item. + +img_src, thumbnail : :py:class:`str` + URL of a image or thumbnail that is displayed in the result item. + + +.. _macro result_sub_header: + +``result_sub_header`` +--------------------- + +Execpt ``image.html`` and some others this macro is used in nearly all result +types in the :ref:`main result list`. + +Fields used in the template :origin:`macro result_sub_header +`: + +publishedDate : :py:obj:`datetime.datetime` + The date on which the object was published. + +length: :py:obj:`time.struct_time` + Playing duration in seconds. + +views: :py:class:`str` + View count in humanized number format. + +author : :py:class:`str` + Author of the title. + +metadata : :py:class:`str` + Miscellaneous metadata. + + +.. _engine_data: + +``engine_data_form`` +-------------------- + +The ``engine_data_form`` macro is used in :origin:`results,html +` in a HTML ``
`` element. The +intention of this macro is to pass data of a engine from one :py:obj:`response +` to the :py:obj:`searx.search.SearchQuery` +of the next :py:obj:`request `. + +To pass data, engine's response handler can append result items of typ +``engine_data``. This is by example used to pass a token from the response to +the next request: + +.. code:: python + + def response(resp): + ... + results.append({ + 'engine_data': token, + 'key': 'next_page_token', + }) + ... + return results + + def request(query, params): + page_token = params['engine_data'].get('next_page_token') + + +.. _main result list: + +Main Result List +================ + +The **media types** of the **main result type** are the template files in +the :origin:`result_templates `. + +.. _template default: + +``default.html`` +---------------- + +Displays result fields from: + +- :ref:`macro result_header` and +- :ref:`macro result_sub_header` + +Additional fields used in the :origin:`default.html +`: + +content : :py:class:`str` + General text of the result item. + +iframe_src : :py:class:`str` + URL of an embedded `` diff --git a/searx/templates/simple/result_templates/map.html b/searx/templates/simple/result_templates/map.html index dc1f06dce..73a2701da 100644 --- a/searx/templates/simple/result_templates/map.html +++ b/searx/templates/simple/result_templates/map.html @@ -43,7 +43,7 @@ {%- endif -%} -{{- result_sub_footer(result, proxify) -}} +{{- result_sub_footer(result) -}} {% if (result.latitude and result.longitude) or result.boundingbox -%} diff --git a/searx/templates/simple/result_templates/paper.html b/searx/templates/simple/result_templates/paper.html index dd610b903..7e94cf174 100644 --- a/searx/templates/simple/result_templates/paper.html +++ b/searx/templates/simple/result_templates/paper.html @@ -34,5 +34,5 @@ {%- if result.html_url -%}{{ result_link(result.html_url, _('HTML')) }}{%- endif -%} {%- if result.doi %}{{ result_link('https://www.altmetric.com/details/doi/' + result.doi, 'Altmetric') }}{% endif -%}

-{{- result_sub_footer(result, proxify) -}} +{{- result_sub_footer(result) -}} {{- result_footer(result) }} diff --git a/searx/templates/simple/result_templates/products.html b/searx/templates/simple/result_templates/products.html index ce599aef7..b5404fd8d 100644 --- a/searx/templates/simple/result_templates/products.html +++ b/searx/templates/simple/result_templates/products.html @@ -10,5 +10,5 @@ {{ result.content|safe }}

{% endif -%} -{{- result_sub_footer(result, proxify) -}} +{{- result_sub_footer(result) -}} {{- result_footer(result) }} diff --git a/searx/templates/simple/result_templates/torrent.html b/searx/templates/simple/result_templates/torrent.html index 0c870ae11..27e96dca4 100644 --- a/searx/templates/simple/result_templates/torrent.html +++ b/searx/templates/simple/result_templates/torrent.html @@ -19,5 +19,5 @@ {%- if result.files %}{{ icon_big('file') }} {{ result.files }} {{ _('Number of Files') }}{%- endif -%}

{%- if result.content %}

{{ result.content|safe }}

{%- endif -%} -{{- result_sub_footer(result, proxify) -}} +{{- result_sub_footer(result) -}} {{- result_footer(result) -}} diff --git a/searx/templates/simple/result_templates/videos.html b/searx/templates/simple/result_templates/videos.html index 23d4195ca..8771cea1f 100644 --- a/searx/templates/simple/result_templates/videos.html +++ b/searx/templates/simple/result_templates/videos.html @@ -15,7 +15,7 @@

{% endif -%}

-{{- result_sub_footer(result, proxify) -}} +{{- result_sub_footer(result) -}} {% if result.iframe_src -%}
{% set display_tooltip = true %} diff --git a/searx/templates/simple/simple_search.html b/searx/templates/simple/simple_search.html index f69ba6142..af533e6e0 100644 --- a/searx/templates/simple/simple_search.html +++ b/searx/templates/simple/simple_search.html @@ -5,6 +5,7 @@ +
    From 861f9c4be52a4844631fb72c3c0dcf8fb6cc77fc Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 22 May 2025 11:51:30 +0200 Subject: [PATCH 391/417] [build] /static --- client/simple/package-lock.json | 9 --------- searx/static/themes/simple/css/searxng-rtl.min.css | 2 +- searx/static/themes/simple/css/searxng.min.css | 2 +- searx/static/themes/simple/js/searxng.min.js | 4 ++-- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/client/simple/package-lock.json b/client/simple/package-lock.json index 032e38a15..e1f183493 100644 --- a/client/simple/package-lock.json +++ b/client/simple/package-lock.json @@ -7,9 +7,6 @@ "": { "name": "simple", "version": "1.0.0", - "dependencies": { - "autocomplete-js": "^2.7.1" - }, "devDependencies": { "@eslint/js": "^9.26.0", "copy-webpack-plugin": "^13.0.0", @@ -2526,12 +2523,6 @@ "dev": true, "license": "MIT" }, - "node_modules/autocomplete-js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/autocomplete-js/-/autocomplete-js-2.7.1.tgz", - "integrity": "sha512-F+1Sj13zbfpbkprKjtyYiaHgBo6YODzNzWgJjgo/p312AeiZVEn3W+NaRRzVZYqMI0Bm7/W36uanp995eNDy+A==", - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index 5ddce2b5c..7e2f294f2 100644 --- a/searx/static/themes/simple/css/searxng-rtl.min.css +++ b/searx/static/themes/simple/css/searxng-rtl.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding:.4rem .3rem .4rem .5rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em 0 .5em .25em;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-score,.engine-stats .result-count,.engine-stats .response-time,.engine-stats .engine-reliability{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-width:calc(100% - 1rem);max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding:.4rem .3rem .4rem .5rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .5rem 0;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:100%;max-width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:100%}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-right:3rem}.center-alignment-yes #main_results #sidebar{margin-left:1rem}.center-alignment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-right:0}.center-alignment-yes #main_results #sidebar{margin-left:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scaleX(-1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em 0 .5em .25em;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin:.5em 0 .5em .5em}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_header{direction:rtl}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-score,.engine-stats .result-count,.engine-stats .response-time,.engine-stats .engine-reliability{text-align:right} diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 3721b0120..6ca440aad 100644 --- a/searx/static/themes/simple/css/searxng.min.css +++ b/searx/static/themes/simple/css/searxng.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em .25em .5em 0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font: #444;--color-base-font-rgb: 68, 68, 68;--color-base-background: #fff;--color-base-background-mobile: #f2f5f8;--color-url-font: #334999;--color-url-visited-font: #9822c3;--color-header-background: #fdfbff;--color-header-border: #ddd;--color-footer-background: #fdfbff;--color-footer-border: #ddd;--color-sidebar-border: #ddd;--color-sidebar-font: #000;--color-sidebar-background: #fff;--color-backtotop-font: #444;--color-backtotop-border: #ddd;--color-backtotop-background: #fff;--color-btn-background: #3050ff;--color-btn-font: #fff;--color-show-btn-background: #bbb;--color-show-btn-font: #000;--color-search-border: #bbb;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #fff;--color-search-font: #222;--color-search-background-hover: #3050ff;--color-error: #db3434;--color-error-background: #fae1e1;--color-warning: #dbba34;--color-warning-background: #faf5e1;--color-success: #42db34;--color-success-background: #e3fae1;--color-categories-item-selected-font: #3050ff;--color-categories-item-border-selected: #3050ff;--color-autocomplete-font: #000;--color-autocomplete-border: #bbb;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #fff;--color-autocomplete-background-hover: #e3e3e3;--color-answer-font: #444;--color-answer-background: #fff;--color-result-keyvalue-col-table: #fdfbff;--color-result-keyvalue-odd: #fdfbff;--color-result-keyvalue-even: #fff;--color-result-background: #fff;--color-result-border: #ddd;--color-result-url-font: #000;--color-result-vim-selected: #f7f7f7;--color-result-vim-arrow: #000bbb;--color-result-description-highlight-font: #000;--color-result-link-font: #000bbb;--color-result-link-font-highlight: #000bbb;--color-result-link-visited-font: #9822c3;--color-result-publishdate-font: #777;--color-result-engines-font: #545454;--color-result-search-url-border: #ddd;--color-result-search-url-font: #000;--color-result-image-span-font: #444;--color-result-image-span-font-selected: #fff;--color-result-image-background: #fff;--color-settings-tr-hover: #ebebeb;--color-settings-engine-description-font: #545454;--color-settings-table-group-background: #0001;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #242424;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #545454;--color-toolkit-kbd-font: #fff;--color-toolkit-kbd-background: #000;--color-toolkit-dialog-border: #ddd;--color-toolkit-dialog-background: #fff;--color-toolkit-tabs-label-border: #fff;--color-toolkit-tabs-section-border: #ddd;--color-toolkit-select-background: #e1e1e1;--color-toolkit-select-border: #ddd;--color-toolkit-select-background-hover: #bbb;--color-toolkit-input-text-font: #222;--color-toolkit-checkbox-onoff-off-background: #ddd;--color-toolkit-checkbox-onoff-on-background: #ddd;--color-toolkit-checkbox-onoff-on-mark-background: #3050ff;--color-toolkit-checkbox-onoff-on-mark-color: #fff;--color-toolkit-checkbox-onoff-off-mark-background: #aaa;--color-toolkit-checkbox-onoff-off-mark-color: #fff;--color-toolkit-checkbox-label-background: #ddd;--color-toolkit-checkbox-label-border: #ddd;--color-toolkit-checkbox-input-border: #3050ff;--color-toolkit-engine-tooltip-border: #ddd;--color-toolkit-engine-tooltip-background: #fff;--color-toolkit-loader-border: rgba(0, 0, 0, .2);--color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);--color-doc-code: #003;--color-doc-code-background: #ddeaff;--color-bar-chart-primary: #5bc0de;--color-bar-chart-secondary: #deb15b;--color-image-resolution-background: rgba(0, 0, 0, .5);--color-image-resolution-font: #fff;--color-loading-indicator: rgba(255, 255, 255, .2);--color-loading-indicator-gap: #fff;--color-line-number: #64708d;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}@media (prefers-color-scheme: dark){:root.theme-auto{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}}:root.theme-dark{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc}:root.theme-black{--color-base-font: #bbb;--color-base-font-rgb: 187, 187, 187;--color-base-background: #222428;--color-base-background-mobile: #222428;--color-url-font: #8af;--color-url-visited-font: #c09cd9;--color-header-background: #1e1e22;--color-header-border: #333;--color-footer-background: #1e1e22;--color-footer-border: #333;--color-sidebar-border: #555;--color-sidebar-font: #fff;--color-sidebar-background: #292c34;--color-backtotop-font: #bbb;--color-backtotop-border: #333;--color-backtotop-background: #2b2e36;--color-btn-background: #58f;--color-btn-font: #222;--color-show-btn-background: #555;--color-show-btn-font: #fff;--color-search-border: #555;--color-search-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-search-background: #2b2e36;--color-search-font: #fff;--color-search-background-hover: #58f;--color-error: #f55b5b;--color-error-background: #390a0a;--color-warning: #f1d561;--color-warning-background: #39300a;--color-success: #79f56e;--color-success-background: #0e390a;--color-categories-item-selected-font: #58f;--color-categories-item-border-selected: #58f;--color-autocomplete-font: #fff;--color-autocomplete-border: #555;--color-autocomplete-shadow: 0 2px 8px rgba(34, 38, 46, .25);--color-autocomplete-background: #2b2e36;--color-autocomplete-background-hover: #1e1e22;--color-answer-font: #bbb;--color-answer-background: #26292f;--color-result-keyvalue-col-table: #1e1e22;--color-result-keyvalue-odd: #1e1e22;--color-result-keyvalue-even: #26292f;--color-result-background: #26292f;--color-result-border: #333;--color-result-url-font: #fff;--color-result-vim-selected: #1f1f23cc;--color-result-vim-arrow: #8af;--color-result-description-highlight-font: #fff;--color-result-link-font: #8af;--color-result-link-font-highlight: #8af;--color-result-link-visited-font: #c09cd9;--color-result-publishdate-font: #888;--color-result-engines-font: #a4a4a4;--color-result-search-url-border: #555;--color-result-search-url-font: #fff;--color-result-detail-font: #fff;--color-result-detail-label-font: lightgray;--color-result-detail-background: #1a1a1c;--color-result-detail-hr: #555;--color-result-detail-link: #8af;--color-result-detail-loader-border: rgba(255, 255, 255, .2);--color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);--color-result-image-span-font: #bbb;--color-result-image-span-font-selected: #222;--color-result-image-background: #222;--color-settings-tr-hover: #2c2c32;--color-settings-engine-description-font: #909090;--color-settings-table-group-background: #1b1b21;--color-toolkit-badge-font: #fff;--color-toolkit-badge-background: #555;--color-toolkit-kbd-font: #000;--color-toolkit-kbd-background: #fff;--color-toolkit-dialog-border: #555;--color-toolkit-dialog-background: #1e1e22;--color-toolkit-tabs-label-border: #222;--color-toolkit-tabs-section-border: #555;--color-toolkit-select-background: #313338;--color-toolkit-select-border: #555;--color-toolkit-select-background-hover: #373b49;--color-toolkit-input-text-font: #fff;--color-toolkit-checkbox-onoff-off-background: #313338;--color-toolkit-checkbox-onoff-on-background: #313338;--color-toolkit-checkbox-onoff-on-mark-background: #58f;--color-toolkit-checkbox-onoff-on-mark-color: #222;--color-toolkit-checkbox-onoff-off-mark-background: #ddd;--color-toolkit-checkbox-onoff-off-mark-color: #222;--color-toolkit-checkbox-label-background: #222;--color-toolkit-checkbox-label-border: #333;--color-toolkit-checkbox-input-border: #58f;--color-toolkit-engine-tooltip-border: #333;--color-toolkit-engine-tooltip-background: #222;--color-toolkit-loader-border: rgba(255, 255, 255, .2);--color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);--color-doc-code: #ddd;--color-doc-code-background: #4d5a6f;--color-favicon-background-color: #ddd;--color-favicon-border-color: #ccc;--color-base-background: #000;--color-base-background-mobile: #000;--color-header-background: #000;--color-footer-background: #000;--color-sidebar-background: #000}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal,.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special,.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3d7b7b;font-style:italic}.code-highlight .err{border:1px solid #F00}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch,.code-highlight .cm{color:#3d7b7b;font-style:italic}.code-highlight .cp{color:#9c6500}.code-highlight .cpf,.code-highlight .c1,.code-highlight .cs{color:#3d7b7b;font-style:italic}.code-highlight .gd{color:#a00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#e40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04d}.code-highlight .kc,.code-highlight .kd,.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#b00040}.code-highlight .m{color:#666}.code-highlight .s{color:#ba2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00f;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#a2f}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#cb3f38;font-weight:700}.code-highlight .nf{color:#00f}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00f;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177c}.code-highlight .ow{color:#a2f;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb,.code-highlight .mf,.code-highlight .mh,.code-highlight .mi,.code-highlight .mo{color:#666}.code-highlight .sa,.code-highlight .sb,.code-highlight .sc,.code-highlight .dl{color:#ba2121}.code-highlight .sd{color:#ba2121;font-style:italic}.code-highlight .s2{color:#ba2121}.code-highlight .se{color:#aa5d1f;font-weight:700}.code-highlight .sh{color:#ba2121}.code-highlight .si{color:#a45a77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#a45a77}.code-highlight .s1{color:#ba2121}.code-highlight .ss{color:#19177c}.code-highlight .bp{color:green}.code-highlight .fm{color:#00f}.code-highlight .vc,.code-highlight .vg,.code-highlight .vi,.code-highlight .vm{color:#19177c}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0;padding:1rem 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}.code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:transparent}.code-highlight .linenos::-moz-selection{background:transparent}.code-highlight span.linenos{color:var(--color-line-number)}@media (prefers-color-scheme: dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#ffad66}:root.theme-auto .code-highlight .l{color:#d5ff80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#ffad66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#ffad66}:root.theme-auto .code-highlight .kd{color:#ffad66}:root.theme-auto .code-highlight .kn{color:#ffad66}:root.theme-auto .code-highlight .kp{color:#ffad66}:root.theme-auto .code-highlight .kr{color:#ffad66}:root.theme-auto .code-highlight .kt{color:#73d0ff}:root.theme-auto .code-highlight .ld{color:#d5ff80}:root.theme-auto .code-highlight .m{color:#dfbfff}:root.theme-auto .code-highlight .s{color:#d5ff80}:root.theme-auto .code-highlight .na{color:#ffd173}:root.theme-auto .code-highlight .nb{color:#ffd173}:root.theme-auto .code-highlight .nc{color:#73d0ff}:root.theme-auto .code-highlight .no{color:#ffd173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95e6cb}:root.theme-auto .code-highlight .ne{color:#73d0ff}:root.theme-auto .code-highlight .nf{color:#ffd173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#ffd173}:root.theme-auto .code-highlight .nt{color:#5ccfe6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#ffad66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#dfbfff}:root.theme-auto .code-highlight .mf{color:#dfbfff}:root.theme-auto .code-highlight .mh{color:#dfbfff}:root.theme-auto .code-highlight .mi{color:#dfbfff}:root.theme-auto .code-highlight .mo{color:#dfbfff}:root.theme-auto .code-highlight .sa{color:#f29e74}:root.theme-auto .code-highlight .sb{color:#d5ff80}:root.theme-auto .code-highlight .sc{color:#d5ff80}:root.theme-auto .code-highlight .dl{color:#d5ff80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#d5ff80}:root.theme-auto .code-highlight .se{color:#95e6cb}:root.theme-auto .code-highlight .sh{color:#d5ff80}:root.theme-auto .code-highlight .si{color:#95e6cb}:root.theme-auto .code-highlight .sx{color:#95e6cb}:root.theme-auto .code-highlight .sr{color:#95e6cb}:root.theme-auto .code-highlight .s1{color:#d5ff80}:root.theme-auto .code-highlight .ss{color:#dfbfff}:root.theme-auto .code-highlight .bp{color:#5ccfe6}:root.theme-auto .code-highlight .fm{color:#ffd173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#dfbfff}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-auto .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:transparent}:root.theme-auto .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-auto .code-highlight span.linenos{color:var(--color-line-number)}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#ffad66}:root.theme-dark .code-highlight .l{color:#d5ff80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#ffad66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#ffad66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#ffad66}:root.theme-dark .code-highlight .kd{color:#ffad66}:root.theme-dark .code-highlight .kn{color:#ffad66}:root.theme-dark .code-highlight .kp{color:#ffad66}:root.theme-dark .code-highlight .kr{color:#ffad66}:root.theme-dark .code-highlight .kt{color:#73d0ff}:root.theme-dark .code-highlight .ld{color:#d5ff80}:root.theme-dark .code-highlight .m{color:#dfbfff}:root.theme-dark .code-highlight .s{color:#d5ff80}:root.theme-dark .code-highlight .na{color:#ffd173}:root.theme-dark .code-highlight .nb{color:#ffd173}:root.theme-dark .code-highlight .nc{color:#73d0ff}:root.theme-dark .code-highlight .no{color:#ffd173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95e6cb}:root.theme-dark .code-highlight .ne{color:#73d0ff}:root.theme-dark .code-highlight .nf{color:#ffd173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#ffd173}:root.theme-dark .code-highlight .nt{color:#5ccfe6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#ffad66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#dfbfff}:root.theme-dark .code-highlight .mf{color:#dfbfff}:root.theme-dark .code-highlight .mh{color:#dfbfff}:root.theme-dark .code-highlight .mi{color:#dfbfff}:root.theme-dark .code-highlight .mo{color:#dfbfff}:root.theme-dark .code-highlight .sa{color:#f29e74}:root.theme-dark .code-highlight .sb{color:#d5ff80}:root.theme-dark .code-highlight .sc{color:#d5ff80}:root.theme-dark .code-highlight .dl{color:#d5ff80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#d5ff80}:root.theme-dark .code-highlight .se{color:#95e6cb}:root.theme-dark .code-highlight .sh{color:#d5ff80}:root.theme-dark .code-highlight .si{color:#95e6cb}:root.theme-dark .code-highlight .sx{color:#95e6cb}:root.theme-dark .code-highlight .sr{color:#95e6cb}:root.theme-dark .code-highlight .s1{color:#d5ff80}:root.theme-dark .code-highlight .ss{color:#dfbfff}:root.theme-dark .code-highlight .bp{color:#5ccfe6}:root.theme-dark .code-highlight .fm{color:#ffd173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#dfbfff}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem}:root.theme-dark .code-highlight .linenos{-webkit-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:transparent}:root.theme-dark .code-highlight .linenos::-moz-selection{background:transparent}:root.theme-dark .code-highlight span.linenos{color:var(--color-line-number)}html.no-js .hide_if_nojs,html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ul,.dialog-error ol,.dialog-error p{margin:1px 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:transparent!important}.dialog-error td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ul,.dialog-error-block ol,.dialog-error-block p{margin:1px 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:transparent!important}.dialog-error-block td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ul,.dialog-warning ol,.dialog-warning p{margin:1px 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:transparent!important}.dialog-warning td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:5000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ul,.dialog-modal ol,.dialog-modal p{margin:1px 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:transparent!important}.dialog-modal td{padding:0 1em 0 0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow:auto hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:100}select:hover,select:focus{cursor:pointer}@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E) no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:hover,select:focus{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme: dark){html.theme-auto select,html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}html.theme-dark select{background-image:url(data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E)}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:none}input.checkbox-onoff[type=checkbox]:focus:after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:1200;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]:before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff[type=checkbox],input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff[type=checkbox]:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked:before{left:-.5em;content:"✕";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff[type=checkbox]:checked,input.checkbox-onoff.reversed-checkbox[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff[type=checkbox]:checked:before,input.checkbox-onoff.reversed-checkbox[type=checkbox]:before{left:calc(100% - 1.5em);content:"✓";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform: rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff):after{content:"";width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:transparent;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked:after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked,[disabled],.checkbox-onoff):hover:after{opacity:.5}}@media screen and (max-width: 50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:5000;text-align:left;border-radius:10px}th:hover .engine-tooltip,td:hover .engine-tooltip,.engine-tooltip:hover{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-flow:row nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:transparent;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-width:calc(100% - 1rem);max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:5000;margin-top:3.5rem;border-radius:.8rem}.autocomplete.open:empty{display:none}@media screen and (max-width: 50em){.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:13rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:1000;padding:4rem 3rem 3rem;overflow-y:scroll}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 42rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow:hidden hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:1200}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span:before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span:before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width: 79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width: 50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]:before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;font-size:16px}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}table.engine-error th.engine-error-type,table.engine-error td.engine-error-type,failed-test{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr th,.engine-errors table.engine-error tr td{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid var(--color-bar-chart-primary);margin:1px 0}.bar-chart-serie1{border:3px solid var(--color-bar-chart-primary);margin:1px 0;float:left}.bar-chart-serie2{border:3px solid var(--color-bar-chart-secondary);margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width: 79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table th,table td{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:hover,#main_preferences input[type=text]:focus{background-color:var(--color-toolkit-select-background-hover)}#main_preferences div.pref-group{width:100%;font-weight:400;padding:1rem .5rem;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value select,#main_preferences .value input[type=text]{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value select:focus,#main_preferences .value input:focus{outline:none;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies th,#main_preferences table.cookies td{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(2n)>th,#main_preferences table.cookies>tbody>tr:nth-child(2n)>td{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a:first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width: 79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;gap:1rem 1.2rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_checkbox,.category_button{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}.no-js #categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}.no-js #categories_container:has(button.category_button:focus-within) button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{padding:.5rem 10px 0;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .5rem 0;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:100%;max-width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:1000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *,html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:none;color:var(--color-search-font);font-size:1.1rem;z-index:100}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:hover,.search_filters select:focus{color:var(--color-base-font)}@media screen and (max-width: 79.75em){#search_header{padding:1.5em .5rem 0;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width: 79.75em) and (hover: none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow:scroll hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width: 50em){#search_header{width:100%;margin:0;padding:.1rem 0 0;gap:0 0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:100%}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label,.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:2000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width: 20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.favicon img{height:1.5rem;width:1.5rem;border-radius:10%;background-color:var(--color-favicon-background-color);border:1px solid var(--color-favicon-border-color);display:flex}@media screen and (min-width: 50em){.center-alignment-yes #main_results{--center-page-width: 48rem}}@media screen and (width >= 62rem){.center-alignment-yes #main_results{--center-page-width: 60rem}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{--center-page-width: 73rem}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-alignment-yes #main_results #urls{margin-left:3rem}.center-alignment-yes #main_results #sidebar{margin-right:1rem}.center-alignment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width: 79.75em){.center-alignment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-alignment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-alignment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-alignment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-alignment-yes #main_results #results.only_template_images,.center-alignment-yes #main_results #results.image-detail-open{align-self:flex-start}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-alignment-yes #main_results #results:not(.only_template_images,.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width) / 2)}.center-alignment-yes #main_results #results .result .content{max-width:inherit}.center-alignment-yes #main_results #urls{margin-left:0}.center-alignment-yes #main_results #sidebar{margin-right:0}}.sxng-icon-set{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}.sxng-icon-set-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}@supports (height: 100dvh){body{height:100dvh}}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}input[type=submit],#results button[type=submit],.button{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited,a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.title,article.result-images[data-vim-selected] span.source{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-videos,article[data-vim-selected].category-news,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-files,article[data-vim-selected].category-social{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;box-sizing:border-box;width:100%;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:none}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_header{display:flex;gap:.5rem}.result .url_wrapper{display:flex;align-items:center;font-size:1rem;color:var(--color-result-url-font);flex-flow:row nowrap;overflow:hidden;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1;padding-bottom:1px}.result .url_wrapper .url_o1 .url_i1{unicode-bidi:plaintext}.result .url_wrapper .url_o1:after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex:0 1 content;text-align:right;padding-bottom:1px}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_length,.result .result_views,.result .result_author,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;height:unset}.result .break{clear:both}.result-paper .attributes,.result-packages .attributes{display:table;border-spacing:.125rem}.result-paper .attributes div,.result-packages .attributes div{display:table-row}.result-paper .attributes div span,.result-packages .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-paper .attributes div span time,.result-packages .attributes div span time{font-size:.9rem}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-paper .content,.result-packages .content{margin-top:.25rem}.result-paper .comments,.result-packages .comments{font-size:.9rem;margin:.25rem 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images:after{flex-grow:10;content:""}.category-videos,.category-news,.category-map,.category-music,.category-files,.category-social{border:1px solid var(--color-result-border);margin:0 .5rem 1rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0}.embedded-content iframe{width:100%;padding:10px 0 0}.result-videos img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16 / 9;padding:10px 0 0}@supports not (aspect-ratio: 1 / 1){.result-videos .embedded-video iframe{height:25.3125rem}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem;margin:.25rem;border:none!important;height:12rem;width:unset}.result-images>a{position:relative;outline:none}.result-images img{margin:0;padding:0;border:none;height:100%;width:auto;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:var(--color-image-resolution-background);padding:.3rem .5rem;font-size:.9rem;color:var(--color-image-resolution-font);border-top-left-radius:.3rem}.result-images span.title,.result-images span.source{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template:"corrections sidebar" min-content "answers sidebar" min-content "urls sidebar" 1fr "pagination sidebar" min-content / 45rem 25rem;gap:0 5rem}#results #sidebar *:first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#suggestions input,#infoboxes input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:transparent;color:var(--color-result-search-url-font);cursor:pointer;width:100%;text-overflow:ellipsis;overflow:hidden;text-align:left}#suggestions input[type=submit],#infoboxes input[type=submit],#suggestions .infobox .url a,#infoboxes .infobox .url a{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#suggestions input[type=submit]:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#infoboxes .infobox .url a:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#infoboxes .title,#suggestions .title,#search_url .title,#engines_msg .title,#apis .title{margin:2em 0 .5em;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsible{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsible{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin:5px 10px 10px auto}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin:.5em .25em .5em 0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br,#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#engines_msg .engine-name{width:10rem}#engines_msg .response-error{color:var(--color-error)}#engines_msg .bar-chart-value{width:auto}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:link *,#links_on_top a:hover *,#links_on_top a:visited *,#links_on_top a:active *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:transparent!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:transparent;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:visited,#backToTop a:hover,#backToTop a:active{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (width <= calc(79.75em - .5px)){#links_on_top span{display:none}}@media screen and (width <= 52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width: 50em) and (max-width: 79.75em){.center-alignment-no #links_on_top span{display:none}.center-alignment-no .page_with_header{margin:2rem .5rem;width:auto}.center-alignment-no #infoboxes{position:inherit;max-width:inherit}.center-alignment-no #infoboxes .infobox{clear:both}.center-alignment-no #infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}.center-alignment-no #sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}.center-alignment-no #sidebar input{border:0}.center-alignment-no .result .thumbnail{max-width:98%}.center-alignment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-alignment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.center-alignment-no .result-images{border-bottom:none!important}.center-alignment-no .image_result,.center-alignment-no .image_result img{max-width:98%}.center-alignment-no #backToTop{display:none}.center-alignment-no #pagination{margin:2rem 0 0!important}.center-alignment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}}#main_results div#results.only_template_images{margin:1rem .5rem 0;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 100%;gap:0}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls:after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width: 50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin:0 .5rem .125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0}.result-images{border-bottom:none!important}.image_result,.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template:"corrections" min-content "answers" min-content "sidebar" min-content "urls" 1fr "pagination" min-content / 45rem;gap:0}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 2%;width:96%;border-radius:10px}.result-images{margin:0;height:10rem;background:var(--color-base-background-mobile);width:unset}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-paper .attributes,.result-packages .attributes,.result-paper .attributes div,.result-packages .attributes div{display:block}.result-paper .attributes div span,.result-packages .attributes div span{display:inline}.result-paper .attributes div span:first-child,.result-packages .attributes div span:first-child{font-weight:700}.result-paper .attributes div span:nth-child(2),.result-packages .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width: 35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#main_results .result-keyvalue caption{padding:.8rem .5rem;font-style:italic;caption-side:bottom;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue .col-key{width:25%}#main_results .result-keyvalue table{word-break:break-word;table-layout:fixed;width:100%;background-color:var(--color-result-keyvalue-table)}#main_results .result-keyvalue tr.odd{background-color:var(--color-result-keyvalue-odd)}#main_results .result-keyvalue tr.even{background-color:var(--color-result-keyvalue-even)}#main_results .result-keyvalue th,#main_results .result-keyvalue td{padding:.3rem .5rem} diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index f2c49fb32..ce8fd6aa7 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -3,12 +3,12 @@ * (C) Copyright Contributors to the SearXNG project. * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later - */window.searxng=function(h,d){h.Element&&function(r){r.matches=r.matches||r.matchesSelector||r.webkitMatchesSelector||r.msMatchesSelector||function(a){for(var l=this,n=(l.parentNode||l.document).querySelectorAll(a),e=-1;n[++e]&&n[e]!=l;);return!!n[e]}}(Element.prototype);function u(r,a,l){try{r.call(a,l)}catch(n){console.log(n)}}var p=window.searxng||{};p.on=function(r,a,l,n){n=n||!1,typeof r!="string"?r.addEventListener(a,l,n):d.addEventListener(a,function(e){for(var t=e.target||e.srcElement,o=!1;t&&t.matches&&t!==d&&!(o=t.matches(r));)t=t.parentElement;o&&u(l,t,e)},n)},p.ready=function(r){document.readyState!="loading"?r.call(h):h.addEventListener("DOMContentLoaded",r.bind(h))},p.http=function(r,a,l=null){return new Promise(function(n,e){try{var t=new XMLHttpRequest;t.open(r,a,!0),t.timeout=2e4,t.onload=function(){t.status==200?n(t.response,t.responseType):e(Error(t.statusText))},t.onerror=function(){e(Error("Network Error"))},t.onabort=function(){e(Error("Transaction is aborted"))},t.ontimeout=function(){e(Error("Timeout"))},l?t.send(l):t.send()}catch(o){e(o)}})},p.loadStyle=function(r){var a=p.settings.theme_static_path+"/"+r,l="style_"+r.replace(".","_"),n=d.getElementById(l);n===null&&(n=d.createElement("link"),n.setAttribute("id",l),n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href",a),d.body.appendChild(n))},p.loadScript=function(r,a){var l=p.settings.theme_static_path+"/"+r,n="script_"+r.replace(".","_"),e=d.getElementById(n);if(e===null)e=d.createElement("script"),e.setAttribute("id",n),e.setAttribute("src",l),e.onload=a,e.onerror=function(){e.setAttribute("error","1")},d.body.appendChild(e);else if(e.hasAttribute("error"))console.log("callback not executed : script '"+l+"' not loaded.");else try{a.apply(e,[])}catch(t){console.log(t)}},p.insertBefore=function(r,a){a.parentNode.insertBefore(r,a)},p.insertAfter=function(r,a){a.parentNode.insertAfter(r,a.nextSibling)},p.on(".close","click",function(){this.parentNode.classList.add("invisible")});function m(){for(var r of d.getElementsByTagName("body")[0].classList.values())if(r.endsWith("_endpoint"))return r.split("_")[0];return""}return p.endpoint=m(),p}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var d=h.getElementById("results").classList.contains("only_template_images");function u(){var r=h.createElement("div");return r.classList.add("loader"),r}function p(r,a){r.textContent="",a.forEach(l=>r.appendChild(l))}function m(r){var a=h.querySelector("#pagination form.next_page");if(a){p(h.querySelector("#pagination"),[u()]);var l=new FormData(a);searxng.http("POST",h.querySelector("#search").getAttribute("action"),l).then(function(n){var e=new DOMParser().parseFromString(n,"text/html"),t=e.querySelectorAll("#urls article"),o=e.querySelector("#pagination");h.querySelector("#pagination").remove(),t.length>0&&!d&&h.querySelector("#urls").appendChild(h.createElement("hr")),t.forEach(c=>{h.querySelector("#urls").appendChild(c)}),o&&(h.querySelector("#results").appendChild(o),r())}).catch(function(n){console.log(n);var e=h.createElement("div");e.textContent=searxng.settings.translations.error_loading_next_page,e.classList.add("dialog-error"),e.setAttribute("role","alert"),p(h.querySelector("#pagination"),[e])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const r={rootMargin:"20rem"},a="article.result:last-child",l=new IntersectionObserver(n=>{const e=n[0];e.isIntersecting&&(l.unobserve(e.target),m(()=>l.observe(h.querySelector(a),r)))});l.observe(h.querySelector(a),r)}});searxng.ready(function(){function h(i){for(;i!==void 0;){if(i.classList.contains("detail"))return!0;if(i.classList.contains("result"))return!1;i=i.parentNode}return!1}function d(i){for(;i!==void 0;){if(i.classList.contains("result"))return i;i=i.parentNode}}function u(i){return i&&i.classList.contains("result-images")}searxng.on(".result","click",function(i){if(!h(i.target)){a(this)(!0,!0);let f=d(i.target);u(f)&&(i.preventDefault(),searxng.selectImage(f))}}),searxng.on(".result a","focus",function(i){if(!h(i.target)){let f=d(i.target);f&&f.getAttribute("data-vim-selected")===null&&a(f)(!0),u(f)&&searxng.selectImage(f)}},!0);var p={Escape:{key:"ESC",fun:n,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:O,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:_,des:"toggle help window",cat:"Other"},i:{key:"i",fun:v,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:t(),des:"go to next page",cat:"Results"},o:{key:"o",fun:b(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:o(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:l,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:b(!0),des:"open the result in a new tab",cat:"Results"}},m={default:Object.assign({ArrowLeft:{key:"←",fun:a("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:a("down"),des:"select next search result",cat:"Results"}},p),vim:Object.assign({b:{key:"b",fun:s(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:s(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:s(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:s(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:g(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:g(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:a("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:a("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:O,des:"copy url of the selected result to the clipboard",cat:"Results"}},p)},r=m[searxng.settings.hotkeys]||m.default;searxng.on(document,"keydown",function(i){if(Object.prototype.hasOwnProperty.call(r,i.key)&&!i.ctrlKey&&!i.altKey&&!i.shiftKey&&!i.metaKey){var f=i.target.tagName.toLowerCase();i.key==="Escape"?r[i.key].fun(i):(i.target===document.body||f==="a"||f==="button")&&(i.preventDefault(),r[i.key].fun())}});function a(i){return function(f,M){var E=document.querySelector(".result[data-vim-selected]"),A=i;if(E===null){if(E=document.querySelector(".result"),E===null)return;(i==="down"||i==="up")&&(A=E)}var y,w=document.querySelectorAll(".result");if(w=Array.from(w),typeof A!="string")y=A;else switch(A){case"visible":for(var T=document.documentElement.scrollTop||document.body.scrollTop,x=T+document.documentElement.clientHeight,I=0;IT)break}break;case"down":y=w[w.indexOf(E)+1]||E;break;case"up":y=w[w.indexOf(E)-1]||E;break;case"bottom":y=w[w.length-1];break;case"top":default:y=w[0]}if(y){if(E.removeAttribute("data-vim-selected"),y.setAttribute("data-vim-selected","true"),!M){var D=y.querySelector("h3 a")||y.querySelector("a");D!==null&&D.focus()}f||c()}}}function l(){document.location.reload(!0)}function n(i){const f=i.target.tagName.toLowerCase();document.activeElement&&(f==="input"||f==="select"||f==="textarea")?document.activeElement.blur():searxng.closeDetail()}function e(i){return function(){var f=document.querySelector(i);f&&f.click()}}function t(){return e('nav#pagination .next_page button[type="submit"]')}function o(){return e('nav#pagination .previous_page button[type="submit"]')}function c(){var i=document.querySelector(".result[data-vim-selected]");if(i!==null){var f=document.documentElement.scrollTop||document.body.scrollTop,M=document.documentElement.clientHeight,E=i.offsetTop,A=E+i.clientHeight,y=120;if(i.previousElementSibling===null&&AE-y)window.scroll(window.scrollX,E-y);else{var w=f+M;w a")),f!==null){var M=f.getAttribute("href");i?window.open(M):window.location.href=M}}}function k(i){var f={};for(var M in r){var E=r[M];f[E.cat]=f[E.cat]||[],f[E.cat].push(E)}var A=Object.keys(f).sort(function(N,D){return f[D].length-f[N].length});if(A.length!==0){var y='×';y+="

    How to navigate SearXNG with hotkeys

    ",y+="";for(var w=0;w"),y+="",(!I||x)&&(y+="")}y+="
    ",y+="

    "+T[0].cat+"

    ",y+='
      ';for(var R in T)y+="
    • "+T[R].key+" "+T[R].des+"
    • ";y+="
    ",y+="
    ",i.innerHTML=y}}function _(){var i=document.querySelector("#vim-hotkeys-help");if(i==null){i=document.createElement("div"),i.id="vim-hotkeys-help",i.className="dialog-modal",k(i);var f=document.getElementsByTagName("body")[0];f.appendChild(i)}else{i.classList.toggle("invisible");return}}function O(){var i=document.querySelector(".result[data-vim-selected] h3 a");if(i===null)return;const f=i.getAttribute("href");navigator.clipboard.writeText(f)}searxng.scrollPageToSelected=c,searxng.selectNext=a("down"),searxng.selectPrevious=a("up")});(function(h,d,u){u.ready(function(){u.on(".searxng_init_map","click",function(p){this.classList.remove("searxng_init_map");var m=this.dataset.leafletTarget,r=parseFloat(this.dataset.mapLon),a=parseFloat(this.dataset.mapLat),l=parseFloat(this.dataset.mapZoom),n=JSON.parse(this.dataset.mapBoundingbox),e=JSON.parse(this.dataset.mapGeojson);u.loadStyle("css/leaflet.css"),u.loadScript("js/leaflet.js",function(){var t=null;if(n){var o=L.latLng(n[0],n[2]),c=L.latLng(n[1],n[3]);t=L.latLngBounds(o,c)}var s=L.map(m),g="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",v='Map data © OpenStreetMap contributors',b=new L.TileLayer(g,{minZoom:1,maxZoom:19,attribution:v}),k="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",_='Wikimedia maps | Maps data © OpenStreetMap contributors',O=new L.TileLayer(k,{minZoom:1,maxZoom:19,attribution:_});t?setTimeout(function(){s.fitBounds(t,{maxZoom:17})},0):r&&a&&(l?s.setView(new L.latLng(a,r),l):s.setView(new L.latLng(a,r),8)),s.addLayer(b);var i={"OSM Mapnik":b,"OSM Wikimedia":O};L.control.layers(i).addTo(s),e&&L.geoJson(e).addTo(s)}),p.preventDefault()})})})(window,document,window.searxng);(function(h,d,u){u.endpoint==="preferences"&&u.ready(function(){let p=null;function m(){p==null&&u.http("GET","engine_descriptions.json").then(function(t){p=JSON.parse(t);for(const[o,c]of Object.entries(p)){let s=d.querySelectorAll('[data-engine-name="'+o+'"] .engine-description');for(const g of s){let v=" ("+u.settings.translations.Source+": "+c[1]+")";g.innerHTML=c[0]+v}}})}for(const t of d.querySelectorAll("[data-engine-name]"))u.on(t,"mouseenter",m);const r=d.querySelectorAll(".enable-all-engines"),a=d.querySelectorAll(".disable-all-engines"),l=d.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),n=t=>{for(const o of l)o.offsetParent!==null&&(o.checked=!t)};for(const t of r)u.on(t,"click",()=>n(!0));for(const t of a)u.on(t,"click",()=>n(!1));const e=d.querySelector("#copy-hash");u.on(e,"click",t=>{t.preventDefault(),navigator.clipboard.writeText(e.dataset.hash),e.innerText=e.dataset.copiedText})})})(window,document,window.searxng);/*! + */window.searxng=function(h,s){h.Element&&function(o){o.matches=o.matches||o.matchesSelector||o.webkitMatchesSelector||o.msMatchesSelector||function(l){for(var n=this,r=(n.parentNode||n.document).querySelectorAll(l),t=-1;r[++t]&&r[t]!=n;);return!!r[t]}}(Element.prototype);function i(o,l,n){try{o.call(l,n)}catch(r){console.log(r)}}var p=window.searxng||{};p.on=function(o,l,n,r){r=r||!1,typeof o!="string"?o.addEventListener(l,n,r):s.addEventListener(l,function(t){for(var a=t.target||t.srcElement,f=!1;a&&a.matches&&a!==s&&!(f=a.matches(o));)a=a.parentElement;f&&i(n,a,t)},r)},p.ready=function(o){document.readyState!="loading"?o.call(h):h.addEventListener("DOMContentLoaded",o.bind(h))},p.http=function(o,l,n=null){return new Promise(function(r,t){try{var a=new XMLHttpRequest;a.open(o,l,!0),a.timeout=2e4,a.onload=function(){a.status==200?r(a.response,a.responseType):t(Error(a.statusText))},a.onerror=function(){t(Error("Network Error"))},a.onabort=function(){t(Error("Transaction is aborted"))},a.ontimeout=function(){t(Error("Timeout"))},n?a.send(n):a.send()}catch(f){t(f)}})},p.loadStyle=function(o){var l=p.settings.theme_static_path+"/"+o,n="style_"+o.replace(".","_"),r=s.getElementById(n);r===null&&(r=s.createElement("link"),r.setAttribute("id",n),r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("href",l),s.body.appendChild(r))},p.loadScript=function(o,l){var n=p.settings.theme_static_path+"/"+o,r="script_"+o.replace(".","_"),t=s.getElementById(r);if(t===null)t=s.createElement("script"),t.setAttribute("id",r),t.setAttribute("src",n),t.onload=l,t.onerror=function(){t.setAttribute("error","1")},s.body.appendChild(t);else if(t.hasAttribute("error"))console.log("callback not executed : script '"+n+"' not loaded.");else try{l.apply(t,[])}catch(a){console.log(a)}},p.insertBefore=function(o,l){l.parentNode.insertBefore(o,l)},p.insertAfter=function(o,l){l.parentNode.insertAfter(o,l.nextSibling)},p.on(".close","click",function(){this.parentNode.classList.add("invisible")});function g(){for(var o of s.getElementsByTagName("body")[0].classList.values())if(o.endsWith("_endpoint"))return o.split("_")[0];return""}return p.endpoint=g(),p}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var s=h.getElementById("results").classList.contains("only_template_images");function i(){var o=h.createElement("div");return o.classList.add("loader"),o}function p(o,l){o.textContent="",l.forEach(n=>o.appendChild(n))}function g(o){var l=h.querySelector("#pagination form.next_page");if(l){p(h.querySelector("#pagination"),[i()]);var n=new FormData(l);searxng.http("POST",h.querySelector("#search").getAttribute("action"),n).then(function(r){var t=new DOMParser().parseFromString(r,"text/html"),a=t.querySelectorAll("#urls article"),f=t.querySelector("#pagination");h.querySelector("#pagination").remove(),a.length>0&&!s&&h.querySelector("#urls").appendChild(h.createElement("hr")),a.forEach(b=>{h.querySelector("#urls").appendChild(b)}),f&&(h.querySelector("#results").appendChild(f),o())}).catch(function(r){console.log(r);var t=h.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page,t.classList.add("dialog-error"),t.setAttribute("role","alert"),p(h.querySelector("#pagination"),[t])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const o={rootMargin:"20rem"},l="article.result:last-child",n=new IntersectionObserver(r=>{const t=r[0];t.isIntersecting&&(n.unobserve(t.target),g(()=>n.observe(h.querySelector(l),o)))});n.observe(h.querySelector(l),o)}});searxng.ready(function(){function h(e){for(;e!==void 0;){if(e.classList.contains("detail"))return!0;if(e.classList.contains("result"))return!1;e=e.parentNode}return!1}function s(e){for(;e!==void 0;){if(e.classList.contains("result"))return e;e=e.parentNode}}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(e){if(!h(e.target)){l(this)(!0,!0);let u=s(e.target);i(u)&&(e.preventDefault(),searxng.selectImage(u))}}),searxng.on(".result a","focus",function(e){if(!h(e.target)){let u=s(e.target);u&&u.getAttribute("data-vim-selected")===null&&l(u)(!0),i(u)&&searxng.selectImage(u)}},!0);var p={Escape:{key:"ESC",fun:r,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:T,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:a(),des:"go to next page",cat:"Results"},o:{key:"o",fun:y(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:f(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:n,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:y(!0),des:"open the result in a new tab",cat:"Results"}},g={default:Object.assign({ArrowLeft:{key:"←",fun:l("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:l("down"),des:"select next search result",cat:"Results"}},p),vim:Object.assign({b:{key:"b",fun:c(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:c(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:c(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:c(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:d(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:d(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:l("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:l("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"}},p)},o=g[searxng.settings.hotkeys]||g.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(o,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var u=e.target.tagName.toLowerCase();e.key==="Escape"?o[e.key].fun(e):(e.target===document.body||u==="a"||u==="button")&&(e.preventDefault(),o[e.key].fun())}});function l(e){return function(u,_){var E=document.querySelector(".result[data-vim-selected]"),k=e;if(E===null){if(E=document.querySelector(".result"),E===null)return;(e==="down"||e==="up")&&(k=E)}var v,w=document.querySelectorAll(".result");if(w=Array.from(w),typeof k!="string")v=k;else switch(k){case"visible":for(var q=document.documentElement.scrollTop||document.body.scrollTop,B=q+document.documentElement.clientHeight,x=0;xq)break}break;case"down":v=w[w.indexOf(E)+1]||E;break;case"up":v=w[w.indexOf(E)-1]||E;break;case"bottom":v=w[w.length-1];break;case"top":default:v=w[0]}if(v){if(E.removeAttribute("data-vim-selected"),v.setAttribute("data-vim-selected","true"),!_){var C=v.querySelector("h3 a")||v.querySelector("a");C!==null&&C.focus()}u||b()}}}function n(){document.location.reload(!0)}function r(e){const u=e.target.tagName.toLowerCase();document.activeElement&&(u==="input"||u==="select"||u==="textarea")?document.activeElement.blur():searxng.closeDetail()}function t(e){return function(){var u=document.querySelector(e);u&&u.click()}}function a(){return t('nav#pagination .next_page button[type="submit"]')}function f(){return t('nav#pagination .previous_page button[type="submit"]')}function b(){var e=document.querySelector(".result[data-vim-selected]");if(e!==null){var u=document.documentElement.scrollTop||document.body.scrollTop,_=document.documentElement.clientHeight,E=e.offsetTop,k=E+e.clientHeight,v=120;if(e.previousElementSibling===null&&k<_){window.scroll(window.scrollX,0);return}if(u>E-v)window.scroll(window.scrollX,E-v);else{var w=u+_;w a")),u!==null){var _=u.getAttribute("href");e?window.open(_):window.location.href=_}}}function S(e){var u={};for(var _ in o){var E=o[_];u[E.cat]=u[E.cat]||[],u[E.cat].push(E)}var k=Object.keys(u).sort(function(M,C){return u[C].length-u[M].length});if(k.length!==0){var v='×';v+="

    How to navigate SearXNG with hotkeys

    ",v+="";for(var w=0;w"),v+="",(!x||B)&&(v+="")}v+="
    ",v+="

    "+q[0].cat+"

    ",v+='
      ';for(var I in q)v+="
    • "+q[I].key+" "+q[I].des+"
    • ";v+="
    ",v+="
    ",e.innerHTML=v}}function T(){var e=document.querySelector("#vim-hotkeys-help");if(e==null){e=document.createElement("div"),e.id="vim-hotkeys-help",e.className="dialog-modal",S(e);var u=document.getElementsByTagName("body")[0];u.appendChild(e)}else{e.classList.toggle("invisible");return}}function A(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const u=e.getAttribute("href");navigator.clipboard.writeText(u)}searxng.scrollPageToSelected=b,searxng.selectNext=l("down"),searxng.selectPrevious=l("up")});(function(h,s,i){i.ready(function(){i.on(".searxng_init_map","click",function(p){this.classList.remove("searxng_init_map");var g=this.dataset.leafletTarget,o=parseFloat(this.dataset.mapLon),l=parseFloat(this.dataset.mapLat),n=parseFloat(this.dataset.mapZoom),r=JSON.parse(this.dataset.mapBoundingbox),t=JSON.parse(this.dataset.mapGeojson);i.loadStyle("css/leaflet.css"),i.loadScript("js/leaflet.js",function(){var a=null;if(r){var f=L.latLng(r[0],r[2]),b=L.latLng(r[1],r[3]);a=L.latLngBounds(f,b)}var c=L.map(g),d="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",m='Map data © OpenStreetMap contributors',y=new L.TileLayer(d,{minZoom:1,maxZoom:19,attribution:m}),S="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",T='Wikimedia maps | Maps data © OpenStreetMap contributors',A=new L.TileLayer(S,{minZoom:1,maxZoom:19,attribution:T});a?setTimeout(function(){c.fitBounds(a,{maxZoom:17})},0):o&&l&&(n?c.setView(new L.latLng(l,o),n):c.setView(new L.latLng(l,o),8)),c.addLayer(y);var e={"OSM Mapnik":y,"OSM Wikimedia":A};L.control.layers(e).addTo(c),t&&L.geoJson(t).addTo(c)}),p.preventDefault()})})})(window,document,window.searxng);(function(h,s,i){i.endpoint==="preferences"&&i.ready(function(){let p=null;function g(){p==null&&i.http("GET","engine_descriptions.json").then(function(a){p=JSON.parse(a);for(const[f,b]of Object.entries(p)){let c=s.querySelectorAll('[data-engine-name="'+f+'"] .engine-description');for(const d of c){let m=" ("+i.settings.translations.Source+": "+b[1]+")";d.innerHTML=b[0]+m}}})}for(const a of s.querySelectorAll("[data-engine-name]"))i.on(a,"mouseenter",g);const o=s.querySelectorAll(".enable-all-engines"),l=s.querySelectorAll(".disable-all-engines"),n=s.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),r=a=>{for(const f of n)f.offsetParent!==null&&(f.checked=!a)};for(const a of o)i.on(a,"click",()=>r(!0));for(const a of l)i.on(a,"click",()=>r(!1));const t=s.querySelector("#copy-hash");i.on(t,"click",a=>{a.preventDefault(),navigator.clipboard.writeText(t.dataset.hash),t.innerText=t.dataset.copiedText})})})(window,document,window.searxng);/*! * swiped-events.js - v@version@ * Pure JavaScript swipe events * https://github.com/john-doherty/swiped-events * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element * @author John Doherty * @license MIT - */(function(h,d){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(s,g){g=g||{bubbles:!1,cancelable:!1,detail:void 0};var v=d.createEvent("CustomEvent");return v.initCustomEvent(s,g.bubbles,g.cancelable,g.detail),v},h.CustomEvent.prototype=h.Event.prototype),d.addEventListener("touchstart",t,!1),d.addEventListener("touchmove",o,!1),d.addEventListener("touchend",e,!1);var u=null,p=null,m=null,r=null,a=null,l=null,n=0;function e(s){if(l===s.target){var g=parseInt(c(l,"data-swipe-threshold","20"),10),v=c(l,"data-swipe-unit","px"),b=parseInt(c(l,"data-swipe-timeout","500"),10),k=Date.now()-a,_="",O=s.changedTouches||s.touches||[];if(v==="vh"&&(g=Math.round(g/100*d.documentElement.clientHeight)),v==="vw"&&(g=Math.round(g/100*d.documentElement.clientWidth)),Math.abs(m)>Math.abs(r)?Math.abs(m)>g&&k0?_="swiped-left":_="swiped-right"):Math.abs(r)>g&&k0?_="swiped-up":_="swiped-down"),_!==""){var i={dir:_.replace(/swiped-/,""),touchType:(O[0]||{}).touchType||"direct",fingers:n,xStart:parseInt(u,10),xEnd:parseInt((O[0]||{}).clientX||-1,10),yStart:parseInt(p,10),yEnd:parseInt((O[0]||{}).clientY||-1,10)};l.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:i})),l.dispatchEvent(new CustomEvent(_,{bubbles:!0,cancelable:!0,detail:i}))}u=null,p=null,a=null}}function t(s){s.target.getAttribute("data-swipe-ignore")!=="true"&&(l=s.target,a=Date.now(),u=s.touches[0].clientX,p=s.touches[0].clientY,m=0,r=0,n=s.touches.length)}function o(s){if(!(!u||!p)){var g=s.touches[0].clientX,v=s.touches[0].clientY;m=u-g,r=p-v}}function c(s,g,v){for(;s&&s!==d.documentElement;){var b=s.getAttribute(g);if(b)return b;s=s.parentNode}return v}})(window,document);(function(h,d,u){u.endpoint==="results"&&u.ready(function(){d.querySelectorAll("#urls img").forEach(l=>l.addEventListener("error",()=>{l.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),d.querySelector("#search_url button#copy_url")&&(d.querySelector("#search_url button#copy_url").style.display="block"),u.on(".btn-collapse","click",function(){var l=this.getAttribute("data-btn-text-collapsed"),n=this.getAttribute("data-btn-text-not-collapsed"),e=this.getAttribute("data-target"),t=d.querySelector(e),o=this.innerHTML;this.classList.contains("collapsed")?o=o.replace(l,n):o=o.replace(n,l),this.innerHTML=o,this.classList.toggle("collapsed"),t.classList.toggle("invisible")}),u.on(".media-loader","click",function(){var l=this.getAttribute("data-target"),n=d.querySelector(l+" > iframe"),e=n.getAttribute("src");(e==null||e===!1)&&n.setAttribute("src",n.getAttribute("data-src"))}),u.on("#copy_url","click",function(){var l=this.parentElement.querySelector("pre");navigator.clipboard.writeText(l.innerText),this.innerText=this.dataset.copiedText});let p;const m=d.createElement("div");m.classList.add("loader");const r=new Image,a=(l,n)=>{p&&clearTimeout(p),p=setTimeout(()=>{r.src=l},1e3),r.onload=()=>{n(),m.remove()},r.onerror=()=>{m.remove()}};u.selectImage=l=>{if(d.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",u.scrollPageToSelected(),!l)return;const n=l.querySelector(".result-images-source img");if(!n)return;const e=n.getAttribute("data-src");if(!e)return;const t=l.querySelector(".image_thumbnail");n.src=t.src,l.querySelector(".detail").appendChild(m),a(e,()=>{n.src=e,n.removeAttribute("data-src")})},u.closeDetail=function(){d.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),u.scrollPageToSelected()},u.on(".result-detail-close","click",l=>{l.preventDefault(),u.closeDetail()}),u.on(".result-detail-previous","click",l=>{l.preventDefault(),u.selectPrevious(!1)}),u.on(".result-detail-next","click",l=>{l.preventDefault(),u.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&u.closeDetail()}),d.querySelectorAll(".swipe-horizontal").forEach(l=>{l.addEventListener("swiped-left",function(){u.selectNext(!1)}),l.addEventListener("swiped-right",function(){u.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var l=d.getElementById("backToTop"),n=document.documentElement.scrollTop||document.body.scrollTop,e=d.getElementById("results");l!==null&&(n>=100?e.classList.add("scrolling"):e.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);function P(h){return h&&h.__esModule&&Object.prototype.hasOwnProperty.call(h,"default")?h.default:h}function C(h){throw new Error('Could not dynamically require "'+h+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var q={exports:{}},H;function B(){return H||(H=1,function(h,d){(function(u){h.exports=u()})(function(){return function(){function u(p,m,r){function a(e,t){if(!m[e]){if(!p[e]){var o=typeof C=="function"&&C;if(!t&&o)return o(e,!0);if(l)return l(e,!0);var c=new Error("Cannot find module '"+e+"'");throw c.code="MODULE_NOT_FOUND",c}var s=m[e]={exports:{}};p[e][0].call(s.exports,function(g){var v=p[e][1][g];return a(v||g)},s,s.exports,u,p,m,r)}return m[e].exports}for(var l=typeof C=="function"&&C,n=0;n=b.From&&o.keyCode<=b.To?v=!b.Not:v=b.Not))};for(var s in n.prototype.getEventsByType(e,t)){var g=n.merge({Operator:r.AND},e.KeyboardMappings[s]),v=r.AND==g.Operator;g.Conditions.forEach(c),v===!0&&g.Callback.call(e,o)}},n.prototype.makeRequest=function(e,t,o){var c=Object.getOwnPropertyNames(e.HttpHeaders),s=new XMLHttpRequest,g=e._HttpMethod(),v=e._Url(),b=e._Pre(),k=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(b);g.match(/^GET$/i)&&(v.indexOf("?")!==-1?v+="&"+k:v+="?"+k),s.open(g,v,!0);for(var _=c.length-1;_>=0;_--)s.setRequestHeader(c[_],e.HttpHeaders[c[_]]);return s.onreadystatechange=function(){s.readyState==4&&s.status==200?(e.$Cache[b]=s.response,t(s.response)):s.status>=400&&o()},s},n.prototype.ajax=function(e,t,o){o===void 0&&(o=!0),e.$AjaxTimer&&window.clearTimeout(e.$AjaxTimer),o===!0?e.$AjaxTimer=window.setTimeout(n.prototype.ajax.bind(null,e,t,!1),e.Delay):(e.Request&&e.Request.abort(),e.Request=t,e.Request.send(e._QueryArg()+"="+e._Pre()))},n.prototype.cache=function(e,t,o){var c=e._Cache(e._Pre());if(c===void 0){var s=n.prototype.makeRequest(e,t,o);n.prototype.ajax(e,s)}else t(c)},n.prototype.destroy=function(e){for(var t in e.$Listeners)e.Input.removeEventListener(t,e.$Listeners[t]);e.DOMResults.parentNode.removeChild(e.DOMResults)},n.merge=function(){for(var e={},t,o=0;o"+e+""}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:!1}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");t!==null&&(e.preventDefault(),this._Select(t),this.DOMResults.setAttribute("class","autocomplete"))}},Operator:r.AND,Event:a.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(e){e.preventDefault()},Operator:r.OR,Event:a.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),o=this.DOMResults.querySelector("li:last-child:not(.locked)"),c=this.DOMResults.querySelector("li.active");if(c){var s=Array.prototype.indexOf.call(c.parentNode.children,c),g=s+(e.keyCode-39),v=this.DOMResults.getElementsByTagName("li").length;g<0?g=v-1:g>=v&&(g=0),c.classList.remove("active"),c.parentElement.children.item(g).classList.add("active")}else o&&e.keyCode==38?o.classList.add("active"):t&&t.classList.add("active")},Operator:r.OR,Event:a.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:!0},{From:35,To:40,Not:!0}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();t!==""&&t.length>=this._MinChars()?((!e||t!=e)&&this.DOMResults.setAttribute("class","autocomplete open"),n.prototype.cache(this,(function(o){this._Render(this._Post(o)),this._Open()}).bind(this),this._Error)):this._Close()},Operator:r.AND,Event:a.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";return this.Input.hasAttribute("data-autocomplete-empty-message")?e=this.Input.getAttribute("data-autocomplete-empty-message"):this.EmptyMessage!==!1?e=this.EmptyMessage:e="",e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");return isNaN(e)||e===null?this.Limit:parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");return isNaN(e)||e===null?this.MinChars:parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){return this.Input.hasAttribute("data-autocomplete-method")?this.Input.getAttribute("data-autocomplete-method"):this.HttpMethod},_QueryArg:function(){return this.Input.hasAttribute("data-autocomplete-param-name")?this.Input.getAttribute("data-autocomplete-param-name"):this.QueryArg},_Url:function(){return this.Input.hasAttribute("data-autocomplete")?this.Input.getAttribute("data-autocomplete"):this.Url},_Blur:function(e){if(e===void 0&&(e=!1),e)this._Close();else{var t=this;setTimeout(function(){t._Blur(!0)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");(!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length&&this.DOMResults.setAttribute("class","autocomplete open")},_Open:function(){var e=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){t.getAttribute("class")!="locked"&&(t.onclick=function(){e._Select(t)})})},_Close:function(){this.DOMResults.setAttribute("class","autocomplete")},_Position:function(){this.DOMResults.setAttribute("class","autocomplete"),this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;typeof e=="string"?t=this._RenderRaw(e):t=this._RenderResponseItems(e),this.DOMResults.hasChildNodes()&&this.DOMResults.removeChild(this.DOMResults.childNodes[0]),this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),o=document.createElement("li"),c=this._Limit();c<0?e=e.reverse():c===0&&(c=e.length);for(var s=0;s0)this.DOMResults.innerHTML=e;else{var c=this._EmptyMessage();c!==""&&(o.innerHTML=c,o.setAttribute("class","locked"),t.appendChild(o))}return t},_Post:function(e){try{var t=[],o=JSON.parse(e);if(Object.keys(o).length===0)return"";if(Array.isArray(o))for(var c=0;c0){var n=document.getElementById("search");setTimeout(n.submit.bind(n),0)}}function l(n){var e=document.getElementById("clear_search"),t=function(){n.value.length===0?e.classList.add("empty"):e.classList.remove("empty")};t(),e.addEventListener("click",function(o){n.value="",n.focus(),t(),o.preventDefault()}),n.addEventListener("input",t,!1)}u.ready(function(){m=d.getElementById(p),m!==null&&(l(m),u.settings.autocomplete&&(u.autocomplete=S.call(h,{Url:"./autocompleter",EmptyMessage:u.settings.translations.no_item_found,HttpMethod:u.settings.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:u.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(o){o.getAttribute("class")!="locked"&&(o.onmousedown=function(){t._Select(o)})})},_Select:function(t){S.defaults._Select.call(this,t);var o=t.closest("form");o&&o.submit()},_MinChars:function(){return this.Input.value.indexOf("!")>-1?0:S.defaults._MinChars.call(this)},KeyboardMappings:Object.assign({},S.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},S.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(t){S.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,t);var o=this.DOMResults.querySelector("li.active");o&&S.defaults._Select.call(this,o)}}),Tab:Object.assign({},S.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:!1}],Callback:function(t){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var o=this.DOMResults.querySelector("li.active");o!==null&&(S.defaults._Select.call(this,o),t.preventDefault())}}})})},"#"+p)),S.prototype.ajax=function(t,o,c){c===void 0&&(c=!0),t.$AjaxTimer&&window.clearTimeout(t.$AjaxTimer),c===!0?t.$AjaxTimer=window.setTimeout(S.prototype.ajax.bind(null,t,o,!1),t.Delay):(t.Request&&t.Request.abort(),t.Request=o,t.Request.send(encodeURIComponent(t._QueryArg())+"="+encodeURIComponent(t._Pre())))},!r&&document.querySelector(".index_endpoint")&&m.focus()),m!==null&&u.settings.search_on_category_select&&d.querySelector(".search_filters")!=null&&(u.on(d.getElementById("safesearch"),"change",a),u.on(d.getElementById("time_range"),"change",a),u.on(d.getElementById("language"),"change",a));const n=d.querySelectorAll("button.category_button");for(let t of n)u.on(t,"click",o=>{if(o.shiftKey){o.preventDefault(),t.classList.toggle("selected");return}const c=d.querySelectorAll("button.category_button.selected");for(let s of c)s.classList.remove("selected");t.classList.add("selected")});const e=d.querySelector("#search");e!=null&&u.on(e,"submit",t=>{t.preventDefault();const o=d.querySelector("#selected-categories");if(o){let c=[];for(let s of n)s.classList.contains("selected")&&c.push(s.name.replace("category_",""));o.value=c.join(",")}e.submit()})})})(window,document,window.searxng); + */(function(h,s){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(c,d){d=d||{bubbles:!1,cancelable:!1,detail:void 0};var m=s.createEvent("CustomEvent");return m.initCustomEvent(c,d.bubbles,d.cancelable,d.detail),m},h.CustomEvent.prototype=h.Event.prototype),s.addEventListener("touchstart",a,!1),s.addEventListener("touchmove",f,!1),s.addEventListener("touchend",t,!1);var i=null,p=null,g=null,o=null,l=null,n=null,r=0;function t(c){if(n===c.target){var d=parseInt(b(n,"data-swipe-threshold","20"),10),m=b(n,"data-swipe-unit","px"),y=parseInt(b(n,"data-swipe-timeout","500"),10),S=Date.now()-l,T="",A=c.changedTouches||c.touches||[];if(m==="vh"&&(d=Math.round(d/100*s.documentElement.clientHeight)),m==="vw"&&(d=Math.round(d/100*s.documentElement.clientWidth)),Math.abs(g)>Math.abs(o)?Math.abs(g)>d&&S0?T="swiped-left":T="swiped-right"):Math.abs(o)>d&&S0?T="swiped-up":T="swiped-down"),T!==""){var e={dir:T.replace(/swiped-/,""),touchType:(A[0]||{}).touchType||"direct",fingers:r,xStart:parseInt(i,10),xEnd:parseInt((A[0]||{}).clientX||-1,10),yStart:parseInt(p,10),yEnd:parseInt((A[0]||{}).clientY||-1,10)};n.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:e})),n.dispatchEvent(new CustomEvent(T,{bubbles:!0,cancelable:!0,detail:e}))}i=null,p=null,l=null}}function a(c){c.target.getAttribute("data-swipe-ignore")!=="true"&&(n=c.target,l=Date.now(),i=c.touches[0].clientX,p=c.touches[0].clientY,g=0,o=0,r=c.touches.length)}function f(c){if(!(!i||!p)){var d=c.touches[0].clientX,m=c.touches[0].clientY;g=i-d,o=p-m}}function b(c,d,m){for(;c&&c!==s.documentElement;){var y=c.getAttribute(d);if(y)return y;c=c.parentNode}return m}})(window,document);(function(h,s,i){i.endpoint==="results"&&i.ready(function(){s.querySelectorAll("#urls img").forEach(n=>n.addEventListener("error",()=>{n.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),s.querySelector("#search_url button#copy_url")&&(s.querySelector("#search_url button#copy_url").style.display="block"),i.on(".btn-collapse","click",function(){var n=this.getAttribute("data-btn-text-collapsed"),r=this.getAttribute("data-btn-text-not-collapsed"),t=this.getAttribute("data-target"),a=s.querySelector(t),f=this.innerHTML;this.classList.contains("collapsed")?f=f.replace(n,r):f=f.replace(r,n),this.innerHTML=f,this.classList.toggle("collapsed"),a.classList.toggle("invisible")}),i.on(".media-loader","click",function(){var n=this.getAttribute("data-target"),r=s.querySelector(n+" > iframe"),t=r.getAttribute("src");(t==null||t===!1)&&r.setAttribute("src",r.getAttribute("data-src"))}),i.on("#copy_url","click",function(){var n=this.parentElement.querySelector("pre");navigator.clipboard.writeText(n.innerText),this.innerText=this.dataset.copiedText});let p;const g=s.createElement("div");g.classList.add("loader");const o=new Image,l=(n,r)=>{p&&clearTimeout(p),p=setTimeout(()=>{o.src=n},1e3),o.onload=()=>{r(),g.remove()},o.onerror=()=>{g.remove()}};i.selectImage=n=>{if(s.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",i.scrollPageToSelected(),!n)return;const r=n.querySelector(".result-images-source img");if(!r)return;const t=r.getAttribute("data-src");if(!t)return;const a=n.querySelector(".image_thumbnail");r.src=a.src,n.querySelector(".detail").appendChild(g),l(t,()=>{r.src=t,r.removeAttribute("data-src")})},i.closeDetail=function(){s.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),i.scrollPageToSelected()},i.on(".result-detail-close","click",n=>{n.preventDefault(),i.closeDetail()}),i.on(".result-detail-previous","click",n=>{n.preventDefault(),i.selectPrevious(!1)}),i.on(".result-detail-next","click",n=>{n.preventDefault(),i.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&i.closeDetail()}),s.querySelectorAll(".swipe-horizontal").forEach(n=>{n.addEventListener("swiped-left",function(){i.selectNext(!1)}),n.addEventListener("swiped-right",function(){i.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var n=s.getElementById("backToTop"),r=document.documentElement.scrollTop||document.body.scrollTop,t=s.getElementById("results");n!==null&&(r>=100?t.classList.add("scrolling"):t.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);(function(h,s,i){var p="q",g;const o=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(g.value.length>0){var t=document.getElementById("search");setTimeout(t.submit.bind(t),0)}}function n(t){var a=document.getElementById("clear_search"),f=function(){t.value.length===0?a.classList.add("empty"):a.classList.remove("empty")};f(),a.addEventListener("click",function(b){t.value="",t.focus(),f(),b.preventDefault()}),t.addEventListener("input",f,!1)}const r=async t=>{let a;if(i.settings.method==="GET"){const f=new URLSearchParams;f.append("q",t),a=fetch("./autocompleter?"+f.toString())}else{const f=new FormData;f.append("q",t),a=fetch("./autocompleter",{method:"POST",body:f})}a.then(async function(f){const b=await f.json();if(!b)return;const c=s.querySelector(".autocomplete"),d=s.querySelector(".autocomplete ul");if(c.classList.add("open"),d.innerHTML="",!b[1]||b[1].length==0){const m=document.createElement("li");m.classList.add("no-item-found"),m.innerHTML=i.settings.translations.no_item_found,d.appendChild(m);return}for(let m of b[1]){const y=document.createElement("li");y.innerText=m,i.on(y,"mousedown",()=>{g.value=m,s.querySelector("#search").submit(),c.classList.remove("open")}),d.appendChild(y)}})};i.ready(function(){o||document.getElementById("q").focus(),g=s.getElementById(p);const t=s.querySelector(".autocomplete"),a=s.querySelector(".autocomplete ul");g!==null&&(n(g),i.settings.autocomplete&&(i.on(g,"input",()=>{const c=g.value;c.length{c==g.value&&r(c)},300)}),i.on(g,"keyup",c=>{let d=-1;const m=a.children;for(let S=0;S=0&&m[d].classList.remove("active"),y=(d-1+m.length)%m.length):c.key==="ArrowDown"?(d>=0&&m[d].classList.remove("active"),y=(d+1)%m.length):(c.key==="Tab"||c.key==="Enter")&&t.classList.remove("open"),y!=-1){const S=m[y];S.classList.add("active"),S.classList.contains("no-item-found")||(g.value=S.innerText)}}))),g!==null&&i.settings.search_on_category_select&&s.querySelector(".search_filters")!=null&&(i.on(s.getElementById("safesearch"),"change",l),i.on(s.getElementById("time_range"),"change",l),i.on(s.getElementById("language"),"change",l));const f=s.querySelectorAll("button.category_button");for(let c of f)i.on(c,"click",d=>{if(d.shiftKey){d.preventDefault(),c.classList.toggle("selected");return}const m=s.querySelectorAll("button.category_button.selected");for(let y of m)y.classList.remove("selected");c.classList.add("selected")});const b=s.querySelector("#search");b!=null&&i.on(b,"submit",c=>{c.preventDefault();const d=s.querySelector("#selected-categories");if(d){let m=[];for(let y of f)y.classList.contains("selected")&&m.push(y.name.replace("category_",""));d.value=m.join(",")}b.submit()})})})(window,document,window.searxng); //# sourceMappingURL=searxng.min.js.map diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index ded00532a..f454d84c0 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/node_modules/autocomplete-js/dist/autocomplete.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
    element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
    element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

    How to navigate SearXNG with hotkeys

    ';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
    ';\n\n html += '

    ' + cat[0].cat + '

    ';\n html += '
      ';\n\n for (var cj in cat) {\n html += '
    • ' + cat[cj].key + ' ' + cat[cj].des + '
    • ';\n }\n\n html += '
    ';\n html += '
    ';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\nimport AutoComplete from \"../../../node_modules/autocomplete-js/dist/autocomplete.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n })\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","d","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","f","module","r","n","t","o","c","require","u","p","exports","ConditionOperator","EventType","AutoComplete","input","specificParams","type","mappings","eventIdentifier","condition","match","mapping","name","callbackErr","propertyHttpHeaders","request","queryParams","queryParamsStringify","timeout","merge","tmp","value","liActive","last","active","currentIndex","lisCount","oldValue","currentValue","emptyMessage","limit","minchars","label","now","li","ul","item","returnResponse","json","qinput_id","qinput","isMobile","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"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","x_google_ignoreList":[5,7]} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
    element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
    element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

    How to navigate SearXNG with hotkeys

    ';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
    ';\n\n html += '

    ' + cat[0].cat + '

    ';\n html += '
      ';\n\n for (var cj in cat) {\n html += '
    • ' + cat[cj].key + ' ' + cat[cj].des + '
    • ';\n }\n\n html += '
    ';\n html += '
    ';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n const fetchResults = async (query) => {\n let request;\n if (searxng.settings.method === 'GET') {\n const reqParams = new URLSearchParams();\n reqParams.append(\"q\", query);\n request = fetch(\"./autocompleter?\" + reqParams.toString());\n } else {\n const formData = new FormData();\n formData.append(\"q\", query);\n request = fetch(\"./autocompleter\", {\n method: 'POST',\n body: formData,\n });\n }\n\n request.then(async function (response) {\n const results = await response.json();\n\n if (!results) return;\n\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n autocomplete.classList.add(\"open\");\n autocompleteList.innerHTML = \"\";\n\n // show an error message that no result was found\n if (!results[1] || results[1].length == 0) {\n const noItemFoundMessage = document.createElement(\"li\");\n noItemFoundMessage.classList.add('no-item-found');\n noItemFoundMessage.innerHTML = searxng.settings.translations.no_item_found;\n autocompleteList.appendChild(noItemFoundMessage);\n return;\n }\n\n for (let result of results[1]) {\n const li = document.createElement(\"li\");\n li.innerText = result;\n\n searxng.on(li, 'mousedown', () => {\n qinput.value = result;\n const form = d.querySelector(\"#search\");\n form.submit();\n autocomplete.classList.remove('open');\n });\n autocompleteList.appendChild(li);\n }\n });\n };\n\n searxng.ready(function () {\n // focus search input on large screens\n if (!isMobile) document.getElementById(\"q\").focus();\n\n qinput = d.getElementById(qinput_id);\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.on(qinput, 'input', () => {\n const query = qinput.value;\n if (query.length < searxng.settings.autocomplete_min) return;\n\n setTimeout(() => {\n if (query == qinput.value) fetchResults(query);\n }, 300);\n });\n\n searxng.on(qinput, 'keyup', (e) => {\n let currentIndex = -1;\n const listItems = autocompleteList.children;\n for (let i = 0; i < listItems.length; i++) {\n if (listItems[i].classList.contains('active')) {\n currentIndex = i;\n break;\n }\n }\n\n let newCurrentIndex = -1;\n if (e.key === \"ArrowUp\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n // we need to add listItems.length to the index calculation here because the JavaScript modulos\n // operator doesn't work with negative numbers\n newCurrentIndex = (currentIndex - 1 + listItems.length) % listItems.length;\n } else if (e.key === \"ArrowDown\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n newCurrentIndex = (currentIndex + 1) % listItems.length;\n } else if (e.key === \"Tab\" || e.key === \"Enter\") {\n autocomplete.classList.remove('open');\n }\n\n if (newCurrentIndex != -1) {\n const selectedItem = listItems[newCurrentIndex];\n selectedItem.classList.add('active');\n\n if (!selectedItem.classList.contains('no-item-found')) qinput.value = selectedItem.innerText;\n }\n });\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n });\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","d","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","qinput_id","qinput","isMobile","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","fetchResults","query","request","reqParams","autocomplete","autocompleteList","noItemFoundMessage","result","li","currentIndex","listItems","newCurrentIndex","selectedItem","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"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","x_google_ignoreList":[5]} \ No newline at end of file From d29cf64ce4932916affd68232aed19d01c6758b5 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 22 May 2025 16:23:30 +0200 Subject: [PATCH 392/417] [mod] searx.data: lazy load of the data objects (databases) (#4834) In the previous implementation, all databases were loaded into memory when importing the searx.data package, regardless of whether they were ever needed. Regardless of this, it is an antipattern to load entire databases into memory when importing a package or module; databases should be loaded when needed. Lazy loading is a first step toward improving memory usage and also improves performance when setting up the runtime environment. Building on this, subsequent PRs will be able to further optimize memory behavior, e.g., by using a real database application such as the one already available via searx.cache.ExpireCache Related: - https://github.com/searxng/searxng/discussions/1892 - https://github.com/searxng/searxng/pull/3458 - https://github.com/searxng/searxng/pull/4650 Signed-off-by: Markus Heiser --- searx/data/__init__.py | 81 ++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 26 deletions(-) diff --git a/searx/data/__init__.py b/searx/data/__init__.py index 28a3974fa..48455ebe3 100644 --- a/searx/data/__init__.py +++ b/searx/data/__init__.py @@ -5,28 +5,68 @@ """ -__all__ = [ - 'ENGINE_TRAITS', - 'CURRENCIES', - 'USER_AGENTS', - 'EXTERNAL_URLS', - 'WIKIDATA_UNITS', - 'EXTERNAL_BANGS', - 'OSM_KEYS_TAGS', - 'ENGINE_DESCRIPTIONS', - 'LOCALES', - 'ahmia_blacklist_loader', -] + +__all__ = ["ahmia_blacklist_loader"] import json from pathlib import Path +import typing + +from searx import logger + +log = logger.getChild("data") data_dir = Path(__file__).parent +CURRENCIES: dict[str, typing.Any] +USER_AGENTS: dict[str, typing.Any] +EXTERNAL_URLS: dict[str, typing.Any] +WIKIDATA_UNITS: dict[str, typing.Any] +EXTERNAL_BANGS: dict[str, typing.Any] +OSM_KEYS_TAGS: dict[str, typing.Any] +ENGINE_DESCRIPTIONS: dict[str, typing.Any] +ENGINE_TRAITS: dict[str, typing.Any] +LOCALES: dict[str, typing.Any] -def _load(filename): - with open(data_dir / filename, encoding='utf-8') as f: - return json.load(f) +lazy_globals = { + "CURRENCIES": None, + "USER_AGENTS": None, + "EXTERNAL_URLS": None, + "WIKIDATA_UNITS": None, + "EXTERNAL_BANGS": None, + "OSM_KEYS_TAGS": None, + "ENGINE_DESCRIPTIONS": None, + "ENGINE_TRAITS": None, + "LOCALES": None, +} + +data_json_files = { + "CURRENCIES": "currencies.json", + "USER_AGENTS": "useragents.json", + "EXTERNAL_URLS": "external_urls.json", + "WIKIDATA_UNITS": "wikidata_units.json", + "EXTERNAL_BANGS": "external_bangs.json", + "OSM_KEYS_TAGS": "osm_keys_tags.json", + "ENGINE_DESCRIPTIONS": "engine_descriptions.json", + "ENGINE_TRAITS": "engine_traits.json", + "LOCALES": "locales.json", +} + + +def __getattr__(name): + # lazy init of the global objects + if name not in lazy_globals: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + data = lazy_globals[name] + if data is not None: + return data + + log.debug("init searx.data.%s", name) + with open(data_dir / data_json_files[name], encoding='utf-8') as f: + lazy_globals[name] = json.load(f) + + return lazy_globals[name] def ahmia_blacklist_loader(): @@ -40,14 +80,3 @@ def ahmia_blacklist_loader(): """ with open(data_dir / 'ahmia_blacklist.txt', encoding='utf-8') as f: return f.read().split() - - -CURRENCIES = _load('currencies.json') -USER_AGENTS = _load('useragents.json') -EXTERNAL_URLS = _load('external_urls.json') -WIKIDATA_UNITS = _load('wikidata_units.json') -EXTERNAL_BANGS = _load('external_bangs.json') -OSM_KEYS_TAGS = _load('osm_keys_tags.json') -ENGINE_DESCRIPTIONS = _load('engine_descriptions.json') -ENGINE_TRAITS = _load('engine_traits.json') -LOCALES = _load('locales.json') From 98badc9cd0cfd00405014f843de7dd883d75ecca Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 22 May 2025 17:43:11 +0200 Subject: [PATCH 393/417] [fix] searx.data: fetch-traits - z-library (httpx.ConnectError) (#4835) There is currently no known z-library, and all known URLs are dead [1]. To avoid interrupting automated updates, a connection error to a z-library is treated as a *known error*, and the old properties of the z-library are retained. [1] https://github.com/searxng/searxng/issues/3610 Signed-off-by: Markus Heiser --- searx/engines/zlibrary.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/searx/engines/zlibrary.py b/searx/engines/zlibrary.py index c9acb28fe..6357232af 100644 --- a/searx/engines/zlibrary.py +++ b/searx/engines/zlibrary.py @@ -180,6 +180,8 @@ def fetch_traits(engine_traits: EngineTraits) -> None: # pylint: disable=import-outside-toplevel, too-many-branches import babel + import httpx + from searx.network import get # see https://github.com/searxng/searxng/issues/762 from searx.locales import language_tag @@ -191,7 +193,7 @@ def fetch_traits(engine_traits: EngineTraits) -> None: try: resp = get(base_url, verify=False) - except SearxException as exc: + except (SearxException, httpx.ConnectError) as exc: print(f"ERROR: zlibrary domain '{base_url}' is seized?") print(f" --> {exc}") _use_old_values() From 4fa7de80334deee51845550c4cfa11f94edb5e88 Mon Sep 17 00:00:00 2001 From: useralias <212567668+useralias@users.noreply.github.com> Date: Fri, 23 May 2025 07:01:10 -0400 Subject: [PATCH 394/417] [refactor] duckduckgo engine: improve request logic and code structure (#4837) Changes: - Add trailing slash to base URL to prevent potential redirects - Remove advanced search syntax filtering (no longer guarantees a CAPTCHA) - Correct pagination offset calculation: Page 2 now starts at offset 10, subsequent pages use 10 + (n-2)*15 formula instead of the previous broken 20 + (n-2)*50 calculation that caused CAPTCHAs - Restructure request parameter building to better match a real request - "kt" cookie is no longer an empty string if the language/region is "all" - Group related parameter assignments together - Add header logging to debugging output Related: - https://github.com/searxng/searxng/issues/4824 --- searx/engines/duckduckgo.py | 117 ++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 66 deletions(-) diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index 2b6888af7..d877d596b 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -58,7 +58,7 @@ paging = True time_range_support = True safesearch = True # user can't select but the results are filtered -url = "https://html.duckduckgo.com/html" +url = "https://html.duckduckgo.com/html/" time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm', 'year': 'y'} form_data = {'v': 'l', 'api': 'd.js', 'o': 'json'} @@ -248,7 +248,6 @@ def quote_ddg_bangs(query): def request(query, params): - query = quote_ddg_bangs(query) if len(query) >= 500: @@ -256,93 +255,79 @@ def request(query, params): params["url"] = None return - # Advanced search syntax ends in CAPTCHA - # https://duckduckgo.com/duckduckgo-help-pages/results/syntax/ - query = " ".join( - [ - x.removeprefix("site:").removeprefix("intitle:").removeprefix("inurl:").removeprefix("filetype:") - for x in query.split() - ] - ) eng_region: str = traits.get_region(params['searxng_locale'], traits.all_locale) # type: ignore - if eng_region == "wt-wt": - # https://html.duckduckgo.com/html sets an empty value for "all". - eng_region = "" - params['data']['kl'] = eng_region - params['cookies']['kl'] = eng_region + # Note: The API is reverse-engineered from DuckDuckGo's HTML webpage + # (https://html.duckduckgo.com/html/) and may be subject to additional bot detection mechanisms + # and breaking changes in the future. + # + # The params['data'] dictionary can have the following key parameters, in this order: + # - q (str): Search query string + # - b (str): Beginning parameter - empty string for first page requests + # - s (int): Search offset for pagination + # - nextParams (str): Continuation parameters from previous page response, typically empty + # - v (str): Typically 'l' for subsequent pages + # - o (str): Output format, typically 'json' + # - dc (int): Display count - value equal to offset (s) + 1 + # - api (str): API endpoint identifier, typically 'd.js' + # - vqd (str): Validation query digest + # - kl (str): Keyboard language/region code (e.g., 'en-us') + # - df (str): Time filter, maps to values like 'd' (day), 'w' (week), 'm' (month), 'y' (year) - # eng_lang = get_ddg_lang(traits, params['searxng_locale']) - - params['url'] = url - params['method'] = 'POST' params['data']['q'] = query - # The API is not documented, so we do some reverse engineering and emulate - # what https://html.duckduckgo.com/html does when you press "next Page" link - # again and again .. - - params['headers']['Content-Type'] = 'application/x-www-form-urlencoded' - - params['headers']['Sec-Fetch-Dest'] = "document" - params['headers']['Sec-Fetch-Mode'] = "navigate" # at least this one is used by ddg's bot detection - params['headers']['Sec-Fetch-Site'] = "same-origin" - params['headers']['Sec-Fetch-User'] = "?1" - - # Form of the initial search page does have empty values in the form if params['pageno'] == 1: - params['data']['b'] = "" - - params['data']['df'] = '' - if params['time_range'] in time_range_dict: - - params['data']['df'] = time_range_dict[params['time_range']] - params['cookies']['df'] = time_range_dict[params['time_range']] - - if params['pageno'] == 2: - - # second page does have an offset of 20 - offset = (params['pageno'] - 1) * 20 + elif params['pageno'] >= 2: + offset = 10 + (params['pageno'] - 2) * 15 # Page 2 = 10, Page 3+ = 10 + n*15 params['data']['s'] = offset - params['data']['dc'] = offset + 1 - - elif params['pageno'] > 2: - - # third and following pages do have an offset of 20 + n*50 - offset = 20 + (params['pageno'] - 2) * 50 - params['data']['s'] = offset - params['data']['dc'] = offset + 1 - - if params['pageno'] > 1: - - # initial page does not have these additional data in the input form - params['data']['o'] = form_data.get('o', 'json') - params['data']['api'] = form_data.get('api', 'd.js') params['data']['nextParams'] = form_data.get('nextParams', '') params['data']['v'] = form_data.get('v', 'l') - params['headers']['Referer'] = url + params['data']['o'] = form_data.get('o', 'json') + params['data']['dc'] = offset + 1 + params['data']['api'] = form_data.get('api', 'd.js') + # vqd is required to request other pages after the first one vqd = get_vqd(query, eng_region, force_request=False) - - # Certain conditions must be met in order to call up one of the - # following pages ... - if vqd: - params['data']['vqd'] = vqd # follow up pages / requests needs a vqd argument + params['data']['vqd'] = vqd else: - # Don't try to call follow up pages without a vqd value. DDG - # recognizes this as a request from a bot. This lowers the + # Don't try to call follow up pages without a vqd value. + # DDG recognizes this as a request from a bot. This lowers the # reputation of the SearXNG IP and DDG starts to activate CAPTCHAs. params["url"] = None return if params['searxng_locale'].startswith("zh"): - # Some locales (at least China) do not have a "next page" button and ddg + # Some locales (at least China) do not have a "next page" button and DDG # will return a HTTP/2 403 Forbidden for a request of such a page. params["url"] = None return + # Put empty kl in form data if language/region set to all + if eng_region == "wt-wt": + params['data']['kl'] = "" + else: + params['data']['kl'] = eng_region + + params['data']['df'] = '' + if params['time_range'] in time_range_dict: + params['data']['df'] = time_range_dict[params['time_range']] + params['cookies']['df'] = time_range_dict[params['time_range']] + + params['cookies']['kl'] = eng_region + + params['url'] = url + params['method'] = 'POST' + + params['headers']['Content-Type'] = 'application/x-www-form-urlencoded' + params['headers']['Referer'] = url + params['headers']['Sec-Fetch-Dest'] = "document" + params['headers']['Sec-Fetch-Mode'] = "navigate" # at least this one is used by ddg's bot detection + params['headers']['Sec-Fetch-Site'] = "same-origin" + params['headers']['Sec-Fetch-User'] = "?1" + + logger.debug("param headers: %s", params['headers']) logger.debug("param data: %s", params['data']) logger.debug("param cookies: %s", params['cookies']) From 1ef5c03962de29085b63d7df457764a180f36967 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 23 May 2025 14:55:22 +0200 Subject: [PATCH 395/417] [fix] ddg engine: IndexError exception is raised on empty contend (#4843) Sometimes (e.g. when ddg does not have a result item) there is no content and the engine will fail with an IndexError: * Error: IndexError * Percentage: 10 * Parameters: `()` * File name: `searx/engines/duckduckgo.py:375` * Function: `response` * Code: `item["content"] = extract_text(eval_xpath(div_result, './/a[contains(@class, "result__snippet")]')[0])` Signed-off-by: Markus Heiser --- searx/engines/duckduckgo.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index d877d596b..06299e6aa 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -372,8 +372,9 @@ def response(resp) -> EngineResults: continue item["title"] = extract_text(title) item["url"] = eval_xpath(div_result, './/h2/a/@href')[0] - item["content"] = extract_text(eval_xpath(div_result, './/a[contains(@class, "result__snippet")]')[0]) - + item["content"] = extract_text( + eval_xpath_getindex(div_result, './/a[contains(@class, "result__snippet")]', 0, []) + ) results.append(item) zero_click_info_xpath = '//div[@id="zero_click_abstract"]' From 230215c250ac7937f7c0d6690f6ed64cd03350a9 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 23 May 2025 17:11:41 +0200 Subject: [PATCH 396/417] [fix] preferences: description not localized for all UI languages (#4844) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous implementation for determining the description of an engine did not take into account that the UI languages ​​can also have a region tag and/or a script tag: el-GR: Ελληνικά, Ελλάδα (Greek, Greece) fa-IR: فارسی, ایران (Persian, Iran) nb-NO: Norsk bokmål, Norge (Norwegian bokmål, Norway) nl-BE: Nederlands, België (Dutch, Belgium) pt-BR: Português, Brasil (Portuguese, Brazil) zh-HK: 中文, 中國香港特別行政區 (Chinese, Hong Kong SAR China) zh-Hans-CN: 中文, 中国 (Chinese, China) zh-Hant-TW: 中文, 台灣 (Chinese, Taiwan) Closes: https://github.com/searxng/searxng/issues/4842 Signed-off-by: Markus Heiser --- searx/webapp.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/searx/webapp.py b/searx/webapp.py index aaa2608c4..22e31fb5c 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -106,6 +106,7 @@ from searx.metrics import get_engines_stats, get_engine_errors, get_reliabilitie from searx.flaskfix import patch_application from searx.locales import ( + LOCALE_BEST_MATCH, LOCALE_NAMES, RTL_LOCALES, localeselector, @@ -1059,10 +1060,12 @@ def image_proxy(): @app.route('/engine_descriptions.json', methods=['GET']) def engine_descriptions(): - locale = get_locale().split('_')[0] + sxng_ui_lang_tag = get_locale().replace("_", "-") + sxng_ui_lang_tag = LOCALE_BEST_MATCH.get(sxng_ui_lang_tag, sxng_ui_lang_tag) + result = ENGINE_DESCRIPTIONS['en'].copy() - if locale != 'en': - for engine, description in ENGINE_DESCRIPTIONS.get(locale, {}).items(): + if sxng_ui_lang_tag != 'en': + for engine, description in ENGINE_DESCRIPTIONS.get(sxng_ui_lang_tag, {}).items(): result[engine] = description for engine, description in result.items(): if len(description) == 2 and description[1] == 'ref': From 9ed9a9aa53a17df476437fb16c24c44e7c345f56 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Sat, 24 May 2025 12:40:05 +0200 Subject: [PATCH 397/417] [fix] searx.network: don't trigger DeprecationWarning (#4845) Avoid a confusing warning: DeprecationWarning: Setting per-request cookies=<...> is being deprecated Code based on httpx unit test [1] [1] https://github.com/encode/httpx/blob/6a99f6f2b3a638719f70200de9983f80d618ee1c/tests/client/test_cookies.py#L123-L137 Closes: https://github.com/searxng/searxng/issues/4833 --- searx/network/network.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/searx/network/network.py b/searx/network/network.py index 178ebcbf2..8e2a1f12d 100644 --- a/searx/network/network.py +++ b/searx/network/network.py @@ -180,7 +180,7 @@ class Network: Network._TOR_CHECK_RESULT[proxies] = result return result - async def get_client(self, verify=None, max_redirects=None): + async def get_client(self, verify=None, max_redirects=None) -> httpx.AsyncClient: verify = self.verify if verify is None else verify max_redirects = self.max_redirects if max_redirects is None else max_redirects local_address = next(self._local_addresses_cycle) @@ -269,6 +269,8 @@ class Network: kwargs_clients = Network.extract_kwargs_clients(kwargs) while retries >= 0: # pragma: no cover client = await self.get_client(**kwargs_clients) + cookies = kwargs.pop("cookies", None) + client.cookies = httpx.Cookies(cookies) try: if stream: response = client.stream(method, url, **kwargs) From 064eb504733c250d2e43b6db8ac37812ad18d2fa Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sat, 24 May 2025 13:14:13 +0200 Subject: [PATCH 398/417] [mod] engines: Yahoo in different languages (#4826) BTW fix issue reported in [1] [1] https://github.com/searxng/searxng/pull/4814#issuecomment-2896948787 Signed-off-by: Markus Heiser Co-authored-by: Bnyro --- searx/engines/yahoo.py | 107 +++++++++++++++++++++++++++-------------- 1 file changed, 70 insertions(+), 37 deletions(-) diff --git a/searx/engines/yahoo.py b/searx/engines/yahoo.py index 92da30e23..63b007729 100644 --- a/searx/engines/yahoo.py +++ b/searx/engines/yahoo.py @@ -44,6 +44,29 @@ time_range_dict = { 'month': ('1m', 'm'), } +region2domain = { + "CO": "co.search.yahoo.com", # Colombia + "TH": "th.search.yahoo.com", # Thailand + "VE": "ve.search.yahoo.com", # Venezuela + "CL": "cl.search.yahoo.com", # Chile + "HK": "hk.search.yahoo.com", # Hong Kong + "PE": "pe.search.yahoo.com", # Peru + "CA": "ca.search.yahoo.com", # Canada + "DE": "de.search.yahoo.com", # Germany + "FR": "fr.search.yahoo.com", # France + "TW": "tw.search.yahoo.com", # Taiwan + "GB": "uk.search.yahoo.com", # United Kingdom + "UK": "uk.search.yahoo.com", + "BR": "br.search.yahoo.com", # Brazil + "IN": "in.search.yahoo.com", # India + "ES": "espanol.search.yahoo.com", # Espanol + "PH": "ph.search.yahoo.com", # Philippines + "AR": "ar.search.yahoo.com", # Argentina + "MX": "mx.search.yahoo.com", # Mexico + "SG": "sg.search.yahoo.com", # Singapore +} +"""Map regions to domain""" + lang2domain = { 'zh_chs': 'hk.search.yahoo.com', 'zh_cht': 'tw.search.yahoo.com', @@ -65,40 +88,40 @@ lang2domain = { yahoo_languages = { "all": "any", - "ar": "ar", - "bg": "bg", - "cs": "cs", - "da": "da", - "de": "de", - "el": "el", - "en": "en", - "es": "es", - "et": "et", - "fi": "fi", - "fr": "fr", - "he": "he", - "hr": "hr", - "hu": "hu", - "it": "it", - "ja": "ja", - "ko": "ko", - "lt": "lt", - "lv": "lv", - "nl": "nl", - "no": "no", - "pl": "pl", - "pt": "pt", - "ro": "ro", - "ru": "ru", - "sk": "sk", - "sl": "sl", - "sv": "sv", - "th": "th", - "tr": "tr", - "zh": "zh_chs", + "ar": "ar", # Arabic + "bg": "bg", # Bulgarian + "cs": "cs", # Czech + "da": "da", # Danish + "de": "de", # German + "el": "el", # Greek + "en": "en", # English + "es": "es", # Spanish + "et": "et", # Estonian + "fi": "fi", # Finnish + "fr": "fr", # French + "he": "he", # Hebrew + "hr": "hr", # Croatian + "hu": "hu", # Hungarian + "it": "it", # Italian + "ja": "ja", # Japanese + "ko": "ko", # Korean + "lt": "lt", # Lithuanian + "lv": "lv", # Latvian + "nl": "nl", # Dutch + "no": "no", # Norwegian + "pl": "pl", # Polish + "pt": "pt", # Portuguese + "ro": "ro", # Romanian + "ru": "ru", # Russian + "sk": "sk", # Slovak + "sl": "sl", # Slovenian + "sv": "sv", # Swedish + "th": "th", # Thai + "tr": "tr", # Turkish + "zh": "zh_chs", # Chinese (Simplified) "zh_Hans": "zh_chs", 'zh-CN': "zh_chs", - "zh_Hant": "zh_cht", + "zh_Hant": "zh_cht", # Chinese (Traditional) "zh-HK": "zh_cht", 'zh-TW': "zh_cht", } @@ -107,7 +130,7 @@ yahoo_languages = { def request(query, params): """build request""" - lang = params["language"].split("-")[0] + lang, region = (params["language"].split("-") + [None])[:2] lang = yahoo_languages.get(lang, "any") offset = (params['pageno'] - 1) * 7 + 1 @@ -127,9 +150,11 @@ def request(query, params): } ) - domain = lang2domain.get(lang, '%s.search.yahoo.com' % lang) + domain = region2domain.get(region) + if not domain: + domain = lang2domain.get(lang, '%s.search.yahoo.com' % lang) params['url'] = 'https://%s/search?%s' % (domain, args) - return params + params['domain'] = domain def parse_url(url_string): @@ -157,14 +182,22 @@ def response(resp): results = [] dom = html.fromstring(resp.text) + url_xpath = './/div[contains(@class,"compTitle")]/h3/a/@href' + title_xpath = './/h3//a/@aria-label' + + domain = resp.search_params['domain'] + if domain == "search.yahoo.com": + url_xpath = './/div[contains(@class,"compTitle")]/a/@href' + title_xpath = './/div[contains(@class,"compTitle")]/a/h3/span' + # parse results for result in eval_xpath_list(dom, '//div[contains(@class,"algo-sr")]'): - url = eval_xpath_getindex(result, './/div[contains(@class,"compTitle")]/a/@href', 0, default=None) + url = eval_xpath_getindex(result, url_xpath, 0, default=None) if url is None: continue url = parse_url(url) - title = eval_xpath_getindex(result, './/div[contains(@class,"compTitle")]/a/h3/span', 0, default='') + title = eval_xpath_getindex(result, title_xpath, 0, default='') title: str = extract_text(title) content = eval_xpath_getindex(result, './/div[contains(@class, "compText")]', 0, default='') content: str = extract_text(content, allow_none=True) From e46187e3ce1fd118951c0e40eb8432af75acad7c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 25 May 2025 10:36:27 +0200 Subject: [PATCH 399/417] [l10n] update translations from Weblate (#4840) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 51e0a154c - 2025-05-22 - Priit Jõerüüt 256b8cb8e - 2025-05-16 - wetinee ac12b76a8 - 2025-05-16 - wetinee Co-authored-by: searxng-bot --- searx/translations/et/LC_MESSAGES/messages.mo | Bin 21062 -> 21066 bytes searx/translations/et/LC_MESSAGES/messages.po | 14 ++--- searx/translations/th/LC_MESSAGES/messages.mo | Bin 29675 -> 32249 bytes searx/translations/th/LC_MESSAGES/messages.po | 52 ++++++++++-------- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo index c6990d0e71519cd3b69b2c5e67b70eb52b2bddf5..4ca574548ed1bb397b22579194579a6a2f57cc1c 100644 GIT binary patch delta 1411 zcmXZbTS!z<6vpvwO=;dn9WQAaV`VvX8!xE{DdM%%av-!MvOrTyO~^1J8Wl;13JF8( zDN+IpA{s2H9zr3-2m*U3goJ#^hX^8we2M-aXTvbRv-WlEwaNY0M^^MA3el(F$y1HIzGo_{D^V*9sT$hlh9XgOf;5Y4Axqk%1zLu z($G%BDICOHTt-dsR2UP1UQ}W})W+GU#13H|c3~DiM2&lo8n=jAe;IYaHQbM`N+-^( z3>uS0L$Pf*iCUn=#+|5>^`R2GgBx%L`I&kCw6MF%IawOIiL)>f3sDEC!whUdRp1J4 z#2Y~#l<93$DaY|DzC>-5Q|ChnnjKU$*gc0j~bP-RY7pL$dF4*>>I%5imOOP{}J}ku3H>irt+4zI?Gb*7K8?U0q{YF)44Yi&*<{T&j zwQeG2VLH0l-&EQGHK>V=sEMahcYV(GU&mHRpji0dbV^l&fZ2a0fhgxsZx`aB| z3I^5jlLvj*e{elU);q?c`V%k~(@-1wP*>wey)#9qd3ClwU_F7F-)!SH)Kz!exWAtI z>qNse=*~w`C3=8yIE69z3e`Vv<4>rBzFB{v5;6g2d?ad}&8U|(1GP^fuEPq{{OUlJ zGq8~co$L&1VjHTIJ-7`o;~pGEeNJytpVtzqa`_=&(($d42lwUVdi@1O+5XUQ_O1Ao h((ab7)(dAldM~y1%ucs=bj?op_O`Z!c9nVE{{dF3sa600 delta 1407 zcmXZbOGs2v9LMovnVPRrM-59uOVJ+csFT%5kZC?j%U3PbMUzpE307kfqKz07g@h3W zL1cs$w8&_nT7(lbmA2(!$s5r*Fj@qFcXzn9_rviRAPJ4ivcXahp2h)Q1j+d`!Av{xPnD!YMi*Z zCS=S;VxR3ehT7nSjk{4d3!)OciR*A0`I%Y%v~gUmbF*}G5$9qmdQlgs#~f@yRiGcE za3n-SnchH^@-7Zw7b@gvN}N$kTp+h5*j%x>Ze+0=zqqPmSzQe{{s7KvnRY9q@rHdEYvw(T!WRU_0`R_ z&cs$abhA!W0$r$5_Tpwdk2`P-^*OyoeO?Qw%9Vz, 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-03-30 01:58+0000\n" +"PO-Revision-Date: 2025-05-23 07:10+0000\n" "Last-Translator: Priit Jõerüüt \n" +"Language-Team: Estonian \n" "Language: et\n" -"Language-Team: Estonian " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -685,7 +686,7 @@ msgstr "Avalikud serverid" #: searx/templates/simple/base.html:75 msgid "Privacy policy" -msgstr "Privaatsuspoliitika" +msgstr "Andmekaitsepõhimõtted" #: searx/templates/simple/base.html:78 msgid "Contact instance maintainer" @@ -2074,4 +2075,3 @@ msgstr "peida video" #~ msgid "proxied" #~ msgstr "proksiserveris" - diff --git a/searx/translations/th/LC_MESSAGES/messages.mo b/searx/translations/th/LC_MESSAGES/messages.mo index 42dea257fadea1ac27b07dde5075236c84b14112..88eddc80cb3ed94269e6cd641c3cbea86e4b3c71 100644 GIT binary patch delta 7460 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 Gmj4aVuX9BJ delta 5393 zcmYM&3v^9a9>?*0Z?0DoiH5w8#3LjUA_+m#c*HA&CX|vI)=)vcQca?xEWKo8VOF)c z-b2-Rtg5j(!!zlCCazj@T;fCn3m`ZRrK?(+f9wBNBAwq;lD5%!<*UbZLl?Qs*8)T0r4juqi{HChh?Y*W;+*RGVwAb7qbWR@FZ$s zU%VX`hKgIFHqzF`8L0Vk(647vKtqq97`213sGXLfGGE}XuW`PC4Y|GpRhf5?wavSz ziO-=Dzk*u$E^3{BqsBF8Zf(+>`bTgfo(tMZDk|gNuERi7LM7M=M`J$DLG|B@s@Q4g zSyTd_qY}T0O5h=KZcPZgQev^Fc~e_Ze`S=(gWAFJ|BfRE4Wi3ol2lyUy<#TTq$4jVkG0=V8=s^b@5+O{p(Qu zZ=oieG71#__p~a|Ez7};hb|MGge2DGv5_0INf08}@K4(MJnFvQE(gL;9c36s;n1@T< z^^csNpdQgBROxS^5`Tb7Tn9)yjzG;HgP~f#9Sz;cL=EhL+Tmaq&q57Yh)QTVa*)ji z)DCM=3m?PIcn;Oy%U4K=KY>c1CF-oCp$=nrEMk2#ghoePgBoxIRnkABp5=LW{StN} zzK;3Ww2d)caTscW8dT{6s06p7#vej{n~(TI8@%bRKSaMe{FjDyP`|C6APQB1HmLi9 zQ40=3^;?Fj*m`$=3-X4Uw@?*2g1iXk4C)d51GS-lqQ*Z!mNX&B)c<7~?UU_cdlS`R z2d3d3R3cyE2=sAseu1S(5lk)iz|V0wM$(ysZzkY!d<8X6WQsA*VIHc&n^2W_D~0;k zqwy{m^h^$;-rw`+!yA~5w@^DtOtllFV143j)U(b-%`*raU@>l!fYf*laE?p5-P!IsQG?{ntwj35;dst zD=<{={|4JI+ffVu0ll~nHNgRQ{e9E~$1w!YyZe7Z?fgqr0=H1}eCOf^sCgct7WSsw z{$W^O?|(cEb!dfQ*dDb&w!7X9HF3U+3s5^MM19dpPzz2$?Ytbra2~4PV$@-K9hJbF z7>YZk-v3$}8h99Wm`-CDUPeuD6P4gy)CcE2s(*uywo=Vd3&f%lO+_Wt2{o=OYD0Ob z*RmJtk&QvWcJON&rsGsxj2ibnMxrm% z{`hT%`u3+GzfC{>(08N?FW?_DsXvd!EY9Mj;vNjg6})rF_y%^tBdDL}4{$Oz=3+Oj z!ZO^2L$C>-LnS&E^o< ziKn3Yy^R`o4EaH3TJsf(!ak^Y1ga7hn2Xgoj*1>cZLB#z!Bn~4ej0ijmB?&V1y{NF1ghdUk*90?Q9W&jeNY4D z;uu_y+VMS1!tT9nWk#bCD#I2yAD_bYsDy7~EQa^CaWWZUq)4Mox5L)s@%t@ele6; z;|fp-jK;@*|1YD_)MLzxs0nHY+i&|8)PP;61V6wcyoNg683gLz3uiEXjEj%6YO?wv zxtoSV?T_ygoK3tHLoog+>aRuuCrGwN4Qz*6u*f+Bj}yO!YjISut;(HEdxgpFa{VGIfs+&M zTXhwq_5Qakv;QK=#&|lEqDo(ZdZyKwhGCOzNxPvcH4U}%m8cC|KrQe$T!;@b8Rt&6 zk7zUMQSL!)^cY67zPYLfKEys4F~$COObON}UiQ2(pW-S^#Yt0b0)mr*5ufSNFAroEqydIWtj z9BWYbSGxP#Q5D;ZO5h6Wt-0s!mz7h0EmT!*56>dhGx`8^{Q~MWx{gX9p3$wb00-ej zRKMS2Z#;-f_z^0RxLJIxFdengYShlRxcGpdh6Y?jEpXq(2`}1=b5R3JQ1{E7Yfw9W z4^@FvsCgnP?80fN`#qgSIG%Vk4#xeMj#1u9`x<3n5*JQY2GXK)1E-=>10gZr1$?n< zg8O2lJ%QVCI|4`JZ#Al%STS{0)zlZt1J|3^1V3!i&J$>pkQf+{@M*Ap;sQ_bXwvkM zVE48^c!Pc0|KJN0rsoFNq?dStlRCBbg?8(4VCl>i!Q%1^U$CmOCiH*qk%@%> diff --git a/searx/translations/th/LC_MESSAGES/messages.po b/searx/translations/th/LC_MESSAGES/messages.po index 25c143420..7ed43cea6 100644 --- a/searx/translations/th/LC_MESSAGES/messages.po +++ b/searx/translations/th/LC_MESSAGES/messages.po @@ -13,20 +13,22 @@ # Anonymous , 2025. # yuttct , 2025. # return42 , 2025. +# wetinee , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-04-15 10:37+0000\n" -"Last-Translator: return42 \n" +"PO-Revision-Date: 2025-05-17 15:04+0000\n" +"Last-Translator: wetinee \n" +"Language-Team: Thai \n" "Language: th\n" -"Language-Team: Thai " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -445,11 +447,11 @@ msgstr "ทำการสุ่มค่าที่แตกต่างกั #: searx/answerers/statistics.py:36 #, python-brace-format msgid "Compute {func} of the arguments" -msgstr "" +msgstr "คำนวณ {func} ของอาร์กิวเมนต์" #: searx/engines/openstreetmap.py:158 msgid "Show route in map .." -msgstr "" +msgstr "แสดงเส้นทางบนแผนที่ .." #: searx/engines/pdbe.py:96 #, python-brace-format @@ -522,15 +524,15 @@ msgstr "คุณภาพไฟล์" #: searx/plugins/ahmia_filter.py:32 msgid "Ahmia blacklist" -msgstr "" +msgstr "แบล็กลิสต์ Ahmia" #: searx/plugins/ahmia_filter.py:33 msgid "Filter out onion results that appear in Ahmia's blacklist." -msgstr "" +msgstr "กรองผลการค้นหา onion ที่อยู่ในแบล็กลิสต์ Ahmia" #: searx/plugins/calculator.py:38 msgid "Basic Calculator" -msgstr "" +msgstr "เครื่องคิดเลขพื้นฐาน" #: searx/plugins/calculator.py:39 msgid "Calculate mathematical expressions via the search bar" @@ -538,7 +540,7 @@ msgstr "คำนวณนิพจน์คณิตศาสตร์ผ่า #: searx/plugins/hash_plugin.py:34 msgid "Hash plugin" -msgstr "" +msgstr "ปลั๊กอินแฮช" #: searx/plugins/hash_plugin.py:35 msgid "Converts strings to different hash digests." @@ -575,6 +577,8 @@ msgid "" "Displays your IP if the query is \"ip\" and your user agent if the query " "is \"user-agent\"." msgstr "" +"จะแสดง IP ของคุณหากคำค้นคือ 'ip' และแสดงข้อมูล User Agent ของคุณหากคำค้นคือ 'user-" +"agent'" #: searx/plugins/self_info.py:52 msgid "Your IP is: " @@ -599,15 +603,15 @@ msgstr "" #: searx/plugins/tor_check.py:65 msgid "Could not download the list of Tor exit-nodes from" -msgstr "" +msgstr "ไม่สามารถดาวน์โหลดรายการของโหนดทางออกของ Tor จาก" #: searx/plugins/tor_check.py:72 msgid "You are using Tor and it looks like you have the external IP address" -msgstr "" +msgstr "คุณกำลังใช้ Tor และดูเหมือนว่าคุณมีที่อยู่ IP ภายนอก" #: searx/plugins/tor_check.py:76 msgid "You are not using Tor and you have the external IP address" -msgstr "" +msgstr "คุณไม่ได้ใช้ Tor และคุณมีที่อยู่ IP ภายนอก" #: searx/plugins/tracker_url_remover.py:37 msgid "Tracker URL remover" @@ -619,7 +623,7 @@ msgstr "ลบอาร์กิวเมนต์ตัวติดตามอ #: searx/plugins/unit_converter.py:49 msgid "Unit converter plugin" -msgstr "" +msgstr "ปลั๊กอินแปลงหน่วย" #: searx/plugins/unit_converter.py:50 msgid "Convert between units" @@ -931,7 +935,7 @@ msgstr "ตัวอย่าง" #: searx/templates/simple/answer/translations.html:21 msgid "Definitions" -msgstr "" +msgstr "คำนิยาม" #: searx/templates/simple/answer/translations.html:30 msgid "Synonyms" @@ -1090,7 +1094,7 @@ msgstr "อนุญาต" #: searx/templates/simple/preferences/answerers.html:5 msgid "Keywords (first word in query)" -msgstr "" +msgstr "คำหลัก (คำแรกของคำค้นหา)" #: searx/templates/simple/preferences/answerers.html:6 #: searx/templates/simple/result_templates/packages.html:7 @@ -1164,6 +1168,7 @@ msgid "" "A URL containing your preferences. This URL can be used to restore your " "settings on a different device." msgstr "" +"ลิงก์ URL ที่บรรจุค่าการตั้งค่าของคุณ ซึ่งสามารถนำไปใช้กู้คืนการตั้งค่าเหล่านั้นบนอุปกรณ์อื่นได้" #: searx/templates/simple/preferences/cookies.html:46 msgid "Copy preferences hash" @@ -1179,7 +1184,7 @@ msgstr "การตั้งค่าแฮช" #: searx/templates/simple/preferences/doi_resolver.html:1 msgid "Digital Object Identifier (DOI)" -msgstr "" +msgstr "รหัส DOI" #: searx/templates/simple/preferences/doi_resolver.html:6 msgid "Open Access DOI resolver" @@ -1373,23 +1378,23 @@ msgstr "เปลี่ยนภาษาของเค้าโครง" #: searx/templates/simple/preferences/urlformatting.html:2 msgid "URL formatting" -msgstr "" +msgstr "การจัดรูปแบบ URL" #: searx/templates/simple/preferences/urlformatting.html:8 msgid "Pretty" -msgstr "" +msgstr "แบบสวยงาม" #: searx/templates/simple/preferences/urlformatting.html:13 msgid "Full" -msgstr "" +msgstr "แบบเต็ม" #: searx/templates/simple/preferences/urlformatting.html:18 msgid "Host" -msgstr "" +msgstr "โฮสต์" #: searx/templates/simple/preferences/urlformatting.html:23 msgid "Change result URL formatting" -msgstr "" +msgstr "เปลี่ยนรูปแบบ URL ผลการค้นหา" #: searx/templates/simple/result_templates/code.html:13 msgid "repo" @@ -1787,4 +1792,3 @@ msgstr "ซ่อนวิดีโอ" #~ msgid "proxied" #~ msgstr "พร็อกซี่" - From 848c8d0544eb0138da4414a750f79b22883f91b2 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 25 May 2025 10:40:57 +0200 Subject: [PATCH 400/417] [mod] data: implement a simple currencies (SQL) database (#4836) To reduce the memory footprint, this patch no longer loads the JSON data completely into memory. Instead, there is an SQL database based on `ExpireCacheSQLite`. The class CurrenciesDB is a simple DB application that encapsulates the DB (queries and initialization) and provides convenient methods like `name_to_iso4217` and `iso4217_to_name`. Related: - https://github.com/searxng/searxng/discussions/1892 - https://github.com/searxng/searxng/pull/3458#issuecomment-2900807671 - https://github.com/searxng/searxng/pull/4650 Signed-off-by: Markus Heiser --- searx/data/__init__.py | 16 +++---- searx/data/core.py | 29 ++++++++++++ searx/data/currencies.py | 55 ++++++++++++++++++++++ searx/engines/currency_convert.py | 11 +++-- searx/search/processors/online_currency.py | 24 +++------- searxng_extra/update/update_currencies.py | 6 +-- 6 files changed, 106 insertions(+), 35 deletions(-) create mode 100644 searx/data/core.py create mode 100644 searx/data/currencies.py diff --git a/searx/data/__init__.py b/searx/data/__init__.py index 48455ebe3..9be1cd67e 100644 --- a/searx/data/__init__.py +++ b/searx/data/__init__.py @@ -4,21 +4,17 @@ make data.all """ - +from __future__ import annotations __all__ = ["ahmia_blacklist_loader"] import json -from pathlib import Path import typing -from searx import logger +from .core import log, data_dir +from .currencies import CurrenciesDB -log = logger.getChild("data") - -data_dir = Path(__file__).parent - -CURRENCIES: dict[str, typing.Any] +CURRENCIES: CurrenciesDB USER_AGENTS: dict[str, typing.Any] EXTERNAL_URLS: dict[str, typing.Any] WIKIDATA_UNITS: dict[str, typing.Any] @@ -29,7 +25,7 @@ ENGINE_TRAITS: dict[str, typing.Any] LOCALES: dict[str, typing.Any] lazy_globals = { - "CURRENCIES": None, + "CURRENCIES": CurrenciesDB(), "USER_AGENTS": None, "EXTERNAL_URLS": None, "WIKIDATA_UNITS": None, @@ -41,7 +37,6 @@ lazy_globals = { } data_json_files = { - "CURRENCIES": "currencies.json", "USER_AGENTS": "useragents.json", "EXTERNAL_URLS": "external_urls.json", "WIKIDATA_UNITS": "wikidata_units.json", @@ -63,6 +58,7 @@ def __getattr__(name): return data log.debug("init searx.data.%s", name) + with open(data_dir / data_json_files[name], encoding='utf-8') as f: lazy_globals[name] = json.load(f) diff --git a/searx/data/core.py b/searx/data/core.py new file mode 100644 index 000000000..14cc77eb7 --- /dev/null +++ b/searx/data/core.py @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# pylint: disable=missing-module-docstring +from __future__ import annotations + +import pathlib + +from searx import logger +from searx.cache import ExpireCacheCfg, ExpireCacheSQLite + +log = logger.getChild("data") + +data_dir = pathlib.Path(__file__).parent + +_DATA_CACHE: ExpireCacheSQLite = None # type: ignore + + +def get_cache(): + + global _DATA_CACHE # pylint: disable=global-statement + + if _DATA_CACHE is None: + _DATA_CACHE = ExpireCacheSQLite.build_cache( + ExpireCacheCfg( + name="DATA_CACHE", + # MAX_VALUE_LEN=1024 * 200, # max. 200kB length for a *serialized* value. + # MAXHOLD_TIME=60 * 60 * 24 * 7 * 4, # 4 weeks + ) + ) + return _DATA_CACHE diff --git a/searx/data/currencies.py b/searx/data/currencies.py new file mode 100644 index 000000000..a4f2901f0 --- /dev/null +++ b/searx/data/currencies.py @@ -0,0 +1,55 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Simple implementation to store currencies data in a SQL database.""" + +from __future__ import annotations + +__all__ = ["CurrenciesDB"] + +import json +import pathlib + +from .core import get_cache, log + + +class CurrenciesDB: + # pylint: disable=missing-class-docstring + + ctx_names = "data_currencies_names" + ctx_iso4217 = "data_currencies_iso4217" + + json_file = pathlib.Path(__file__).parent / "currencies.json" + + def __init__(self): + self.cache = get_cache() + + def init(self): + if self.cache.properties("currencies loaded") != "OK": + self.load() + self.cache.properties.set("currencies loaded", "OK") + # F I X M E: + # do we need a maintenance .. rember: database is stored + # in /tmp and will be rebuild during the reboot anyway + + def load(self): + log.debug("init searx.data.CURRENCIES") + with open(self.json_file, encoding="utf-8") as f: + data_dict = json.load(f) + for key, value in data_dict["names"].items(): + self.cache.set(key=key, value=value, ctx=self.ctx_names, expire=None) + for key, value in data_dict["iso4217"].items(): + self.cache.set(key=key, value=value, ctx=self.ctx_iso4217, expire=None) + + def name_to_iso4217(self, name): + self.init() + + ret_val = self.cache.get(key=name, default=name, ctx=self.ctx_names) + if isinstance(ret_val, list): + # if more alternatives, use the last in the list + ret_val = ret_val[-1] + return ret_val + + def iso4217_to_name(self, iso4217, language): + self.init() + + iso4217_languages: dict = self.cache.get(key=iso4217, default={}, ctx=self.ctx_names) + return iso4217_languages.get(language, iso4217) diff --git a/searx/engines/currency_convert.py b/searx/engines/currency_convert.py index cbb1d6cc4..c4c757e3f 100644 --- a/searx/engines/currency_convert.py +++ b/searx/engines/currency_convert.py @@ -3,6 +3,7 @@ """ import json +from searx.result_types import EngineResults # about about = { @@ -28,13 +29,15 @@ def request(_query, params): return params -def response(resp): +def response(resp) -> EngineResults: + res = EngineResults() + # remove first and last lines to get only json json_resp = resp.text[resp.text.find('\n') + 1 : resp.text.rfind('\n') - 2] try: conversion_rate = float(json.loads(json_resp)["to"][0]["mid"]) except IndexError: - return [] + return res answer = '{0} {1} = {2} {3}, 1 {1} ({5}) = {4} {3} ({6})'.format( resp.search_params['amount'], resp.search_params['from'], @@ -46,5 +49,5 @@ def response(resp): ) url = f"https://duckduckgo.com/?q={resp.search_params['from']}+to+{resp.search_params['to']}" - - return [{"answer": answer, "url": url}] + res.add(res.types.Answer(answer=answer, url=url)) + return res diff --git a/searx/search/processors/online_currency.py b/searx/search/processors/online_currency.py index 197e0e061..0d7900616 100644 --- a/searx/search/processors/online_currency.py +++ b/searx/search/processors/online_currency.py @@ -12,24 +12,13 @@ from .online import OnlineProcessor parser_re = re.compile('.*?(\\d+(?:\\.\\d+)?) ([^.0-9]+) (?:in|to) ([^.0-9]+)', re.I) -def normalize_name(name): +def normalize_name(name: str): + name = name.strip() name = name.lower().replace('-', ' ').rstrip('s') name = re.sub(' +', ' ', name) return unicodedata.normalize('NFKD', name).lower() -def name_to_iso4217(name): - name = normalize_name(name) - currency = CURRENCIES['names'].get(name, [name]) - if isinstance(currency, str): - return currency - return currency[-1] - - -def iso4217_to_name(iso4217, language): - return CURRENCIES['iso4217'].get(iso4217, {}).get(language, iso4217) - - class OnlineCurrencyProcessor(OnlineProcessor): """Processor class used by ``online_currency`` engines.""" @@ -52,14 +41,15 @@ class OnlineCurrencyProcessor(OnlineProcessor): amount = float(amount_str) except ValueError: return None - from_currency = name_to_iso4217(from_currency.strip()) - to_currency = name_to_iso4217(to_currency.strip()) + + from_currency = CURRENCIES.name_to_iso4217(normalize_name(from_currency)) + to_currency = CURRENCIES.name_to_iso4217(normalize_name(to_currency)) params['amount'] = amount params['from'] = from_currency params['to'] = to_currency - params['from_name'] = iso4217_to_name(from_currency, 'en') - params['to_name'] = iso4217_to_name(to_currency, 'en') + params['from_name'] = CURRENCIES.iso4217_to_name(from_currency, "en") + params['to_name'] = CURRENCIES.iso4217_to_name(to_currency, "en") return params def get_default_tests(self): diff --git a/searxng_extra/update/update_currencies.py b/searxng_extra/update/update_currencies.py index 903bdcb44..288f0994e 100755 --- a/searxng_extra/update/update_currencies.py +++ b/searxng_extra/update/update_currencies.py @@ -15,9 +15,7 @@ import json from searx.locales import LOCALE_NAMES, locales_initialize from searx.engines import wikidata, set_loggers -from searx.data import data_dir - -DATA_FILE = data_dir / 'currencies.json' +from searx.data.currencies import CurrenciesDB set_loggers(wikidata, 'wikidata') locales_initialize() @@ -149,7 +147,7 @@ def main(): if len(db['names'][name]) == 1: db['names'][name] = db['names'][name][0] - with DATA_FILE.open('w', encoding='utf8') as f: + with CurrenciesDB.json_file.open('w', encoding='utf8') as f: json.dump(db, f, indent=4, sort_keys=True, ensure_ascii=False) From 14b8a999f3929975756ed6f9dc33c54977b5cedc Mon Sep 17 00:00:00 2001 From: Ivan Gabaldon Date: Sun, 25 May 2025 14:54:27 +0200 Subject: [PATCH 401/417] [mod] ci: exclude some workflows from forks (#4849) Excludes some workflows/jobs unneeded on forks. Closes https://github.com/searxng/searxng/issues/4847 --- .github/workflows/cleanup.yml | 2 ++ .github/workflows/container.yml | 17 ++++++++++------- .github/workflows/security.yml | 3 ++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml index 85e22ce9d..d6af8feee 100644 --- a/.github/workflows/cleanup.yml +++ b/.github/workflows/cleanup.yml @@ -16,6 +16,8 @@ permissions: jobs: container-cache: + # FIXME: On forks it fails with "Failed to fetch packages: missing field `id` at line 1 column 141" + if: github.repository_owner == 'searxng' || github.event_name == 'workflow_dispatch' name: Container cache runs-on: ubuntu-24.04 permissions: diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index ccdba770e..0285bcd5c 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -36,16 +36,19 @@ jobs: packages: write steps: - - name: Checkout + - if: github.repository_owner == 'searxng' + name: Checkout uses: actions/checkout@v4 with: persist-credentials: "false" - - name: Get date + - if: github.repository_owner == 'searxng' + name: Get date id: date run: echo "date=$(date +'%Y%m%d')" >>$GITHUB_OUTPUT - - name: Check cache apko + - if: github.repository_owner == 'searxng' + name: Check cache apko id: cache-apko uses: actions/cache/restore@v4 with: @@ -54,7 +57,7 @@ jobs: path: "/tmp/.apko/" lookup-only: true - - if: steps.cache-apko.outputs.cache-hit != 'true' + - if: github.repository_owner == 'searxng' && steps.cache-apko.outputs.cache-hit != 'true' name: Setup cache apko uses: actions/cache@v4 with: @@ -63,13 +66,13 @@ jobs: restore-keys: "apko-${{ steps.date.outputs.date }}-" path: "/tmp/.apko/" - - if: steps.cache-apko.outputs.cache-hit != 'true' + - if: github.repository_owner == 'searxng' && steps.cache-apko.outputs.cache-hit != 'true' name: Setup apko run: | eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" brew install apko - - if: steps.cache-apko.outputs.cache-hit != 'true' + - if: github.repository_owner == 'searxng' && steps.cache-apko.outputs.cache-hit != 'true' name: Login to GHCR uses: docker/login-action@v3 with: @@ -77,7 +80,7 @@ jobs: username: "${{ github.repository_owner }}" password: "${{ secrets.GITHUB_TOKEN }}" - - if: steps.cache-apko.outputs.cache-hit != 'true' + - if: github.repository_owner == 'searxng' && steps.cache-apko.outputs.cache-hit != 'true' name: Build run: | eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index e994306b8..73a5fd77f 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -16,6 +16,7 @@ permissions: jobs: container: + if: github.repository_owner == 'searxng' name: Container runs-on: ubuntu-24.04-arm permissions: @@ -30,7 +31,7 @@ jobs: - name: Run Trivy scanner uses: aquasecurity/trivy-action@0.30.0 with: - image-ref: "docker.io/searxng/searxng:latest" + image-ref: "ghcr.io/searxng/searxng:latest" vuln-type: "os,library" severity: "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL" ignore-unfixed: "false" From 9dfdd30da0c5d13398947fce0c35fc996552f8f6 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 25 May 2025 11:49:04 +0200 Subject: [PATCH 402/417] [fix] search: autocomplete focus on results page This has been a regression introduced with the removal of the unmaintained autocomplete.js library. We should only focus the search bar on the main search page at `/` and not at the results page located at `/search`. I'm not sure if there's a better way to figure out if we're on the results page than checking if the id of the main element is `#main_results`, checking the path obviously isn't a better solution because it can differ depending on the instance / reverse proxy / .... - related to https://github.com/searxng/searxng/commit/32823ecb69b115a6726475d6421f0a1c0327fafa - closes https://github.com/searxng/searxng/issues/4846 --- client/simple/src/js/main/search.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/simple/src/js/main/search.js b/client/simple/src/js/main/search.js index 99062fc40..c252dfdb5 100644 --- a/client/simple/src/js/main/search.js +++ b/client/simple/src/js/main/search.js @@ -7,6 +7,7 @@ var qinput_id = "q", qinput; const isMobile = window.matchMedia("only screen and (max-width: 50em)").matches; + const isResultsPage = document.querySelector("main").id == "main_results"; function submitIfQuery () { if (qinput.value.length > 0) { @@ -87,7 +88,7 @@ searxng.ready(function () { // focus search input on large screens - if (!isMobile) document.getElementById("q").focus(); + if (!isMobile && !isResultsPage) document.getElementById("q").focus(); qinput = d.getElementById(qinput_id); const autocomplete = d.querySelector(".autocomplete"); From 7a5a499795e7e34739038510737b8b6c5b607d5b Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 25 May 2025 11:49:28 +0200 Subject: [PATCH 403/417] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 4 ++-- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index ce8fd6aa7..8d0362fab 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -3,12 +3,12 @@ * (C) Copyright Contributors to the SearXNG project. * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later - */window.searxng=function(h,s){h.Element&&function(o){o.matches=o.matches||o.matchesSelector||o.webkitMatchesSelector||o.msMatchesSelector||function(l){for(var n=this,r=(n.parentNode||n.document).querySelectorAll(l),t=-1;r[++t]&&r[t]!=n;);return!!r[t]}}(Element.prototype);function i(o,l,n){try{o.call(l,n)}catch(r){console.log(r)}}var p=window.searxng||{};p.on=function(o,l,n,r){r=r||!1,typeof o!="string"?o.addEventListener(l,n,r):s.addEventListener(l,function(t){for(var a=t.target||t.srcElement,f=!1;a&&a.matches&&a!==s&&!(f=a.matches(o));)a=a.parentElement;f&&i(n,a,t)},r)},p.ready=function(o){document.readyState!="loading"?o.call(h):h.addEventListener("DOMContentLoaded",o.bind(h))},p.http=function(o,l,n=null){return new Promise(function(r,t){try{var a=new XMLHttpRequest;a.open(o,l,!0),a.timeout=2e4,a.onload=function(){a.status==200?r(a.response,a.responseType):t(Error(a.statusText))},a.onerror=function(){t(Error("Network Error"))},a.onabort=function(){t(Error("Transaction is aborted"))},a.ontimeout=function(){t(Error("Timeout"))},n?a.send(n):a.send()}catch(f){t(f)}})},p.loadStyle=function(o){var l=p.settings.theme_static_path+"/"+o,n="style_"+o.replace(".","_"),r=s.getElementById(n);r===null&&(r=s.createElement("link"),r.setAttribute("id",n),r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("href",l),s.body.appendChild(r))},p.loadScript=function(o,l){var n=p.settings.theme_static_path+"/"+o,r="script_"+o.replace(".","_"),t=s.getElementById(r);if(t===null)t=s.createElement("script"),t.setAttribute("id",r),t.setAttribute("src",n),t.onload=l,t.onerror=function(){t.setAttribute("error","1")},s.body.appendChild(t);else if(t.hasAttribute("error"))console.log("callback not executed : script '"+n+"' not loaded.");else try{l.apply(t,[])}catch(a){console.log(a)}},p.insertBefore=function(o,l){l.parentNode.insertBefore(o,l)},p.insertAfter=function(o,l){l.parentNode.insertAfter(o,l.nextSibling)},p.on(".close","click",function(){this.parentNode.classList.add("invisible")});function g(){for(var o of s.getElementsByTagName("body")[0].classList.values())if(o.endsWith("_endpoint"))return o.split("_")[0];return""}return p.endpoint=g(),p}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var s=h.getElementById("results").classList.contains("only_template_images");function i(){var o=h.createElement("div");return o.classList.add("loader"),o}function p(o,l){o.textContent="",l.forEach(n=>o.appendChild(n))}function g(o){var l=h.querySelector("#pagination form.next_page");if(l){p(h.querySelector("#pagination"),[i()]);var n=new FormData(l);searxng.http("POST",h.querySelector("#search").getAttribute("action"),n).then(function(r){var t=new DOMParser().parseFromString(r,"text/html"),a=t.querySelectorAll("#urls article"),f=t.querySelector("#pagination");h.querySelector("#pagination").remove(),a.length>0&&!s&&h.querySelector("#urls").appendChild(h.createElement("hr")),a.forEach(b=>{h.querySelector("#urls").appendChild(b)}),f&&(h.querySelector("#results").appendChild(f),o())}).catch(function(r){console.log(r);var t=h.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page,t.classList.add("dialog-error"),t.setAttribute("role","alert"),p(h.querySelector("#pagination"),[t])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const o={rootMargin:"20rem"},l="article.result:last-child",n=new IntersectionObserver(r=>{const t=r[0];t.isIntersecting&&(n.unobserve(t.target),g(()=>n.observe(h.querySelector(l),o)))});n.observe(h.querySelector(l),o)}});searxng.ready(function(){function h(e){for(;e!==void 0;){if(e.classList.contains("detail"))return!0;if(e.classList.contains("result"))return!1;e=e.parentNode}return!1}function s(e){for(;e!==void 0;){if(e.classList.contains("result"))return e;e=e.parentNode}}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(e){if(!h(e.target)){l(this)(!0,!0);let u=s(e.target);i(u)&&(e.preventDefault(),searxng.selectImage(u))}}),searxng.on(".result a","focus",function(e){if(!h(e.target)){let u=s(e.target);u&&u.getAttribute("data-vim-selected")===null&&l(u)(!0),i(u)&&searxng.selectImage(u)}},!0);var p={Escape:{key:"ESC",fun:r,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:T,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:a(),des:"go to next page",cat:"Results"},o:{key:"o",fun:y(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:f(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:n,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:y(!0),des:"open the result in a new tab",cat:"Results"}},g={default:Object.assign({ArrowLeft:{key:"←",fun:l("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:l("down"),des:"select next search result",cat:"Results"}},p),vim:Object.assign({b:{key:"b",fun:c(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:c(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:c(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:c(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:d(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:d(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:l("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:l("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"}},p)},o=g[searxng.settings.hotkeys]||g.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(o,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var u=e.target.tagName.toLowerCase();e.key==="Escape"?o[e.key].fun(e):(e.target===document.body||u==="a"||u==="button")&&(e.preventDefault(),o[e.key].fun())}});function l(e){return function(u,_){var E=document.querySelector(".result[data-vim-selected]"),k=e;if(E===null){if(E=document.querySelector(".result"),E===null)return;(e==="down"||e==="up")&&(k=E)}var v,w=document.querySelectorAll(".result");if(w=Array.from(w),typeof k!="string")v=k;else switch(k){case"visible":for(var q=document.documentElement.scrollTop||document.body.scrollTop,B=q+document.documentElement.clientHeight,x=0;xq)break}break;case"down":v=w[w.indexOf(E)+1]||E;break;case"up":v=w[w.indexOf(E)-1]||E;break;case"bottom":v=w[w.length-1];break;case"top":default:v=w[0]}if(v){if(E.removeAttribute("data-vim-selected"),v.setAttribute("data-vim-selected","true"),!_){var C=v.querySelector("h3 a")||v.querySelector("a");C!==null&&C.focus()}u||b()}}}function n(){document.location.reload(!0)}function r(e){const u=e.target.tagName.toLowerCase();document.activeElement&&(u==="input"||u==="select"||u==="textarea")?document.activeElement.blur():searxng.closeDetail()}function t(e){return function(){var u=document.querySelector(e);u&&u.click()}}function a(){return t('nav#pagination .next_page button[type="submit"]')}function f(){return t('nav#pagination .previous_page button[type="submit"]')}function b(){var e=document.querySelector(".result[data-vim-selected]");if(e!==null){var u=document.documentElement.scrollTop||document.body.scrollTop,_=document.documentElement.clientHeight,E=e.offsetTop,k=E+e.clientHeight,v=120;if(e.previousElementSibling===null&&k<_){window.scroll(window.scrollX,0);return}if(u>E-v)window.scroll(window.scrollX,E-v);else{var w=u+_;w a")),u!==null){var _=u.getAttribute("href");e?window.open(_):window.location.href=_}}}function S(e){var u={};for(var _ in o){var E=o[_];u[E.cat]=u[E.cat]||[],u[E.cat].push(E)}var k=Object.keys(u).sort(function(M,C){return u[C].length-u[M].length});if(k.length!==0){var v='×';v+="

    How to navigate SearXNG with hotkeys

    ",v+="";for(var w=0;w"),v+="",(!x||B)&&(v+="")}v+="
    ",v+="

    "+q[0].cat+"

    ",v+='
      ';for(var I in q)v+="
    • "+q[I].key+" "+q[I].des+"
    • ";v+="
    ",v+="
    ",e.innerHTML=v}}function T(){var e=document.querySelector("#vim-hotkeys-help");if(e==null){e=document.createElement("div"),e.id="vim-hotkeys-help",e.className="dialog-modal",S(e);var u=document.getElementsByTagName("body")[0];u.appendChild(e)}else{e.classList.toggle("invisible");return}}function A(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const u=e.getAttribute("href");navigator.clipboard.writeText(u)}searxng.scrollPageToSelected=b,searxng.selectNext=l("down"),searxng.selectPrevious=l("up")});(function(h,s,i){i.ready(function(){i.on(".searxng_init_map","click",function(p){this.classList.remove("searxng_init_map");var g=this.dataset.leafletTarget,o=parseFloat(this.dataset.mapLon),l=parseFloat(this.dataset.mapLat),n=parseFloat(this.dataset.mapZoom),r=JSON.parse(this.dataset.mapBoundingbox),t=JSON.parse(this.dataset.mapGeojson);i.loadStyle("css/leaflet.css"),i.loadScript("js/leaflet.js",function(){var a=null;if(r){var f=L.latLng(r[0],r[2]),b=L.latLng(r[1],r[3]);a=L.latLngBounds(f,b)}var c=L.map(g),d="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",m='Map data © OpenStreetMap contributors',y=new L.TileLayer(d,{minZoom:1,maxZoom:19,attribution:m}),S="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",T='Wikimedia maps | Maps data © OpenStreetMap contributors',A=new L.TileLayer(S,{minZoom:1,maxZoom:19,attribution:T});a?setTimeout(function(){c.fitBounds(a,{maxZoom:17})},0):o&&l&&(n?c.setView(new L.latLng(l,o),n):c.setView(new L.latLng(l,o),8)),c.addLayer(y);var e={"OSM Mapnik":y,"OSM Wikimedia":A};L.control.layers(e).addTo(c),t&&L.geoJson(t).addTo(c)}),p.preventDefault()})})})(window,document,window.searxng);(function(h,s,i){i.endpoint==="preferences"&&i.ready(function(){let p=null;function g(){p==null&&i.http("GET","engine_descriptions.json").then(function(a){p=JSON.parse(a);for(const[f,b]of Object.entries(p)){let c=s.querySelectorAll('[data-engine-name="'+f+'"] .engine-description');for(const d of c){let m=" ("+i.settings.translations.Source+": "+b[1]+")";d.innerHTML=b[0]+m}}})}for(const a of s.querySelectorAll("[data-engine-name]"))i.on(a,"mouseenter",g);const o=s.querySelectorAll(".enable-all-engines"),l=s.querySelectorAll(".disable-all-engines"),n=s.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),r=a=>{for(const f of n)f.offsetParent!==null&&(f.checked=!a)};for(const a of o)i.on(a,"click",()=>r(!0));for(const a of l)i.on(a,"click",()=>r(!1));const t=s.querySelector("#copy-hash");i.on(t,"click",a=>{a.preventDefault(),navigator.clipboard.writeText(t.dataset.hash),t.innerText=t.dataset.copiedText})})})(window,document,window.searxng);/*! + */window.searxng=function(h,s){h.Element&&function(n){n.matches=n.matches||n.matchesSelector||n.webkitMatchesSelector||n.msMatchesSelector||function(l){for(var t=this,r=(t.parentNode||t.document).querySelectorAll(l),o=-1;r[++o]&&r[o]!=t;);return!!r[o]}}(Element.prototype);function a(n,l,t){try{n.call(l,t)}catch(r){console.log(r)}}var f=window.searxng||{};f.on=function(n,l,t,r){r=r||!1,typeof n!="string"?n.addEventListener(l,t,r):s.addEventListener(l,function(o){for(var i=o.target||o.srcElement,p=!1;i&&i.matches&&i!==s&&!(p=i.matches(n));)i=i.parentElement;p&&a(t,i,o)},r)},f.ready=function(n){document.readyState!="loading"?n.call(h):h.addEventListener("DOMContentLoaded",n.bind(h))},f.http=function(n,l,t=null){return new Promise(function(r,o){try{var i=new XMLHttpRequest;i.open(n,l,!0),i.timeout=2e4,i.onload=function(){i.status==200?r(i.response,i.responseType):o(Error(i.statusText))},i.onerror=function(){o(Error("Network Error"))},i.onabort=function(){o(Error("Transaction is aborted"))},i.ontimeout=function(){o(Error("Timeout"))},t?i.send(t):i.send()}catch(p){o(p)}})},f.loadStyle=function(n){var l=f.settings.theme_static_path+"/"+n,t="style_"+n.replace(".","_"),r=s.getElementById(t);r===null&&(r=s.createElement("link"),r.setAttribute("id",t),r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("href",l),s.body.appendChild(r))},f.loadScript=function(n,l){var t=f.settings.theme_static_path+"/"+n,r="script_"+n.replace(".","_"),o=s.getElementById(r);if(o===null)o=s.createElement("script"),o.setAttribute("id",r),o.setAttribute("src",t),o.onload=l,o.onerror=function(){o.setAttribute("error","1")},s.body.appendChild(o);else if(o.hasAttribute("error"))console.log("callback not executed : script '"+t+"' not loaded.");else try{l.apply(o,[])}catch(i){console.log(i)}},f.insertBefore=function(n,l){l.parentNode.insertBefore(n,l)},f.insertAfter=function(n,l){l.parentNode.insertAfter(n,l.nextSibling)},f.on(".close","click",function(){this.parentNode.classList.add("invisible")});function m(){for(var n of s.getElementsByTagName("body")[0].classList.values())if(n.endsWith("_endpoint"))return n.split("_")[0];return""}return f.endpoint=m(),f}(window,document);searxng.ready(function(){if(searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,searxng.endpoint!=="results")return;if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let h=document;var s=h.getElementById("results").classList.contains("only_template_images");function a(){var n=h.createElement("div");return n.classList.add("loader"),n}function f(n,l){n.textContent="",l.forEach(t=>n.appendChild(t))}function m(n){var l=h.querySelector("#pagination form.next_page");if(l){f(h.querySelector("#pagination"),[a()]);var t=new FormData(l);searxng.http("POST",h.querySelector("#search").getAttribute("action"),t).then(function(r){var o=new DOMParser().parseFromString(r,"text/html"),i=o.querySelectorAll("#urls article"),p=o.querySelector("#pagination");h.querySelector("#pagination").remove(),i.length>0&&!s&&h.querySelector("#urls").appendChild(h.createElement("hr")),i.forEach(b=>{h.querySelector("#urls").appendChild(b)}),p&&(h.querySelector("#results").appendChild(p),n())}).catch(function(r){console.log(r);var o=h.createElement("div");o.textContent=searxng.settings.translations.error_loading_next_page,o.classList.add("dialog-error"),o.setAttribute("role","alert"),f(h.querySelector("#pagination"),[o])})}}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const n={rootMargin:"20rem"},l="article.result:last-child",t=new IntersectionObserver(r=>{const o=r[0];o.isIntersecting&&(t.unobserve(o.target),m(()=>t.observe(h.querySelector(l),n)))});t.observe(h.querySelector(l),n)}});searxng.ready(function(){function h(e){for(;e!==void 0;){if(e.classList.contains("detail"))return!0;if(e.classList.contains("result"))return!1;e=e.parentNode}return!1}function s(e){for(;e!==void 0;){if(e.classList.contains("result"))return e;e=e.parentNode}}function a(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(e){if(!h(e.target)){l(this)(!0,!0);let u=s(e.target);a(u)&&(e.preventDefault(),searxng.selectImage(u))}}),searxng.on(".result a","focus",function(e){if(!h(e.target)){let u=s(e.target);u&&u.getAttribute("data-vim-selected")===null&&l(u)(!0),a(u)&&searxng.selectImage(u)}},!0);var f={Escape:{key:"ESC",fun:r,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:w,des:"toggle help window",cat:"Other"},i:{key:"i",fun:g,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:i(),des:"go to next page",cat:"Results"},o:{key:"o",fun:v(!1),des:"open search result",cat:"Results"},p:{key:"p",fun:p(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:v(!0),des:"open the result in a new tab",cat:"Results"}},m={default:Object.assign({ArrowLeft:{key:"←",fun:l("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:l("down"),des:"select next search result",cat:"Results"}},f),vim:Object.assign({b:{key:"b",fun:c(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:c(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:c(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:c(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:d(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:d(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:l("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:l("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:A,des:"copy url of the selected result to the clipboard",cat:"Results"}},f)},n=m[searxng.settings.hotkeys]||m.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(n,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var u=e.target.tagName.toLowerCase();e.key==="Escape"?n[e.key].fun(e):(e.target===document.body||u==="a"||u==="button")&&(e.preventDefault(),n[e.key].fun())}});function l(e){return function(u,_){var k=document.querySelector(".result[data-vim-selected]"),T=e;if(k===null){if(k=document.querySelector(".result"),k===null)return;(e==="down"||e==="up")&&(T=k)}var y,S=document.querySelectorAll(".result");if(S=Array.from(S),typeof T!="string")y=T;else switch(T){case"visible":for(var q=document.documentElement.scrollTop||document.body.scrollTop,B=q+document.documentElement.clientHeight,x=0;xq)break}break;case"down":y=S[S.indexOf(k)+1]||k;break;case"up":y=S[S.indexOf(k)-1]||k;break;case"bottom":y=S[S.length-1];break;case"top":default:y=S[0]}if(y){if(k.removeAttribute("data-vim-selected"),y.setAttribute("data-vim-selected","true"),!_){var C=y.querySelector("h3 a")||y.querySelector("a");C!==null&&C.focus()}u||b()}}}function t(){document.location.reload(!0)}function r(e){const u=e.target.tagName.toLowerCase();document.activeElement&&(u==="input"||u==="select"||u==="textarea")?document.activeElement.blur():searxng.closeDetail()}function o(e){return function(){var u=document.querySelector(e);u&&u.click()}}function i(){return o('nav#pagination .next_page button[type="submit"]')}function p(){return o('nav#pagination .previous_page button[type="submit"]')}function b(){var e=document.querySelector(".result[data-vim-selected]");if(e!==null){var u=document.documentElement.scrollTop||document.body.scrollTop,_=document.documentElement.clientHeight,k=e.offsetTop,T=k+e.clientHeight,y=120;if(e.previousElementSibling===null&&T<_){window.scroll(window.scrollX,0);return}if(u>k-y)window.scroll(window.scrollX,k-y);else{var S=u+_;S a")),u!==null){var _=u.getAttribute("href");e?window.open(_):window.location.href=_}}}function E(e){var u={};for(var _ in n){var k=n[_];u[k.cat]=u[k.cat]||[],u[k.cat].push(k)}var T=Object.keys(u).sort(function(M,C){return u[C].length-u[M].length});if(T.length!==0){var y='×';y+="

    How to navigate SearXNG with hotkeys

    ",y+="";for(var S=0;S"),y+="",(!x||B)&&(y+="")}y+="
    ",y+="

    "+q[0].cat+"

    ",y+='
      ';for(var I in q)y+="
    • "+q[I].key+" "+q[I].des+"
    • ";y+="
    ",y+="
    ",e.innerHTML=y}}function w(){var e=document.querySelector("#vim-hotkeys-help");if(e==null){e=document.createElement("div"),e.id="vim-hotkeys-help",e.className="dialog-modal",E(e);var u=document.getElementsByTagName("body")[0];u.appendChild(e)}else{e.classList.toggle("invisible");return}}function A(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const u=e.getAttribute("href");navigator.clipboard.writeText(u)}searxng.scrollPageToSelected=b,searxng.selectNext=l("down"),searxng.selectPrevious=l("up")});(function(h,s,a){a.ready(function(){a.on(".searxng_init_map","click",function(f){this.classList.remove("searxng_init_map");var m=this.dataset.leafletTarget,n=parseFloat(this.dataset.mapLon),l=parseFloat(this.dataset.mapLat),t=parseFloat(this.dataset.mapZoom),r=JSON.parse(this.dataset.mapBoundingbox),o=JSON.parse(this.dataset.mapGeojson);a.loadStyle("css/leaflet.css"),a.loadScript("js/leaflet.js",function(){var i=null;if(r){var p=L.latLng(r[0],r[2]),b=L.latLng(r[1],r[3]);i=L.latLngBounds(p,b)}var c=L.map(m),d="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",g='Map data © OpenStreetMap contributors',v=new L.TileLayer(d,{minZoom:1,maxZoom:19,attribution:g}),E="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",w='Wikimedia maps | Maps data © OpenStreetMap contributors',A=new L.TileLayer(E,{minZoom:1,maxZoom:19,attribution:w});i?setTimeout(function(){c.fitBounds(i,{maxZoom:17})},0):n&&l&&(t?c.setView(new L.latLng(l,n),t):c.setView(new L.latLng(l,n),8)),c.addLayer(v);var e={"OSM Mapnik":v,"OSM Wikimedia":A};L.control.layers(e).addTo(c),o&&L.geoJson(o).addTo(c)}),f.preventDefault()})})})(window,document,window.searxng);(function(h,s,a){a.endpoint==="preferences"&&a.ready(function(){let f=null;function m(){f==null&&a.http("GET","engine_descriptions.json").then(function(i){f=JSON.parse(i);for(const[p,b]of Object.entries(f)){let c=s.querySelectorAll('[data-engine-name="'+p+'"] .engine-description');for(const d of c){let g=" ("+a.settings.translations.Source+": "+b[1]+")";d.innerHTML=b[0]+g}}})}for(const i of s.querySelectorAll("[data-engine-name]"))a.on(i,"mouseenter",m);const n=s.querySelectorAll(".enable-all-engines"),l=s.querySelectorAll(".disable-all-engines"),t=s.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]"),r=i=>{for(const p of t)p.offsetParent!==null&&(p.checked=!i)};for(const i of n)a.on(i,"click",()=>r(!0));for(const i of l)a.on(i,"click",()=>r(!1));const o=s.querySelector("#copy-hash");a.on(o,"click",i=>{i.preventDefault(),navigator.clipboard.writeText(o.dataset.hash),o.innerText=o.dataset.copiedText})})})(window,document,window.searxng);/*! * swiped-events.js - v@version@ * Pure JavaScript swipe events * https://github.com/john-doherty/swiped-events * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element * @author John Doherty * @license MIT - */(function(h,s){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(c,d){d=d||{bubbles:!1,cancelable:!1,detail:void 0};var m=s.createEvent("CustomEvent");return m.initCustomEvent(c,d.bubbles,d.cancelable,d.detail),m},h.CustomEvent.prototype=h.Event.prototype),s.addEventListener("touchstart",a,!1),s.addEventListener("touchmove",f,!1),s.addEventListener("touchend",t,!1);var i=null,p=null,g=null,o=null,l=null,n=null,r=0;function t(c){if(n===c.target){var d=parseInt(b(n,"data-swipe-threshold","20"),10),m=b(n,"data-swipe-unit","px"),y=parseInt(b(n,"data-swipe-timeout","500"),10),S=Date.now()-l,T="",A=c.changedTouches||c.touches||[];if(m==="vh"&&(d=Math.round(d/100*s.documentElement.clientHeight)),m==="vw"&&(d=Math.round(d/100*s.documentElement.clientWidth)),Math.abs(g)>Math.abs(o)?Math.abs(g)>d&&S0?T="swiped-left":T="swiped-right"):Math.abs(o)>d&&S0?T="swiped-up":T="swiped-down"),T!==""){var e={dir:T.replace(/swiped-/,""),touchType:(A[0]||{}).touchType||"direct",fingers:r,xStart:parseInt(i,10),xEnd:parseInt((A[0]||{}).clientX||-1,10),yStart:parseInt(p,10),yEnd:parseInt((A[0]||{}).clientY||-1,10)};n.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:e})),n.dispatchEvent(new CustomEvent(T,{bubbles:!0,cancelable:!0,detail:e}))}i=null,p=null,l=null}}function a(c){c.target.getAttribute("data-swipe-ignore")!=="true"&&(n=c.target,l=Date.now(),i=c.touches[0].clientX,p=c.touches[0].clientY,g=0,o=0,r=c.touches.length)}function f(c){if(!(!i||!p)){var d=c.touches[0].clientX,m=c.touches[0].clientY;g=i-d,o=p-m}}function b(c,d,m){for(;c&&c!==s.documentElement;){var y=c.getAttribute(d);if(y)return y;c=c.parentNode}return m}})(window,document);(function(h,s,i){i.endpoint==="results"&&i.ready(function(){s.querySelectorAll("#urls img").forEach(n=>n.addEventListener("error",()=>{n.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),s.querySelector("#search_url button#copy_url")&&(s.querySelector("#search_url button#copy_url").style.display="block"),i.on(".btn-collapse","click",function(){var n=this.getAttribute("data-btn-text-collapsed"),r=this.getAttribute("data-btn-text-not-collapsed"),t=this.getAttribute("data-target"),a=s.querySelector(t),f=this.innerHTML;this.classList.contains("collapsed")?f=f.replace(n,r):f=f.replace(r,n),this.innerHTML=f,this.classList.toggle("collapsed"),a.classList.toggle("invisible")}),i.on(".media-loader","click",function(){var n=this.getAttribute("data-target"),r=s.querySelector(n+" > iframe"),t=r.getAttribute("src");(t==null||t===!1)&&r.setAttribute("src",r.getAttribute("data-src"))}),i.on("#copy_url","click",function(){var n=this.parentElement.querySelector("pre");navigator.clipboard.writeText(n.innerText),this.innerText=this.dataset.copiedText});let p;const g=s.createElement("div");g.classList.add("loader");const o=new Image,l=(n,r)=>{p&&clearTimeout(p),p=setTimeout(()=>{o.src=n},1e3),o.onload=()=>{r(),g.remove()},o.onerror=()=>{g.remove()}};i.selectImage=n=>{if(s.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",i.scrollPageToSelected(),!n)return;const r=n.querySelector(".result-images-source img");if(!r)return;const t=r.getAttribute("data-src");if(!t)return;const a=n.querySelector(".image_thumbnail");r.src=a.src,n.querySelector(".detail").appendChild(g),l(t,()=>{r.src=t,r.removeAttribute("data-src")})},i.closeDetail=function(){s.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),i.scrollPageToSelected()},i.on(".result-detail-close","click",n=>{n.preventDefault(),i.closeDetail()}),i.on(".result-detail-previous","click",n=>{n.preventDefault(),i.selectPrevious(!1)}),i.on(".result-detail-next","click",n=>{n.preventDefault(),i.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&i.closeDetail()}),s.querySelectorAll(".swipe-horizontal").forEach(n=>{n.addEventListener("swiped-left",function(){i.selectNext(!1)}),n.addEventListener("swiped-right",function(){i.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var n=s.getElementById("backToTop"),r=document.documentElement.scrollTop||document.body.scrollTop,t=s.getElementById("results");n!==null&&(r>=100?t.classList.add("scrolling"):t.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);(function(h,s,i){var p="q",g;const o=window.matchMedia("only screen and (max-width: 50em)").matches;function l(){if(g.value.length>0){var t=document.getElementById("search");setTimeout(t.submit.bind(t),0)}}function n(t){var a=document.getElementById("clear_search"),f=function(){t.value.length===0?a.classList.add("empty"):a.classList.remove("empty")};f(),a.addEventListener("click",function(b){t.value="",t.focus(),f(),b.preventDefault()}),t.addEventListener("input",f,!1)}const r=async t=>{let a;if(i.settings.method==="GET"){const f=new URLSearchParams;f.append("q",t),a=fetch("./autocompleter?"+f.toString())}else{const f=new FormData;f.append("q",t),a=fetch("./autocompleter",{method:"POST",body:f})}a.then(async function(f){const b=await f.json();if(!b)return;const c=s.querySelector(".autocomplete"),d=s.querySelector(".autocomplete ul");if(c.classList.add("open"),d.innerHTML="",!b[1]||b[1].length==0){const m=document.createElement("li");m.classList.add("no-item-found"),m.innerHTML=i.settings.translations.no_item_found,d.appendChild(m);return}for(let m of b[1]){const y=document.createElement("li");y.innerText=m,i.on(y,"mousedown",()=>{g.value=m,s.querySelector("#search").submit(),c.classList.remove("open")}),d.appendChild(y)}})};i.ready(function(){o||document.getElementById("q").focus(),g=s.getElementById(p);const t=s.querySelector(".autocomplete"),a=s.querySelector(".autocomplete ul");g!==null&&(n(g),i.settings.autocomplete&&(i.on(g,"input",()=>{const c=g.value;c.length{c==g.value&&r(c)},300)}),i.on(g,"keyup",c=>{let d=-1;const m=a.children;for(let S=0;S=0&&m[d].classList.remove("active"),y=(d-1+m.length)%m.length):c.key==="ArrowDown"?(d>=0&&m[d].classList.remove("active"),y=(d+1)%m.length):(c.key==="Tab"||c.key==="Enter")&&t.classList.remove("open"),y!=-1){const S=m[y];S.classList.add("active"),S.classList.contains("no-item-found")||(g.value=S.innerText)}}))),g!==null&&i.settings.search_on_category_select&&s.querySelector(".search_filters")!=null&&(i.on(s.getElementById("safesearch"),"change",l),i.on(s.getElementById("time_range"),"change",l),i.on(s.getElementById("language"),"change",l));const f=s.querySelectorAll("button.category_button");for(let c of f)i.on(c,"click",d=>{if(d.shiftKey){d.preventDefault(),c.classList.toggle("selected");return}const m=s.querySelectorAll("button.category_button.selected");for(let y of m)y.classList.remove("selected");c.classList.add("selected")});const b=s.querySelector("#search");b!=null&&i.on(b,"submit",c=>{c.preventDefault();const d=s.querySelector("#selected-categories");if(d){let m=[];for(let y of f)y.classList.contains("selected")&&m.push(y.name.replace("category_",""));d.value=m.join(",")}b.submit()})})})(window,document,window.searxng); + */(function(h,s){typeof h.CustomEvent!="function"&&(h.CustomEvent=function(c,d){d=d||{bubbles:!1,cancelable:!1,detail:void 0};var g=s.createEvent("CustomEvent");return g.initCustomEvent(c,d.bubbles,d.cancelable,d.detail),g},h.CustomEvent.prototype=h.Event.prototype),s.addEventListener("touchstart",i,!1),s.addEventListener("touchmove",p,!1),s.addEventListener("touchend",o,!1);var a=null,f=null,m=null,n=null,l=null,t=null,r=0;function o(c){if(t===c.target){var d=parseInt(b(t,"data-swipe-threshold","20"),10),g=b(t,"data-swipe-unit","px"),v=parseInt(b(t,"data-swipe-timeout","500"),10),E=Date.now()-l,w="",A=c.changedTouches||c.touches||[];if(g==="vh"&&(d=Math.round(d/100*s.documentElement.clientHeight)),g==="vw"&&(d=Math.round(d/100*s.documentElement.clientWidth)),Math.abs(m)>Math.abs(n)?Math.abs(m)>d&&E0?w="swiped-left":w="swiped-right"):Math.abs(n)>d&&E0?w="swiped-up":w="swiped-down"),w!==""){var e={dir:w.replace(/swiped-/,""),touchType:(A[0]||{}).touchType||"direct",fingers:r,xStart:parseInt(a,10),xEnd:parseInt((A[0]||{}).clientX||-1,10),yStart:parseInt(f,10),yEnd:parseInt((A[0]||{}).clientY||-1,10)};t.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:e})),t.dispatchEvent(new CustomEvent(w,{bubbles:!0,cancelable:!0,detail:e}))}a=null,f=null,l=null}}function i(c){c.target.getAttribute("data-swipe-ignore")!=="true"&&(t=c.target,l=Date.now(),a=c.touches[0].clientX,f=c.touches[0].clientY,m=0,n=0,r=c.touches.length)}function p(c){if(!(!a||!f)){var d=c.touches[0].clientX,g=c.touches[0].clientY;m=a-d,n=f-g}}function b(c,d,g){for(;c&&c!==s.documentElement;){var v=c.getAttribute(d);if(v)return v;c=c.parentNode}return g}})(window,document);(function(h,s,a){a.endpoint==="results"&&a.ready(function(){s.querySelectorAll("#urls img").forEach(t=>t.addEventListener("error",()=>{t.src=window.searxng.settings.theme_static_path+"/img/img_load_error.svg"},{once:!0})),s.querySelector("#search_url button#copy_url")&&(s.querySelector("#search_url button#copy_url").style.display="block"),a.on(".btn-collapse","click",function(){var t=this.getAttribute("data-btn-text-collapsed"),r=this.getAttribute("data-btn-text-not-collapsed"),o=this.getAttribute("data-target"),i=s.querySelector(o),p=this.innerHTML;this.classList.contains("collapsed")?p=p.replace(t,r):p=p.replace(r,t),this.innerHTML=p,this.classList.toggle("collapsed"),i.classList.toggle("invisible")}),a.on(".media-loader","click",function(){var t=this.getAttribute("data-target"),r=s.querySelector(t+" > iframe"),o=r.getAttribute("src");(o==null||o===!1)&&r.setAttribute("src",r.getAttribute("data-src"))}),a.on("#copy_url","click",function(){var t=this.parentElement.querySelector("pre");navigator.clipboard.writeText(t.innerText),this.innerText=this.dataset.copiedText});let f;const m=s.createElement("div");m.classList.add("loader");const n=new Image,l=(t,r)=>{f&&clearTimeout(f),f=setTimeout(()=>{n.src=t},1e3),n.onload=()=>{r(),m.remove()},n.onerror=()=>{m.remove()}};a.selectImage=t=>{if(s.getElementById("results").classList.add("image-detail-open"),window.location.hash="#image-viewer",a.scrollPageToSelected(),!t)return;const r=t.querySelector(".result-images-source img");if(!r)return;const o=r.getAttribute("data-src");if(!o)return;const i=t.querySelector(".image_thumbnail");r.src=i.src,t.querySelector(".detail").appendChild(m),l(o,()=>{r.src=o,r.removeAttribute("data-src")})},a.closeDetail=function(){s.getElementById("results").classList.remove("image-detail-open"),window.location.hash=="#image-viewer"&&window.history.back(),a.scrollPageToSelected()},a.on(".result-detail-close","click",t=>{t.preventDefault(),a.closeDetail()}),a.on(".result-detail-previous","click",t=>{t.preventDefault(),a.selectPrevious(!1)}),a.on(".result-detail-next","click",t=>{t.preventDefault(),a.selectNext(!1)}),window.addEventListener("hashchange",()=>{window.location.hash!="#image-viewer"&&a.closeDetail()}),s.querySelectorAll(".swipe-horizontal").forEach(t=>{t.addEventListener("swiped-left",function(){a.selectNext(!1)}),t.addEventListener("swiped-right",function(){a.selectPrevious(!1)})}),h.addEventListener("scroll",function(){var t=s.getElementById("backToTop"),r=document.documentElement.scrollTop||document.body.scrollTop,o=s.getElementById("results");t!==null&&(r>=100?o.classList.add("scrolling"):o.classList.remove("scrolling"))},!0)})})(window,document,window.searxng);(function(h,s,a){var f="q",m;const n=window.matchMedia("only screen and (max-width: 50em)").matches,l=document.querySelector("main").id=="main_results";function t(){if(m.value.length>0){var i=document.getElementById("search");setTimeout(i.submit.bind(i),0)}}function r(i){var p=document.getElementById("clear_search"),b=function(){i.value.length===0?p.classList.add("empty"):p.classList.remove("empty")};b(),p.addEventListener("click",function(c){i.value="",i.focus(),b(),c.preventDefault()}),i.addEventListener("input",b,!1)}const o=async i=>{let p;if(a.settings.method==="GET"){const b=new URLSearchParams;b.append("q",i),p=fetch("./autocompleter?"+b.toString())}else{const b=new FormData;b.append("q",i),p=fetch("./autocompleter",{method:"POST",body:b})}p.then(async function(b){const c=await b.json();if(!c)return;const d=s.querySelector(".autocomplete"),g=s.querySelector(".autocomplete ul");if(d.classList.add("open"),g.innerHTML="",!c[1]||c[1].length==0){const v=document.createElement("li");v.classList.add("no-item-found"),v.innerHTML=a.settings.translations.no_item_found,g.appendChild(v);return}for(let v of c[1]){const E=document.createElement("li");E.innerText=v,a.on(E,"mousedown",()=>{m.value=v,s.querySelector("#search").submit(),d.classList.remove("open")}),g.appendChild(E)}})};a.ready(function(){!n&&!l&&document.getElementById("q").focus(),m=s.getElementById(f);const i=s.querySelector(".autocomplete"),p=s.querySelector(".autocomplete ul");m!==null&&(r(m),a.settings.autocomplete&&(a.on(m,"input",()=>{const d=m.value;d.length{d==m.value&&o(d)},300)}),a.on(m,"keyup",d=>{let g=-1;const v=p.children;for(let w=0;w=0&&v[g].classList.remove("active"),E=(g-1+v.length)%v.length):d.key==="ArrowDown"?(g>=0&&v[g].classList.remove("active"),E=(g+1)%v.length):(d.key==="Tab"||d.key==="Enter")&&i.classList.remove("open"),E!=-1){const w=v[E];w.classList.add("active"),w.classList.contains("no-item-found")||(m.value=w.innerText)}}))),m!==null&&a.settings.search_on_category_select&&s.querySelector(".search_filters")!=null&&(a.on(s.getElementById("safesearch"),"change",t),a.on(s.getElementById("time_range"),"change",t),a.on(s.getElementById("language"),"change",t));const b=s.querySelectorAll("button.category_button");for(let d of b)a.on(d,"click",g=>{if(g.shiftKey){g.preventDefault(),d.classList.toggle("selected");return}const v=s.querySelectorAll("button.category_button.selected");for(let E of v)E.classList.remove("selected");d.classList.add("selected")});const c=s.querySelector("#search");c!=null&&a.on(c,"submit",d=>{d.preventDefault();const g=s.querySelector("#selected-categories");if(g){let v=[];for(let E of b)E.classList.contains("selected")&&v.push(E.name.replace("category_",""));g.value=v.join(",")}c.submit()})})})(window,document,window.searxng); //# sourceMappingURL=searxng.min.js.map diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index f454d84c0..551c8741c 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
    element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
    element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

    How to navigate SearXNG with hotkeys

    ';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
    ';\n\n html += '

    ' + cat[0].cat + '

    ';\n html += '
      ';\n\n for (var cj in cat) {\n html += '
    • ' + cat[cj].key + ' ' + cat[cj].des + '
    • ';\n }\n\n html += '
    ';\n html += '
    ';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n const fetchResults = async (query) => {\n let request;\n if (searxng.settings.method === 'GET') {\n const reqParams = new URLSearchParams();\n reqParams.append(\"q\", query);\n request = fetch(\"./autocompleter?\" + reqParams.toString());\n } else {\n const formData = new FormData();\n formData.append(\"q\", query);\n request = fetch(\"./autocompleter\", {\n method: 'POST',\n body: formData,\n });\n }\n\n request.then(async function (response) {\n const results = await response.json();\n\n if (!results) return;\n\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n autocomplete.classList.add(\"open\");\n autocompleteList.innerHTML = \"\";\n\n // show an error message that no result was found\n if (!results[1] || results[1].length == 0) {\n const noItemFoundMessage = document.createElement(\"li\");\n noItemFoundMessage.classList.add('no-item-found');\n noItemFoundMessage.innerHTML = searxng.settings.translations.no_item_found;\n autocompleteList.appendChild(noItemFoundMessage);\n return;\n }\n\n for (let result of results[1]) {\n const li = document.createElement(\"li\");\n li.innerText = result;\n\n searxng.on(li, 'mousedown', () => {\n qinput.value = result;\n const form = d.querySelector(\"#search\");\n form.submit();\n autocomplete.classList.remove('open');\n });\n autocompleteList.appendChild(li);\n }\n });\n };\n\n searxng.ready(function () {\n // focus search input on large screens\n if (!isMobile) document.getElementById(\"q\").focus();\n\n qinput = d.getElementById(qinput_id);\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.on(qinput, 'input', () => {\n const query = qinput.value;\n if (query.length < searxng.settings.autocomplete_min) return;\n\n setTimeout(() => {\n if (query == qinput.value) fetchResults(query);\n }, 300);\n });\n\n searxng.on(qinput, 'keyup', (e) => {\n let currentIndex = -1;\n const listItems = autocompleteList.children;\n for (let i = 0; i < listItems.length; i++) {\n if (listItems[i].classList.contains('active')) {\n currentIndex = i;\n break;\n }\n }\n\n let newCurrentIndex = -1;\n if (e.key === \"ArrowUp\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n // we need to add listItems.length to the index calculation here because the JavaScript modulos\n // operator doesn't work with negative numbers\n newCurrentIndex = (currentIndex - 1 + listItems.length) % listItems.length;\n } else if (e.key === \"ArrowDown\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n newCurrentIndex = (currentIndex + 1) % listItems.length;\n } else if (e.key === \"Tab\" || e.key === \"Enter\") {\n autocomplete.classList.remove('open');\n }\n\n if (newCurrentIndex != -1) {\n const selectedItem = listItems[newCurrentIndex];\n selectedItem.classList.add('active');\n\n if (!selectedItem.classList.contains('no-item-found')) qinput.value = selectedItem.innerText;\n }\n });\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n });\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","d","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","qinput_id","qinput","isMobile","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","fetchResults","query","request","reqParams","autocomplete","autocompleteList","noItemFoundMessage","result","li","currentIndex","listItems","newCurrentIndex","selectedItem","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"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","x_google_ignoreList":[5]} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../../../../../client/simple/src/js/main/00_toolkit.js","../../../../../client/simple/src/js/main/infinite_scroll.js","../../../../../client/simple/src/js/main/keyboard.js","../../../../../client/simple/src/js/main/mapresult.js","../../../../../client/simple/src/js/main/preferences.js","../../../../../client/simple/node_modules/swiped-events/src/swiped-events.js","../../../../../client/simple/src/js/main/results.js","../../../../../client/simple/src/js/main/search.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here toolkit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
    element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
    element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

    How to navigate SearXNG with hotkeys

    ';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
    ';\n\n html += '

    ' + cat[0].cat + '

    ';\n html += '
      ';\n\n for (var cj in cat) {\n html += '
    • ' + cat[cj].key + ' ' + cat[cj].des + '
    • ';\n }\n\n html += '
    ';\n html += '
    ';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // toggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occur only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n\nimport \"../../../node_modules/swiped-events/src/swiped-events.js\";\n\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n // console.log(\"ERROR can't load: \" + img.src);\n img.src = window.searxng.settings.theme_static_path + \"/img/img_load_error.svg\";\n },\n {once: true}\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n // searxng.selectImage (gallery)\n // -----------------------------\n\n // setTimeout() ID, needed to cancel *last* loadImage\n let imgTimeoutID;\n\n // progress spinner, while an image is loading\n const imgLoaderSpinner = d.createElement('div');\n imgLoaderSpinner.classList.add('loader');\n\n // singleton image object, which is used for all loading processes of a\n // detailed image\n const imgLoader = new Image();\n\n const loadImage = (imgSrc, onSuccess) => {\n // if defered image load exists, stop defered task.\n if (imgTimeoutID) clearTimeout(imgTimeoutID);\n\n // defer load of the detail image for 1 sec\n imgTimeoutID = setTimeout(() => {\n imgLoader.src = imgSrc;\n }, 1000);\n\n // set handlers in the on-properties\n imgLoader.onload = () => {\n onSuccess();\n imgLoaderSpinner.remove();\n };\n imgLoader.onerror = () => {\n imgLoaderSpinner.remove();\n };\n };\n\n searxng.selectImage = (resultElement) => {\n\n // add a class that can be evaluated in the CSS and indicates that the\n // detail view is open\n d.getElementById('results').classList.add('image-detail-open');\n\n // add a hash to the browser history so that pressing back doesn't return\n // to the previous page this allows us to dismiss the image details on\n // pressing the back button on mobile devices\n window.location.hash = '#image-viewer';\n\n searxng.scrollPageToSelected();\n\n // if there is none element given by the caller, stop here\n if (!resultElement) return;\n\n // find object in the element, if there is none, stop here.\n const img = resultElement.querySelector('.result-images-source img');\n if (!img) return;\n\n // \n const src = img.getAttribute('data-src');\n\n // already loaded high-res image or no high-res image available\n if (!src) return;\n\n // use the image thumbnail until the image is fully loaded\n const thumbnail = resultElement.querySelector('.image_thumbnail');\n img.src = thumbnail.src;\n\n // show a progress spinner\n const detailElement = resultElement.querySelector('.detail');\n detailElement.appendChild(imgLoaderSpinner);\n\n // load full size image in background\n loadImage(src, () => {\n // after the singelton loadImage has loaded the detail image into the\n // cache, it can be used in the origin as src property.\n img.src = src;\n img.removeAttribute('data-src');\n });\n };\n\n searxng.closeDetail = function () {\n d.getElementById('results').classList.remove('image-detail-open');\n // remove #image-viewer hash from url by navigating back\n if (window.location.hash == '#image-viewer') window.history.back();\n searxng.scrollPageToSelected();\n };\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false);\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n // listen for the back button to be pressed and dismiss the image details when called\n window.addEventListener('hashchange', () => {\n if (window.location.hash != '#image-viewer') searxng.closeDetail();\n });\n\n d.querySelectorAll('.swipe-horizontal').forEach(\n obj => {\n obj.addEventListener('swiped-left', function () {\n searxng.selectNext(false);\n });\n obj.addEventListener('swiped-right', function () {\n searxng.selectPrevious(false);\n });\n }\n );\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* exported AutoComplete */\n\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n const isResultsPage = document.querySelector(\"main\").id == \"main_results\";\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n const fetchResults = async (query) => {\n let request;\n if (searxng.settings.method === 'GET') {\n const reqParams = new URLSearchParams();\n reqParams.append(\"q\", query);\n request = fetch(\"./autocompleter?\" + reqParams.toString());\n } else {\n const formData = new FormData();\n formData.append(\"q\", query);\n request = fetch(\"./autocompleter\", {\n method: 'POST',\n body: formData,\n });\n }\n\n request.then(async function (response) {\n const results = await response.json();\n\n if (!results) return;\n\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n autocomplete.classList.add(\"open\");\n autocompleteList.innerHTML = \"\";\n\n // show an error message that no result was found\n if (!results[1] || results[1].length == 0) {\n const noItemFoundMessage = document.createElement(\"li\");\n noItemFoundMessage.classList.add('no-item-found');\n noItemFoundMessage.innerHTML = searxng.settings.translations.no_item_found;\n autocompleteList.appendChild(noItemFoundMessage);\n return;\n }\n\n for (let result of results[1]) {\n const li = document.createElement(\"li\");\n li.innerText = result;\n\n searxng.on(li, 'mousedown', () => {\n qinput.value = result;\n const form = d.querySelector(\"#search\");\n form.submit();\n autocomplete.classList.remove('open');\n });\n autocompleteList.appendChild(li);\n }\n });\n };\n\n searxng.ready(function () {\n // focus search input on large screens\n if (!isMobile && !isResultsPage) document.getElementById(\"q\").focus();\n\n qinput = d.getElementById(qinput_id);\n const autocomplete = d.querySelector(\".autocomplete\");\n const autocompleteList = d.querySelector(\".autocomplete ul\");\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete) {\n searxng.on(qinput, 'input', () => {\n const query = qinput.value;\n if (query.length < searxng.settings.autocomplete_min) return;\n\n setTimeout(() => {\n if (query == qinput.value) fetchResults(query);\n }, 300);\n });\n\n searxng.on(qinput, 'keyup', (e) => {\n let currentIndex = -1;\n const listItems = autocompleteList.children;\n for (let i = 0; i < listItems.length; i++) {\n if (listItems[i].classList.contains('active')) {\n currentIndex = i;\n break;\n }\n }\n\n let newCurrentIndex = -1;\n if (e.key === \"ArrowUp\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n // we need to add listItems.length to the index calculation here because the JavaScript modulos\n // operator doesn't work with negative numbers\n newCurrentIndex = (currentIndex - 1 + listItems.length) % listItems.length;\n } else if (e.key === \"ArrowDown\") {\n if (currentIndex >= 0) listItems[currentIndex].classList.remove('active');\n newCurrentIndex = (currentIndex + 1) % listItems.length;\n } else if (e.key === \"Tab\" || e.key === \"Enter\") {\n autocomplete.classList.remove('open');\n }\n\n if (newCurrentIndex != -1) {\n const selectedItem = listItems[newCurrentIndex];\n selectedItem.classList.add('active');\n\n if (!selectedItem.classList.contains('no-item-found')) qinput.value = selectedItem.innerText;\n }\n });\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n const categoryButtons = d.querySelectorAll(\"button.category_button\");\n for (let button of categoryButtons) {\n searxng.on(button, 'click', (event) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // manually deselect the old selection when a new category is selected\n const selectedCategories = d.querySelectorAll(\"button.category_button.selected\");\n for (let categoryButton of selectedCategories) {\n categoryButton.classList.remove(\"selected\");\n }\n button.classList.add(\"selected\");\n });\n }\n\n // override form submit action to update the actually selected categories\n const form = d.querySelector(\"#search\");\n if (form != null) {\n searxng.on(form, 'submit', (event) => {\n event.preventDefault();\n const categoryValuesInput = d.querySelector(\"#selected-categories\");\n if (categoryValuesInput) {\n let categoryValues = [];\n for (let categoryButton of categoryButtons) {\n if (categoryButton.classList.contains(\"selected\")) {\n categoryValues.push(categoryButton.name.replace(\"category_\", \"\"));\n }\n }\n categoryValuesInput.value = categoryValues.join(\",\");\n }\n form.submit();\n });\n }\n });\n\n})(window, document, window.searxng);\n"],"names":["w","d","ElementPrototype","selector","node","nodes","i","callbackSafe","callback","el","e","exception","searxng","obj","eventType","useCapture","found","method","url","data","resolve","reject","req","ex","src","path","id","s","newNode","referenceNode","getEndpoint","className","onlyImages","newLoadSpinner","loader","replaceChildrenWith","element","children","child","loadNextPage","form","formData","response","nextPageDoc","articleList","paginationElement","articleElement","err","intersectionObserveOptions","observedSelector","observer","entries","paginationEntry","isElementInDetail","getResultElement","isImageResult","resultElement","highlightResult","baseKeyBinding","removeFocus","copyURLToClipboard","toggleHelp","searchInputFocus","GoToNextPage","openResult","GoToPreviousPage","reloadPage","keyBindingLayouts","scrollPage","scrollPageTo","keyBindings","tagName","which","noScroll","keepFocus","current","effectiveWhich","next","results","top","bot","etop","ebot","link","scrollPageToSelected","pageButtonClick","css_selector","button","sel","wtop","wheight","offset","wbot","amount","position","nav","q","len","newTab","initHelpContent","divElement","categories","k","key","sorted","a","b","html","cat","lastCategory","first","cj","helpPanel","body","currentUrlElement","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","map_bounds","southWest","northEast","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","baseLayers","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","enable","copyHashButton","window","document","params","evt","handleTouchStart","handleTouchMove","handleTouchEnd","xDown","yDown","xDiff","yDiff","timeDown","startEl","touchCount","swipeThreshold","getNearestAttribute","swipeUnit","swipeTimeout","timeDiff","changedTouches","eventData","xUp","yUp","attributeName","defaultValue","attributeValue","img","btnLabelCollapsed","btnLabelNotCollapsed","target","targetElement","iframe_load","srctest","imgTimeoutID","imgLoaderSpinner","imgLoader","loadImage","imgSrc","onSuccess","thumbnail","scrollTop","qinput_id","qinput","isMobile","isResultsPage","submitIfQuery","search","createClearButton","cs","updateClearButton","ev","fetchResults","query","request","reqParams","autocomplete","autocompleteList","noItemFoundMessage","result","li","currentIndex","listItems","newCurrentIndex","selectedItem","categoryButtons","selectedCategories","categoryButton","categoryValuesInput","categoryValues"],"mappings":"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","x_google_ignoreList":[5]} \ No newline at end of file From 20b40351b9e36dffc06b44dfaf3c4846b569d63e Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 26 May 2025 12:34:04 +0200 Subject: [PATCH 404/417] [chore] il post: disable by default --- searx/settings.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/searx/settings.yml b/searx/settings.yml index 64affcadc..1fdf221b0 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1116,6 +1116,7 @@ engines: - name: il post engine: il_post shortcut: pst + disabled: true - name: huggingface engine: huggingface From 2288f07d621d67d6b39f0d0073cdcc951ec22726 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Wed, 28 May 2025 11:36:37 +0200 Subject: [PATCH 405/417] [fix] presearch: reuse response cookies from token extraction Why? - presearch requires the response cookies of the first request to be sent within the second request - otherwise we miss auth information and the engine doesn't work Related: - https://github.com/searxng/searxng/pull/4858 - closes https://github.com/searxng/searxng/issues/4854 Co-authored-by: Aadniz <8147434+Aadniz@users.noreply.github.com> --- searx/engines/presearch.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/searx/engines/presearch.py b/searx/engines/presearch.py index 1093b5cff..36b754f87 100644 --- a/searx/engines/presearch.py +++ b/searx/engines/presearch.py @@ -137,19 +137,20 @@ def _get_request_id(query, params): if l.territory: headers['Accept-Language'] = f"{l.language}-{l.territory},{l.language};" "q=0.9,*;" "q=0.5" - resp_text = get(url, headers=headers).text # type: ignore + resp = get(url, headers=headers) - for line in resp_text.split("\n"): + for line in resp.text.split("\n"): if "window.searchId = " in line: - return line.split("= ")[1][:-1].replace('"', "") + return line.split("= ")[1][:-1].replace('"', ""), resp.cookies - return None + raise RuntimeError("Couldn't find any request id for presearch") def request(query, params): - request_id = _get_request_id(query, params) + request_id, cookies = _get_request_id(query, params) params["headers"]["Accept"] = "application/json" params["url"] = f"{base_url}/results?id={request_id}" + params["cookies"] = cookies return params From 70a387a48fc08bd1984ed162ebc3cc181e6ac162 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:38:04 +0000 Subject: [PATCH 406/417] [data] update searx.data - update_engine_descriptions.py --- searx/data/engine_descriptions.json | 539 ++++++++++++++++++++++------ 1 file changed, 439 insertions(+), 100 deletions(-) diff --git a/searx/data/engine_descriptions.json b/searx/data/engine_descriptions.json index fbccee24b..47ab4fcf7 100644 --- a/searx/data/engine_descriptions.json +++ b/searx/data/engine_descriptions.json @@ -88,23 +88,23 @@ }, "ar":{ "1337x":"1337x هو موقع ويب يوفر دليلًا لملفات التورنت وروابط التورنت المستخدمة لمشاركة الملفات من نظير إلى نظير من خلال بروتوكول بت تورنت. وفقًا لمدونة أخبار تورنت فريك، فإن 1337x هو ثالث أشهر مواقع التورنت اعتبارًا من عام 2021.", - "9gag":"9جاج ‏ هو موقع صور قائم على مواقع الإعلام الاجتماعي ويتمحور حول الصور التي يرفعها المستخدمون والصور الهزلية، يزور الموقع شهريا مليارا زائر كما في شهر ديسمبر 2011 حسب موسس الموقع راي تشان. ويعرف الموقع بشكل رئيسي باستخدام ميم إنترنت.", - "alpine linux packages":"ألباين لينكس ‏ هي توزيعة لينكس مستقلة صممت لتكون صغيرة وبسيطة وآمنة. تستخدم التوزيعة مسل، وبيزي بوكس، وأوبن آر سي بدلًا من مكتبة جنو لسي، وأدوات جنو الأساسية، وسيستم دي الاعتياديين الموجودين في أغلب التوزيعات، مما يجعلها أحد التوزيعات القليلة التي لا تعتمد على جنو.", - "ansa":"وكالة الأنباء الإيطالية أو الوكالة القومية المشتركة للأنباء (بالإيطالية: Agenzia Nazionale Stampa Associata)‏ «أنسا». هي أكبر وكالة للمعلومات في إيطاليا وإحدى كبريات وكالات الأنباء العالمية. تعتبر أنسا وكالة أنباء تعاونية غير ربحية. كما أن أعضائها والمالكون لها هم 36 من كبريات شبكات ووكالات الأنباء في إيطاليا. ومهمتها تكمن في بث تقارير موضوعية ومحايدة للأخبار.", - "apple app store":"متجر التطبيقات ‏ هي خدمة أنتجت لجهازي آي فون وآي بود تاتش وآي باد. صممته وتملكه شركة أبل والتي تمكن المستخدمين من تحميل التطبيقات المختلفة من خلال البرنامج نفسه على الجهاز دون الحاجة لبرنامج آي تيونز ستور بعد تحديث نظام التشغيل iOS 10. بلغ متوسط القيمة التقديرية لحجم المتجر 6 مليارات و200 مليون في عام 2010.", - "apple maps":"خرائط أبل ‏ هي خدمة خرائط ويب طورتها شركة أبل وهو نظام الخرائط الافتراضي الخاص بالأجهزة المستخدمة لأنظمة آي أو إس وماك أوس وووتش أو إس. توفر الخدمة معلومات الاتجاهات والزمن التقديري لوصول السيارات والمشاة وملاحة النقل العام. كما تُقدم خرائط أبل ميزة خاصة تُمكن المستخدم من استكشاف بعض المراكز الحضرية المكتظة بالسكان وغيرها من الأماكن الهامة بمشاهد ثلاثية الأبعاد تُظهر الأبنية.", + "9gag":"9جاج هو موقع صور قائم على مواقع الإعلام الاجتماعي ويتمحور حول الصور التي يرفعها المستخدمون والصور الهزلية، يزور الموقع شهريا مليارا زائر كما في شهر ديسمبر 2011 حسب موسس الموقع راي تشان. ويعرف الموقع بشكل رئيسي باستخدام ميم إنترنت.", + "alpine linux packages":"ألباين لينكس هي توزيعة لينكس مستقلة صممت لتكون صغيرة وبسيطة وآمنة. تستخدم التوزيعة مسل، وبيزي بوكس، وأوبن آر سي بدلًا من مكتبة جنو لسي، وأدوات جنو الأساسية، وسيستم دي الاعتياديين الموجودين في أغلب التوزيعات، مما يجعلها أحد التوزيعات القليلة التي لا تعتمد على جنو.", + "ansa":"وكالة الأنباء الإيطالية أو الوكالة القومية المشتركة للأنباء (بالإيطالية: Agenzia Nazionale Stampa Associata) «أنسا». هي أكبر وكالة للمعلومات في إيطاليا وإحدى كبريات وكالات الأنباء العالمية. تعتبر أنسا وكالة أنباء تعاونية غير ربحية. كما أن أعضائها والمالكون لها هم 36 من كبريات شبكات ووكالات الأنباء في إيطاليا. ومهمتها تكمن في بث تقارير موضوعية ومحايدة للأخبار.", + "apple app store":"متجر التطبيقات هي خدمة أنتجت لجهازي آي فون وآي بود تاتش وآي باد. صممته وتملكه شركة أبل والتي تمكن المستخدمين من تحميل التطبيقات المختلفة من خلال البرنامج نفسه على الجهاز دون الحاجة لبرنامج آي تيونز ستور بعد تحديث نظام التشغيل iOS 10. بلغ متوسط القيمة التقديرية لحجم المتجر 6 مليارات و200 مليون في عام 2010.", + "apple maps":"خرائط أبل هي خدمة خرائط ويب طورتها شركة أبل وهو نظام الخرائط الافتراضي الخاص بالأجهزة المستخدمة لأنظمة آي أو إس وماك أوس وووتش أو إس. توفر الخدمة معلومات الاتجاهات والزمن التقديري لوصول السيارات والمشاة وملاحة النقل العام. كما تُقدم خرائط أبل ميزة خاصة تُمكن المستخدم من استكشاف بعض المراكز الحضرية المكتظة بالسكان وغيرها من الأماكن الهامة بمشاهد ثلاثية الأبعاد تُظهر الأبنية.", "arch linux wiki":[ "توثيق آرتش لينكس على الوِب", "wikidata" ], "artic":"معهد الفن في شيكاغو متحف عام للفن، ومركز ثقافي وتعليمي في الولايات المتحدة. تأسس معهد الفن عام 1866 باسم أكاديمية شيكاغو للتصميم، تضم المجموعات المعروضة في المعهد اللوحات والمنحوتات، والمطبوعات والرسومات والفنون الزخرفية الأوروبية والأمريكية والفن الشرقي والكلاسيكي وفن التصوير الضوئي والمنسوجات وفنون وحرف أفريقيا وأمريكا اللاتينية وجزر المحيط الهادئ وأمريكا ما قبل كولمبوس.", - "arxiv":"أرخايف ‏ بحيث تُنطق في النهاية «أركايف» أو «أرخايف». أرخايف هو أرشيف لمسودات أوراق علمية إلكترونية مكتوبة في مجالات الفيزياء، الرياضيات، الفلك، علم الحاسوب، والإحصاء التي يمكن الوصول إليها عبر الإنترنت. هذه الأرشيفات موجودة على موقع arXiv.org.", - "ask":"أسك دوت كوم ‏ هو باحوث ‏ يركز على الرد على الأسئلة. تأسس الموقع في العام 1996 من قبل غاريت جرونر وديفيد وارثن في بيركلي، كاليفورنيا.", + "arxiv":"أرخايف بحيث تُنطق في النهاية «أركايف» أو «أرخايف». أرخايف هو أرشيف لمسودات أوراق علمية إلكترونية مكتوبة في مجالات الفيزياء، الرياضيات، الفلك، علم الحاسوب، والإحصاء التي يمكن الوصول إليها عبر الإنترنت. هذه الأرشيفات موجودة على موقع arXiv.org.", + "ask":"أسك دوت كوم هو باحوث يركز على الرد على الأسئلة. تأسس الموقع في العام 1996 من قبل غاريت جرونر وديفيد وارثن في بيركلي، كاليفورنيا.", "askubuntu":[ "stackoverflow:ar", "ref" ], - "baidu":"بايدو ‏ هو محرك بحث صيني انطلق يوم 18 يناير 2000. وهو المصنف رقم واحد في الصين والثالث عالمياً حسب عدد الزيارات حسب تصنيف أليكسا، حيث يمكن هذا الموقع من البحث في أكثر من 57 تصنيف مختلف، منها الصور، الفيديو، الأخبار والوثائق وغيرها الكثير. قام بإنشاء موقع بايدو الصينيان روبن لي وإريك تشو، وكلاهما درسا خارج الصين قبل العودة إليها بشهادات عليا حيث أسسا شركة بايدو. وفي سنة 2007، صارت شركة بايدو أول شركة صينية تُسَجل في بورصة نازداك الأمريكية.واتخذ بايدو كشعار له، بايدو يعرف الصينيين أفضل، أو أفضل من غيره، مشيراً بذلك إلى منافسيه الذين يعملون أساساً من قارات بعيدة عن الصين كجوجل.", + "baidu":"بايدو هو محرك بحث صيني انطلق يوم 18 يناير 2000. وهو المصنف رقم واحد في الصين والثالث عالمياً حسب عدد الزيارات حسب تصنيف أليكسا، حيث يمكن هذا الموقع من البحث في أكثر من 57 تصنيف مختلف، منها الصور، الفيديو، الأخبار والوثائق وغيرها الكثير. قام بإنشاء موقع بايدو الصينيان روبن لي وإريك تشو، وكلاهما درسا خارج الصين قبل العودة إليها بشهادات عليا حيث أسسا شركة بايدو. وفي سنة 2007، صارت شركة بايدو أول شركة صينية تُسَجل في بورصة نازداك الأمريكية.واتخذ بايدو كشعار له، بايدو يعرف الصينيين أفضل، أو أفضل من غيره، مشيراً بذلك إلى منافسيه الذين يعملون أساساً من قارات بعيدة عن الصين كجوجل.", "baidu images":[ "baidu:ar", "ref" @@ -114,7 +114,7 @@ "ref" ], "bilibili":"بيليبيلي (بالأنجليزية:bilibili) هو موقع ويب من نوع خدمة استضافة فيديو وتطبيق محمول أنشئ في 26 يونيو 2009، يقع مقره الرئيسي في الصين، وهو متوفر باللغة الصينية. يعد Bilibili واحداً من أهم منصات الفيديو الناشئة في الصين. يحظى الموقع بشعبية ضخمة بين الجيل Z في الصين. يميل محتوى Bilibili إلى أن يكون حول الألعاب والرسوم المتحركة والقصص المصورة. ومع ذلك، فإن عدد أنواع الفيديو الشائعة يتغير مع تزايد شعبية المنصة، ويرتبط معظمها بأسلوب الحياة والجمال. وهو يتشابه إلى حد كبير مع موقع اليوتيوب.", - "bing":"مايكروسوفت بينغ ‏ واختصارًا وهو الاسم السابق: بينغ ‏ ؛ هو محرك بحث أعلن عنه تحت اسم ، طور تحت اسم بالعربية: كومو وإنجليزية: kumo, هو محرك بحث في ويب لشركة مايكروسوفت، صمم لمنافسة رواد هذا المجال جوجل وياهو!، تم الإفصاح عنه من قبل ستيف بالمر الرئيس التنفيذي السابق في مايكروسوفت في 28 مايو 2009 في مؤتمر All Things D في سان دييغو، بينغ هو بديل لايف سيرش Live Search، بدأ عمله بالكامل في 3 يونيو 2009.", + "bing":"مايكروسوفت بينغ واختصارًا وهو الاسم السابق: بينغ ؛ هو محرك بحث أعلن عنه تحت اسم ، طور تحت اسم بالعربية: كومو وإنجليزية: kumo, هو محرك بحث في ويب لشركة مايكروسوفت، صمم لمنافسة رواد هذا المجال جوجل وياهو!، تم الإفصاح عنه من قبل ستيف بالمر الرئيس التنفيذي السابق في مايكروسوفت في 28 مايو 2009 في مؤتمر All Things D في سان دييغو، بينغ هو بديل لايف سيرش Live Search، بدأ عمله بالكامل في 3 يونيو 2009.", "bing images":[ "bing:ar", "ref" @@ -131,8 +131,8 @@ "خدمة استضافة على شبكة الإنترنت لمشاريع تطوير البرمجيات", "wikidata" ], - "bitchute":"بيتشيوت ‏ هو موقع وتطبيق خدمة فيديوهات تم إنشائه في إنجلترا في يناير 2017 من قبل راي فاهي لينافس يوتيوب، حاز هذا الموقع على شعبية عند مدوني اليمين الأقصى مثل أليكس جونس ومن ألذين تم منعهم بسبب سياسات يوتيوب، وقد أتهم الموقع بإثارة الكراهية.", - "brave":"بريف ‏ وتعني شجاع هو متصفح ويب مفتوح المصدر مبني على كروميوم، يعمل المتصفح على نظم تشغيل مايكروسوفت ويندوز وماك أو إس وجنو/لينكس، وكذلك يعمل على نظامي آي أو إس وأندرويد. ترأس بريندان أيخ، منشئ جافاسكربت وأحد مؤسسي مؤسسة موزيلا، مشروع تطوير هذا المتصفح.", + "bitchute":"بيتشيوت هو موقع وتطبيق خدمة فيديوهات تم إنشائه في إنجلترا في يناير 2017 من قبل راي فاهي لينافس يوتيوب، حاز هذا الموقع على شعبية عند مدوني اليمين الأقصى مثل أليكس جونس ومن ألذين تم منعهم بسبب سياسات يوتيوب، وقد أتهم الموقع بإثارة الكراهية.", + "brave":"بريف وتعني شجاع هو متصفح ويب مفتوح المصدر مبني على كروميوم، يعمل المتصفح على نظم تشغيل مايكروسوفت ويندوز وماك أو إس وجنو/لينكس، وكذلك يعمل على نظامي آي أو إس وأندرويد. ترأس بريندان أيخ، منشئ جافاسكربت وأحد مؤسسي مؤسسة موزيلا، مشروع تطوير هذا المتصفح.", "brave.images":[ "brave:ar", "ref" @@ -145,14 +145,14 @@ "brave:ar", "ref" ], - "currency":"دك دك غو أو داك داك غو ‏ هو محرك بحث على الإنترنت يركز على حماية خصوصية الباحثين وتجنب فقاعة التصفية لنتائج البحث المخصصة. يميز DuckDuckGo نفسه عن محركات البحث الأخرى من خلال عدم تحديد سمات مستخدميه وإظهار نفس نتائج البحث لجميع المستخدمين لمصطلح بحث معين.", + "currency":"دك دك غو أو داك داك غو هو محرك بحث على الإنترنت يركز على حماية خصوصية الباحثين وتجنب فقاعة التصفية لنتائج البحث المخصصة. يميز DuckDuckGo نفسه عن محركات البحث الأخرى من خلال عدم تحديد سمات مستخدميه وإظهار نفس نتائج البحث لجميع المستخدمين لمصطلح بحث معين.", "dailymotion":"ديلي موشن (Dailymotion) هو موقع ويب شهير متخصص بمشاركة الفيديو، يعتبر منافس ليوتويب، يسمح للمستخدمين برفع ومشاهدة ومشاركة مقاطع الفيديو بشكل مجاني. في نوفمبر 2012 احتل الموقع المرتبة 31 لأكثر المواقع زيارة في العالم بحجم زائرين يصل إلى 116 مليون زائر في الشهر.", "ddg definitions":[ "currency:ar", "ref" ], - "deezer":"ديزر ‏ وهي منصة إلكترونية تقدم خدمة بث الموسيقى. وتتيح للمستخدمين الاستماع إلى الموسيقى من شركات إنتاج موسيقية، مثل: سوني للترفيه الموسيقي، ومجموعة يونيفرسال ميوزيك، ووارنر ميوزيك على مختلف الأجهزة سواء باستخدام الإنترنت أو من دون اتصال. تم إنشاء المنصّة في باريس، فرنسا، لدى دييزر حاليا 56 مليون ملف صوتي في المكتبة، مع أكثر من 60,000 قناة راديو، و18 مليون مستخدم نشط شهريا، منهم 7 ملايين مشترك اشتراك مدفوع منذ 3 أبريل 2020. الخدمة متاحة على شبكة الإنترنت، ونظام اندرويد، ونظام آي أو اس، وويندوز موبايل، ونظام التشغيل بلاك بيري، وويندوز، وماك.", - "deviantart":"ديڤينت‌آرت ‏ هو هو مجتمع فن أمريكي يتناول الأعمال الفنية، والتصوير الفيديوي والفوتوغرافي. أطلق في 7 أغسطس، 2000، من قبل انجيلو سوتيرا، سكوت جاركوف، ماثيو ستيفنز، وآخرين. تنظم الأعمال الفنية بحسب تصنيفات، وتشمل التصنيفات، التصوير الفوتوغرافي، والفن الرقمي، والفن التقليدي، والأدب، وفلاش، وصناعة الإفلام أو تصوير الأفلام، والأغلفة للتطبيقات، وأدوات تخصيص نظام التشغيل وغيرها، بالإضافة إلى المواد القابلة للتنزيل مثل الدورات التعليمية، والصور الفوتوغرافية. بالإضافة إلى مزايا إضافية مثل المجلات، والاستفتاءات، والمجموعات، ووملفات الأعمال الفنية.", + "deezer":"ديزر وهي منصة إلكترونية تقدم خدمة بث الموسيقى. وتتيح للمستخدمين الاستماع إلى الموسيقى من شركات إنتاج موسيقية، مثل: سوني للترفيه الموسيقي، ومجموعة يونيفرسال ميوزيك، ووارنر ميوزيك على مختلف الأجهزة سواء باستخدام الإنترنت أو من دون اتصال. تم إنشاء المنصّة في باريس، فرنسا، لدى دييزر حاليا 56 مليون ملف صوتي في المكتبة، مع أكثر من 60,000 قناة راديو، و18 مليون مستخدم نشط شهريا، منهم 7 ملايين مشترك اشتراك مدفوع منذ 3 أبريل 2020. الخدمة متاحة على شبكة الإنترنت، ونظام اندرويد، ونظام آي أو اس، وويندوز موبايل، ونظام التشغيل بلاك بيري، وويندوز، وماك.", + "deviantart":"ديڤينت‌آرت هو هو مجتمع فن أمريكي يتناول الأعمال الفنية، والتصوير الفيديوي والفوتوغرافي. أطلق في 7 أغسطس، 2000، من قبل انجيلو سوتيرا، سكوت جاركوف، ماثيو ستيفنز، وآخرين. تنظم الأعمال الفنية بحسب تصنيفات، وتشمل التصنيفات، التصوير الفوتوغرافي، والفن الرقمي، والفن التقليدي، والأدب، وفلاش، وصناعة الإفلام أو تصوير الأفلام، والأغلفة للتطبيقات، وأدوات تخصيص نظام التشغيل وغيرها، بالإضافة إلى المواد القابلة للتنزيل مثل الدورات التعليمية، والصور الفوتوغرافية. بالإضافة إلى مزايا إضافية مثل المجلات، والاستفتاءات، والمجموعات، ووملفات الأعمال الفنية.", "duckduckgo":[ "currency:ar", "ref" @@ -173,32 +173,32 @@ "currency:ar", "ref" ], - "emojipedia":"إيموجي بيديا ‏ هو موقع على الإنترنت مختص بمراجع الإيموجي، قام بإنشائه متخصص الإيموجي جيرمي بورج في 2013.", + "emojipedia":"إيموجي بيديا هو موقع على الإنترنت مختص بمراجع الإيموجي، قام بإنشائه متخصص الإيموجي جيرمي بورج في 2013.", "etymonline":"قاموس علم اشتقاق الألفاظ هو قاموس حر على الانترنت يصف أصول الكلمات باللغة الإنجليزية.", - "fdroid":"إف-درويد ‏ هو مستودع برامج أو «متجر تطبيقات» لتطبيقات الأندرويد، مماثل ومشابه ل جوجل بلاي ستور . المستودع الرئيسي مستضاف من طرف مشروع يحتوي فقط على تطبيقات ذات برامج حرة أو مفتوحة المصدر. التطبيقات يمكن تصفحها وتحميلها من الموقع الرسمي ل إف-درويد بدون حاجة المستخدم إلى تسجيل أو فتح حساب. «مضاد الميزات» على غرار الإعلانات تستعمل التتبع أو أنها تعتمد على برامج غير حرة ويتم ذكر هذا في الوصف. يقدم الموقع أيضا مصدر الكود للتطبيقات ، حيث أن مضيفي البرامج يستعملون خادم ف-درويد، وبالتالي يسمحون لأي شخص من المجموعة في أن يصبح ملك تطبيق معين في المستودع.", - "flickr":"فليكر ‏ هي خدمة استضافة الصور والفيديو بالإضافة إلى كونها مجتمعًا عبر الإنترنت. تأسَّست فليكر من قِبل لوديكورب ‏ عام 2004 وأصبحت منصّة شائعة للمصورين الهواة والمحترفين لاستضافة صور عاليّة الدقة. تغيّرت ملكية فليكر عدة مرات إلى أن امتلكتها سموج موج ‏ منذ العشرين من نيسان/أبريل 2018.", + "fdroid":"إف-درويد هو مستودع برامج أو «متجر تطبيقات» لتطبيقات الأندرويد، مماثل ومشابه ل جوجل بلاي ستور . المستودع الرئيسي مستضاف من طرف مشروع يحتوي فقط على تطبيقات ذات برامج حرة أو مفتوحة المصدر. التطبيقات يمكن تصفحها وتحميلها من الموقع الرسمي ل إف-درويد بدون حاجة المستخدم إلى تسجيل أو فتح حساب. «مضاد الميزات» على غرار الإعلانات تستعمل التتبع أو أنها تعتمد على برامج غير حرة ويتم ذكر هذا في الوصف. يقدم الموقع أيضا مصدر الكود للتطبيقات ، حيث أن مضيفي البرامج يستعملون خادم ف-درويد، وبالتالي يسمحون لأي شخص من المجموعة في أن يصبح ملك تطبيق معين في المستودع.", + "flickr":"فليكر هي خدمة استضافة الصور والفيديو بالإضافة إلى كونها مجتمعًا عبر الإنترنت. تأسَّست فليكر من قِبل لوديكورب عام 2004 وأصبحت منصّة شائعة للمصورين الهواة والمحترفين لاستضافة صور عاليّة الدقة. تغيّرت ملكية فليكر عدة مرات إلى أن امتلكتها سموج موج منذ العشرين من نيسان/أبريل 2018.", "free software directory":"دليل البرمجيات الحرة (FSD) هو مشروع تابع لمؤسسة البرمجيات الحرة (FSF). يقوم بفهرسة البرامج المجانية التي تعمل في ظل أنظمة التشغيل الحرة - خاصة جنو و لينكس. غالبًا ما تكون المشاريع المفهرسة قادرة على العمل في العديد من أنظمة التشغيل الأخرى. كان المشروع في السابق بالاشتراك مع اليونسكو.", "genius":"جينيس (بالإنجليزية:Genius) كان اسمها سابقاً راب جينيس وهي شركة أمريكية للإعلام الرقمي, أسس الموقع في آب 2009 من قبل توم ليهمان، إيلان زيخوري، ومهبود موغادام، والموقع يتيح للمستخدمين تقديم شروح وتفسير كلمات الأغاني، وقصص إخبارية، ومصادر، ووثائق.", "gentoo":[ "gentoo:en", "ref" ], - "github":"غيت هاب ‏ هي شركة تابعة لمايكروسوفت توفر استضافة لتطوير البرامج والتحكم في الإصدار باستخدام غيت. توفر الشركة وظائف التحكم في الإصدار الموزع وإدارة كود المصدر (SCM) لـ «غيت»، بالإضافة إلى ميزاته الخاصة. يوفر النظام التحكم في الوصول والعديد من ميزات التعاون مثل تتبع الأخطاء وطلبات الميزات البرمجية وإدارة المهام والتركيب المتواصل ومواقع ويكي لكل مشروع غيت هاب. يقع مقرها الرئيسي في كاليفورنيا، وهي شركة تابعة لشركة مايكروسوفت منذ عام 2018.", - "gitlab":"غيت لاب ‏ هي شركة مفتوحة النواة تشتهر بتقديم مدير مستودعات غيت الذي يحمل نفس اسم الشركة.", - "goodreads":"جودريدز أو غودريدز ‏ تترجم للعربية بـ القراءات الجيدة هي شبكة اجتماعية تهتم بالكتب وبتوصيات وآراء المستخدمين حول الكتب والمؤلفين، أسس الموقع في عام 2006 من جهد المبرمج الأمريكي أوتيس تشاندلر. انطلق الموقع في ديسمبر 2006 ووصل عدد الأعضاء المسجلين في جود ريدز إلى أكثر من المليون عضو حتى اليوم، شاركوا بما يزيد على 10 ملايين كتاب، ورغم ذلك فإن الموقع لم يكن هادفاً للربح عند إطلاقه وبعد عام واحد فقط تلقى تمويلاً من إحدى الشركات لدفعه إلى الأمام والمحافظة على خدمته المتميزة. في آذار 2013 أعلنت شركة أمازون استحواذها عليه بدون الإفصاح عن مبلغ العقد.", - "google":"بحث جوجل ‏ أو جوجل ‏، هو محرك بحث صممته شركة جوجل. وهو محرك البحث الأكثر استخدامًا على شبكة الويب العالمية عبر جميع الأنظمة الأساسية، مع حصة سوقية تبلغ 92.16٪ اعتبارًا من ديسمبر 2020، ويتعامل مع أكثر من 5.4 مليار عملية بحث يوميًا.", - "google images":"صور جوجل ‏: هو محرك بحث مصمم خصيصاً للبحث عن الصور، بلغ عدد الصور التي تحتويه 10 مليارات صورة، بينما يبلغ عدد متصفحيه مليار مستخدم يومياً. أطلقت هذه الخدمة منذ يوليو 2001.", - "google news":"أخبار جوجل ‏ هو برنامج مبني على الويب، تقدمه شركة جوجل. البرنامج عبارة عن مجمع أخبار. يستخدم البرنامج خوارزمية Storyrank التي يمكن القول أنها الخوارزمية الشقيقة لخوارزمية Pagerank التي جعلت باحوث جوجل من أفضل محركات البحث على الإنترنت. تم تطوير الخوارزمية بواسطة كاريشنا باهارات في العام 2001. تم تقديم أخبار جوجل كنسخة بيتا في أبريل 2002. خرج البرنامج من مرحلة البيتا في 23 يناير 2006. هناك عدة نسخ من البرنامج مخصصة ل 20 إقليما في العالم تستخدم 12 لغة. اللغات المتاحة حالياً هي: العربية، العبرية، الصينية ، اليبانية، الكورية، الفرنسية، الألمانية، الإسبانية، الإنجليزية، الإيطالية، البرتغالية، الهولندية، النرويجية، والسويدية.", - "google play apps":"جوجل بلاي ‏ وسابقًا سوق أندرويد ‏ هي خدمة توزيع رقمية يتم تشغيلها وتطويرها بواسطة جوجل، وهو بمثابة متجر التطبيقات الرسميّ للأجهزة المُعتمدة التي تعمل على نظام التشغيل أندرويد، ممَّا يسمح للمستخدمين بتصفح وتنزيل التطبيقات التي تمَّ تطويرها بِاستخدام مجموعة تطوير برامج أندرويد (SDK) ونشرها عبر جوجل. يُعد جوجل بلاي أيضًا بمثابة متجر وسائط رقمية، حيثُ يعرضُ المُوسيقى، والكتب، والأفلام، والبرامج التلفزيونية. عرض المتجر سابقًا أجهزة جوجل للشراء حتّى طُرح متجر تجزئة منفصل للأجهزة عبر الإنترنت والمسمى متجر جوجل وذلك في 11 مارس 2015. عرض المتجر أيضًا منشورات إخباريَّة ومجلات قبل تجديد أخبار جوجل في 15 مايو 2018. عرض المتجر أيضاً المُوسيقى والبودكاست كجزء من موسيقى جوجل بلاي حتّى ديسمبر 2020 عندما تمَّ استبدال الخدمة بيوتيوب ميوزيك وجوجل بودكاست.", + "github":"غيت هاب هي شركة تابعة لمايكروسوفت توفر استضافة لتطوير البرامج والتحكم في الإصدار باستخدام غيت. توفر الشركة وظائف التحكم في الإصدار الموزع وإدارة كود المصدر (SCM) لـ «غيت»، بالإضافة إلى ميزاته الخاصة. يوفر النظام التحكم في الوصول والعديد من ميزات التعاون مثل تتبع الأخطاء وطلبات الميزات البرمجية وإدارة المهام والتركيب المتواصل ومواقع ويكي لكل مشروع غيت هاب. يقع مقرها الرئيسي في كاليفورنيا، وهي شركة تابعة لشركة مايكروسوفت منذ عام 2018.", + "gitlab":"غيت لاب هي شركة مفتوحة النواة تشتهر بتقديم مدير مستودعات غيت الذي يحمل نفس اسم الشركة.", + "goodreads":"جودريدز أو غودريدز تترجم للعربية بـ القراءات الجيدة هي شبكة اجتماعية تهتم بالكتب وبتوصيات وآراء المستخدمين حول الكتب والمؤلفين، أسس الموقع في عام 2006 من جهد المبرمج الأمريكي أوتيس تشاندلر. انطلق الموقع في ديسمبر 2006 ووصل عدد الأعضاء المسجلين في جود ريدز إلى أكثر من المليون عضو حتى اليوم، شاركوا بما يزيد على 10 ملايين كتاب، ورغم ذلك فإن الموقع لم يكن هادفاً للربح عند إطلاقه وبعد عام واحد فقط تلقى تمويلاً من إحدى الشركات لدفعه إلى الأمام والمحافظة على خدمته المتميزة. في آذار 2013 أعلنت شركة أمازون استحواذها عليه بدون الإفصاح عن مبلغ العقد.", + "google":"بحث جوجل أو جوجل ، هو محرك بحث صممته شركة جوجل. وهو محرك البحث الأكثر استخدامًا على شبكة الويب العالمية عبر جميع الأنظمة الأساسية، مع حصة سوقية تبلغ 92.16٪ اعتبارًا من ديسمبر 2020، ويتعامل مع أكثر من 5.4 مليار عملية بحث يوميًا.", + "google images":"صور جوجل : هو محرك بحث مصمم خصيصاً للبحث عن الصور، بلغ عدد الصور التي تحتويه 10 مليارات صورة، بينما يبلغ عدد متصفحيه مليار مستخدم يومياً. أطلقت هذه الخدمة منذ يوليو 2001.", + "google news":"أخبار جوجل هو برنامج مبني على الويب، تقدمه شركة جوجل. البرنامج عبارة عن مجمع أخبار. يستخدم البرنامج خوارزمية Storyrank التي يمكن القول أنها الخوارزمية الشقيقة لخوارزمية Pagerank التي جعلت باحوث جوجل من أفضل محركات البحث على الإنترنت. تم تطوير الخوارزمية بواسطة كاريشنا باهارات في العام 2001. تم تقديم أخبار جوجل كنسخة بيتا في أبريل 2002. خرج البرنامج من مرحلة البيتا في 23 يناير 2006. هناك عدة نسخ من البرنامج مخصصة ل 20 إقليما في العالم تستخدم 12 لغة. اللغات المتاحة حالياً هي: العربية، العبرية، الصينية ، اليبانية، الكورية، الفرنسية، الألمانية، الإسبانية، الإنجليزية، الإيطالية، البرتغالية، الهولندية، النرويجية، والسويدية.", + "google play apps":"جوجل بلاي وسابقًا سوق أندرويد هي خدمة توزيع رقمية يتم تشغيلها وتطويرها بواسطة جوجل، وهو بمثابة متجر التطبيقات الرسميّ للأجهزة المُعتمدة التي تعمل على نظام التشغيل أندرويد، ممَّا يسمح للمستخدمين بتصفح وتنزيل التطبيقات التي تمَّ تطويرها بِاستخدام مجموعة تطوير برامج أندرويد (SDK) ونشرها عبر جوجل. يُعد جوجل بلاي أيضًا بمثابة متجر وسائط رقمية، حيثُ يعرضُ المُوسيقى، والكتب، والأفلام، والبرامج التلفزيونية. عرض المتجر سابقًا أجهزة جوجل للشراء حتّى طُرح متجر تجزئة منفصل للأجهزة عبر الإنترنت والمسمى متجر جوجل وذلك في 11 مارس 2015. عرض المتجر أيضًا منشورات إخباريَّة ومجلات قبل تجديد أخبار جوجل في 15 مايو 2018. عرض المتجر أيضاً المُوسيقى والبودكاست كجزء من موسيقى جوجل بلاي حتّى ديسمبر 2020 عندما تمَّ استبدال الخدمة بيوتيوب ميوزيك وجوجل بودكاست.", "google play movies":[ "google play apps:ar", "ref" ], - "google scholar":"جوجل سكولار أو الباحث العلمي من جوجل ‏ هو محرك بحث خاص بالمؤلفات العلمية والأكاديمية التي يحتاج إليها الباحثون والدارسون. من مكان واحد، يمكنك البحث عبر العديد من المجالات العلمية ومصادر المعلومات: أبحاث معتمدة ورسائل علمية وكتب وملخصات ومقالات من ناشرين أكاديميين وجمعيات متخصصة ومراكز جمع المعلومات قبل طباعتها والجامعات وغير ذلك من مؤسسات البحث العلمي. يساعدك الباحث العلمي من جوجل على التعرف على أكثر الأبحاث العلمية صلة بمجال بحثك في عالم البحث العلمي.", + "google scholar":"جوجل سكولار أو الباحث العلمي من جوجل هو محرك بحث خاص بالمؤلفات العلمية والأكاديمية التي يحتاج إليها الباحثون والدارسون. من مكان واحد، يمكنك البحث عبر العديد من المجالات العلمية ومصادر المعلومات: أبحاث معتمدة ورسائل علمية وكتب وملخصات ومقالات من ناشرين أكاديميين وجمعيات متخصصة ومراكز جمع المعلومات قبل طباعتها والجامعات وغير ذلك من مؤسسات البحث العلمي. يساعدك الباحث العلمي من جوجل على التعرف على أكثر الأبحاث العلمية صلة بمجال بحثك في عالم البحث العلمي.", "google videos":"جوجل فيديو هو موقع فيديو مجاني، وكذلك محرك بحث للفيديو من غوغل. غوغل فيديو يسمح للفيديو أن يكون جزءًا لا يتجزأ من مواقع أخرى بعيدة ويوفر ما يلزم من كود HTML ويسمح كذلك للمواقع باستضافة كميات كبيرة من الفيديو عن بعد على جوجل فيديو دون الوقوع في عرض النطاق الترددي. بعض أشرطة الفيديو معروضة أيضاً للبيع من خلال متجر غوغل فيديو.", - "hackernews":"هاكر نيوز ‏ هو موقع إخباري اجتماعي يركز على علوم الكمبيوتر وريادة الأعمال. يدار من قبل صندوق الاستثمار وحاضنة الشركات الناشئة Y Combinator الخاصة بـ بول غراهام. بشكل عام يتم تعريف المحتوى الذي يمكن تقديمه على أنه «أي شيء يرضي فضول الفرد الفكري».", + "hackernews":"هاكر نيوز هو موقع إخباري اجتماعي يركز على علوم الكمبيوتر وريادة الأعمال. يدار من قبل صندوق الاستثمار وحاضنة الشركات الناشئة Y Combinator الخاصة بـ بول غراهام. بشكل عام يتم تعريف المحتوى الذي يمكن تقديمه على أنه «أي شيء يرضي فضول الفرد الفكري».", "hoogle":"هاسكل هي لغة برمجة مطابقة للمعايير، للأغراض العامة، وهي لغة وظيفية إلى حد كبير، دون دلالات ألفاظ ملزمة وبكتابة ثابتة وقوية. وقد سُميت بـ هاسكل علي اسم عالم المنطق «هاسكل كوري». وفي اللغة هاسكل، «تمثل الوظيفة مواطن من الدرجة الأولى» من لغة البرمجة. ولكونها لغة برمجة وظيفية فإن بنية التحكم الرئيسية هي الوظيفة. وترجع أصول اللغة إلى ملاحظات هاسكل كوري وأتباعه من المفكرين، بأن «الإثبات هو برنامج؛ والمعادلة التي يثبتها هي نوع للبرنامج».", - "huggingface":"شركة هجينج فيس ‏ هي شركة أمريكية مسجلة بموجب قانون الشركات العام لولاية ديلاوير ومقرها في مدينة نيويورك، وتعمل على تطوير أدوات حوسبة لبناء تطبيقات تستند إلى تعلم الآلة. تشتهر بشكل خاص بمكتبة المحولات (ترانسفورمرز) التي طورتها لتطبيقات معالجة اللغة الطبيعية، ومنصتها التي تتيح للمستخدمين مشاركة نماذج تعلم الآلة ومجاميع البيانات وعرض أعمالهم.", + "huggingface":"شركة هجينج فيس هي شركة أمريكية مسجلة بموجب قانون الشركات العام لولاية ديلاوير ومقرها في مدينة نيويورك، وتعمل على تطوير أدوات حوسبة لبناء تطبيقات تستند إلى تعلم الآلة. تشتهر بشكل خاص بمكتبة المحولات (ترانسفورمرز) التي طورتها لتطبيقات معالجة اللغة الطبيعية، ومنصتها التي تتيح للمستخدمين مشاركة نماذج تعلم الآلة ومجاميع البيانات وعرض أعمالهم.", "huggingface datasets":[ "huggingface:ar", "ref" @@ -207,10 +207,10 @@ "huggingface:ar", "ref" ], - "imdb":"قاعدة بيانات الأفلام على الإنترنت وتُعرف اختصارًا بـ آي إم دي بي ‏ هي قاعدة بيانات عبر الإنترنت للمعلومات المتعلقة بالأفلام والبرامج التلفزيونية ومقاطع الفيديو المنزلية وألعاب الفيديو والمحتوى المتدفق عبر الإنترنت - بما في ذلك الممثلون وطاقم الإنتاج والسير الذاتية الشخصية وملخصات الحبكة، التقييمات وآراء المعجبين وكذا المراجعات النقدية. كان موقع قاعدة بيانات الأفلام على الإنترنت في الأصل موقع ويب يُديره المعجبون إلى أن سيطرت عليهِ شركة آي إم دي بي دوت كوم إنكوايرر ‏ وهي شركةٌ تابعةٌ لشركة أمازون. بدأ الموقع كقاعدة بيانات أفلام على مجموعة يوزنت ‏ على المسار ريك دوت آرتس دوت موفيز ‏ في عام 1990 وانتقلَ إلى الويب في عام 1993.", + "imdb":"قاعدة بيانات الأفلام على الإنترنت وتُعرف اختصارًا بـ آي إم دي بي هي قاعدة بيانات عبر الإنترنت للمعلومات المتعلقة بالأفلام والبرامج التلفزيونية ومقاطع الفيديو المنزلية وألعاب الفيديو والمحتوى المتدفق عبر الإنترنت - بما في ذلك الممثلون وطاقم الإنتاج والسير الذاتية الشخصية وملخصات الحبكة، التقييمات وآراء المعجبين وكذا المراجعات النقدية. كان موقع قاعدة بيانات الأفلام على الإنترنت في الأصل موقع ويب يُديره المعجبون إلى أن سيطرت عليهِ شركة آي إم دي بي دوت كوم إنكوايرر وهي شركةٌ تابعةٌ لشركة أمازون. بدأ الموقع كقاعدة بيانات أفلام على مجموعة يوزنت على المسار ريك دوت آرتس دوت موفيز في عام 1990 وانتقلَ إلى الويب في عام 1993.", "imgur":"إمجور هو مجتمع إلكتروني عبر الإنترنت يقدم خدمات الاستضافة للصور والمشاركة والاستمتاع بأشهر الصور المنتشرة عبر الإنترنت من جميع دول العالم. أسسه آلان شاف ويستخدم البرنامج حاليًا ملايين المتصفحين بشكل يومي.", "iqiyi":"آي تشي يي ، هي منصة فيديو عبر الإنترنت مقرها في بكين، الصين، تم إطلاقها في 22 أبريل 2010.", - "kickass":"كيك اس تورنت ‏ هو موقع على شبكة الانترنت، تأسس في عام 2008، يوفر ملفات وروابط تورنت لتسهيل تبادل الملفات الند للند باستخدام بروتوكول بت تورنت. وتوقف الموقع عن الخدمة في 20 يوليوز عام 2016، بعد أن تم الحجز على اسم نطاقه من قبل حكومة الولايات المتحدة. وأغلقت خوادم بروكسي الموقع من طرف موظفيه في نفس الوقت.", + "kickass":"كيك اس تورنت هو موقع على شبكة الانترنت، تأسس في عام 2008، يوفر ملفات وروابط تورنت لتسهيل تبادل الملفات الند للند باستخدام بروتوكول بت تورنت. وتوقف الموقع عن الخدمة في 20 يوليوز عام 2016، بعد أن تم الحجز على اسم نطاقه من قبل حكومة الولايات المتحدة. وأغلقت خوادم بروكسي الموقع من طرف موظفيه في نفس الوقت.", "lemmy comments":[ "lemmy communities:ar", "ref" @@ -224,16 +224,16 @@ "lemmy communities:ar", "ref" ], - "library genesis":"مكتبة التكوين ‏ وتُدعى اختصارًا LibGen هي محرك بحث للمقالات والكتب حول مواضيع مختلفة، يتيح الموقع الوصول المجاني إلى المحتوى الذي يكون مدفوعًا أو غير رقمي في مكان آخر. من بين أمور أخرى، تتضمن ملفات بي دي اف محتوى من بوابة إلزيفير المعروفة باسم سيانس دايركت", - "library of congress":"مكتبة الكونغرس ‏ تعرف اختصاراً LOC هي مكتبة الأبحاث والتي تخص رسمياً كونغرس الولايات المتحدة وهي المكتبة الوطنية للولايات المتحدة بحكم الأمر الواقع. وهي أقدم مؤسسة ثقافية اتحادية في الولايات المتحدة. تقع المكتبة في ثلاثة مبان في كابيتول هيل في واشنطن دي سي. كما أنها تحتفظ بالمركز الوطني للمحافظة على السمعيات والبصريات في كولبيبر بولاية فيرجينيا. يشرف أمين مكتبة الكونغرس على وظائف المكتبة، ويحافظ مهندس مبنى الكابيتول على مبانيها. تعد مكتبة الكونجرس من أكبر المكتبات في العالم. «مجموعاتها عالمية ولا تقتصر على الموضوع أو التنسيق أو الحدود الوطنية، وتتضمن مواد بحثية من جميع أنحاء العالم وبأكثر من 450 لغة.»", + "library genesis":"مكتبة التكوين وتُدعى اختصارًا LibGen هي محرك بحث للمقالات والكتب حول مواضيع مختلفة، يتيح الموقع الوصول المجاني إلى المحتوى الذي يكون مدفوعًا أو غير رقمي في مكان آخر. من بين أمور أخرى، تتضمن ملفات بي دي اف محتوى من بوابة إلزيفير المعروفة باسم سيانس دايركت", + "library of congress":"مكتبة الكونغرس تعرف اختصاراً LOC هي مكتبة الأبحاث والتي تخص رسمياً كونغرس الولايات المتحدة وهي المكتبة الوطنية للولايات المتحدة بحكم الأمر الواقع. وهي أقدم مؤسسة ثقافية اتحادية في الولايات المتحدة. تقع المكتبة في ثلاثة مبان في كابيتول هيل في واشنطن دي سي. كما أنها تحتفظ بالمركز الوطني للمحافظة على السمعيات والبصريات في كولبيبر بولاية فيرجينيا. يشرف أمين مكتبة الكونغرس على وظائف المكتبة، ويحافظ مهندس مبنى الكابيتول على مبانيها. تعد مكتبة الكونجرس من أكبر المكتبات في العالم. «مجموعاتها عالمية ولا تقتصر على الموضوع أو التنسيق أو الحدود الوطنية، وتتضمن مواد بحثية من جميع أنحاء العالم وبأكثر من 450 لغة.»", "mastodon hashtags":[ "mastodon users:ar", "ref" ], "mastodon users":"ماستدون هو برنامج حُر ومفتوح المصدر لتشغيل خدمات الشبكات الاجتماعية ذاتية الاستضافة. يوفر ميزات التدوينات المصغرة المشابهة لخدمة تويتر، يتم تقديم ماستدون من قبل عدد كبير من عقد ماستدون التي يتم تشغيلها بشكل مستقل ، لكل منها قواعد السلوك الخاصة بها، شروط الخدمة ، خيارات الخصوصية وسياسات الإشراف.", - "mdn":"شبكة مطوري موزيلا ‏ ويختصر إلى MDN هو موقع مؤسسة موزيلا الرسمي لوثائق تطوير وأخبار متصفح الويب فيرفكس، وعميل البريد الإلكتروني ثندربرد ومشاريع مؤسسة موزيلا الأخرى.", + "mdn":"شبكة مطوري موزيلا ويختصر إلى MDN هو موقع مؤسسة موزيلا الرسمي لوثائق تطوير وأخبار متصفح الويب فيرفكس، وعميل البريد الإلكتروني ثندربرد ومشاريع مؤسسة موزيلا الأخرى.", "metacpan":"شبكة أرشيف بريل الشاملة (CPAN) تعد مستودعاً لأكثر من 250000 وحدة برمجية وتحتوي على 39000 وثيقة مصاحبة والتوزيع مكتوبة فيها باللغة بيرل البرمجية بواسطة أكثر من12000 مساهم. كما أن سي بي اي إن تشير إلى شبكة الأرشيف أو برنامج بريل الذي يعمل كواجهة للشبكة وكمثبت برنامج ألي كما أن معظم البرامج الموجودة على سي بي اي إن هي برامج حرة ومفتوحة المصدر.", - "microsoft learn":"مايكروسوفت التعليمية ‏ هي مكتبة من الوثائق التقنية والتدريبية و مبادرة استراتيجية من شركة مايكروسوفت للمستخدمين النهائيين، والمطورين،من خلال تقديم مجموعة متنوعة من الموارد التعليمية والدورات التدريبية. قدمت مايكروسوفت التعليمية في سبتمبر 2018. ، نقلت مستندات مايكروسوفت في عام 2022، حلت مكتبة الوثائق التقنية التي كانت قد استبدلت MSDN وTechNet في عام 2016، إلى Microsoft Learn.", + "microsoft learn":"مايكروسوفت التعليمية هي مكتبة من الوثائق التقنية والتدريبية و مبادرة استراتيجية من شركة مايكروسوفت للمستخدمين النهائيين، والمطورين،من خلال تقديم مجموعة متنوعة من الموارد التعليمية والدورات التدريبية. قدمت مايكروسوفت التعليمية في سبتمبر 2018. ، نقلت مستندات مايكروسوفت في عام 2022، حلت مكتبة الوثائق التقنية التي كانت قد استبدلت MSDN وTechNet في عام 2016، إلى Microsoft Learn.", "mojeek":[ "محرك بحث ويب", "wikidata" @@ -246,19 +246,31 @@ "mojeek:ar", "ref" ], - "mullvadleta":"مولفاد ‏ هو مزود شبكة خاصة افتراضية ومقره السويد. إنه يلتزم بسياسة صارمة لعدم الاحتفاظ بالسجلات وسياسة خصوصية شاملة للغاية. لا تجمع مولفاد أي معلومات منك عند التسجيل. بدلاً من ذلك ، يتم إنشاء رقم عشوائي واستخدامه كمعرف خاص بك. تدعم اوبن في بي إن و وايرجارد. ويدعم أيضًا قفزات خادم متعددة مع ميزة التجسير. تقدم مولفاد خدمة جيدة للغاية مع تركيز قوي على الخصوصية.", + "mullvadleta":"مولفاد هو مزود شبكة خاصة افتراضية ومقره السويد. إنه يلتزم بسياسة صارمة لعدم الاحتفاظ بالسجلات وسياسة خصوصية شاملة للغاية. لا تجمع مولفاد أي معلومات منك عند التسجيل. بدلاً من ذلك ، يتم إنشاء رقم عشوائي واستخدامه كمعرف خاص بك. تدعم اوبن في بي إن و وايرجارد. ويدعم أيضًا قفزات خادم متعددة مع ميزة التجسير. تقدم مولفاد خدمة جيدة للغاية مع تركيز قوي على الخصوصية.", "mullvadleta brave":[ "mullvadleta:ar", "ref" ], "naver":"نافير هي منصة كورية جنوبية على الإنترنت تديرها شركة نافير. ظهرت لأول مرة في عام 1999 كأول بوابة ويب في كوريا الجنوبية لتطوير واستخدام محرك البحث الخاص بها. كما كانت أول مشغل في العالم يقدم ميزة البحث الشامل، والتي تجمع نتائج البحث من مختلف الفئات وتقدمها في صفحة واحدة. أضافت نافير منذ ذلك الحين العديد من الخدمات الجديدة التي تتراوح من الميزات الأساسية مثل البريد الإلكتروني والأخبار إلى أول منصة للأسئلة والأجوبة عبر الإنترنت في العالم يعرف ب«نولج ان».", + "naver images":[ + "naver:ar", + "ref" + ], + "naver news":[ + "naver:ar", + "ref" + ], + "naver videos":[ + "naver:ar", + "ref" + ], "niconico":"نيكونيكو (Niconico)‏ هو موقع ويب معروف متخصص بمشاركة الفيديو في اليابان. تديره شركة نيوانغو وهي شركة تابعة لشركة دوانغو. «نيكو نيكو» هو المحاكاة الصوتية اليابانية ليبتسم. هذا هو الثالث عشر الموقع الزار الأكثر في اليابان.", "nixos wiki":[ "nixos wiki:en", "ref" ], - "npm":"مدير نود جي إس للحزم ‏ أكبر نظام تسجيل حزم برمجية، يعد إن بي أم مدير الحزم الافتراضي لبيئة تشغيل جافا سكريبت Node.js. وهو يتكون من واجهة سطر الأوامر وقاعدة بيانات على الإنترنت، تُدعى سجل إن بي أم. كما يتيح موقع إن بي أم تصفح الحزم واستعراضها.", - "odysee":"أوديسي ‏ هي منصة استضافة فيديو غير مركزية أمريكية مبنية على سلسلة كتل ليبيراري ‏. يشير إلى نفسه كبديل للخدمات السائدة مثل يوتيوب ولكن مع التركيز على حرية التعبير واللامركزية.", + "npm":"مدير نود جي إس للحزم أكبر نظام تسجيل حزم برمجية، يعد إن بي أم مدير الحزم الافتراضي لبيئة تشغيل جافا سكريبت Node.js. وهو يتكون من واجهة سطر الأوامر وقاعدة بيانات على الإنترنت، تُدعى سجل إن بي أم. كما يتيح موقع إن بي أم تصفح الحزم واستعراضها.", + "odysee":"أوديسي هي منصة استضافة فيديو غير مركزية أمريكية مبنية على سلسلة كتل ليبيراري. يشير إلى نفسه كبديل للخدمات السائدة مثل يوتيوب ولكن مع التركيز على حرية التعبير واللامركزية.", "openairedatasets":[ "منظمة في اليونان", "wikidata" @@ -267,19 +279,19 @@ "openairedatasets:ar", "ref" ], - "openlibrary":"المكتبة المفتوحة ‏ مشروع على الإنترنت، يضم مكتبة عامة تحتوي على عدد من الكتب الإلكترونية، وهي مفتوحة المصدر، وهو مشروع قابل للتعديل، حيث يمكن لأي شخص المشاركة. ويتضمن الموقع فهارس مكتبية من مكتبات عديدة.", - "openstreetmap":"خريطة الشارع المفتوحة ‏ مشروع تعاوني يهدف إلى إنشاء خرائط منشورة برخصة حرة. تُرسم الخرائط بطريق جمع البيانات الجغرافية بالمسح الأرضي باستخدام مستقبلات نظام التموضع العالمي المحمولة، وكذلك بالاستعانة بمصادر حرة أخرى. يمكن للمستخدمين تحرير المسارات والطرق وتحديثها من خلال وسائل التحرير المتاحة.", + "openlibrary":"المكتبة المفتوحة مشروع على الإنترنت، يضم مكتبة عامة تحتوي على عدد من الكتب الإلكترونية، وهي مفتوحة المصدر، وهو مشروع قابل للتعديل، حيث يمكن لأي شخص المشاركة. ويتضمن الموقع فهارس مكتبية من مكتبات عديدة.", + "openstreetmap":"خريطة الشارع المفتوحة مشروع تعاوني يهدف إلى إنشاء خرائط منشورة برخصة حرة. تُرسم الخرائط بطريق جمع البيانات الجغرافية بالمسح الأرضي باستخدام مستقبلات نظام التموضع العالمي المحمولة، وكذلك بالاستعانة بمصادر حرة أخرى. يمكن للمستخدمين تحرير المسارات والطرق وتحديثها من خلال وسائل التحرير المتاحة.", "peertube":[ "برنامج مجاني لاستعادة السيطرة على مقاطعك الفيديو! مع أكثر من ٦٠٠٬٠٠٠ مقطع فيديو مُستضاف، وشوهد أكثر من ٧٠ مليون مرة و ١٥٠٬٠٠٠ مستخدم، فإن بييرتيوب هو البرنامج المجاني اللامركزي البديل لمنصات الفيديو التي طورتها Framasoft", "https://joinpeertube.org" ], - "pinterest":"بنترست ‏ هي شبكة اجتماعية أمريكية لنشر الصور و الفيديوهات، أُطلقت عام 2010. مبدأ عمل بنترست مختلف قليلاً عن وسائل التواصل الاجتماعي الأخرى. فكل مشترك في بنترست بإمكانه عمل لوحة حائط \"Board\" أو عدة لوحات حائط افتراضية. ثم يقوم المشترك بعد ذلك بتدبيس \"Pin\" أو تعليق صوراً أو مقاطع فيديو يجدها مثيرة لاهتمامه ويرغب بالاحتفاظ بها في أحد لوحات الحائط الخاصة به. وتكون الصور ومقاطع الفيديو مأخوذة من عدة مواقع في الإنترنت ولذلك يكون دوماً هناك رابط إلكتروني يشير إلى مصدر الصورة. في حال ضغط أحد المستخدمين على الصورة، يأخذه الرابط للموقع الذي أُخِذت منه الصورة. وإذا أُعجب مستخدم آخر بالصور أو الفيديوهات التي قمت بتعليقها بإمكانه تدبيس نفس الصورة أو الفيديو في لوحة الحائط الخاصة به وتسمى هذه العملية بإعادة التدبيس أو إعادة التعليق \"Repin\". وبإمكان أي شخص الاطلاع على هذا الموقع والبحث عن الصور فيه ولكن يشترط التسجيل فيه. إذا أراد المستخدم مشاركة الصور أو إبداء الإعجاب ببعضها أو التعليق عليها. تم تأسيس الموقع من قبل بن سيلبرمان، بول سيارا وإيفان شارب. وتتم إدارة الموقع من قبل مختبرات كولد برو أمّا تمويله فهو من قِبَل مجموعة صغيرة من رجال الأعمال والمخترعين.", - "piratebay":"ذا بايرت بي ‏ ، وهو موقع سويدي يُفَهْرِس ملفات التورنت torrent. وصل تصنيفه في يناير 2010 للمرتبة 99 ضمن تصنيف ألكسا ضمن أكثر المواقع زيارةً عالميًا. في 10 لشهر ديسمبر سنه 2014 حُظِّر الموقع، وذلك بعد مداهمة الشرطة السويدية لخوادم الموقع وفي الأول من فبراير 2015 عاد الموقع للعمل بستة نطاقات جديدة.", - "pubmed":"مدلاين ‏ هي قاعدة بيانات ببليوغرافية في علوم الحياة والعلوم الحيوية الطبية. تحتوي على معلومات ببليوغرافية حول المجلات الأكاديمية في علوم الطب والتمريض والصيدلة وطب الأسنان والطب البيطري والرعاية الصحية. كما يحتوي مدلاين على مواضيع في علم الأحياء والكيمياء الحيوية وكذلك مجالات التطور الجزيئي والطب الحيوي.", + "pinterest":"بنترست هي شبكة اجتماعية أمريكية لنشر الصور و الفيديوهات، أُطلقت عام 2010. مبدأ عمل بنترست مختلف قليلاً عن وسائل التواصل الاجتماعي الأخرى. فكل مشترك في بنترست بإمكانه عمل لوحة حائط \"Board\" أو عدة لوحات حائط افتراضية. ثم يقوم المشترك بعد ذلك بتدبيس \"Pin\" أو تعليق صوراً أو مقاطع فيديو يجدها مثيرة لاهتمامه ويرغب بالاحتفاظ بها في أحد لوحات الحائط الخاصة به. وتكون الصور ومقاطع الفيديو مأخوذة من عدة مواقع في الإنترنت ولذلك يكون دوماً هناك رابط إلكتروني يشير إلى مصدر الصورة. في حال ضغط أحد المستخدمين على الصورة، يأخذه الرابط للموقع الذي أُخِذت منه الصورة. وإذا أُعجب مستخدم آخر بالصور أو الفيديوهات التي قمت بتعليقها بإمكانه تدبيس نفس الصورة أو الفيديو في لوحة الحائط الخاصة به وتسمى هذه العملية بإعادة التدبيس أو إعادة التعليق \"Repin\". وبإمكان أي شخص الاطلاع على هذا الموقع والبحث عن الصور فيه ولكن يشترط التسجيل فيه. إذا أراد المستخدم مشاركة الصور أو إبداء الإعجاب ببعضها أو التعليق عليها. تم تأسيس الموقع من قبل بن سيلبرمان، بول سيارا وإيفان شارب. وتتم إدارة الموقع من قبل مختبرات كولد برو أمّا تمويله فهو من قِبَل مجموعة صغيرة من رجال الأعمال والمخترعين.", + "piratebay":"ذا بايرت بي ، وهو موقع سويدي يُفَهْرِس ملفات التورنت torrent. وصل تصنيفه في يناير 2010 للمرتبة 99 ضمن تصنيف ألكسا ضمن أكثر المواقع زيارةً عالميًا. في 10 لشهر ديسمبر سنه 2014 حُظِّر الموقع، وذلك بعد مداهمة الشرطة السويدية لخوادم الموقع وفي الأول من فبراير 2015 عاد الموقع للعمل بستة نطاقات جديدة.", + "pubmed":"مدلاين هي قاعدة بيانات ببليوغرافية في علوم الحياة والعلوم الحيوية الطبية. تحتوي على معلومات ببليوغرافية حول المجلات الأكاديمية في علوم الطب والتمريض والصيدلة وطب الأسنان والطب البيطري والرعاية الصحية. كما يحتوي مدلاين على مواضيع في علم الأحياء والكيمياء الحيوية وكذلك مجالات التطور الجزيئي والطب الحيوي.", "reddit":"ريديت هو مجتمع إخباري على الإنترنت، إلا أنه يعتبر من مواقع مشاركة الروابط ومناقشتها حتى بات يشبه المنتديات، يعرف ريديت بالصفحة الرئيسية للإنترنت.", "reuters":"رويترز هي مؤسسة إخبارية دولية مملوكة لشركة تومسون رويترز. تأسَّست الوكالة في لندن عام 1851 من قِبل الألماني المولد بول رويتر إلى أن استُحوذَ عليها من قِبل شركة تومسون عام 2008 حيث تُشكّل الآن قسم الإعلام في تومسون رويترز. تُوظّف المؤسّسة – التي تُعتبر واحدةً من أكبر وكالات الأنباء في العالم – حوالي 2500 صحفي و600 مصور صحفي في حوالي مائتي موقع حول العالم.", - "rottentomatoes":"روتن توميتوز ‏ وتعني حرفيًا الطماطم الفاسدة، هو موقع ويب مُتَخصّصٌ في تقييماتٍ وأخبارٍ ومعلوماتٍ حولَ الأفلام والمسلسلات، معروفٌ عالمياً بأنه مُجمّع للتقييمات حيث يجمع تقييمَ النُقّاد لأي فيلم أو مسلسل ويعطي متوسط تقييم له إضافة إلى نسبة مئوية بالمراجعات الإيجابية، كما صارَ يَشمَلُ أيضاً تقييماتٍ للمُسلسلات. وعلى الرغم من ارتباط الاسمُ بتقليد تاريخي حيثُ كان الجماهيرُ يرمونَ الطماطم الفاسدة والخضروات على الأداء السيئ في المسرح، إلا أن الاسم كان مستوحى في الأصل من مشهد يظهر الطماطم في فيلم كندي صدر في عام 1992 بعنوان ليولو (Léolo). بدأ الموقِع في عامِ 1998 على يَد ثلاثة طلاب جامعيين يدرسون في جامعة كاليفورنيا، بمدينة ييركيلي، وهم سين دوونج، وباتريك واي لي، وستيفن وانج. وفي 2010 استَحوذَت عليه شَركة Flixster التي مَلَكتْها وارنر برذرز في 2011. ورئيس تحرير الموقع منذ 2007 هو مات آتشي. الموقِعُ مُتَوفّرٌ بِنُسخةٍ بريطانيّة وأستراليّة وهنديّة. وبدءاً مِن يناير 2015 دَخَلَ الموقع ضِمنَ نِطاقِ أشهَر 500 موقع في تصنيفاتِ موقِع أليكسا.", - "rumble":"رامبل ‏ هو موقع صناعة محتويات فيديو كندي. تم تأسيسه في سنة 2013 من قبل كريس بافلوفسكي. بدأ كموقع لنشر فيديوهات عن الحيوانات الأليفة والأطفال الرضع وثم زادت شهرته ليكون منصة بديلة للمحافظين واليمينيين عن يوتيوب. في يوم 11 يناير 2021 رفع الموقع دعوى ضد غوغل بتهمة التلاعب بنتائج البحث عن الموقع واخفائه وطالب بتعويض ملياري دولار على ذلك. يدير الموقع حالياً دان بونجينو.", + "rottentomatoes":"روتن توميتوز وتعني حرفيًا الطماطم الفاسدة، هو موقع ويب مُتَخصّصٌ في تقييماتٍ وأخبارٍ ومعلوماتٍ حولَ الأفلام والمسلسلات، معروفٌ عالمياً بأنه مُجمّع للتقييمات حيث يجمع تقييمَ النُقّاد لأي فيلم أو مسلسل ويعطي متوسط تقييم له إضافة إلى نسبة مئوية بالمراجعات الإيجابية، كما صارَ يَشمَلُ أيضاً تقييماتٍ للمُسلسلات. وعلى الرغم من ارتباط الاسمُ بتقليد تاريخي حيثُ كان الجماهيرُ يرمونَ الطماطم الفاسدة والخضروات على الأداء السيئ في المسرح، إلا أن الاسم كان مستوحى في الأصل من مشهد يظهر الطماطم في فيلم كندي صدر في عام 1992 بعنوان ليولو (Léolo). بدأ الموقِع في عامِ 1998 على يَد ثلاثة طلاب جامعيين يدرسون في جامعة كاليفورنيا، بمدينة ييركيلي، وهم سين دوونج، وباتريك واي لي، وستيفن وانج. وفي 2010 استَحوذَت عليه شَركة Flixster التي مَلَكتْها وارنر برذرز في 2011. ورئيس تحرير الموقع منذ 2007 هو مات آتشي. الموقِعُ مُتَوفّرٌ بِنُسخةٍ بريطانيّة وأستراليّة وهنديّة. وبدءاً مِن يناير 2015 دَخَلَ الموقع ضِمنَ نِطاقِ أشهَر 500 موقع في تصنيفاتِ موقِع أليكسا.", + "rumble":"رامبل هو موقع صناعة محتويات فيديو كندي. تم تأسيسه في سنة 2013 من قبل كريس بافلوفسكي. بدأ كموقع لنشر فيديوهات عن الحيوانات الأليفة والأطفال الرضع وثم زادت شهرته ليكون منصة بديلة للمحافظين واليمينيين عن يوتيوب. في يوم 11 يناير 2021 رفع الموقع دعوى ضد غوغل بتهمة التلاعب بنتائج البحث عن الموقع واخفائه وطالب بتعويض ملياري دولار على ذلك. يدير الموقع حالياً دان بونجينو.", "semantic scholar":"سيمانتك سكولر هو مشروعٌ طُور في معهد ألن للذكاء الاصطناعي، وصدر للجمهور في نوفمبر 2015، وهو مصممٌ ليكون محرك بحث مدعومًا بالذكاء الاصطناعي للمنشورات الأكاديمية. يستخدم المشروع مزيجًا من التعلم الآلي ومعالجة اللغة الطبيعية والرؤية الآلية لإضافة طبقة من التحليل الدلالي إلى الأساليب التقليدية لتحليل الاقتباس واستخراج الأشكال والكيانات والأماكن ذات الصلة من الأوراق. مقارنةً مع جوجل سكولار وببمد، فإنَّ سيمانتك سكولر مصممٌ لإبراز أهم الأوراق والأكثر تأثيرًا، وتحديد الروابط بينهما.", "seznam":[ "شركة تشيكية", @@ -290,17 +302,17 @@ "مستودع تطوير برمجيات", "wikidata" ], - "stackoverflow":"ستاك إكستشينج ‏ هي شبكة من مواقع الأسئلة والأجوبة التي يهتم كل منها باختصاص معين، ويقوم المستخدمون فيها بطرح الأسئلة، الإجابة عليها، وتقييم الأسئلة والأجوبة بشكل تعاوني غير مركزي.", - "steam":"ستيم ‏ هي منصة توزيع رقمي وإدارة حقوق رقمية ولعب جماعي عبر الإنترنت واتصال طورتها شركة فالف. يتم استخدامها لتوزيع الألعاب والوسائط ذات الصلة عبر الإنترنت، من مطورين مستقلين إلى شركات الألعاب الكبرى. في أكتوبر 2012 وسعت فالف الخدمة لتشمل برمجيات غير الألعاب. توفر ستيم المستخدمين إمكانية التثبيت والإدارة التلقائية للبرمجيات عبر أجهزة كمبيوتر متعددة، بالإضافة للميزات الاجتماعية مثل قوائم الأصدقاء والمجموعات، وأيضا التخزين السحابي ووظيفة المحادثة الصوتية والكتابية في الألعاب. يتم توفير واجهة برمجة التطبيقات وتسمى «ستيم ووركز» (Steamworks) والتي تمكن المطورين من الاستفادة منها لدمج العديد من وظائف ستيم داخل منتجاتهم البرمجية، بما في ذلك الحماية من النسخ، والربط بالشبكة، والإنجازات في الألعاب، ودعم المحتوى الذي يتم إنشائه من قبل المستخدمين.", + "stackoverflow":"ستاك إكستشينج هي شبكة من مواقع الأسئلة والأجوبة التي يهتم كل منها باختصاص معين، ويقوم المستخدمون فيها بطرح الأسئلة، الإجابة عليها، وتقييم الأسئلة والأجوبة بشكل تعاوني غير مركزي.", + "steam":"ستيم هي منصة توزيع رقمي وإدارة حقوق رقمية ولعب جماعي عبر الإنترنت واتصال طورتها شركة فالف. يتم استخدامها لتوزيع الألعاب والوسائط ذات الصلة عبر الإنترنت، من مطورين مستقلين إلى شركات الألعاب الكبرى. في أكتوبر 2012 وسعت فالف الخدمة لتشمل برمجيات غير الألعاب. توفر ستيم المستخدمين إمكانية التثبيت والإدارة التلقائية للبرمجيات عبر أجهزة كمبيوتر متعددة، بالإضافة للميزات الاجتماعية مثل قوائم الأصدقاء والمجموعات، وأيضا التخزين السحابي ووظيفة المحادثة الصوتية والكتابية في الألعاب. يتم توفير واجهة برمجة التطبيقات وتسمى «ستيم ووركز» (Steamworks) والتي تمكن المطورين من الاستفادة منها لدمج العديد من وظائف ستيم داخل منتجاتهم البرمجية، بما في ذلك الحماية من النسخ، والربط بالشبكة، والإنجازات في الألعاب، ودعم المحتوى الذي يتم إنشائه من قبل المستخدمين.", "superuser":[ "stackoverflow:ar", "ref" ], "tagesschau":"تاغسشاو هي خدمة إخبارية تلفزيونية وطنية ودولية ألمانية تنتجها هيئة التحرير فيARD-aktuelll لصالح شبكة التلفزيون العامة الألمانية ARD.", - "tineye":"تِن آي ‏ هو محرك البحث للصور وهي خدمة أنشأتها شركة ‏ مقرها في تورونتو كندا. حيث يقوم المستخدم بإرسال الصورة الي الموقع لكي يقوم محرك بالبحث عن مصدرها.", - "vimeo":"فيميو ‏ هي شركة أمريكية مقرها في مدينة نيويورك تقدم منصة لاستضافة مقاطع الفيديو ومشاركتها وخدماتها. يركز فيميو على تقديم فيديو عالي الوضوح عبر مجموعة من الأجهزة. يعتمد نموذج أعمال فيميو على البرمجيات كخدمة (SaaS). تحصل الشركة على الإيرادات من خلال توفير خطط الاشتراك للشركات وصانعي المحتوى. توفر فيميو لمشتركيها أدوات لإنشاء الفيديو وتحريره وبثه، وحلول برامج المؤسسات، كما تعمل المنصة أيضًا على تسهيل الاتصالات بين محترفي الفيديو والعملاء وخبراء الصناعة الآخرين. اعتبارًا من ديسمبر 2021، بلغ عدد مستخدمي الموقع 260 مليون مستخدم، بما في ذلك 1.6 مليون مشترك في خدماته.", + "tineye":"تِن آي هو محرك البحث للصور وهي خدمة أنشأتها شركة مقرها في تورونتو كندا. حيث يقوم المستخدم بإرسال الصورة الي الموقع لكي يقوم محرك بالبحث عن مصدرها.", + "vimeo":"فيميو هي شركة أمريكية مقرها في مدينة نيويورك تقدم منصة لاستضافة مقاطع الفيديو ومشاركتها وخدماتها. يركز فيميو على تقديم فيديو عالي الوضوح عبر مجموعة من الأجهزة. يعتمد نموذج أعمال فيميو على البرمجيات كخدمة (SaaS). تحصل الشركة على الإيرادات من خلال توفير خطط الاشتراك للشركات وصانعي المحتوى. توفر فيميو لمشتركيها أدوات لإنشاء الفيديو وتحريره وبثه، وحلول برامج المؤسسات، كما تعمل المنصة أيضًا على تسهيل الاتصالات بين محترفي الفيديو والعملاء وخبراء الصناعة الآخرين. اعتبارًا من ديسمبر 2021، بلغ عدد مستخدمي الموقع 260 مليون مستخدم، بما في ذلك 1.6 مليون مشترك في خدماته.", "voidlinux":"فويد لينكس هو توزيعة لينكس مستقلة تعمل بنظام إدارة الحزم X Binary Package System (XBPS) ، والذي تم تصميمه وتنفيذه من البداية، نظام تمهيد. باستثناء عمليات النواة الثنائية، يتكون التثبيت الأساسي بالكامل من البرامج المجانية، ولكن يمكن للمستخدمين الوصول إلى مستودع رسمي غير مجاني لتثبيت البرامج الاحتكارية.", - "wikibooks":"ويكي الكتب ‏ هو مشروع شقيق لويكيبيديا وجزء من مشاريع مؤسسة ويكيميديا. وهو ويكي للكتب تستضيفه مؤسسة ويكيميديا لإيجاد كتب ومراجع للاستخدام المجاني الحر يمكن لأي شخص التعديل والإسهام فيها تحت بنود رخصة جنو للوثائق الحرة؛ بدأ المشروع في 10 يوليو 2003 وكان باللغة الإنجليزية فقط، ثم توسع ليشمل إصدارات بلغات أخرى في يوليو 2004، وبدأت النسخة العربية في 12 سبتمبر 2004. واعتبارًا من يناير 2021 أصبح هناك إصدارات من ويكي الكتب بـ76 لغة، تحتوي على 286482 مقالة، وتضم 1490 محررًا نشطًا.", + "wikibooks":"ويكي الكتب هو مشروع شقيق لويكيبيديا وجزء من مشاريع مؤسسة ويكيميديا. وهو ويكي للكتب تستضيفه مؤسسة ويكيميديا لإيجاد كتب ومراجع للاستخدام المجاني الحر يمكن لأي شخص التعديل والإسهام فيها تحت بنود رخصة جنو للوثائق الحرة؛ بدأ المشروع في 10 يوليو 2003 وكان باللغة الإنجليزية فقط، ثم توسع ليشمل إصدارات بلغات أخرى في يوليو 2004، وبدأت النسخة العربية في 12 سبتمبر 2004. واعتبارًا من يناير 2021 أصبح هناك إصدارات من ويكي الكتب بـ76 لغة، تحتوي على 286482 مقالة، وتضم 1490 محررًا نشطًا.", "wikicommons.audio":[ "wikicommons.images:ar", "ref" @@ -309,7 +321,7 @@ "wikicommons.images:ar", "ref" ], - "wikicommons.images":"ويكيميديا كومنز أو ويكي كومنز ‏ هو أحد مشاريع مؤسسة ويكيميديا هو مخزن الوسائط المتعددة مفتوحة المصدر مثل الصور وملفات الصوت وملفات الوسائط المتعددة الأخرى بحيث يمكن استخدامها في أي مشروع من مشاريع ويكيميديا. وفي أي لغة من لغات ويكيبيديا، أو تحميلها للاستخدام خارج ويكيميديا.", + "wikicommons.images":"ويكيميديا كومنز أو ويكي كومنز هو أحد مشاريع مؤسسة ويكيميديا هو مخزن الوسائط المتعددة مفتوحة المصدر مثل الصور وملفات الصوت وملفات الوسائط المتعددة الأخرى بحيث يمكن استخدامها في أي مشروع من مشاريع ويكيميديا. وفي أي لغة من لغات ويكيبيديا، أو تحميلها للاستخدام خارج ويكيميديا.", "wikicommons.videos":[ "wikicommons.images:ar", "ref" @@ -321,25 +333,25 @@ "wikisource":"ويكي مصدر هي مكتبة رقمية متصلة بالشبكة العنكبوتية مفتوحة للجميع، ويمكن تحميلها على شكل ملف pdf.في هذا المشروع العربي تضم 79٬518 صفحة حتى تاريخ 2020 من الرسائل الأدبية، والكتب والنصوص الدينية والتراثية والتاريخية، والشعر. بدأت ويكي مصدر في نوفمبر 2003 كمجموعة للنصوص الحرة الداعمة لمقالات ويكيبيديا المشروع الأساسي لمؤسسة ويكيميديا. سميت في أول الأمر مشروع سورس بيرغ كمحاولةٍ لنحت اسم ما يعرف بمشروع غوتنبرغ، ثمّ تغيّر اسم المشروع في 6 ديسمبر 2003 إلى ويكي المصدر. وهو مشروع مؤسسة ويكيميديا لجمع وتخزين نصوص الملكية العامة المنشورة سابقًا أو النصوص الحرة التي نفدت حقوق طبعها أو المترجمة ومتوفرة بعدة لغات. انتقل المشروع إلى عنوان موقعه الدائم في 23 يوليو 2004.", "wikispecies":"ويكي أنواع هو أحد مشاريع مؤسسة ويكيميديا، وهو يهدف إلى إنشاء دليل بكل أنواع الكائنات. بدأ المشروع في 13 سبتمبر 2004.", "wikiversity":"ويكي الجامعة هو أحد مشاريع مؤسسة ويكيميديا، يهدف إلى دعم التعليم الحر واستضافة مواد تعليمية مجانية. المشروع بدأ في 15 أغسطس 2006؛ وبدأت النسخة العربية منه في 12 يوليو 2011.", - "wikivoyage":"ويكي الرحلات ‏ هي دليل سياحي على شبكة الإنترنت، كتب بطريقة تشاركية من عدد من الكتاب المتطوعين، ومحتواه هو تحت رخصة حرة.", + "wikivoyage":"ويكي الرحلات هي دليل سياحي على شبكة الإنترنت، كتب بطريقة تشاركية من عدد من الكتاب المتطوعين، ومحتواه هو تحت رخصة حرة.", "wiktionary":"ويكاموس هو مشروع مُتعدد اللغات، أحد مشاريع مؤسسة ويكيميديا على شبكة الإنترنت يهدف إلى إيجاد قاموس حر بلغة الويكي لكل اللغات. يتم تحريرها بشكل تعاوني عن طريق ويكي، وهو متاح في 172 لغة من بينها العربية. مُعظم مفردات اللغة في ويكاموس توفر تعريفات وترجمات للكلمات إلى لغات عديدة، وبعض المفردات متصلة بمعلومات إضافية موجودة عادة في المكنز أو المعجم اللغوي، كما تضم مرادفات الكلمة.", - "wolframalpha":"ولفرام ألفا ‏، هو محرك بحث أطلق عند الساعة الثالثة من صباح 16 مايو 2009. على خلاف محركات البحث التقليدية، فإن ولفرام يقوم بالإجابة عن الأسئلة التي تطرح عليه في حين تقوم البواحيث التقليدية بمجرد عرض قائمة من مواقع الإنترنت ذات العلاقة بالكلمات المفتاحية التي يتم البحث عبرها.", + "wolframalpha":"ولفرام ألفا ، هو محرك بحث أطلق عند الساعة الثالثة من صباح 16 مايو 2009. على خلاف محركات البحث التقليدية، فإن ولفرام يقوم بالإجابة عن الأسئلة التي تطرح عليه في حين تقوم البواحيث التقليدية بمجرد عرض قائمة من مواقع الإنترنت ذات العلاقة بالكلمات المفتاحية التي يتم البحث عبرها.", "wttr.in":[ "Des Moines, Iowa, United States تقرير حالة ألطقس", "https://wttr.in" ], - "yacy":"ياسي ‏ – هو محرك بحثي موزع يستخدم بالمجان، مبني علي مبادئ شبكة النظير للنظير. محتوى المحرك عبار عن برنامج مكتوب بلغة الجافا موزع على العديد من الحواسب الالية في شهر سبتمبر 2006 وكان يسمى ب «نظراء الياسي» كل نظير بمفرده يبحث في شبكة الإنترنت، يحلل ويسجل الصفحات التي وجدت ويخزن التسجيلات في قاعدة بيانات مشتركة بين الاخرون طبقا لمبادئ شبكة النظير للنظير. هو محرك بحث لأي شخص ويمكنه بناء مدخل بحثي لشبكته الداخلية ومساعدته في البحث على الإنترنت العام.", + "yacy":"ياسي – هو محرك بحثي موزع يستخدم بالمجان، مبني علي مبادئ شبكة النظير للنظير. محتوى المحرك عبار عن برنامج مكتوب بلغة الجافا موزع على العديد من الحواسب الالية في شهر سبتمبر 2006 وكان يسمى ب «نظراء الياسي» كل نظير بمفرده يبحث في شبكة الإنترنت، يحلل ويسجل الصفحات التي وجدت ويخزن التسجيلات في قاعدة بيانات مشتركة بين الاخرون طبقا لمبادئ شبكة النظير للنظير. هو محرك بحث لأي شخص ويمكنه بناء مدخل بحثي لشبكته الداخلية ومساعدته في البحث على الإنترنت العام.", "yacy images":[ "yacy:ar", "ref" ], "yahoo news":"ياهو! نيوز بالإنجليزية موقع أخباري تابع لشركة ياهو الأمريكية تقوم بجمع الأخبار من جميع الوكلات والصحف ووضعها في الموقع.", - "youtube":"يوتيوب ‏ هو موقع ويب أمريكي يسمح لمستخدميه برفع، بث، ومشاركة التسجيلات المرئية مجانًا، بالإضافة إلى إمكانية التعليق والتفاعل مع المحتوى. تأسس الموقع في 14 فبراير 2005 على يد تشاد هيرلي وستيف تشين وجاود كريم، وهم ثلاثة موظفين سابقين في شركة باي بال، وكان مقره في مدينة سان برونو، كاليفورنيا. في البداية، اعتمد يوتيوب على تقنية أدوبي فلاش لعرض الفيديوهات، لكنه انتقل لاحقًا إلى تقنية إتش تي إم إل 5 الأكثر حداثة.", + "youtube":"يوتيوب هو موقع ويب أمريكي يسمح لمستخدميه برفع، بث، ومشاركة التسجيلات المرئية مجانًا، بالإضافة إلى إمكانية التعليق والتفاعل مع المحتوى. تأسس الموقع في 14 فبراير 2005 على يد تشاد هيرلي وستيف تشين وجاود كريم، وهم ثلاثة موظفين سابقين في شركة باي بال، وكان مقره في مدينة سان برونو، كاليفورنيا. في البداية، اعتمد يوتيوب على تقنية أدوبي فلاش لعرض الفيديوهات، لكنه انتقل لاحقًا إلى تقنية إتش تي إم إل 5 الأكثر حداثة.", "yummly":[ "تطبيق محمول", "wikidata" ], - "z-library":"مكتبة-زد ‏ هو مشروعshadow library لمشاركه الملفات للوصول إلى مقالات العلميه والنصوص الادبيه وكتب المصالح العامه. ونشآت كمرآه لLibrary Genesis،و اغلبيه كتبها من Library Genesis." + "z-library":"مكتبة-زد هو مشروعshadow library لمشاركه الملفات للوصول إلى مقالات العلميه والنصوص الادبيه وكتب المصالح العامه. ونشآت كمرآه لLibrary Genesis،و اغلبيه كتبها من Library Genesis." }, "bg":{ "1337x":"1337x е уебсайт за споделяне на файлове чрез метода peer-to-peer посредством протокола BitTorrent. Към 2022 г. това е третият най-популярен торент тракер. Създаден е през 2007 г. С нарастващата му популярност десетки търсачки го премахват от резултатите си. Поради естеството на услугата, която предоставя, не са рядкост и правните действия към уебсайта, както и временните прекъсвания на функционалността.", @@ -653,6 +665,18 @@ ], "mastodon users":"মাস্টোডন হল স্ব-হোস্ট করা সামাজিক নেটওয়ার্কিং পরিষেবাগুলি চালানোর জন্য একটি বিনামূল্যের এবং ওপেন-সোর্স সফ্টওয়্যার৷ নিজস্ব আচরণবিধি, পরিষেবার শর্তাবলী, গোপনীয়তা নীতি, গোপনীয়তার বিকল্প এবং বিষয়বস্তু সংযম নীতি।", "naver":"নেইভার একটি দক্ষিণ কোরীয় ইন্টারনেট ভিত্তিমঞ্চ। কোরিয়ার নেইভার কর্পোরেশন এটির পরিচালক। ১৯৯৯ সালে দক্ষিণ কোরিয়ার স্ব-উদ্ভাবিত অনুসন্ধান ইঞ্জিন ব্যবহারকারী প্রথম আন্তর্জাল প্রবেশদ্বার হিসেবে এটি যাত্রা শুরু করে। এটি ছিল বিশ্বের প্রথম পূর্ণাঙ্গ অনুসন্ধান সুবিধা প্রদানকারী ওয়েবসাইট, যেখানে বিভিন্ন শ্রেণীর অনুসন্ধান ফলাফল সংকলিত একটিমাত্র ফলাফল পাতায় সেগুলিকে প্রকাশ করা হত। এরপর নেইভার আরও বেশ কিছু নতুন সেবা যোগ করেছে, যাদের মধ্যে বৈদ্যুতিন ডাক (ই-মেইল) ও সংবাদের মতো প্রাথমিক সুবিধাগুলি থেকে শুরু করে বিশ্বের প্রথম ইন্টারনেটভিত্তিক প্রশ্নোত্তর ভিত্তিমঞ্চ \"নলেজ ইন\" অন্তর্ভুক্ত।", + "naver images":[ + "naver:bn", + "ref" + ], + "naver news":[ + "naver:bn", + "ref" + ], + "naver videos":[ + "naver:bn", + "ref" + ], "nixos wiki":[ "nixos wiki:en", "ref" @@ -878,6 +902,18 @@ "portal web sud-coreà", "wikidata" ], + "naver images":[ + "naver:ca", + "ref" + ], + "naver news":[ + "naver:ca", + "ref" + ], + "naver videos":[ + "naver:ca", + "ref" + ], "nixos wiki":[ "nixos wiki:en", "ref" @@ -1076,11 +1112,23 @@ "mastodon users:cs", "ref" ], - "mastodon users":"Mastodon je sociální síť podobná známější síti X. Na rozdíl od většiny sociálních sítí je Mastodon open source a každý si může založit svoji vlastní instanci. Každá instance má vlastní podmínky užívání, ochrany soukromí a pravidel pro příspěvky; zároveň je propojená s ostatními instancemi, a je tedy možné se na ně připojit pomocí jednoho účtu.", + "mastodon users":"Mastodon je sociální síť podobná síti X. Na rozdíl od většiny sociálních sítí je Mastodon open source a každý si může založit svoji vlastní instanci. Každá instance má vlastní podmínky užívání, ochrany soukromí a pravidel pro příspěvky; zároveň je propojená s ostatními instancemi, a je tedy možné se na ně připojit pomocí jednoho účtu.", "mdn":"MDN Web Docs jsou webové stránky provozované Mozilla Foundation, které obsahují dokumentaci k projektům založených na Mozille jako Firefox či Thunderbird a webových standardům a technologiím. Veškerý editovatelný obsah je ukládán v Git repozitáři na GitHub.com, který umožňuje každému uživateli navrhovat úpravy a diskutovat změny. Server byl založen v roce 2005 pod názvem Mozilla Developer Center a část jeho obsahu pocházela z dnes již zrušeného serveru Netscape DevEdge.", "metacpan":"CPAN je softwarový repozitář obsahující jednak moduly pro programovací jazyk Perl a jednak aplikace napsané v tomto jazyce. První myšlenky k jeho zřízení se objevily už v roce 1993 inspirované repozitářem CTAN typografického systému TeX, ale do provozu byl oficiálně uveden až v roce 1995. Jméno CPAN nese kromě samotného repozitáře i perlový program, který slouží k stažení a instalaci modulů. Kromě toho je možné do repozitáře přistupovat i přes webové rozhraní, kde je například možné i bez instalace číst dokumentaci patřičného modulu generovanou ze standardního formátu POD.", "microsoft learn":"Microsoft Learn je webový portál a elektronická knihovna technické dokumentace a školení pro koncové uživatele, vývojáře a IT profesionály, kteří pracují s produkty společnosti Microsoft. Microsoft Learn byl veřejnosti představen v září 2018. V roce 2022 byla původní knihovna technické dokumentace, která se jmenovala Microsoft Docs, a která v roce 2016 nahradila MSDN a Microsoft TechNet, přesunuta do elektronické knihovny Microsoft Learn.", "naver":"Naver je jihokorejská online platforma provozovaná společností Naver Corporation. Debutoval v roce 1999 jako první webový portál v Jižní Koreji. Byl také prvním operátorem na světě, který zavedl funkci komplexního vyhledávání, která sestavuje výsledky vyhledávání z různých kategorií a prezentuje je na jediné stránce. Naver od té doby přidal množství nových služeb, od základních funkcí, jako je e-mail a zprávy, až po světově první online platformu otázek a odpovědí Knowledge iN.", + "naver images":[ + "naver:cs", + "ref" + ], + "naver news":[ + "naver:cs", + "ref" + ], + "naver videos":[ + "naver:cs", + "ref" + ], "npm":"npm je správce balíčků pro JavaScript, výchozí správce balíčků pro prostředí Node.js.", "odysee":"Odysee je americká decentralizovaná platforma pro sdílení videa postavená na blockchainu LBRY. Staví se jako alternativa k hlavním webům pro sdílení videí, ale s důrazem na svobodu slova a decentralizaci.", "openlibrary":"Open Library je internetová databáze knih. Je provozována v rámci projektu Internet Archive a její ambicí je mít informace o úplně všech vydaných knihách. Podporuje různé klasifikace, například ISBN, Deweyův desetinný systém DDC nebo klasifikaci LCC podle Kongresové knihovny.", @@ -1430,10 +1478,10 @@ "alpine linux packages":"Alpine Linux ist eine auf musl und BusyBox basierende Linux-Distribution, die in erster Linie für „Power-User entwickelt wurde, die Sicherheit, Einfachheit und Ressourceneffizienz schätzen“. Sie verwendet einen gehärteten Kernel und kompiliert alle Programme des Benutzerraums standardmäßig als position-independent Code mit Schutz vor Pufferüberlauf. Seit 2016 wird bei Docker, einer Software für Containervirtualisierung, überwiegend Alpine Linux als virtuelles Betriebssystem der Container eingesetzt. Hierdurch stieg das allgemeine Interesse an der Distribution erheblich, außerdem entstanden personelle Verflechtungen. Ein Fork von Alpine Linux, postmarketOS, wurde entwickelt, um auf mobilen Geräten zu laufen.", "annas archive":"Anna’s Archive ist eine kostenfrei nutzbare Metasuchmaschine für Schattenbibliotheken. Als solche bietet sie freien Zugang zu Büchern, wissenschaftlichen Aufsätzen, Comics und Zeitschriften. Die Website wird von einem anonymen Team von Archivaren betrieben, die sich Anna und das „Pirate Library Mirror (PiLiMi) team“ nennen, und finanziert sich über Spenden. Nach eigenen Angaben stehen Metadaten zu über 120 Millionen Werken zur Verfügung.", "ansa":"Die Agenzia Nazionale Stampa Associata (ANSA) ist eine italienische Nachrichten- und Presseagentur, die am 15. Januar 1945 in Rom gegründet wurde. Sie ist eine Genossenschaft aus 30 assoziierten Verlagen und 43 Tageszeitungen Italiens und gilt als führende Nachrichtenagentur Italiens vor Adnkronos und AGI.", - "apple app store":"Der App Store ist eine digitale Vertriebsplattform für Anwendungssoftware vom US-amerikanischen Unternehmen Apple. Die Plattform wurde 2008 eingeführt und bietet Mobile Apps für iOS- und iPadOS-Geräte und Software für tvOS und watchOS.", + "apple app store":"Der App Store ist eine digitale Vertriebsplattform für Anwendungssoftware vom US-amerikanischen Unternehmen Apple. Die Plattform wurde 2008 eingeführt und bietet Mobile Apps für iOS- und iPadOS-Geräte, Software für tvOS, watchOS und visionOS, sowie Anwendungen für macOS.", "apple maps":"Apple Karten ist ein Kartendienst von Apple, der im September 2012 mit dem hauseigenen Betriebssystem iOS 6 gestartet wurde. Die iOS-eigene Anwendung Karten ist die lokalisierte Anwendung für den Kartendienst auf dem iPhone, iPad und iPod touch. Seit OS X Mavericks ist die Anwendung Karten auch auf dem Mac vorinstalliert.", "artic":"Das Art Institute of Chicago ist ein 1866 gegründetes Kunstmuseum, verbunden mit der seit 1866 tätigen Kunsthochschule, 1882 umbenannt in School of the Art Institute of Chicago (SAIC) in Chicago, Illinois, (USA).", - "arxiv":"arXiv.org ist ein Dokumentenserver für Preprints aus den Bereichen Physik, Mathematik, Informatik, Statistik, Finanzmathematik und Biologie. Ausgesprochen wird arXiv als „archive“ (englisch), wobei das X für das griechische χ steht.", + "arxiv":"arXiv.org ist eine kuratierte digitale Plattform zum Austausch von Forschungsergebnissen aus den Bereichen Physik, Mathematik, Informatik, Statistik, Finanzmathematik, Biologie, Elektroingenieurwesen und Systemwissenschaft sowie Wirtschaftswissenschaften. Ausgesprochen wird arXiv als „archive“ (englisch), wobei das X für das griechische χ steht.", "ask":"Ask.com ist ein Internetportal, das ursprünglich als Suchmaschine funktionierte, inzwischen aber nur noch Antworten aus einem festen Frage-Antwort-Reservoir generiert.", "askubuntu":[ "stackoverflow:de", @@ -1615,6 +1663,18 @@ "https://www.moviepilot.de" ], "naver":"Naver ist ein südkoreanisches Webportal, das 1999 entwickelt wurde. Es umfasst eine Suchmaschine und diverse weitere Dienste.", + "naver images":[ + "naver:de", + "ref" + ], + "naver news":[ + "naver:de", + "ref" + ], + "naver videos":[ + "naver:de", + "ref" + ], "niconico":"Nico Nico Douga ist ein japanischer Videoportal- und Livestream-Anbieter, der von Niwango geleitet wird. Seine Spitznamen sind Nico Nico und Nico-dō, wobei nikoniko das japanische Ideophon (Gitaigo) für „lächeln“ ist und dōga für „Video“ steht. Nico Nico Douga ist die am neuntmeisten besuchte Website in Japan. Die Seite hat 2007 den Japanese Good Design Award gewonnen und eine Anerkennung in der Kategorie Digital Communities beim Prix Ars Electronica 2008.", "npm":"npm ist ein Paketmanager für die JavaScript-Laufzeitumgebung Node.js. npm wurde 2010 von Isaac Schlueter als Mitarbeiter des kalifornischen Cloud-Plattform-Anbieters Joyent programmiert. 2014 gründete er die „npm, inc.“", "odysee":"Odysee ist eine amerikanische, dezentralisierte Videoplattform, die auf der LBRY Blockchain basiert. Sie positioniert sich als Alternative zu Diensten wie YouTube mit einem Fokus auf freie Meinungsäußerung und Dezentralisierung.", @@ -2006,7 +2066,7 @@ "ref" ], "deezer":"Deezer is a French music streaming service and media service provider founded in 2007 that provides users with access to a vast library of music tracks, podcasts, and radio stations. It offers streaming services in over 180 countries and features a catalog of more than 90 million licensed tracks, making it one of the largest streaming platforms available. Deezer is available on various devices, including Android, iOS, macOS and others. The company is 41.4% owned by the Access Industries investment fund since 2016, 8.1% by Orange Group and 4.5% by the Pinault family through Artémis Group.", - "deviantart":"DeviantArt is an American online community that features artwork, videography, photography, and literature, launched on August 7, 2000, by Angelo Sotira, Scott Jarkoff, and Matthew Stephens, among others.", + "deviantart":"DeviantArt is an American online community that features artwork, videography, photography, and literature, launched on August 7, 2000, by Mathew Stephens, Scott Jarkoff and Angelo Sotira, among others.", "discuss.python":"Discourse is an open source Internet forum system released on August 26, 2014. It was founded by Jeff Atwood, Robin Ward, and Sam Saffron.", "docker hub":[ "hosting service for Docker repository", @@ -2037,6 +2097,10 @@ "wikidata" ], "emojipedia":"Emojipedia is an emoji reference website which documents the meaning and common usage of emoji characters in the Unicode Standard. Most commonly described as an emoji encyclopedia or emoji dictionary, Emojipedia also publishes articles and provides tools for tracking new emoji characters, design changes and usage trends. It has been owned by Zedge since 2021.", + "encyclosearch":[ + "Search over two dozen encyclopedias at once with EncycloSearch! EncycloSearch is an ad-free, open-source encyclopedia search engine and reader. Supported by the Knowledge Standards Foundation.", + "https://encyclosearch.org" + ], "erowid":"Erowid, also called Erowid Center, is a non-profit educational organization that provides information about psychoactive plants and chemicals.", "etymonline":"Etymonline, or Online Etymology Dictionary, sometimes abbreviated as OED, is a free online dictionary that describes the origins of English words, written and compiled by Douglas R. Harper.", "fdroid":"F-Droid is a free and open source app store and software repository for Android, serving a similar function to the Google Play store. The main repository, hosted by the project, contains only free and open source apps. Applications can be browsed, downloaded and installed from the F-Droid website or client app without the need to register an account. \"Anti-features\" such as advertising, user tracking, or dependence on non-free software are flagged in app descriptions.", @@ -2068,7 +2132,7 @@ "google":"Google Search is a search engine operated by Google. It allows users to search for information on the Web by entering keywords or phrases. Google Search uses algorithms to analyze and rank websites based on their relevance to the search query. It is the most popular search engine worldwide.", "google images":"Google Images is a search engine owned by Gsuite that allows users to search the World Wide Web for images. It was introduced on July 12, 2001, due to a demand for pictures of the green Versace dress of Jennifer Lopez worn in February 2000. In 2011, Gsuite image search functionality was added.", "google news":"Google News is a news aggregator service developed by Google. It presents a continuous flow of links to articles organized from thousands of publishers and magazines.", - "google play apps":"Google Play, also known as the Google Play Store or the Play Store, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating system and its derivatives, as well as ChromeOS, allowing users to browse and download applications developed with the Android software development kit and published through Google. Google Play has also served as a digital media store, with it offering various media for purchase such as books, movies, musical singles, television programs, and video games.", + "google play apps":"Google Play, also known as the Google Play Store, Play Store, or sometimes the Android Store, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating system and its derivatives, as well as ChromeOS, allowing users to browse and download applications developed with the Android software development kit and published through Google. Google Play has also served as a digital media store, with it offering various media for purchase such as books, movies, musical singles, television programs, and video games.", "google play movies":[ "google play apps:en", "ref" @@ -2091,14 +2155,10 @@ "huggingface:en", "ref" ], - "il post":"Il Post is an Italian online daily newspaper, founded and directed in 2010 by Luca Sofri. The editorial staff includes assistant editors Francesco Costa and Elena Zacchetti and journalists Arianna Cavallo, Luca Misculin, Giulia Balducci and Emanuele Menietti, as well as contributions from Luca Sofri and a number of other collaborators.", - "imdb":"The Internet Movie Database (IMDb) is an online database of information related to films, television series, podcasts, home videos, video games, and streaming content online – including cast, production crew and personal biographies, plot summaries, trivia, ratings, and fan and critical reviews. IMDb began as a fan-operated movie database on the Usenet group \"rec.arts.movies\" in 1990, and moved to the Web in 1993. Since 1998, it has been owned and operated by IMDb.com, Inc., a subsidiary of Amazon.", + "il post":"Il Post is an Italian online daily newspaper, founded in 2010 by Luca Sofri and directed by Francesco Costa. The editorial staff includes assistant editors Francesco Costa and Elena Zacchetti and journalists Arianna Cavallo, Luca Misculin, Giulia Balducci and Emanuele Menietti, as well as contributions from Luca Sofri and a number of other collaborators.", + "imdb":"IMDb, historically known as the Internet Movie Database, is an online database of information related to films, television series, podcasts, home videos, video games, and streaming content online – including cast, production crew and personal biographies, plot summaries, trivia, ratings, and fan and critical reviews. IMDb began as a fan-operated movie database on the Usenet group \"rec.arts.movies\" in 1990, and moved to the Web in 1993. Since 1998, it has been owned and operated by IMDb.com, Inc., a subsidiary of Amazon.", "imgur":"Imgur is an American online image sharing and image hosting service with a focus on social gossip that was founded by Alan Schaaf in 2009. The service has hosted viral images and memes, particularly those posted on Reddit.", "ina":"The Institut national de l'audiovisuel is a repository of all French radio and television audiovisual archives. Additionally it provides free access to archives of countries such as Afghanistan and Cambodia. It has its headquarters in Bry-sur-Marne.", - "invidious":[ - "Invidious Instances", - "https://api.invidious.io/" - ], "ipernity":[ "The worlds largest non-commercial photo, video and blog sharing community - financed only by membership dues, without any intention of making a profit.", "https://www.ipernity.com" @@ -2127,7 +2187,7 @@ "https://lib.rs" ], "library genesis":"Library Genesis is a shadow library project for file-sharing access to scholarly journal articles, academic and general-interest books, images, comics, audiobooks, and magazines. The site enables free access to content that is otherwise paywalled or not digitized elsewhere. LibGen describes itself as a \"links aggregator\", providing a searchable database of items \"collected from publicly available public Internet resources\" as well as files uploaded \"from users\". The URL libgen.is was down in January to March of 2025.", - "library of congress":"The Library of Congress (LOC) is a research library in Washington, D.C., serving as the library and research service for the United States Congress and the de facto national library of the United States. It also administers copyright law through the United States Copyright Office.", + "library of congress":"The Library of Congress (LOC) is a research library in Washington, D.C., serving as the library and research service for the United States Congress and the de facto national library of the United States. It also administers copyright law through the United States Copyright Office, and it houses the Congressional Research Service.", "libretranslate":[ "Free and Open Source Machine Translation API. Free to download, offline capable and easy to setup. Run your own API server in just a few minutes.Free and Open Source Machine Translation API. Free to download, offline capable and easy to setup. Run your own API server in just a few minutes.", "https://libretranslate.com" @@ -2185,6 +2245,18 @@ "https://mymemory.translated.net/" ], "naver":"Naver is a South Korean online platform operated by the Naver Corporation. The company's products include a search engine, email hosting, blogs, maps, and mobile payment.", + "naver images":[ + "naver:en", + "ref" + ], + "naver news":[ + "naver:en", + "ref" + ], + "naver videos":[ + "naver:en", + "ref" + ], "niconico":"Niconico, Inc. , known before 2012 as Nico Nico Douga , is a Japanese video sharing service based in Tokyo, Japan. \"Niconico\" or \"nikoniko\" is the Japanese ideophone for smiling. As of 2021, Niconico is the 34th most-visited website in Japan, according to Alexa Internet.", "nixos wiki":[ "NixOS Wiki - NixOS Wiki", @@ -2260,7 +2332,7 @@ ], "pubmed":"MEDLINE is a bibliographic database of life sciences and biomedical information. It includes bibliographic information for articles from academic journals covering medicine, nursing, pharmacy, dentistry, veterinary medicine, and health care. MEDLINE also covers much of the literature in biology and biochemistry, as well as fields such as molecular evolution.", "pypi":"The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python. It is analogous to the CPAN repository for Perl and to the CRAN repository for R. PyPI is run by the Python Software Foundation, a charity. Some package managers, including pip, use PyPI as the default source for packages and their dependencies.", - "quark":"Shenma Inc. is a \"mobile-first\" search engine for China that was launched in April 2014. It is a joint venture between Alibaba Group and UCWeb. In April 2017, according to China Internet Watch, Shenma had an 8.8% of the China search engine market share, which made it the second most used search engine after Baidu. Shenma comes with UC Browser, a mobile browser with an estimated 20% share of China's browser market and over 30% of China's mobile browser marketshare. Shenma search was co-founded as a mobile search engine by UCWeb and Alibaba in 2013. In 2014, Alibaba acquired UCWeb.", + "quark":"Shenma Inc. is a \"mobile-first\" search engine for China that was launched in April 2014. It is a joint venture between Alibaba Group and UCWeb.", "quark images":[ "quark:en", "ref" @@ -2282,7 +2354,7 @@ "online database of internet radio stations", "wikidata" ], - "reddit":"Reddit is an American proprietary social news aggregation and forum social media platform. Registered users submit content to the site such as links, text posts, images, and videos, which are then voted up or down by other members. Posts are organized by subject into user-created boards called \"subreddits\". Submissions with more upvotes appear towards the top of their subreddit and, if they receive enough upvotes, ultimately on the site's front page. Reddit administrators moderate the communities. Moderation is also conducted by community-specific moderators, who are unpaid volunteers. It is operated by Reddit Inc., based in San Francisco.", + "reddit":"Reddit is an American proprietary social news aggregation and forum social media platform. Registered users submit content to the site such as links, text posts, images, and videos, which are then voted up or down by other members. Posts are organized by subject into user-created boards called \"subreddits\". Submissions with more upvotes appear towards the top of their subreddit and, if they receive enough upvotes, ultimately on the site's front page. Reddit administrators moderate the communities. Moderation is also conducted by community-specific moderators, who are unpaid volunteers. It is operated by Reddit, Inc., based in San Francisco.", "reuters":"Reuters is a news agency owned by Thomson Reuters. It employs around 2,500 journalists and 600 photojournalists in about 200 locations worldwide writing in 16 languages. Reuters is one of the largest news agencies in the world.", "rottentomatoes":"Rotten Tomatoes is an American review-aggregation website for film and television. The company was launched in August 1998 by three undergraduate students at the University of California, Berkeley: Senh Duong, Patrick Y. Lee, and Stephen Wang. Although the name \"Rotten Tomatoes\" connects to the practice of audiences throwing rotten tomatoes in disapproval of a poor stage performance, the direct inspiration for the name from Duong, Lee, and Wang came from an equivalent scene in the 1992 Canadian film Léolo.", "rubygems":"RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them. It was created by Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer in 2004.", @@ -2332,7 +2404,7 @@ "wikidata" ], "stackoverflow":"Stack Exchange is a network of question-and-answer (Q&A) websites on topics in diverse fields, each site covering a specific topic, where questions, answers, and users are subject to a reputation award process. The reputation system allows the sites to be self-moderating. Currently, Stack Exchange is composed of 173 communities bringing in over 100 million unique visitors each month. As of February 2025 the three most active sites in the network are Stack Overflow, Mathematics, and Ask Ubuntu.", - "startpage":"Startpage is a Dutch search engine company that highlights privacy as its distinguishing feature. The website advertises that it allows users to obtain Bing Search and Google Search results while protecting users' privacy by not storing personal information or search data and removing all trackers. Startpage.com also includes an Anonymous View browsing feature that allows users the option to open search results via proxy for increased anonymity.", + "startpage":"Startpage.com is a Dutch search engine website that highlights privacy as its distinguishing feature. The website advertises that it allows users to obtain Bing Search and Google Search results while protecting users' privacy by not storing personal information or search data and removing all trackers. Startpage.com also includes an Anonymous View browsing feature that allows users the option to open search results via proxy for increased anonymity. Startpage is owned and operated by Surfboard Holding BV, The Hague, the Netherlands.", "startpage images":[ "startpage:en", "ref" @@ -2361,7 +2433,11 @@ "https://www.tokyotosho.info/" ], "unsplash":"Unsplash is a website dedicated to proprietary stock photography. Since 2021, it has been owned by Getty Images. The website claims over 330,000 contributing photographers and generates more than 13 billion photo impressions per month on their growing library of over 5 million photos. Unsplash has been cited as one of the world's leading photography websites by Forbes, Design Hub, CNET, Medium and The Next Web.", - "vimeo":"Vimeo, Inc. is an American video hosting, sharing, and services provider founded in 2004 and headquartered in New York City. Vimeo focuses on the delivery of high-definition video across a range of devices and operates on a software as a service (SaaS) business model. The platform provides tools for video creation, editing, and broadcasting along with enterprise software solutions and the means for video professionals to connect with clients and other professionals. As of December 2021, the site has 260 million users, with around 1.6 million subscribers to its services.", + "uxwing":[ + "Exclusive Free icons SVG images easily copy paste SVG code or download SVG vector & PNG for commercial use no attribution required. You can use this icons library for websites, PowerPoint, applications, Android, etc", + "https://uxwing.com" + ], + "vimeo":"Vimeo is an American video hosting, sharing, and services provider founded in 2004 and headquartered in New York City. Vimeo focuses on the delivery of high-definition video across a range of devices and operates on a software as a service (SaaS) business model. The platform provides tools for video creation, editing, and broadcasting along with enterprise software solutions and the means for video professionals to connect with clients and other professionals. As of December 2021, the site has 260 million users, with around 1.6 million subscribers to its services.", "voidlinux":"Void Linux is an independent Linux distribution that uses the X Binary Package System (XBPS) package manager, which was designed and implemented from scratch, and the runit init system. Excluding binary kernel blobs, a base install is composed entirely of free software.", "wallhaven":[ "Your source for the best high quality wallpapers on the Net!", @@ -2385,13 +2461,13 @@ "wikicommons.images:en", "ref" ], - "wikidata":"Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It is a common source of open data that Wikimedia projects such as Wikipedia, and anyone else, are able to use under the CC0 public domain license. Wikidata is a wiki powered by the software MediaWiki, including its extension for semi-structured data, the Wikibase. As of early-2025, Wikidata had 1.65 billion item statements.", + "wikidata":"Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It is a common source of open data that Wikimedia projects such as Wikipedia, and anyone else, are able to use under the CC0 public domain license. Wikidata is a wiki powered by the software MediaWiki, including its extension for semi-structured data, the Wikibase. As of early 2025, Wikidata had 1.65 billion item statements.", "wikimini":[ "family of online encyclopedias for children", "wikidata" ], "wikinews":"Wikinews is a free-content news wiki and a project of the Wikimedia Foundation that works through collaborative journalism through user-created content. Wikipedia co-founder Jimmy Wales has distinguished Wikinews from Wikipedia by saying, \"On Wikinews, each story is to be written as a news story as opposed to an encyclopedia article.\" Wikinews's neutral point of view policy aims to distinguish it from other citizen journalism efforts such as Indymedia and OhmyNews. In contrast to most Wikimedia Foundation projects, Wikinews allows original work in the form of original reporting and interviews. In contrast to newspapers, Wikinews does not permit op-ed.", - "wikipedia":"Wikipedia is a free online encyclopedia, written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and the wiki software MediaWiki. Founded by Jimmy Wales and Larry Sanger on January 15, 2001, Wikipedia has been hosted since 2003 by the Wikimedia Foundation, an American nonprofit organization funded mainly by donations from readers. Wikipedia is the largest and most-read reference work in history.", + "wikipedia":"Wikipedia is a free online encyclopedia, written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and the wiki software MediaWiki. Founded by Jimmy Wales and Larry Sanger in 2001, Wikipedia has been hosted since 2003 by the Wikimedia Foundation, an American nonprofit organization funded mainly by donations from readers. Wikipedia is the largest and most-read reference work in history.", "wikiquote":"Wikiquote is part of a family of wiki-based projects run by the Wikimedia Foundation using MediaWiki software. The project's objective is to collaboratively produce a vast reference of quotations from prominent people, books, films, proverbs, etc. and writings about them. The website aims to be as accurate as possible regarding the provenance and sourcing of the quotations.", "wikisource":"Wikisource is an online wiki-based digital library of free-content textual sources operated by the Wikimedia Foundation. Wikisource is the name of the project as a whole; it is also the name for each instance of that project, one for each language. The project's aim is to host all forms of free text, in many languages, and translations. Originally conceived as an archive to store useful or important historical texts, it has expanded to become a general-content library. The project officially began on November 24, 2003, under the name Project Sourceberg, a play on Project Gutenberg. The name Wikisource was adopted later that year and it received its own domain name.", "wikispecies":"Wikispecies is a wiki-based online project supported by the Wikimedia Foundation. Its aim is to create a comprehensive open content catalogue of all species; the project is directed at scientists, rather than at the general public. Jimmy Wales stated that editors are not required to fax in their degrees, but that submissions will have to pass muster with a technical audience. Wikispecies is available under the GNU Free Documentation License and CC BY-SA 4.0.", @@ -2711,7 +2787,7 @@ "google":"El buscador de Google o buscador web de Google es un motor de búsqueda en la web propiedad de Alphabet Inc. Es el motor de búsqueda más utilizado en la Web y recibe cientos de millones de consultas cada día a través de sus diferentes servicios. El objetivo principal del buscador de Google es buscar texto en las páginas web, en lugar de otro tipo de datos. Fue desarrollado originalmente por Larry Page y Sergey Brin en 1997.", "google images":"Google Imágenes es una especialización del buscador principal para imágenes, se introdujo el 12 de julio de 2001 debido a la demanda de imágenes del vestido verde de Versace que usó Jennifer López en febrero de 2000. En 2011, se agregó la función de búsqueda inversa de imágenes.", "google news":"Google Noticias, conocido en España como Google News, es un agregador y buscador de noticias automatizado que rastrea de forma constante la información de los principales medios de comunicación en línea.", - "google play apps":"Google Play o Google Play Store es una plataforma de distribución digital de aplicaciones móviles para los dispositivos con sistema operativo Android, así como una tienda en línea desarrollada y operada por Google. Esta plataforma permite a los usuarios navegar y descargar aplicaciones, juegos, música, libros, revistas y películas. También se pueden adquirir dispositivos móviles como ordenadores Chromebook, teléfonos inteligentes Nexus y Pixel, Google Chromecast, entre otros. También cuenta con versiones para Wear OS y Android TV.", + "google play apps":"Google Play o Google Play Store es una plataforma de distribución digital de aplicaciones móviles para los dispositivos con sistema operativo Android, así como una tienda en línea desarrollada y operada por play store Esta plataforma permite a los usuarios navegar y descargar aplicaciones, juegos, música, libros, revistas y películas. También se pueden adquirir dispositivos móviles como ordenadores Chromebook, teléfonos inteligentes Nexus y Pixel, Google Chromecast, entre otros. También cuenta con versiones para Wear OS y Android TV.", "google play movies":[ "google play apps:es", "ref" @@ -2735,6 +2811,10 @@ "imdb":"Internet Movie Database es una base de datos en línea que en un principio almacena información relacionada con películas, y con el tiempo se transforma en la base de datos más grande del mundo donde se encuentran programas de televisión, eventos en vivo y difundidos en televisión o en la web, entrega de premios, especiales y videojuegos. Se encuentra el personal de equipo de producción, actores, series y programas de televisión, videojuegos, actores de doblaje y personajes ficticios que aparecen en los medios de entretenimiento visual. Recibe más de 100 millones de usuarios únicos al mes y cuenta con una versión móvil. IMDb fue inaugurada el 17 de octubre de 1990, y en 1998 fue adquirida por Amazon.com.", "imgur":"Imgur es un sitio web para alojar imágenes en línea, fundado por Alan Schaaf en el 2009 en Ohio, Estados Unidos, como un regalo para la comunidad de Reddit. Imgur es, actualmente, una de las mayores webs de contenido de imágenes de Internet donde son juzgadas en tiempo real por una comunidad de usuarios a través de comentarios y votos.", "ina":"El Instituto nacional del audiovisual (INA) es un organismo público francés cuya misión principal es archivar las producciones audiovisuales y producir, editar, publicar, comercializar y distribuir contenidos audiovisuales y multimedia para todos los públicos, ya sean profesionales, empresas o particulares, para todas las pantallas o plataformas de difusión, incluido el audio. El INA también incluye un centro de formación e investigación destinado a desarrollar y transmitir conocimientos y experiencia en los campos audiovisual, mediático y digital.", + "ipernity":[ + "La comunidad de intercambio de fotos, vídeos y blogs no comerciales más grande del mundo, financiada únicamente por las cuotas de los miembros, sin ánimo de lucro.", + "https://www.ipernity.com" + ], "iqiyi":"iQIYI, anteriormente Qiyi, es una plataforma de vídeo en línea basada en Pekín, lanzada el 22 de abril de 2010. iQIYI es una de las plataformas de vídeo en línea de mayor tamaño del mundo, con casi 6 mil millones de horas de reproducciones en su servicio cada mes, y con más de 500 millones de usuarios activos al mes.", "kickass":"KickassTorrents es un sitio web que proporciona un directorio de archivos torrent y enlaces magnéticos para facilitar el intercambio de archivos peer-to-peer mediante el protocolo BitTorrent. Fue fundada en 2008 y fue puesto fuera de línea el 20 de julio de 2016, cuando el dominio fue capturado por el gobierno de Estados Unidos. Los servidores proxy del sitio fueron cerrados por su personal, al mismo tiempo.", "lemmy comments":[ @@ -2783,6 +2863,18 @@ "ref" ], "naver":"Naver es el principal portal de Internet de Corea del Sur. Naver fue lanzado en junio de 1999 y fue el primer portal coreano que disponía de un buscador propio e independiente integrado con la página. Desde entonces ha liderado la carrera del desarrollo de buscadores en Corea. Además Naver proporciona muchos servicios a los internautas: posee una agencia de noticias propia que cubre exhaustivamente más de 90 medios de comunicación, un servicio de correo electrónico y un buscador de tesis doctorales. Su contenido más popular son los de los manhwas Torre de Dios y Girls of the Wilds. También es dueña de la aplicación de llamadas gratis LINE.", + "naver images":[ + "naver:es", + "ref" + ], + "naver news":[ + "naver:es", + "ref" + ], + "naver videos":[ + "naver:es", + "ref" + ], "niconico":"Niconico , anteriormente conocido como Nico Nico Douga , es una web de alojamiento de vídeos de origen japonés creada por Niwango. Nico Nico Douga, según Alexa, es la duodécima web más visitada en Japón.", "nixos wiki":[ "nixos wiki:en", @@ -2816,7 +2908,7 @@ ], "reddit":"Reddit es un sitio web de marcadores sociales y agregador de noticias donde los usuarios pueden añadir textos, imágenes, videos o enlaces. Los usuarios pueden votar a favor o en contra del contenido, haciendo que aparezcan en las publicaciones destacadas. Su público es mayoritariamente anglosajón y la mayoría de la actividad se realiza en inglés. Reddit fue software libre desde el 19 de junio de 2009 hasta septiembre de 2017, cuando la compañía archivó y cerró el acceso a sus repositorios en Github, que incluían todo el código escrito para Reddit excepto las partes antispam.", "reuters":"Reuters es una agencia de noticias con sede en el Reino Unido, conocida por suministrar información a medios de comunicación y mercados financieros.", - "rottentomatoes":"Rotten Tomatoes es un sitio web estadounidense de revisión y reseñas para cine y televisión. La compañía fue fundada en agosto de 1998 por tres estudiantes universitarios de la Universidad de California, Berkeley: Senh Duong, Patrick Y. Lee y Stephen Wang. Aunque el nombre \"Rotten Tomatoes\" se conecta con la práctica de audiencias arrojando tomates podridos cuando desaprueba una pobre actuación en el escenario, la inspiración original proviene de una escena con tomates en la película canadiense de 1992 Léolo.", + "rottentomatoes":"Rotten Tomatoes es un sitio web estadounidense de revisión y reseñas para cine y televisión. La compañía fue fundada en agosto de 1998 por tres estudiantes universitarios de la Universidad de California, Berkeley: Senh Duong, Patrick Y. Lee y Stephen Wang. Aunque el nombre «Rotten Tomatoes» se conecta con la práctica de audiencias arrojando tomates podridos cuando desaprueba una pobre actuación en el escenario, la inspiración original proviene de una escena con tomates en la película canadiense de 1992 Léolo.", "rubygems":"RubyGems es un gestor de paquetes para el lenguaje de programación Ruby que proporciona un formato estándar y autocontenido para poder distribuir programas o bibliotecas en Ruby, una herramienta destinada a gestionar la instalación de estos, y un servidor para su distribución. Es, por tanto, equivalente al papel que juegan CPAN y PEAR en los lenguajes Perl y PHP, respectivamente. RubyGems es parte de la librería estándar a partir de la versión 1.9 de Ruby.", "rumble":"Rumble es una plataforma de video en línea canadiense con sede en Toronto. Fue fundada en 2013 por Chris Pavlovski, un emprendedor tecnológico de Canadá. El recuento mensual de usuarios de Rumble ha experimentado un rápido crecimiento desde julio de 2020, pasando de 1,6 millones de usuarios mensuales a 31,9 millones al final del primer trimestre de 2021.", "semantic scholar":"Semantic Scholar es un motor de búsqueda respaldado por un sistema de inteligencia artificial dedicado a trabajar con publicaciones académicas. Desarrollado en el Allen Institute for Artificial Intelligence, se lanzó al público en noviembre de 2015. Utiliza avances recientes en el procesamiento del lenguaje natural para proporcionar resúmenes de artículos académicos.", @@ -3190,7 +3282,7 @@ "ref" ], "wikidata":"Wikidata elkarlanean sortutako datu-base eleanitz bat da, Wikimedia Fundazioak kudeatua. Wikidataren xedea da iturri bateratu bat eskaintzea zenbait datutarako (adibidez, pertsonen jaiotegunak eta jarduerak, edo Wikipediako artikulu bat nola den beste hizkuntzen Wikipedietan. Informazio hori Wikimediaren proiektuetan erabiltzen da gero, adibidez Wikipedian. Wikipediako artikulu askotan goian eskuinaldean hainbat daturekin agertzen den infotaula, kasu askotan automatikoki sortu izan da artikulu horri buruz Wikidatan dagoen informazioarekin.", - "wikipedia":"Wikipedia eduki askeko entziklopedia bat da, lankidetzaz editatua, eleanitza, Interneten argitaratua, Wikimedia Fundazioa irabazi asmorik gabeko erakundeak sustengatua. Wikipedia mundu osoko boluntarioek idazten dute. Internetera konektatutako edonork parte har dezake Wikipediako artikuluetan, aldatu lotura sakatuz. 2015ko azaroaren bostean, 291 hizkuntzatako edizioak zituen, eta horietatik 275 zeuden aktibo. Proiektuaren xedea da ahalik eta hizkuntza gehienetan idatzitako entziklopedia sortu eta hedatzea. Guztira 37 milioi artikulu ditu, horietatik 461.286 euskaraz eta bost milioitik gora ingelesez.", + "wikipedia":"Wikipedia eduki askeko entziklopedia bat da, lankidetzaz editatua, eleanitza, Interneten argitaratua, Wikimedia Fundazioa irabazi asmorik gabeko erakundeak sustengatua. Wikipedia mundu osoko boluntarioek idazten dute. Internetera konektatutako edonork parte har dezake Wikipediako artikuluetan, aldatu lotura sakatuz. 2015ko azaroaren bostean, 291 hizkuntzatako edizioak zituen, eta horietatik 275 zeuden aktibo. Proiektuaren xedea da ahalik eta hizkuntza gehienetan idatzitako entziklopedia sortu eta hedatzea. Guztira 37 milioi artikulu ditu, horietatik 464.025 euskaraz eta bost milioitik gora ingelesez.", "wikiquote":"Wikiesanak Wikimedia Fundazioaren aipu ezagunen bilduma da. Bertan pertsona entzutetsuen esanak, liburu ospetsuetako aipamenak eta herrialde ezberdinetako esaera zaharrak edo atsotitzak aurki daitezke. Wikipedia bezala, internet bidezko elkarlanean eta wiki softwarean oinarritzen den webgunea da. GFDL lizentziapean argitaratzen da. Hastapenetan ingelesez soilik bazen ere, 2004 urteaz geroztik 79 hizkuntza ezberdinetan dago. Ingelesezko bertsioa artikulu gehien duena izan da ordutik, 2010 urteko hasieran ia ehun mila orri eta hamazazpi mila bat aipuak biltzeko artikulu duela. 2010. urtearen hasieran euskarazko bertsioak mila orrialde baino gehiago zituen, eta horietako ehun baino gehiago, aipu-orrialdeak.", "wikisource":"Wikiteka wikian dagoen testu eduki askeko Interneteko liburutegi digitala da, Wikimedia Fundazioak kudeatutakoa. Wikiteka da proiektu osoaren izena, baita proiektu horretako ale bakoitzaren izena ere, non ale bakoitza hizkuntza desberdin bati dagokion. Beraz, hizkuntza askotako iturriek osatzen dute Wikiteka.", "wikispecies":"Wikiespezieak Wikimedia Fundazioaren proiektu bat da. Bertan, naturako izaki espezie ezberdinen informazioa aurki dezakegu; animaliak, landareak, onddoak, bakteriak, eta gainontzeko bizi-formak.", @@ -3264,7 +3356,7 @@ "ref" ], "deezer":"دیزر رسانه جاری موسیقی و پادکست مبتنی بر اینترنت است. این سرویس در اوت ۲۰۰۷ در پاریس فرانسه پایه‌گذاری شد. تا تاریخ ۳ آوریل ۲۰۱۸، ۱۴ میلیون کاربر ماهانه فعال و ۶ میلیون مشترک پولی برای دیزر گزارش شده‌است.", - "deviantart":"دوینت‌آرت یک شبکه اجتماعی آنلاین با محوریت هنر است. پایگاه رسمی آن در ۷ آگوست سال ۲۰۰۰ توسط چند طراح وب با ایده‌های نو راه‌اندازی شد. آثار هنری در این ‍‍ پایگاه عبارتند از; عکاسی، هنر دیجیتال، نقاشی دیجیتال، هنر سنتی، ادبیات، پویانمایی، فیلم سازی، پوسته برای برنامه‌های کاربردی و غیره که با دیگران به اشتراک گذاشته می‌شوند.", + "deviantart":"دوینت‌آرت یک شبکه اجتماعی آنلاین با محوریت هنر است. پایگاه رسمی آن در ۷ اوت سال ۲۰۰۰ توسط چند طراح وب با ایده‌های نو راه‌اندازی شد. آثار هنری در این ‍‍ پایگاه عبارتند از; عکاسی، هنر دیجیتال، نقاشی دیجیتال، هنر سنتی، ادبیات، پویانمایی، فیلم سازی، پوسته برای برنامه‌های کاربردی و غیره که با دیگران به اشتراک گذاشته می‌شوند.", "duckduckgo":[ "currency:fa-IR", "ref" @@ -3340,6 +3432,18 @@ "ref" ], "naver":"موتور جستجوی ناور (به کره‌ای: 네이버) یک موتور جستجوی معروف در کره است که در حدود ۷۰ درصد بازار مشترک را در مقابل ۲ درصد گوگل داراست .Naver در سال ۱۹۹۹ توسط گروهی از مهندسان شرکت Sumsong ایجاد شد. و به عنوان اولین وب پورتال کره جنوبی شناخته می‌شود و یک پورتال بومی اختصاصی محسوب می گردد.", + "naver images":[ + "naver:fa-IR", + "ref" + ], + "naver news":[ + "naver:fa-IR", + "ref" + ], + "naver videos":[ + "naver:fa-IR", + "ref" + ], "niconico":"نیکونیکو ، یک سرویس اشتراک‌گذاری ویدیوی ژاپنی مستقر در توکیو، ژاپن است. «نیکونیکو» ایدئوفون ژاپنی برای لبخند زدن است. طبق گزارش الکسا اینترنت از سال ۲۰۲۱، نیکونیکو سی و چهارمین وب سایت پربازدید در ژاپن است.", "nixos wiki":[ "nixos wiki:en", @@ -3413,6 +3517,7 @@ }, "fi":{ "9gag":"9GAG on vuonna 2008 perustettu meemeihin ja muuhun internethuumoriin keskittyvä verkkosivusto. Se syntyi hongkonglaisen opiskelijaryhmän työnä, johon kuului Ray Chan, Chris Chan, Derek Chan, Marco Fung ja Brian Yu, koska Facebook ei ollut saatavilla Hongkongissa. 9GAG-sovellus on saatavilla Androidille, iOS:lle, Windows Phonelle ja BlackBerry 10:lle. 9GAG on saavuttanut sosiaalisen median kuten Facebookin, Twitterin ja Instagramin avulla suuren suosion. Marraskuussa 2017 9GAG:in sivuilla oli käynyt yli 223 miljoonaa vierailijaa.", + "alpine linux packages":"Alpine Linux on riippumaton Linux-jakelu, joka on suunniteltu käyttöön reittimissä, palomuureissa, säiliöissä ja palvelimissa. Alpine Linux on suunniteltu pieneksi, ja se voidaan ajaa suoraan RAM-muistista. Alpine Linux perustuu musl-kirjastolle ja Busyboxille. Alpine Linux on suosittu säiliöissä, joissa hyökkäyspinta-ala minimoidaan ja suoritus tehdään kustannustehokkaaksi. Alpine Linuxista on saatavilla 32- ja 64-bittisiä versioita useille alustoille: i386 (x86), AMD64, ARMv6, ARMv8, PowerPC ja IBM System z (s390x) arkkitehtuureille.", "ansa":[ "italialainen uutistoimisto", "wikidata" @@ -3726,12 +3831,12 @@ "apple maps":"Apple Plans est une application de cartographie en ligne développée par Apple. Il s'agit de l'application de cartographie par défaut sur iOS, iPadOS, macOS et watchOS. Elle permet de donner les directions et l'heure d'arrivée estimée que l'on soit en voiture, à pied, en bicyclette ou en transport en commun. Une fonctionnalité appelée « tour Flyover » permet d'explorer certaines zones urbaines et autres points d'intérêt modélisés en 3D.", "artic":"L'Art Institute of Chicago est un musée situé à Chicago aux États-Unis. Deuxième plus grand musée d'art du pays après le Metropolitan Museum of Art de New York, il abrite l'une des plus importantes collections d'art des États-Unis.", "arxiv":"arXiv est une archive ouverte de prépublications électroniques d'articles scientifiques dans les domaines de la physique, des mathématiques, de l'informatique, de la biologie quantitative, de la finance quantitative, de la statistique, de l'ingénierie électrique et des systèmes, et de l'économie, et qui est accessible gratuitement par Internet.", - "ask":"Ask.com anciennement Ask Jeeves, est un moteur de recherche sur Internet fondé en 1996 par Garrett Gruener et David Warthen à Berkeley en Californie. Le moteur initial fut conçu et implémenté par Gary Chevsky.", + "ask":"Ask.com anciennement Ask Jeves, est un moteur de recherche sur Internet fondé en 1996 par Garrett Gruener et David Warthen à Berkeley en Californie. Le moteur initial fut conçu et implémenté par Gary Chevsky.", "askubuntu":[ "stackoverflow:fr", "ref" ], - "baidu":"Baidu est une entreprise Internet chinoise. Son moteur de recherche en chinois peut chercher du texte et des images. En juin 2013, c'est le site le plus consulté de Chine et, en 2019, c'est le 3e site le plus consulté sur Internet. Baidu signifie « Cent degrés » en chinois. En 2023, l'entreprise propose un index de plus de 3 milliards de pages web. Elle participe activement à la communauté du logiciel libre, notamment dans le domaine de l'intelligence artificielle.", + "baidu":"Baidu est une entreprise Internet chinoise. Son moteur de recherche en chinois peut chercher du texte et des images. En juin 2013, c'est le site le plus consulté de Chine et, en 2019, c'est le troisième site le plus consulté au monde. En 2023, l'entreprise propose un index de plus de 3 milliards de pages web. Elle participe activement à la communauté du logiciel libre, notamment dans le domaine de l'intelligence artificielle.", "baidu images":[ "baidu:fr", "ref" @@ -3821,7 +3926,7 @@ "github":"GitHub est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git. Ce site est développé en Ruby on Rails et Erlang par Chris Wanstrath, PJ Hyett et Tom Preston-Werner. GitHub propose des comptes professionnels payants, ainsi que des comptes gratuits pour les projets de logiciels libres.", "gitlab":"GitLab est un logiciel libre de forge basé sur git proposant les fonctionnalités de wiki, un système de suivi des bugs, l’intégration continue et la livraison continue. Développé par GitLab Inc et créé par Dmitriy Zaporozhets et par Valery Sizov, le logiciel est utilisé par plusieurs grandes entreprises informatiques, dont IBM, Sony, le centre de recherche de Jülich, la NASA, Alibaba, Oracle, Invincea, O’Reilly Media, Leibniz Rechenzentrum, le CERN, European XFEL, la GNOME Foundation, KDE, Boeing, Autodata, SpaceX, Symbio et Altares.", "goodreads":"Goodreads est un site web de critiques et de notation de livres. Fondé en décembre 2006, puis lancé en janvier 2007 par Otis Chandler II, un ingénieur informatique et entrepreneur, et Elizabeth Khuri, ce site se base sur des notions de catalogage social et permet aux individus de faire des recherches dans une vaste base de données comprenant des livres, des annotations et des critiques littéraires. Les usagers peuvent y créer un compte pour consigner leurs impressions de lecture, ce qui génère des listes de suggestions personnalisées. Ils ont également la possibilité de créer leurs propres clubs de lecture, des sondages, des blogs et de lancer des discussions.", - "google":"Google /ˈgu.gəl/ est un moteur de recherche sur Internet gratuit et libre d'accès sur le World Wide Web, ayant donné son nom à la société Google. C'est aujourd'hui le moteur de recherche et le site web le plus visité au monde : 90 % des internautes l'utilisaient en 2018.", + "google":"Google /ˈgu.gəl/ est un moteur de recherche sur Internet gratuit et libre d'accès sur le World Wide Web, ayant donné son nom à la société Google.", "google images":"Google Images est un service proposé depuis 2001 par le moteur de recherche Google pour permettre de trouver sur le web des images en rapport avec un sujet donné.", "google news":"Google Actualités ou Google News est un service en ligne gratuit de Google qui présente de façon automatisée des articles d'information en provenance de sources sur le Web. Il fonctionne de la même manière qu'un moteur de recherche, en n'indexant que les articles de presse. Ce service, disponible dans vingt-deux pays, a été créé en avril 2002. La partie française du service est sortie de son statut bêta le 14 mai 2009. En juin 2017, Google change le design de Google Actualités pour une version plus épurée et plus claire pour l'utilisateur. Elle propose également des articles dont les faits sont vérifiés dans la version américaine.", "google play apps":"Google Play est une suite d'applications et un magasin d'applications créée par Google le 22 octobre 2008 par fusion des services Android Market, Google Movies, Google ebookstor et Google Music. Elle regroupe Play Store, le magasin d'applications officiel pour les appareils fonctionnant sous Android et Chrome OS, Play Films et séries, une boutique de location de films et de séries télévisées, Play Livres, une boutique d'achat en ligne de livres et de magazines, et Play Jeux, un service de sauvegarde, de récompense et de défis autour des jeux mobiles disponibles sur le Play Store.", @@ -3846,6 +3951,10 @@ "imdb":"L’Internet Movie Database, abrégé en IMDb, est une base de données en ligne sur le cinéma mondial, sur la télévision, et plus secondairement les jeux vidéo. IMDb restitue un grand nombre d’informations concernant les films, les acteurs, les réalisateurs, les scénaristes et toutes personnes et entreprises intervenant dans l’élaboration d’un film, d’un téléfilm, d’une série télévisée ou d’un jeu vidéo. L’accès aux informations publiques est gratuit. Un service payant, IMDbPro, donne accès aux informations supplémentaires susceptibles d’intéresser les professionnels. Créé le 17 octobre 1990 par l'Anglais Col Needham, c’est un site visité, en 2010, par plus de 57 millions d’usagers uniques chaque mois, ce qui le plaçait au 39e rang des sites les plus visités au monde. Il appartient depuis 1998 à Amazon.", "imgur":"imgur est une société américaine fondée par Alan Schaaf en 2009 qui exploite un site d'hébergement d'images.", "ina":"L'Institut national de l'audiovisuel (INA) est un établissement public à caractère industriel et commercial français ayant pour mission principale d'archiver les productions audiovisuelles et de produire, d'éditer, de publier, de commercialiser et de distribuer des contenus audiovisuels et multimédias à destination de tous les publics, professionnels, entreprises ou particuliers, pour tous les écrans ou plateformes de diffusion, y compris audio. L'INA comprend également un centre de formation et de recherche visant à développer et transmettre les savoirs et expertises dans les domaines de l'audiovisuel, des médias et du numérique.", + "ipernity":[ + "La plus grande communauté non commerciale de partage de photos, vidéos et blogs au monde, financée uniquement par les cotisations des membres, à but non lucratif.", + "https://www.ipernity.com" + ], "iqiyi":"iQiyi est un site de publication de vidéos en ligne créé le 22 avril 2010 en République populaire de Chine. Il cumulait plus de 50 millions de vidéos visionnées quotidiennement en mai 2013. Le public chinois visualise en tout plus d'1,28 milliard d'émissions de télévision et de films par mois d'après des statistiques de septembre 2014.", "kickass":"KickassTorrents est un annuaire web de fichiers torrent et de liens magnet destiné à faciliter le partage de fichiers. Le site a été fondé en 2008 et a été mis hors ligne le 20 juillet 2016, lorsque le domaine a été saisi par le gouvernement des États-Unis. Les sites proxy ont été fermés par les membres de son équipe le même jour. Le 16 décembre 2016, KickassTorrents est de retour en ligne sur une nouvelle adresse, créée par l'équipe originale.", "lemmy comments":[ @@ -3871,7 +3980,7 @@ "mastodon users:fr", "ref" ], - "mastodon users":"Mastodon est un réseau social et logiciel de microblogage auto-hébergé, libre, distribué et décentralisé via ActivityPub au sein du Fediverse. Il permet de partager des messages, images, médias et autres contenus. C'est une alternative à Twitter. Des instances sont publiquement mises à disposition afin de faciliter son utilisation.", + "mastodon users":"Mastodon est un logiciel de microblogage libre et open source fonctionnant sur le protocole ActivityPub.", "mdn":"MDN Web Docs, précédemment Mozilla Developer Network et anciennement Mozilla Developer Center, est un dépôt de documentation et une ressource d'apprentissage pour les développeurs web utilisés par Mozilla, Microsoft, Google et Samsung.", "metacpan":"Le Comprehensive Perl Archive Network, ou CPAN, est un site Web consacré au langage de programmation Perl. CPAN désigne également un module Perl servant à accéder à ce site. Son nom vient du Comprehensive TeX Archive Network, ou CTAN, son homologue consacré à TeX.", "microsoft learn":[ @@ -3894,6 +4003,18 @@ "ref" ], "naver":"Naver est une plateforme en ligne sud-coréenne gérée par la société Naver Corporation. Le site a été créé en 1999 en tant que premier portail Web en Corée à développer et utiliser son propre moteur de recherche. Il a également été le premier opérateur au monde à introduire la fonction de recherche intégrée, qui compile les résultats de recherche de différentes catégories et les présente sur une seule page. Depuis, Naver a ajouté une multitude de nouveaux services telles que le courrier électronique et les nouvelles, puis aussi la première plateforme de questions-réponses en ligne Knowledge iN.", + "naver images":[ + "naver:fr", + "ref" + ], + "naver news":[ + "naver:fr", + "ref" + ], + "naver videos":[ + "naver:fr", + "ref" + ], "niconico":"Niconico (ニコニコ, Nikoniko, litt. « Sourire ») anciennement connu sous le nom Nico Nico Dōga (ニコニコ動画, litt. « Sourire vidéos ») ou Nico-dō est un site web de partage de vidéos, très populaire au Japon, géré par Niwango (en). Le site est surnommé « Niconico » ou « Nico-dō », sachant que « nico nico » est l'onomatopée pour le sourire. Niconico est classé 13e parmi les sites web les plus visités au Japon. Le site a gagné le Good Design Award japonais en 2007, et le Honoray Mentions Awards de la catégorie des communautés digitales au Prix Ars Electronica 2008. Sa particularité est que les commentaires de la vidéo s'affichent directement sur celle-ci au même moment qu'ils ont été écrits, ils sont appelés « danmaku » (弾幕). Cette fonctionnalité est aussi développée par le chinois bilibili.", "nixos wiki":[ "nixos wiki:ru", @@ -3972,7 +4093,7 @@ "wikicommons.images:fr", "ref" ], - "wikicommons.images":"Wikimedia Commons est une base de données multimédia. Elle héberge des images, des sons, d'autres médias audiovisuels et des données JSON sous licence libre. Elle centralise des médias libres, tels que photographies, dessins, schémas, partitions, cartes géographiques, textes écrits et parlés, animations et vidéos, objets 3D qui ont une utilité pour les projets du mouvement Wikimédia. En novembre 2023, elle passe la barre des 100 millions de fichiers hébergés.", + "wikicommons.images":"Wikimedia Commons est une bibliothèque numérique collaborative et gratuite lancée en 2004. Elle héberge des images, des sons, d'autres médias audiovisuels et des données JSON. Elle centralise des médias tels que photographies, dessins, schémas, fichiers son, partitions, cartes géographiques, textes écrits et parlés, animations et vidéos, objets 3D qui ont une utilité pour les projets du mouvement Wikimédia. En novembre 2023, elle passe la barre des 100 millions de fichiers hébergés.", "wikicommons.videos":[ "wikicommons.images:fr", "ref" @@ -4266,7 +4387,7 @@ "annas archive":"הארכיון של אנה היא ספריית צללים חינמית וללא מטרת רווח, המספקת גישה מקוונת לספרים וחומרים כתובים ולמידע עליהם ממגוון מקורות באמצעות רב מנוע. הספרייה הוקמה על ידי צוות ארכיונאים אנונימיים כתגובה למאמצי איגוד המוציאים לאור הבריטי וגילדת המחברים האמריקאית יחד עם רשויות החוק לסגור את האתר Z-library בנובמבר 2022.", "apple app store":"App Store היא חנות אפליקציות ייעודית למכשירי iOS, אשר מפותחת ומתוחזקת על ידי חברת אפל. השירות מאפשר למשתמשים להוריד יישומים (אפליקציות) מחנות ה-iTunes. היישומים בחנות פותחו על ידי ערכת פיתוח התוכנה של ה-iOS‏, ופורסמו על ידי אפל.", "apple maps":"אפל מפות הוא יישום מובנה במערכת ההפעלה iOS של המכשירים מבית חברת אפל, ומציע דרכי הגעה ליעדים, עדכוני תנועה, בתי עסק בסביבה ותכונות נוספות.", - "artic":"מכון האמנות של שיקגו הוא מוזיאון לאמנות יפה בפארק גרנט בשיקגו שבמדינת אילינוי בארצות הברית. מכון האמנות מכיל את אחד האוספים הגדולים ביותר בעולם של אמנות אימפרסיוניסטית ופוסט-אימפרסיוניסטית. כמו כן, קיימים במוזיאון מגוון אוספים הכוללים אמנות אסייתית, אמריקאית, אמנות מודרנית ואמנות עכשווית.", + "artic":"מכון האמנות של שיקגו הוא מוזיאון לאמנויות יפות בפארק גרנט בשיקגו שבמדינת אילינוי בארצות הברית. מכון האמנות מכיל את אחד האוספים הגדולים ביותר בעולם של אמנות אימפרסיוניסטית ופוסט-אימפרסיוניסטית. כמו כן, קיימים במוזיאון מגוון אוספים הכוללים אמנות אסייתית, אמריקאית, אמנות מודרנית ואמנות עכשווית.", "ask":"Ask.com הוא מנוע חיפוש אינטרנטי למענה שאלות שהוקם בשנת 1996 על ידי גרט גרונר ודייוויד וורט'ן בברקלי, קליפורניה. מטרתו של מנוע החיפוש היא לכוון את המחפש במהירות ובדיוק מיטבי אל העמוד העונה על שאלתו. במקרה בו הוא אינו מצליח למצוא מידע במאגר המידע שלו, הוא מפנה את המשתמש לאתרים אחרים על ידי מנועי החיפוש. התכונות המיוחדות של מנוע חיפוש Ask.com כוללות, בין היתר, מדריך מיוחד המוקדש רק לקניות יחד עם צפייה בשאלות שנשאלות ברגעים אלו ממש על ידי משתמשים אחרים. נכון ל-2008, מנוע חיפוש זה היה אחראי רק לכ-5% מכלל החיפושים בעולם.", "baidu":"Baidu הוא תאגיד טכנולוגיה בינלאומי שמרכזו ברפובליקה העממית של סין. מטה החברה נמצא ב\"Baidu Campus\" במחוז הֵידִיאַן, בייג'ינג.", "baidu images":[ @@ -4690,6 +4811,18 @@ "ref" ], "naver":"A Naver dél-koreai internetes portál és keresőmotor, melyet 1999-ben hozott létre egy korábbi Samsung-alkalmazott. A Naver saját keresőmotort fejlesztett, ami kifejezetten koreai nyelvű tartalomra specializálódik. 2009-ben a keresőmotorok között az ötödik helyen szerepelt a világon, a Google, a Yahoo!, a Baidu és a Microsoft után. A Naver a koreai piac domináns keresője, a keresések mintegy 70%-át itt bonyolítják és mintegy 25 millió felhasználónak ez a kezdőoldala a böngészőben. A Woori Investment and Securities elemzése szerint a Google-nek azért nem sikerült megvetnie a lábát a koreai piacon a Naverrel szemben, mert túl kevés koreai nyelvű tartalmat szolgáltat.", + "naver images":[ + "naver:hu", + "ref" + ], + "naver news":[ + "naver:hu", + "ref" + ], + "naver videos":[ + "naver:hu", + "ref" + ], "niconico":"Niconico, korábban Nico Nico Douga vagy röviden „Niko-dó”-ként ismert weboldal, egy japán videómegosztó portál, amit a Niwango, a Dwango egy leányvállalata üzemeltet. A „Niconico” vagy „nikoniko” egy japán hangulatfestő szó a mosolygásra. 2012. április 18. óta a 14. és 10. helyek között mozog a leglátogatottabb oldalak listáján Japánban. 2007-ben ez az oldal nyerte meg a Good Design Award-ot, és „Tiszteletbeli díjazott” volt „Digitális közösségek” kategóriában a 2008-as Ars Electronica-díj díjkiosztó rendezvényén.", "odysee":"Az Odysee egy amerikai decentralizált videómegosztó platform, amely az LBRY blokkláncra épül. A nagy videomegosztó oldalak alternatívájaként pozicionálja magát, de a szólásszabadságra és a decentralizációra helyezi a hangsúlyt.", "openstreetmap":"Az OpenStreetMap (OSM) csoportmunkán alapuló térképfejlesztés, melynek célja egy szabadon szerkeszthető és felhasználható térkép készítése az egész világról.", @@ -4892,7 +5025,7 @@ "google scholar":"Google Cendekia adalah layanan yang memungkinkan pengguna untuk melakukan pencarian materi-materi pelajaran berupa teks dalam berbagai format publikasi. Diluncurkan pada tahun 2004, indeks Google Cendekia mencakup jurnal-jurnal daring dari publikasi ilmiah. Google Cendekia menyediakan cara yang mudah untuk mencari literatur akademis secara luas. Seseorang dapat mencari di seluruh bidang ilmu dan referensi dari satu tempat: makalah peer-reviewed, tesis, buku, abstrak, dan artikel, dari penerbit akademis, komunitas profesional, pusat data pracetak, universitas, dan organisasi akademis lainnya. Google Cendekia akan membantu seseorang mengidentifikasi penelitian paling relevan dari seluruh penelitian akademis. Google Cendekia bertujuan menyusun artikel seperti yang dilakukan peneliti, dengan memperhatikan kelengkapan teks setiap artikel, penulis, publikasi yang menampilkan artikel, dan frekuensi penggunaan kutipan artikel dalam literatur akademis lainnya. Hasil paling relevan akan selalu muncul pada halaman pertama.", "google videos":"Google Videos merupakan layanan saling berbagi video dari situs Google. Lewat layanan ini bahkan pengguna Blogspot/Blogger tidak perlu login untuk dapat memajang video sebagai suntingan. Google Video menyediakan layanan video yang mudah digunakan.", "hackernews":"Hacker News adalah situs web berita sosial berfokus pada ilmu komputer dan kewirausahaan. Dijalankan oleh dana investasi Paul Graham dan inkubator startup, Y Combinator. Secara umum, konten yang dapat dikirimkan didefinisikan sebagai \"segala sesuatu yang memuaskan keingintahuan intelektual seseorang\".", - "hoogle":"Haskell adalah bahasa pemrograman fungsional murni. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan Haskell Curry, yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation.", + "hoogle":"Haskell adalah merupakan bahasa pemrograman fungsional murni. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan Haskell Curry, yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation.", "huggingface":"Hugging Face, Inc. adalah sebuah perusahaan Amerika Serikat yang mengembangkan perkakas untuk mengembangkan aplikasi menggunakan pembelajaran mesin. Perusahaan ini membangun sebuah perpustakaan transformer untuk aplikasi pengolahan bahasa alami dan sebuah platform yang digunakan oleh pengguna untuk berbagi model pembelajaran mesin dan kumpulan data.", "huggingface datasets":[ "huggingface:id", @@ -4928,6 +5061,18 @@ "https://learn.microsoft.com" ], "naver":"Naver adalah sebuah portal web populer di Korea Selatan, yang dimiliki oleh Naver Corporation. Naver diluncurkan pada bulan Juni 1999 oleh mantan karyawan Samsung, dan menjadi portal web pertama di Korea Selatan yang menggunakan sistem mesin pencari mereka sendiri. Salah satu di antara fitur Naver adalah \"Comprehensive Search\", yang diluncurkan pada 2000, yang menampilkan hasil dari berbagai kategori dalam satu laman.", + "naver images":[ + "naver:id", + "ref" + ], + "naver news":[ + "naver:id", + "ref" + ], + "naver videos":[ + "naver:id", + "ref" + ], "niconico":"Niconico , sebelum 2012 dikenal sebagai Nico Nico Douga , adalah sebuah layanan berbagi video Jepang di dunia maya. \"Niconico\" atau \"nikoniko\" adalah ideofon Jepang untuk tersenyum. Pada 2021, Niconico adalah situs web paling banyak dikunjungi ke-30 di Jepang, menurut Alexa Internet.", "nixos wiki":[ "nixos wiki:en", @@ -5159,6 +5304,18 @@ "ref" ], "naver":"Naver è una piattaforma online sudcoreana gestita da Naver Corporation. Ha debuttato nel 1999 come il primo portale web in Corea del Sud a sviluppare e utilizzare il proprio motore di ricerca. È stato anche il primo operatore al mondo a introdurre la funzione di ricerca completa, che raccoglie i risultati della ricerca da varie categorie e li presenta in un'unica pagina. Da allora Naver ha aggiunto una moltitudine di nuovi servizi che vanno dalle funzionalità di base come casella e-mail e sito di notizie alla prima piattaforma di domande e risposte online al mondo Knowledge iN.", + "naver images":[ + "naver:it", + "ref" + ], + "naver news":[ + "naver:it", + "ref" + ], + "naver videos":[ + "naver:it", + "ref" + ], "niconico":"Niconico , precedentemente conosciuto come Nico Nico Dōga , è un popolare sito web giapponese di video sharing gestito da Niwango, sussidiaria di Dwango.", "nixos wiki":[ "nixos wiki:en", @@ -5265,7 +5422,7 @@ "ref" ], "alpine linux packages":"Alpine Linux (アルパイン・リナックス) は、muslとBusyBoxをベースとしたLinuxディストリビューションである。セキュリティ・シンプルさ・リソース効率を重視するパワーユーザー向けに設計されている。Alpine Linuxではgrsecurity/PaXを適用したLinuxカーネルを使用しており、全てのユーザ空間バイナリがスタックスマッシング保護 付きの位置独立実行ファイル (PIE) としてコンパイルされている。", - "annas archive":"Anna's Archiveは、様々な書籍リソースへのアクセスを提供する無料の非営利オンラインシャドウライブラリメタサーチエンジンで、匿名のアーキビストのチーム によって、2022年11月にあったZ-Libraryに対する法的措置に対抗する目的で作られた。", + "annas archive":"Anna's Archiveは、2022年のZ-Libraryを閉鎖しようとする法執行機関の動きの直後、アンナという偽名の人物によって開設されたオープンソースの検索エンジンであり、シャドウライブラリを対象としている。Z-Library、Sci-Hub、Library Genesisを含む主要なシャドウライブラリなどの記録を集約している。自身を「人類史上最大の真にオープンな図書館」と称し、「存在するすべての書籍をカタログ化し、これらすべての書籍をデジタル形式で簡単に利用可能にするという人類の進展を追跡する」ことを目指すと述べている。このサイトは著作権のある資料のダウンロードについて責任を負わないと主張している。これは、このサイトがメタデータをインデックス化するのみで、ファイル自体は直接ホストせず、第三者によるダウンロードリンクを提供するのみであるためである。しかしながら、政府によるネット検閲や出版社および出版業界の業界団体による訴訟の対象となっており、大規模な著作権侵害に関与しているとされている。", "ansa":"ANSA通信 はイタリアの通信社。イタリアの主要新聞社36社が加盟する非営利の協同組合という形になっている。", "apple app store":"App Store(アップ・ストア)は、Appleが運営するiPhone、iPod touch、iPad向けアプリケーションのダウンロードサービスである。Mac OS X 10.6.6以降を搭載したMacにも同様のサービスがあるが、こちらは Mac App Store を参考のこと。", "apple maps":"マップ は、Appleが運営・開発する地図アプリケーション。iOS、iPadOS、macOS、watchOSのデフォルトの地図アプリケーションである。", @@ -5316,6 +5473,7 @@ "brave:ja", "ref" ], + "btdigg":"BTDiggは、初めてMainline DHTに対応した検索エンジンである。このサービスはBitTorrent DHTネットワークに参加し、ネットワークの維持や、マグネットリンクといくつかのトレント属性(名称、サイズ、ファイル一覧)の対応を支援していた。これらの属性はインデックス化されてデータベースに挿入されていた。エンドユーザーに対しては、BTDiggはWebインターフェースを通じて全文検索データベース検索を提供していた。検索システムのWeb部分は、ユーザーのテキストクエリにより適切な情報を取得していた。Web検索は欧州およびアジアの言語によるクエリに対応していた。プロジェクト名は「BitTorrent Digger」の略称であり、この文脈において「digger」はトレジャーハンターを意味する。2016年6月には検索エンジンスパムが原因とされる理由でサービスはオフラインとなった。しかし2025年現在、サービスは再びオンラインとなっていると報告されているが、IPフィルタリングの影響により通常のクリアネット接続からはアクセス困難な場合が多い。サービスはTorネットワークやTor Browser経由でアクセス可能である。", "currency":"DuckDuckGo(ダックダックゴー)は、インターネット検索エンジンである。利用者のプライバシーの保護と利用履歴等を記録保存しないことを運営方針としている。VivaldiやTor Browserの標準検索エンジンにも採用されている。また、DuckDuckGoは検索結果のパーソナライズを行わないため「フィルターバブル」に陥らない(DuckDuckGoはGoogleのフィルターバブル問題についてブログで指摘している)。", "dailymotion":"Dailymotion(デイリーモーション)は、Canal+傘下のDAILYMOTION SAが運営する、フランスの動画共有サービス。", "ddg definitions":[ @@ -5379,7 +5537,7 @@ "imgur":"Imgur は、アラン・シャーフが2009年にアメリカ合衆国オハイオ州アセンズで立ち上げたオンライン画像共有と画像管理サービスである。「家庭から、コメント、投票、共有によってコミュニティがリアルタイムでウェブにおける最も人気のある画像にアクセスする場所」と自称している。1日100万人以上のユーザーに無料の画像管理サービスとコメント型ソーシャルコミュニティを提供している。運営企業は広告販売や商用ホスティング、グッズ販売で収益を上げている。", "ina":"フランス国立視聴覚研究所 は、フランスの全ラジオ・テレビの視聴覚アーカイヴの宝庫である。ラジオフランスが主催し、放送局本部の建物内にある。内部にフランス音楽研究グループ を有する。", "iqiyi":"iQIYI は、中華人民共和国のビデオ・オン・デマンド及び動画配信サービスであり、百度傘下のオンラインエンターテイメント企業である。", - "library genesis":"Library Genesis(LibGen)は、様々な分野の論文・書籍の検索エンジンであり、有料で配布されていたり、どこにおいてもデジタル化されていなかったりするコンテンツを無料でアクセス可能にしている。特に、エルゼビアのScienceDirectウェブポータルで配布されているPDFファイルを収録している。", + "library genesis":"Library Genesis(LibGen)は、シャドウライブラリプロジェクトであり、ファイル共有によって学術雑誌の記事や学術書、一般向け書籍、画像、コミック、オーディオブック、雑誌などへのアクセスを提供している。他ではペイウォールで保護されていたり、デジタル化されていなかったりするコンテンツを無料でアクセス可能にしている。", "library of congress":"アメリカ議会図書館 は、アメリカ合衆国の事実上の国立図書館。蔵書数・予算額・職員数全ての点で世界最大規模の図書館である。", "mastodon hashtags":[ "mastodon users:ja", @@ -5389,6 +5547,18 @@ "mdn":"MDN Web Docsは、ウェブ標準及びMozillaプロジェクトの開発文書のためのMozillaの公式ウェブサイトである。以前の名称はMozilla Developer Network。", "metacpan":"CPAN とは、Perlのライブラリ・モジュールやその他のPerlで書かれたソフトウェアを集めた巨大なアーカイブで、世界中のサーバにその内容がミラーリングされている。再利用性・汎用性の高いモジュールが登録されており、Perlプログラマができるだけ車輪の再発明をせずに済むための支援環境となっている。登録モジュールの検索システムも提供されているため、Perlプログラマは望む機能を持ったモジュールを容易に入手することができる。", "naver":"ネイバー は、ネイバー (企業)が運営する、大韓民国(韓国)の最大手ポータルサイトである。", + "naver images":[ + "naver:ja", + "ref" + ], + "naver news":[ + "naver:ja", + "ref" + ], + "naver videos":[ + "naver:ja", + "ref" + ], "nixos wiki":[ "nixos wiki:en", "ref" @@ -5397,7 +5567,7 @@ "openlibrary":"Open Library(オープンライブラリ)とは「これまでに出版された本のウェブページ」を作るためのオンラインプロジェクトである。カリフォルニア州立図書館とケール・オースチン財団による非営利プロジェクト「インターネットアーカイブ」の一環として進められている。", "openstreetmap":"オープンストリートマップ は、自由に利用でき、なおかつ編集機能のある世界地図を作るオープンコラボレーションプロジェクトである。GPS機能を持った携帯機器、空中写真、衛星画像、他の地理情報システムからのデータをもとに作られていくのが基本だが、編集ツール上で道1本から手入力での追加も可能である。与えられた画像とベクトルデータセットはオープンデータベースライセンス (ODbL) 1.0のもと再利用可能である。", "pinterest":"Pinterest(ピンタレスト)とは、アメリカ合衆国カリフォルニア州サンフランシスコに本拠を置くPinterest, Inc.(ピンタレスト社)が運営・管理する写真共有サービス。アプリやウェブサイト方式によって提供され、ピンボード風の画面構成となっている。ユーザーはイベント・関心事・趣味などテーマ別の画像コレクションを作成・管理することができ、また他のユーザーが作成したピンボードを閲覧して自身のコレクションに加えたり、「好み」の写真として画像を「リピン」することもできるという特徴がある。", - "piratebay":"パイレート・ベイ は、デジタルコンテンツのトレントファイルを検索できるインデックスサイトである。2003年に、スウェーデンの反著作権団体Piratbyrånによって設立された。利用者はマグネットリンクおよびトレントファイルの検索、ダウンロード、掲載が可能である。マグネットリンクとトレントファイルは、BitTorrentプロトコルを用いたP2Pファイル共有に使用される。", + "piratebay":"パイレート・ベイ(The Pirate Bay、略称: TPB)は、無料の検索可能なオンラインインデックスで、「映画」「音楽」「ゲーム」「ポルノ」「ソフトウェア」を検索できる。2003年にスウェーデンのシンクタンクPiratbyrånによって設立された。パイレート・ベイではP2Pトレントプロトコルのユーザー間の接続を容易にし、ユーザーはマグネットリンクを追加することでサイトに貢献することができる。パイレート・ベイは一貫して世界で最も訪問されたトレントサイトの一つにランクしている。", "pubmed":"MEDLINE(メドライン)またはMEDLARS Online は、医学を中心とする生命科学の文献情報を収集したオンラインデータベースである。1964年に米国国立医学図書館 が作成したコンピューター化医学文献データベース「MEDLARS」は、1971年10月27日にオンライン検索サービスが開始され、1997年にはPubMedの名でインターネットに無料公開された後、改良が重ねられて成長を続け、2007年現在、月に7000万回程度のアクセスがある世界で最もよく使用される生物医学系データベースである。", "pypi":"Python Package Index は、プログラミング言語Pythonの、サードパーティーソフトウェアリポジトリである。すべてのオープンソースなPythonパッケージの包括的なカタログととらえることができる。 Pipなどのパッケージマネージャは、パッケージやその依存パッケージをPyPIからダウンロードしてインストールする機能を持つ。", "reddit":"Reddit(レディット)はアメリカ合衆国の掲示板型ソーシャルニュースサイト。主に英語圏のユーザーを対象とする。ニュース記事、画像のリンクやテキストを投稿し、コメントを付けることが可能。カリフォルニア州サンフランシスコに拠点を置くReddit, Inc.が運営する。2021年1月時点の月間利用者数は4億3000万人。欧米ではTwitterユーザー数並び利用時間を超える。", @@ -5440,7 +5610,7 @@ "wikidata":"ウィキデータ はウィキメディア財団が提供する共同編集型のデータベース(知識基盤)である。パブリックドメイン・ライセンスの下で、誰もが使用できるオープンデータを提供することを目的としている。ウィキメディア・コモンズがメディアファイルの格納場所を提供して他のウィキメディアプロジェクトがそれを利用する方法と同様に、データに対してこれを行う。ウィキデータはウィキベースソフトウェアを用いて稼働している。", "wikipedia":"ウィキペディア は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語インターネット百科事典。収録されている全ての内容がオープンコンテントで商業広告が存在しないということを特徴とし、主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。「ウィキペディア(Wikipedia)」という名前は、ウェブブラウザ上でウェブページを編集することができる「ウィキ(Wiki)」というシステムを使用した「百科事典」 であることに由来する造語である。設立者の1人であるラリー・サンガーにより命名された。", "wikisource":"ウィキソース (Wikisource) は、ウィキメディア財団が運営するウィキを利用した自由に利用できるテキストを集めた電子図書館である。ウィキソースはプロジェクトの名前でもあり、またプロジェクトのインスタンス(実体)である個々のサイト(主に各言語版)もウィキソースと呼ばれ、複数のウィキソースが集まって大きなウィキソースプロジェクトを形成している。ウィキソースの目的はあらゆる形態のフリーテキストを、多数の言語および翻訳においても提供することである。元々は有用または重要な歴史的文書を保存するアーカイブとして着想され、今では幅広いコンテンツを扱うライブラリとなっている。", - "wikispecies":"ウィキスピーシーズ (Wikispecies) は、ウィキメディア財団により運用されているウィキメディア・プロジェクトの一つ。言語別サイトには分かれておらず、コモンズと同じく各ページ内に多言語を併載する。 ウィキペディアやウィクショナリー等と同じく、ウィキベースのオンラインプロジェクトである。 動物界、植物界、菌界、真正細菌(細菌界)、古細菌、原生生物等々、ドメインや界から種や亜種に至るまであらゆる生物の分類の目録をフリーコンテントとして収集している。", + "wikispecies":"ウィキスピーシーズ は、ウィキメディア財団により運用されているウィキメディア・プロジェクトの一つ。言語別サイトには分かれておらず、コモンズと同じく各ページ内に多言語を併載する。ウィキペディアやウィクショナリー等と同じく、ウィキベースのオンラインプロジェクトである。動物界、植物界、菌界、真正細菌(細菌界)、古細菌、原生生物等々、ドメインや界から種や亜種に至るまであらゆる生物の分類の目録をフリーコンテントとして収集している。", "wiktionary":"ウィクショナリー (Wiktionary) は、コピーレフトなライセンス・オープンコンテントの辞書兼シソーラス(類語辞典)を作成し、配布することを目的としたウィキメディア財団によるプロジェクトである。GNU Free Documentation License (GFDL) およびクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 のデュアルライセンスで公開される。2002年12月12日に活動を開始した。", "wolframalpha":"Wolfram Alpha(WolframAlphaともWolfram|Alphaとも表記される)は、ウルフラム・リサーチが開発した質問応答システム。事実についての質問に対して、構造化されたデータを使って計算し、直接答えを返すオンラインサービスである。他の検索エンジンのように、答えを含んでいる可能性のあるドキュメントやウェブページのリストを返すわけではない。このサービスは2009年3月に英国人科学者スティーブン・ウルフラムが発表し、同年5月15日に公開された。また、2018年6月18日には日本語版のWolfram Alphaも公開された。2022年時点では日本語に対応しているのは数学関連のクエリのみであるが、「5個のボールの並べ方は何通りあるか」「ニュートン法を使ってxcos x=0 を解く」などの質問に対して日本語で答えることができる。", "yacy":"YaCy(ヤシー、ヤスィー)とは、「人民による人民のためのウェブ検索」を標語する、オープンソースの分散型検索エンジンである。GPLv2でライセンスされている。YaCyのコアはJavaによって記述されており、ネットワークはピア・ツー・ピア (P2P)で構築されている。", @@ -5451,7 +5621,8 @@ "youtube":[ "YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。", "https://www.youtube.com/" - ] + ], + "z-library":"Z-Library は、シャドウライブラリプロジェクトであり、ファイル共有を通じて学術雑誌の記事、学術書、一般向け書籍へのアクセスを提供している。当初はLibrary Genesisのミラーサイトとして始まったが、その後劇的に広まった。" }, "ko":{ "9gag":"9GAG는 홍콩의 이미지 기반 소셜 미디어 사이트이다. 2011년 12월 기준 월 페이지뷰가 10억 건을 넘었다. 인터넷에 유행하는 이미지가 주로 올라오는 것으로 알려져 있다. 레딧과 같은 다른 비슷한 사이트와 마찬가지로 게시글에 덧글과 추천을 할 수 있다.", @@ -5600,7 +5771,19 @@ "mullvadleta:ko", "ref" ], - "naver":"네이버(영어: NAVER)는 1999년 6월에 출시된 대한민국의 포털사이트이다. 또한 네이버는 1997년 2월 26일 이해진, 권혁일, 김보경, 구창진, 오승환, 최재영, 강석호 등으로 구성된 삼성SDS의 사내 벤처에서 '웹글라이더'라는 이름으로 시작해서 1998년 1월에 분리된 네이버컴 주식회사에서 운영하다가 2000년 자회사인 한게임과 합병하여 NHN이 된 후 재분리하여 현재는 네이버(주)에서 운영하고 있다.(검색창;네이버)", + "naver":"네이버(영어: NAVER)는 1999년 6월에 출시된 대한민국의 포털사이트이다. 또한 네이버는 1997년 2월 26일 이해진, 권혁일, 김보경, 구창진, 오승환, 최재영, 강석호 등으로 구성된 삼성SDS의 사내 벤처에서 '웹글라이더'라는 이름으로 시작해서 1998년 1월에 분리된 네이버컴 주식회사에서 운영하다가 2000년 자회사인 한게임과 합병하여 NHN이 된 후 재분리하여 현재는 네이버(주)에서 운영하고 있다.(검색창;네이버) 네이버가 사실 삼성전자 이랑 합병하려고 했으나 실패했다", + "naver images":[ + "naver:ko", + "ref" + ], + "naver news":[ + "naver:ko", + "ref" + ], + "naver videos":[ + "naver:ko", + "ref" + ], "niconico":"니코니코 동화(일본어: ニコニコ動画 니코니코 도가[*], 영어: Niconico)는 일본의 동영상 사이트이다. 가도카와 디완고에서 운영하고 있다. 줄여서 니코동이나 니코니코로도 칭하며, 동영상 시청자가 직접 영상 화면에 코멘트를 삽입할 수 있다는 것이 큰 특징이다. 니코니코 동화 모바일 서비스를 운영하여, 일본에서는 모바일로도 사이트에 접속할 수 있다. 니코니코(にこにこ, ニコニコ)는 일본어로 \"싱글벙글\" 또는 \"생글생글\"을, 동화(動畵)는 이야기가 아닌 \"동영상\"을 뜻한다.", "nixos wiki":[ "nixos wiki:en", @@ -5631,7 +5814,7 @@ "ref" ], "reddit":"레딧(Reddit)은 미국의 소셜 뉴스 집계, 콘텐츠 등급 및 토론 웹사이트이다. 등록된 사용자(일반적으로 \"레디터\"라고 함)는 링크, 텍스트 게시물, 이미지, 동영상 등의 콘텐츠를 사이트에 제출한 후 다른 회원에 의해 투표된다. 게시물은 주제별로 \"커뮤니티\" 또는 \"서브레딧\"이라고 불리는 사용자가 만든 게시판으로 구성된다. 더 많은 업보트가 있는 제출물은 하위 레딧의 맨 위에 표시되며, 충분한 업보트를 받은 경우 최종적으로 사이트의 첫 페이지에 표시된다. 레딧 관리자는 커뮤니티를 관리하며 중재는 레딧 직원이 아닌 커뮤니티별 중재자에 의해 수행된다.", - "reuters":"로이터(Reuters)는 통신사의 하나다. 독일인 파울 율리우스 로이터(Paul Julius Baron von Reuter)가 설립한 영국의 뉴스 및 정보제공기업이다. 현재는 신문, 방송 등에 뉴스를 공급하는 전통적인 통신사의 기능보다 증시 시황 속보 등 금융정보 제공 등의 비중이 커져 있다.", + "reuters":"로이터(Reuters)는 통신사의 하나로, 독일인 파울 율리우스 로이터(Paul Julius Baron von Reuter)가 설립한 영국의 뉴스 및 정보제공기업이다. 현재는 신문, 방송 등에 뉴스를 공급하는 전통적인 통신사의 기능보다는, 오히려 경제 증시 시황 속보 등 금융 정보 제공 등의 비중이 커져 있다.", "rottentomatoes":"로튼 토마토(Rotten Tomatoes)는 영화 관련 웹사이트 가운데 하나이다. 영화에 대한 소식, 비평, 정보 등을 제공한다. 주로 비평가 위주의 평점을 매기는 곳이다. 사이트 이름은 옛날 공연을 보던 관객들이 연기력이 매우 나쁜 연기자들에게 토마토를 던졌던 것에서 비롯되었다.", "rubygems":"RubyGems는 루비 프로그래밍 언어를 위한 패키지 관리자이다. 루비 프로그램들과 라이브러리들을 배포하기 위한 표준 포맷을 제공한다. 그 외에 gems의 설치를 쉽게 관리하도록 설계된 도구와 이들을 배포하기 위한 서버도 제공한다. RubyConf 2004 기간 중 Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan, Richard Kilmer에 의해 개발되었다.", "rumble":"럼블(Rumble)은 온타리오주 토론토에 본사를 두고 플로리다주 롱보트 키에 미국 본사를 두고 있는 온라인 비디오 플랫폼, 웹 호스팅, 클라우드 서비스 기업이다. 캐나다의 기술 기업가인 크리스 파블롭스키(Chris Pavlovski)가 2013년에 설립했다. 럼블의 클라우드 서비스 사업은 트루스 소셜을 호스팅하며, 비디오 플랫폼은 미국 우익 및 극우 사용자들 사이에서 인기가 있다. 럼블은 \"알트테크\"(alt-tech)로 설명되었다.", @@ -5674,7 +5857,7 @@ "wikinews":"위키뉴스(영어: Wikinews)는 위키미디어 재단의 뉴스 소스이다. 위키뉴스는 GNU 자유 문서 사용 허가서 1.2 이상에 따라 배포되는 위키미디어 재단의 다른 프로젝트와는 달리 크리에이티브 커먼즈의 저작자표시 사용 허가서 2.5 이상의 라이선스를 가진다. 위키뉴스에서 지지하는 중립적 시각 정책은 오마이뉴스와 같은 시민 언론의 노력과는 구별된다. 위키미디어 재단의 대부분의 프로젝트와 달리 위키뉴스는 독자적인 리포트와 인터뷰 형태의 독자적인 기사를 허용한다.", "wikipedia":"위키백과(위키百科, IPA: [ɥikçibɛ̝k̚k͈wa̠], [ykçibɛ̝k̚k͈wa̠] ) 또는 위키피디아(영어: Wikipedia, IPA: [ˌwɪkɪˈpiːdɪə] )는 누구나 자유롭게 쓰는 다언어판 온라인 백과사전이다. 협업을 개방한 위키 기반 편집 시스템을 사용하여 자발적인 위키백과 사용자 공동체가 작성하고 관리한다. 위키백과는 대표적인 집단 지성의 사례로 평가받으며 역사상 최대로 가장 많이 읽는 참고서이기도 하다. 시밀러웹과 (과거) 알렉사 인터넷에서 가장 인기있는 웹사이트 10곳 중 하나로 꾸준히 순위를 올린다. 2024년 1월 기준으로 위키백과는 세계에서 7번째로 인기있는 사이트로 순위를 올렸다. 위키백과는 자유 저작물을 보유하고 상업적인 광고가 없다. 주로 기부금으로 지원을 받는 비영리 단체인 위키미디어 재단이 소유하고 지원한다.", "wikiquote":"위키인용집(Wikiquote)은 위키백과의 자매 프로젝트로, 2004년 7월부터 영어판 위키인용집을 시작으로 여러 언어로 프로젝트가 번역되었다. 이 프로젝트의 목표는 유명한 인물이 한 말이나 책의 문장 등을 인용하고 해석하는 것이니 일종의 어록이라고 할 수 있다.", - "wikisource":"위키문헌(-文獻, 영어: Wikisource)은 위키미디어 재단에서 추진하고 있는 프로젝트이다. 위키문헌 프로젝트의 목표는 모든 사람들이 자유로이 쓸 수 있는 정보자료를 한 곳에 모으는 것이다. 자비 출판 문서나 서적을 올리는 것은 허용되지 않는다.", + "wikisource":"위키문헌(-文獻, 영어: Wikisource)은 위키미디어 재단이 운영하는 자유 콘텐츠 문헌의 온라인 위키 기반 디지털 도서관이다. 위키문헌 프로젝트의 목표는 모든 사람들이 자유로이 쓸 수 있는 정보자료를 한 곳에 모으는 것이다. 자비 출판 문서나 서적을 올리는 것은 허용되지 않는다.", "wikispecies":"위키생물종(Wikispecies 위키스피시즈[*])은 위키미디어 재단의 지원을 받는 생물 분류 도감용 프로젝트이다.", "wikiversity":"위키배움터(영어: Wikiversity 위키버시티[*])는 위키미디어 재단의 프로젝트이다. URL은 www.wikiversity.org이다. 위키버시티는 2006년 8월 15일 영어판이 제일 먼저 시작했으며 새로운 언어판들이 위키배움터 베타에서 시험판으로 생기고 있다. 위키배움터는 모두에게 열린 학습공간을 지향한다.", "wikivoyage":"위키여행(Wikivoyage, 프랑스어 발음: //, 비키부아야주; 영어 발음: //, 위키보이지)은 자발적 참여자가 함께 만들어가는 여행 가이드북 웹사이트이다. 이름은 위키(wiki)와 여행을 뜻하는 프랑스어 부아야주(voyage)를 합쳐 만들었다.", @@ -6118,7 +6301,7 @@ "youtube":"ഗൂഗിൾ ഉടമസ്ഥതയിലുള്ള ഇന്റർനെറ്റ് വീഡിയോ ഷെയറിംഗ് വെബ്‌സൈറ്റാണ്‌ യൂട്യൂബ്. ഈ സംവിധാനത്തിലൂടെ ലോകത്തെവിടെനിന്നും ഉപഭോക്താക്കൾക്ക് വീഡിയോ ഖണ്ഡങ്ങൾ മറ്റുള്ളവരുമായി പങ്കുവയ്ക്കുവാൻ കഴിയുന്നു. 2005 ഫെബ്രുവരിയിൽ പേയ്പാൽ എന്ന ഇ-വ്യാപാര കമ്പനിയിൽ ജോലി ചെയ്തിരുന്ന സ്റ്റീവ് ചെൻ, ചാഡ് ഹർലി, ജാവേദ് കരീം എന്നിവരാണ് യൂട്യൂബ് സ്ഥാപിച്ചത്. കാലിഫോർണിയയിലെ സാൻ ബ്രൂണൊ അസ്ഥാനമാക്കി പ്രവർത്തനമാരംഭിച്ച ഈ വെബ് സേവന കമ്പനി അഡോബ് ഫ്ലാഷ് സാങ്കേതിക വിദ്യ അടിസ്ഥാനമാക്കിയാണു പ്രവർത്തിക്കുന്നത്. വീഡിയോ ഖണ്ഡങ്ങൾ, സംഗീതം, ടെലിവിഷൻ പരിപാടികൾ തുടങ്ങിയവയെല്ലാം ഈ വെബ് സൈറ്റ് വഴി പങ്കുവയ്ക്കപ്പെടുന്നുണ്ട്. യുട്യൂബിൽ അംഗമായാൽ ആർക്കും വീഡിയോകൾ അപ്‌ലോഡ് ചെയ്യാവുന്നതാണ്. ശ്ലീലമായ വീഡിയോകൾ മാത്രമാണ് അനുവദിക്കുക. പുതിയ ഉപഭോക്താക്കൾക്ക് 10 മിനുട്ടിൽ കൂടുതൽ വീഡിയോ കയറ്റാൻ അനുമതി നൽകുന്നില്ല. ഓർക്കുട്ട് പോലെ തന്നെ എല്ലാ രാജ്യങ്ങളിലും യുട്യൂബിനു അനുമതി നൽകിയിട്ടില്ല. ഉപഭോക്താക്കൾക്ക് യൂട്യൂബിൽ നിന്ന് വീഡിയോ ഖണ്ഡങ്ങൾ ഡൗൺലോഡ് ചെയ്യാനും സാധിക്കും.വെബ്‌സൈറ്റ്, മൊബൈൽ അപ്ലിക്കേഷനുകൾ എന്നിവ ഉൾപ്പെടെ വീഡിയോകൾ കാണാനും മറ്റ് വെബ്‌സൈറ്റുകൾ കൂട്ടിച്ചേർക്കാനായി യൂട്യൂബ് നിരവധി മാർഗങ്ങൾ നൽകുന്നു. ലഭ്യമായ ഉള്ളടക്കത്തിൽ സംഗീത വീഡിയോകൾ, വീഡിയോ ക്ലിപ്പുകൾ, ഹ്രസ്വ, ഡോക്യുമെന്ററി ഫിലിമുകൾ, ഓഡിയോ റെക്കോർഡിംഗുകൾ, മൂവി ട്രെയിലറുകൾ, തത്സമയ സ്ട്രീമുകൾ, വീഡിയോ ബ്ലോഗുകൾ എന്നിവ ഉൾപ്പെടുന്നു. മിക്ക ഉള്ളടക്കവും സൃഷ്ടിക്കുന്നത് വ്യക്തികളാണ്, പക്ഷേ മീഡിയ കോർപ്പറേഷനുകളും വീഡിയോകൾ പ്രസിദ്ധീകരിക്കുന്നു. കാണുന്നതിനും അപ്‌ലോഡുചെയ്യുന്നതിനും പുറമെ, രജിസ്റ്റർ ചെയ്ത ഉപയോക്താക്കൾക്ക് വീഡിയോകളിൽ അഭിപ്രായമിടാനും റേറ്റുചെയ്യാനും പ്ലേലിസ്റ്റുകൾ സൃഷ്ടിക്കാനും മറ്റ് ഉപയോക്താക്കൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യാനും കഴിയും. 2005 ൽ സ്ഥാപിതമായ യുട്യൂബ് തൊട്ടടുത്ത വർഷം ഗൂഗിൾ 1.65 ബില്യൺ യുഎസ് ഡോളറിന് സ്വന്തമാക്കി. 2020 ൽ 19.8 ബില്യൺ ഡോളർ സമ്പാദിച്ച യൂട്യൂബ് ഗൂഗിളിന്റെ ഏറ്റവും ലാഭകരമായ അനുബന്ധ സ്ഥാപനങ്ങളിലൊന്നായി ഇത് മാറി. ഗൂഗിളിന്റെ ആഡ്സെൻസ്(AdSense) പ്രോഗ്രാമിൽ നിന്ന് യൂട്യൂബും തിരഞ്ഞെടുത്ത സ്രഷ്‌ടാക്കളും പരസ്യ വരുമാനം നേടുന്നു. ഭൂരിഭാഗം വീഡിയോകളും കാണാൻ സൗജന്യമാണ്, പക്ഷേ ചിലതിന് സംഗീതമോ പ്രീമിയം സബ്സ്ക്രിപ്ഷനോ ആവശ്യമാണ്." }, "ms":{ - "annas archive":"Anna's Archive ialah enjin metasearch perpustakaan bayangan dalam talian percuma yang menyediakan akses kepada pelbagai sumber buku. Laman web ini ditubuhkan oleh pasukan arkivis tanpa nama dan dilancarkan sebagai tindak balas langsung kepada usaha penguatkuasaan undang-undang untuk menutup Z-Library pada November 2022 yang dibantu oleh Persatuan Penerbit dan Persatuan Pengarang.", + "annas archive":"Anna's Archive ialah enjin carian meta perpustakaan bayangan dalam talian percuma yang menyediakan akses kepada pelbagai sumber buku. Laman web ini ditubuhkan oleh pasukan arkivis tanpa nama dan dilancarkan sebagai tindak balas langsung kepada usaha penguatkuasaan undang-undang untuk menutup Z-Library pada November 2022 yang dibantu oleh Persatuan Penerbit dan Persatuan Pengarang.", "apple app store":"App Store adalah platform pengedaran digital, dibangunkan dan diselenggarakan oleh Apple Inc., untuk aplikasi mudah alih pada sistem operasi iOS. Kedai ini membolehkan pengguna melayari dan memuat turun aplikasi yang dibangunkan dengan kit pembangunan perisian iOS Apple. Apl boleh dimuat turun di telefon pintar iPhone, komputer pegang tangan iPod Touch, atau komputer tablet iPad, dan sesetengahnya boleh dipindahkan ke Apple Watchsmartwatch atau generasi ke-4 atau lebih baru Apple TV sebagai sambungan aplikasi iPhone.", "apple maps":"Peta ialah sebuah aplikasi dan perkhidmatan peta dalam talian oleh Apple.", "artic":"Institut Seni Chicago ialah sebuah muzium seni halus luas yang terletak di Grant Park, Chicago, Illinois. Institut seni ini menempatkan salah sebuah koleksi seni Impresionis dan Pasca-Impresionis yang terpenting di dunia. Antara pegangan-pegangannya yang beraneka termasuk karya Pelukis Agung, seni Amerika Syarikat, seni perhiasan Eropah dan Amerika, seni Asia dan seni moden dan kontemporari tersohor. Ia terletak di 111 South Michigan Avenue di Chicago Landmark Historic Michigan Boulevard District. Muzium ini bergabung dengan Sekolah Institut Seni Chicago. Pada keluasan sejuta kaki persegi, institut ini adalah muzium seni kedua terbesar di Amerika Syarikat, mengekori Muzium Seni Metropolitan di New York.", @@ -6223,6 +6406,18 @@ ], "mastodon users":"Mastodon adalah perisian khidmat rangkaian sosial bersumber terbuka dan bebas yang swarumah. Ia memiliki ciri mikroblog mirip infrastruktur Twitter yang ditawarkan oleh sejumlah besar pelayan Mastodon yang dijalankan secara mandiri melalui titik-titik sambung dikelola dengan aturan tatalaku, kawalan edaran kandungan dan ketentuan penggunaan yang tersendiri.", "naver":"Naver ialah platform dalam talian Korea Selatan yang dikendalikan oleh Naver Corporation. Ia dimulakan pada tahun 1999 sebagai portal web pertama di Korea yang membangun dan menggunakan enjin carian sendiri. Ia juga merupakan operator pertama di dunia untuk memperkenalkan ciri carian komprehensif yang mennyusun hasil carian dari pelbagai kategori dan membentangkannya dalam satu halaman. Sejak itu, Naver telah menambahkan banyak perkhidmatan baru dari ciri-ciri asas seperti e-mel dan berita sehingga ke platform Q&A dalam talian pertama yang dikenali sebagai Knowledge iN.", + "naver images":[ + "naver:ms", + "ref" + ], + "naver news":[ + "naver:ms", + "ref" + ], + "naver videos":[ + "naver:ms", + "ref" + ], "nixos wiki":[ "nixos wiki:en", "ref" @@ -7382,6 +7577,18 @@ "ref" ], "naver":"Naver – popularny południowokoreański serwis internetowy będący własnością Naver Corporation. Został uruchomiony w czerwcu 1999 roku przez byłych pracowników Samsunga. Zadebiutował jako pierwszy południowokoreański serwis wykorzystujący autorskie algorytmy przeszukiwania. Posiadał co najmniej 70% udziałów na koreańskim rynku w 2011 roku.", + "naver images":[ + "naver:pl", + "ref" + ], + "naver news":[ + "naver:pl", + "ref" + ], + "naver videos":[ + "naver:pl", + "ref" + ], "niconico":"Niconico , dawniej Nico Nico Douga lub w skrócie „Nico-dō” – japoński serwis internetowy umożliwiający udostępnianie filmów, zarządzany przez Niwango, filię Dwango. „Niconico” jest onomatopeją uśmiechu. Do 18 kwietnia 2012 roku platforma Niconico była czternastym najczęściej odwiedzanym serwisem internetowym. Strona zdobyła japońską nagrodę Good Design Award w 2007 roku i Honorary Mention w kategorii Digital Communities podczas Prix Ars Electronica w 2008 roku.", "npm":"npm – domyślny manager pakietów dla środowiska Node.js, może być także używany do zarządzania warstwą front-end aplikacji WWW. NPM to także repozytorium pakietów oraz nazwa firmy która nim zarządza. Istnieją także inne managery pakietów, które korzystają z repozytorium npm., np. Yarn.", "openlibrary":"Open Library – projekt online mający na celu stworzenie „one web page for every book ever published” [jedną stronę internetową dla każdej opublikowanej książki], z danymi o książkach na licencji CC0, oraz o kodzie źródłowym na licencji AGPLv3. Stworzony przez Aarona Swartza, Brewstera Kahle’a, Alexisa Rossiego, Ananda Chitipothu, oraz Rebeccę Hargrave Malamud, jest projektem Internet Archive, organizacji non-profit. Został częściowo sfinansowany z dotacji Biblioteki Stanowej Kalifornii i Fundacji Kahle/Austin. Open Library udostępnia cyfrowe kopie online w wielu formatach, utworzone z obrazów wielu książek należących do domeny publicznej, o wyczerpanym nakładzie, oraz te w druku.", @@ -7508,14 +7715,14 @@ ], "btdigg":"O BTDigg é o primeiro mecanismo de pesquisa BitTorrent DHT. Ele participou da rede BitTorrent DHT, suportando a rede e fazendo correspondência entre links magnéticos e alguns atributos de torrent que são indexados e inseridos em um banco de dados. Para usuários finais, o BTDigg fornece uma pesquisa de banco de dados em texto completo via interface da web. A web part de seu sistema de pesquisa recuperou informações adequadas por meio de uma consulta de texto do usuário. A pesquisa na Web suportava consultas nos idiomas europeu e asiático. O nome do projeto era um acrônimo de BitTorrent Digger. Ficou offline em junho de 2016, devido a um índice de spam. O site retornou no final de 2016 em um domínio pontocom, ficou offline novamente e agora está online. O site btdig.com tem a fonte de origem do rastreador de torrents listada no Github, dhtcrawler2.", "crossref":"A Crossref é uma organização sem fins lucrativos de infraestrutura digital aberta voltada à comunidade global de pesquisa acadêmica. É a maior agência de registro de Identificadores Digitais de Objetos da Fundação Internacional DOI. Tem mais de 19.000 membros de mais de 150 países que representam editoras, bibliotecas, instituições de pesquisa e agências de fomento, tendo sido lançado no início de 2000 como um esforço cooperativo entre editoras para permitir links de citação persistentes entre plataformas distintas. Até julho de 2023, a Crossref havia identificado e conectado 150 milhões de registros de metadados para objetos de pesquisa, disponibilizando-os abertamente para reuso sem restrições. Eles intermediam uma média de 1,1 bilhão de resoluções de DOIs todo mês e recebem por volta de 1 bilhão de consultas de metadados todo mês.", - "currency":"DuckDuckGo é um motor de pesquisa sediado em Paoli, Pensilvânia que tem a particularidade de utilizar informações de contribuições colaborativas para melhorar a relevância dos resultados. O motor de pesquisa se define como tendo foco na privacidade ao não registrar as informações dos usuários.", + "currency":"DuckDuckGo é um motor de pesquisa sediado em Paoli, Pensilvânia, do qual tem a particularidade de utilizar informações de contribuições colaborativas para melhorar a relevância dos resultados. Além disso, este motor se define como focado na privacidade dos usuários ao não registrar as suas informações.", "dailymotion":"Dailymotion é uma plataforma de compartilhamento de vídeos fundada em março de 2005 na França. Ela disponibiliza vídeos dos mais variados conteúdos aos seus usuários. É um dos mais acessados do mundo. De acordo com dados fornecidos em novembro de 2006, o serviço recebia cerca de dezesseis milhões de acessos e nove mil vídeos diariamente.", "ddg definitions":[ "currency:pt", "ref" ], "deezer":"Deezer é um serviço de streaming de áudio lançado em 2007. Disponível para usuários de mais de 180 países, a plataforma possui atualmente mais de 90 milhões de músicas, mais de 100 milhões de playlists e mais de 4 milhões de programas de áudio, como podcasts, em seu acervo. É uma empresa de capital fechado, com sede em Paris, e escritórios em Londres, Berlim, Miami, São Paulo e em outros lugares do mundo. Criada em Paris, França, a Deezer possui 16 milhões de usuários ativos mensais, permitindo que os usuários ouçam conteúdo de música de gravadoras incluindo EMI, Sony, Universal Music Group e Warner Music Group.", - "deviantart":"DeviantArt, Inc é uma empresa virtual estadunidense, formando um site que voltado para artistas. Ela permite que iniciantes ou profissionais compartilhem, promovam e interajam por meio de obras de arte digitalizadas, incorporando tanto a fotografia, videografia, literatura, fotomanipulação, arte tradicional, arte clássica e arte contemporânea.", + "deviantart":"DeviantArt, Inc é uma empresa virtual, criada nos Estados Unidos, na forma de um website direcionado para artistas. Ele permite que iniciantes ou profissionais compartilhem, promovam e interajam por meio de obras de arte digitalizadas, incorporando tanto a fotografia, videografia, literatura, foto-manipulação, arte tradicional, arte clássica e arte contemporânea.", "duckduckgo":[ "currency:pt", "ref" @@ -7574,6 +7781,10 @@ "imdb":"IMDb, por extenso Internet Movie Database, é uma base de dados online de informação sobre cinema, TV, música e games, hoje pertencente à Amazon.", "imgur":"Imgur é um servidor de hospedagem de imagem fundado em 2009 por Alan Schaaf. O lema da empresa é \"O lar da hospedagem de imagens mais popular da internet, com auxilio em tempo real por uma comunidade dedicada que comenta, vota e compartilha”.", "ina":"Institut national de l'audiovisuel (Ina) é uma instituição pública francesa, de caráter industrial e comercial, encarregada principalmente do arquivamento de produções audiovisuais. Também é responsável pela produção, edição, cessão de conteúdos audiovisuais e multimídia destinados a todos os públicos, profissionais ou particulares. O Ina é também um centro de formação e pesquisa que visa desenvolver e transmitir conhecimento nas áreas ligadas à produção audiovisual. É associado à Federação Internacional da Indústria Fonográfica - IFPI.", + "ipernity":[ + "A maior comunidade não-comercial de partilha de fotos, vídeos e blogues do mundo - apenas financiada pelas cotas dos membros, sem fins de lucro.", + "https://www.ipernity.com" + ], "iqiyi":"iQIYI, anteriormente Qiyi, é uma plataforma de streaming com sede em Pequim, China, lançada em 22 de abril de 2010.", "kickass":"O KickassTorrents é um site fundado em 2008 que fornece arquivos de torrent e links magnéticos para facilitar a partilha de ficheiros peer-to-peer usando o protocolo BitTorrent. Em novembro de 2014, o KAT tornou-se o site torrent mais visitado no mundo, ultrapassando o The Pirate Bay, segundo o ranking Alexa.", "lemmy comments":[ @@ -7607,6 +7818,18 @@ "https://learn.microsoft.com" ], "naver":"Naver é um popular portal de busca da Coreia do Sul, com um market share superior a 70%, comparado com 2% do Google. O Naver foi lançado em junho de 1999 por ex-funcionários da Samsung, e estreou como o primeiro portal da Coreia do Sul a usar seu próprio motor de busca. Entre os recursos do Naver está a \"Comprehensive Search\", lançada em 2000, que fornece resultados de várias categorias em uma única página. Desde então, tem agregado novos serviços, como a \"Knowledge Search\", lançada em 2002. Ele também oferece serviços de Internet, incluindo um serviço de notícias, um serviço de e-mail, um serviço de busca de teses acadêmicas e um portal para crianças. Em 2005, Naver lançou Happybean, o primeiro portal de doações online do mundo, que permite aos usuários encontrar informações e fazer doações para mais de 20.000 organizações da sociedade civil e de assistência social.", + "naver images":[ + "naver:pt", + "ref" + ], + "naver news":[ + "naver:pt", + "ref" + ], + "naver videos":[ + "naver:pt", + "ref" + ], "niconico":"Niconico é um serviço de armazenamento de vídeo japonês online. \"Niconico\" ou \"nikoniko\" é uma palavra japonesa para sorriso. Até setembro de 2015, Niconico era o 10.º sítio eletrônico mais visitado do Japão, de acordo com os rankings de tráfego do Alexa. O sítio venceu o Prêmio Good Design Japonês em 2007 e recebeu uma Menção Honrosa na categoria Comunidades Digitais na Prix Ars Electronica 2008.", "nixos wiki":[ "nixos wiki:en", @@ -7999,6 +8222,18 @@ "naver:pt", "ref" ], + "naver images":[ + "naver:pt", + "ref" + ], + "naver news":[ + "naver:pt", + "ref" + ], + "naver videos":[ + "naver:pt", + "ref" + ], "niconico":[ "niconico:pt", "ref" @@ -8512,6 +8747,18 @@ "ref" ], "naver":"Naver — крупнейший интернет-портал и самая популярная поисковая система в Южной Корее. На него приходится 70 % поисковых запросов в стране. Принадлежит компании Naver Corporation. Был открыт в 1999 году. Тогда Naver первым из корейских интернет-порталов разработал свою собственную поисковую систему.", + "naver images":[ + "naver:ru", + "ref" + ], + "naver news":[ + "naver:ru", + "ref" + ], + "naver videos":[ + "naver:ru", + "ref" + ], "niconico":"Nico Nico Douga (яп. ニコニコ動画 Нико Нико До:га) или niconico — японский видеохостинг. Основан в 2006 году. Одна из особенностей дизайна – всплывающие комментарии с таймкодом. Также зрители могут маркировать видеофайл тегами, классифицируя его содержимое. Регистрация не является обязательной для просмотра и поиска видео.", "nixos wiki":[ "NixOS Wiki — NixOS Wiki", @@ -8545,7 +8792,7 @@ ], "reddit":"Reddit — сайт, сочетающий черты социальной сети и форума, на котором зарегистрированные пользователи могут размещать ссылки на какую-либо понравившуюся информацию в интернете и обсуждать её. Как и многие другие подобные сайты, Reddit поддерживает систему голосования за понравившиеся сообщения — наиболее популярные из них оказываются на заглавной странице сайта. Один из наиболее популярных сайтов в мире — 20-е место по посещаемости по данным SimilarWeb.", "reuters":"«Рейтер» — одно из крупнейших в мире международных агентств новостей и финансовой информации, существует с 1851 года.", - "rottentomatoes":"Rotten Tomatoes — сайт-агрегатор рецензий, на котором собирают обзоры фильмов и сериалов из различных изданий, информацию о фильмах и новости кинематографа. На основе отзывов, оставленных критиками в СМИ, Rotten Tomatoes вычисляет рейтинг одобрения каждого фильма.", + "rottentomatoes":"Rotten Tomatoes — сайт-агрегатор рецензий, на котором собирают обзоры фильмов и сериалов из различных изданий, информацию о фильмах и новости кинематографа. На основе отзывов, оставленных критиками в СМИ, Rotten Tomatoes вычисляет рейтинг одобрения каждого фильма. Данные Rotten Tomatoes и его главного конкурента Metacritic часто используют как способ измерить качество фильма или его успех у профессиональных критиков.", "rubygems":"RubyGems (от англ. gem, gems— драгоценный камень) — система управления пакетами для языка программирования Руби, которая предоставляет стандартный формат для программ и библиотек Руби, инструменты, предназначенные для простого управления установкой «gems», и сервер для их распространения.", "rumble":"Rumble — канадский видеохостинг и облачная система хранения, имеющий штаб-квартиры в канадском Торонто и Лонгбот-Ки. Основан в октябре 2013 года канадским предпринимателем Крисом Павловски.", "semantic scholar":"Semantic Scholar (англ. Semantic Scholar — поисковая интернет-платформа, разработанная в Институте искусственного интеллекта Аллена. Проект был запущен в 2015 году. Поиск научных публикаций производится с поддержкой искусственного интеллекта для статей в научных журналах. Поисковый сервис комбинирует машинное обучение, обработку естественного языка и машинного зрения, чтобы добавить слой семантического анализа к традиционным методам анализа цитирования. Semantic Scholar выделяет наиболее важные статьи, а также связи между ними.", @@ -8853,7 +9100,7 @@ "wikivoyage":"Wikicesty je webový cestovateľský sprievodca pre turistické destinácie a cestovateľské témy písaný dobrovoľníkmi. Ide o sesterský projekt Wikipédie a spravuje ho Nadácia Wikimedia.", "wiktionary":"Wikislovník je mnohojazyčný a otvorený webový projekt určený na vytvorenie slobodného úplného slovníka vo všetkých prirodzených jazykoch a niekoľkých umelých. Jeho heslá môžu obsahovať definície, výslovnosť, skloňovanie, príklady použitia, podobné výrazy, obrázky na ilustráciu a ďalšie možnosti. Stránka je spoločne upravovaná cez wiki a jej názov vznikol spojením slov wiki a slovník. Rovnako ako jeho sesterské projekty, akou napríklad Wikipédia, je prevádzkovaný Wikimedia Foundation a písaný dobrovoľníkmi, ktorí sa volajú Wikislovníkári. Je dostupný v 171 jazykoch a jednej jazykovej verzii pre jednoduchú angličtinu. Jeho slovenská mutácia dosiahla dňa 18. januára 2019 25 000 hesiel. Vďaka softvéru MediaWiki môže skoro každý s prístupom na internet vytvárať a upravovať heslá.", "wolframalpha":"Wolfram Alpha je internetová služba slúžiaca k vyhľadávaniu a znázorneniu informácií prevažne súvisiacich s matematikou a súvisiacimi vedeckými oblasťami. Služba bola vyvinutá spoločnosťou Wolfram Research a je založená na softvéri Mathematica. Služba bola spustená v máji 2009 Stephenom Wolframom. V roku 2009 bola vyhlásená americkým magazínom Popular Science ako najväčšia počítačová inovácia roku.", - "youtube":"YouTube je internetová databáza videí, väčšinou krátkych. YouTube založil Chad Hurley v roku 2005 a v novembri 2006 ho kúpil Google. V súčasnosti ide o najväčší svetový systém na zdieľanie video súborov na internete." + "youtube":"YouTube je internetová databáza videí, väčšinou krátkych. YouTube založil Chad Hurley v roku 2005 a v novembri 2006 ho odkúpila spoločnosť Google. V súčasnosti ide o najväčší svetový systém na zdieľanie video súborov na internete." }, "sl":{ "acfun":[ @@ -8974,6 +9221,10 @@ "github":"GitHub je spletni gostiteljski servis za repozitorije v Git. Ponuja distribuirano upravljanje z izvorno kodo (SCM) z Git ter nekatere dodatne storitve. V nasprotju z Git-om, ki je ukazno orodje, ponuja GitHub spletni grafični vmesnik. Zagotavlja tudi kontrolo dostopa in številne storitve za kolaborativni razvoj, npr. sledenje napakam, zahteve za lastnosti, upravljanje z nalogami in wiki za vsak projekt.", "goodreads":"Goodreads je spletna stran, ki omogoča uporabnikom iskanje knjig za branje in izdelavo lastnih seznamov, baz, kritik ter citatov. Prijavljenim uporabnikom je omogočeno ustvarjanje interesnih skupin, blogov, anket, diskusijskih baz in podobno, v bazo pa lahko vpisujejo tudi nove knjige. Sedež podjetja je v San Franciscu, njegov trenutni lastnik pa je Amazon.", "google":"Iskanje Google ali pa preprosto Google je spletni iskalnik, ki ga je razvilo podjetje Google. Je najbolj uporabljen iskalnik na svetovnem spletu, ki poskrbi za več kot tri milijarde iskanj vsak dan. Od Februarja 2016 je najbolj uporabljen iskalnik v ZDA s 64.0% tržnim deležem.", + "google images":[ + "Google Slike. Najobsežnejše iskanje slik v spletu.", + "https://images.google.com" + ], "google news":[ "agregator novic in aplikacija, ki jo je razvilo podjetje Google", "wikidata" @@ -9018,6 +9269,18 @@ "južnokorejski iskalnik in spletni portal", "wikidata" ], + "naver images":[ + "naver:sl", + "ref" + ], + "naver news":[ + "naver:sl", + "ref" + ], + "naver videos":[ + "naver:sl", + "ref" + ], "niconico":[ "japonski ponudnik gostovanja videoposnetkov in živih prenosov", "wikidata" @@ -9163,6 +9426,10 @@ "gitlab":"GitLab је веб-алатка животног циклуса DevOps с отвореним изворним кодом. Алатка пружа менаџер спремишта за Git који нуди функције викија, функцију праћења проблема и канал за непрекидну интеграцију. Софтвер је развила компанија GitLab Inc., а првобитно су га направили Украјинци Дмитриј Запорожец и Валериј Сизов.", "goodreads":"Гудридс је компанија у власништву Амазона, чији веб-сајт омогућава корисницима да обележавају, оцењују и пишу рецензије за књиге које су прочитали, да би на основу тога од стране веб-сајта могли да добију предлоге за књиге које би такође могле да их интересују. Сајт је покренут 2007. године и данас има преко 900.000.000 наслова, и око 30.000.000 чланова. Такође веб-сајт функционише и као друштвена мрежа, и могуће је додавати пријатеље, као и видети књиге које они читају. Повремено се и организују такмичања, као и награде за најбољу књигу године. Један интернет портал из Хрватске је веб-сајт Goodreads описао као „друштвену мрежу за љубитеље књига”.", "google":"Гугл претрага, позната и као Гугл веб-претрага или једноставно Гугл, веб-претраживач је ког је развио Гугл ЛЛЦ. Он је најкоришћенији претраживач веба на светској комуникационој мрежи на свим платформама, са тржишним уделом од 92,74 % у октобру 2018, вршећи више од 3,5 милијарди претрага сваки дан.", + "google images":[ + "Google слике. Најопсежнија претрага слика на вебу.", + "https://images.google.com" + ], "google news":[ "Свеобухватно, ажурно извештавање о вестима које Google вести прикупља из извора широм света.", "https://news.google.com" @@ -9492,8 +9759,8 @@ "Google Images. வலையில் கிடைக்கக்கூடிய மிக விரிவான படத் தேடல்.", "https://images.google.com" ], - "google news":"கூகிள் செய்திகள், கூகிள் நிறுவனத்தால் வழங்கப்படும் இலவச செய்தி திரட்டி ஆகும். ஒரு தானியங்கி திரட்டல் வழிமுறை மூலம் ஆயிரக்கணக்கான பிரசுரங்களின் சமீபத்திய செய்திகளை இது தேர்ந்தெடுக்கிறது.", - "google play apps":"கூகுள்பிளே என்பது இலக்கமுறை தகவல்களை வழங்கும் ஒரு சேவையாகும். இது கூகிள் நிறுவனத்தால் வழங்கப்படுகிறது. இது ஆன்டிராய்டு பயன்பாடுகள், இசைக்கோப்புகள், புத்தகங்கள், திரைப்படங்கள், விளையாட்டுகள் போன்றவற்றை கொண்ட ஓர் இணையக் கடை ஆகும். மார்ச் 2012ல் கூகுள்தனது ஆன்டிராய்டு அங்காடியையும், இசைச் சேவையையும் இணைத்து கூகுள்பிளேவை ஆரம்பித்தது. 2017 ஆம் ஆண்டு புள்ளிவிவரப்படி, 35 இலட்சம் பதிவிறக்கங்கள், இத்தளத்தில் நடந்துள்ளன.", + "google news":"கூகிள் செய்திகள், கூகிள் நிறுவனத்தால் வழங்கப்படும் இலவச செய்தி திரட்டி ஆகும். ஒரு தானியங்கி திரட்டல் வழிமுறை மூலம் ஆயிரக்கணக்கான பிரசுரங்களின் அண்மைய செய்திகளை இது தேர்ந்தெடுக்கிறது.", + "google play apps":"கூகுள்பிளே என்பது இலக்கமுறை தகவல்களை வழங்கும் ஒரு சேவையாகும். இது கூகிள் நிறுவனத்தால் வழங்கப்படுகிறது. இது ஆன்டிராய்டு பயன்பாடுகள், இசைக்கோப்புகள், புத்தகங்கள், திரைப்படங்கள், விளையாட்டுகள் போன்றவற்றை கொண்ட ஓர் இணையக் கடை ஆகும். மார்ச் 2012ல் கூகுள் தனது ஆன்டிராய்டு அங்காடியையும், இசைச் சேவையையும் இணைத்து கூகுள்பிளேவை ஆரம்பித்தது. 2017 ஆம் ஆண்டு புள்ளிவிவரப்படி, இத்தளத்தில் 35 இலட்சம் பதிவிறக்கங்கள் நடந்துள்ளன.", "google play movies":[ "google play apps:ta", "ref" @@ -9531,7 +9798,7 @@ ], "wikidata":"விக்கித்தரவு (Wikidata) என்பது விக்கிமீடியா நிறுவனத்தால் இயக்கப்படும் பன்மொழி விக்கி அறிவுத் தளம் ஆகும். விக்கிப்பீடியா போன்ற விக்கிமீடியத் திட்டங்களில் பயன்படுத்துவதற்கான தரவுகளை வழங்கும் பொதுமூலமாக இது தொழிற்படுகின்றது. விக்கிபேசு என்ற மென்பொருளில் இது கட்டமைக்கப்பட்டுள்ளது.", "wikinews":"விக்கிசெய்தி, விக்கிமீடியா நிறுவனத்திரால் நடத்தப்படும் கட்டற்ற செய்திக் களமாகும். இது உலகளாவிய தன்னார்வலர்கள் தாமாகவே செய்திகளை உடனுக்குடன் மேலேற்றம் செய்யும் முறையாகும்.", - "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,73,614 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. ஏப்ரல் 2025 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", + "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,74,023 கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. மே 2025 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.", "wikiquote":"விக்கி மேற்கோள் (Wikiquote), விக்கிப்பீடியாவை நடத்தும் விக்கிமீடியா நிறுவனத்தின் இன்னொரு திட்டமாகும். இத்திட்டமும் விக்கி மென்பொருளை பயன்படுத்துகிறது. அனைத்து மொழிகளில் உள்ள மேற்கோள்களின் கட்டற்ற இணையத் தொகுப்பை உருவாக்குவது இத்திட்டத்தின் நோக்கமாகும். மேலும் இது புகழ்பெற்ற மக்கள், திரைப்படங்கள், புத்தகங்கள் மற்றும் பழமொழி ஆகியவற்றின் மேற்கோள்களை உள்ளடக்கிய ஒரு மேற்கோள் களஞ்சியமாகும்.", "wikisource":"விக்கிமூலம் (Wikisource) ஓர் இலவச இணைய நூலகம் ஆகும். விக்கிமீடியா அறக்கட்டளை நடத்தும் விக்கித் திட்டங்களுள் இதுவும் ஒன்று. இது கட்டற்ற உள்ளடக்கம் (பகிர்வுரிமம்) கொண்ட மூல நூல்களின் இணையத் தொகுப்பாகும்.", "wikispecies":"விக்கியினங்கள் விக்கி‎யை அடிப்படையாகக் கொண்ட விக்கிமீடியா நிறுவனத்தின் ஒரு இணையத் திட்டமாகும். இத்திட்டம் உலகிலுள்ள உயிரினங்களின் பெயர் அட்டவணையை தயாரிப்பதற்காக ஆகத்து 2004ம் வருடம் உருவாக்கப்பட்ட திட்டம் ஆகும்.", @@ -9754,7 +10021,7 @@ ], "openstreetmap":"โอเพินสตรีตแมป เป็นโครงการความร่วมมือเพื่อสร้างแผนที่เสรีที่แก้ไขได้ของโลก", "pinterest":"พินเทอเรสต์ เป็นบริการการแบ่งปันรูปภาพและบริการโซเชียลมีเดียที่ออกแบบมาเพื่อเปิดใช้งานการบันทึกและค้นหาข้อมูล บนเวิลด์ไวด์เว็บโดยใช้รูปภาพ และในขนาดเล็กกว่า กิฟและวิดีโอ ในรูปแบบของพินบอร์ด เว็บไซต์นี้สร้างโดยเบน ซิลเบอร์แมน, พอล สเกียร์รา และอีวาน ชาร์ป และมีผู้ใช้งานรายเดือน 300 ล้านคนในเดือนสิงหาคม ค.ศ. 2019 บริการนี้ดำเนินการโดยพินเทอเรสต์ อิงค์ ซึ่งตั้งอยู่ในซานฟรานซิสโก", - "piratebay":"เดอะไพเรตเบย์ เป็นเว็บไซต์สัญชาติสวีเดนที่ให้บริการบิตทอร์เรนต์ ซึ่งเปิดให้บริการมาตั้งแต่เดือนพฤศจิกายน พ.ศ. 2546 และกล่าวอ้างว่าเป็น \"เว็บไซต์บิตทอร์เรนต์แทร็กเกอร์ที่ใหญ่ที่สุดในโลก\" ได้รับการจัดอันดับจากอเล็กซา ให้เป็นเว็บไซต์ที่มีผู้เข้าชมมากเป็นอันดับที่ 106 เมื่อวันที่ 15 พฤศจิกายน พ.ศ. 2551 ทางเว็บไซต์ได้ประกาศว่ามีจำนวนผู้ใช้พร้อมกันถึง 25 ล้านเพียร์ และมีจำนวนผู้ใช้ที่ลงทะเบียนเข้าใช้งานทั้งสิ้น 3,500,000 ล้านชื่อ โดยในปัจจุบันเดอะไพเรตเบย์ได้ปิดระบบสมัครสมาชิกและอัปโหลดแบบไร้บัญชีไปแล้วเนึ่องจากมีไฟล์ทอร์เรนต์ที่ฝังไวรัสคอมพิวเตอร์มากเกินไป และในปี พ.ศ. 2565 เดอะไพเรตเบย์มีไฟล์ทอร์เรนต์รวมกันทั้งหมดถึง 6.7 เพตะไบต์ และไฟล์ทอร์เรนต์ที่มีการ Seed อยู่ถึง 2.5 เพตะไบต์", + "piratebay":"เดอะไพเรตเบย์ เป็นดัชนีออนไลน์ที่สามารถค้นหาภาพยนตร์, ดนตรี, วิดีโอเกม, สื่อลามก และซอฟต์แวร์ได้ฟรี ก่อตั้งใน ค.ศ. 2003 โดย think tank ชาวสวีเดน Piratbyrån เดอะไพเรตเบย์อำนวยความสะดวกในการเชื่อมต่อโพรโทคอลทอร์เรนต์เพียร์ทูเพียร์ระหว่างผู้ใช้ที่สามารถมีส่วนสนับสนุนเว็บไซต์ได้ โดยการเพิ่มลิงก์แม่เหล็ก เดอะไพเรตเบย์ได้รับการจัดอันดับให้เป็นหนึ่งในเว็บไซต์ทอร์เรนต์ที่มีผู้เยี่ยมชมมากที่สุดในโลกอย่างต่อเนื่อง", "reddit":"เรดดิต เป็นเว็บรวบรวมข่าวสาร จัดลำดับข้อมูลออนไลน์ และเว็บสนทนาสัญชาติอเมริกัน ผู้ใช้ที่ลงทะเบียนแล้วสามารถโพสต์เนื้อหา เช่น ลิงก์ ข้อความ และรูปภาพ ให้ผู้ใช้อื่น ๆ สามารถโหวตขึ้นหรือลงได้ โพสต์ถูกแบ่งตามหมวดหมู่จัดโดยผู้ใช้ เรียกว่า \"ซับเรดดิต” ซึ่งมีหมวดหมู่หลากหลาย เช่น ข่าวสาร กีฬา หนัง เกม ดนตรี หนังสือ การออกกำลังกาย อาหาร ภาพถ่าย เป็นต้น โพสต์ที่ได้รับโหวตขึ้นมาก ๆ จะมีโอกาสอยู่บนหน้าแรก ๆ ของซับเรดดิตนั้น ๆ และหากได้รับความนิยมมาก ๆ จะสามารถขึ้นไปยังหน้าแรกของเรดดิตในที่สุด แม้จะมีกฎป้องกันการดูหมิ่นออนไลน์อยู่มาก ผู้ดูแลของเรดดิตใช้เวลามากในการดูแลเรดดิต", "reuters":"สำนักข่าวรอยเตอร์ส คือผู้ให้บริการข้อมูลทางการเงินและรายงานข่าวต่าง ๆ ให้แก่สำนักข่าวต่าง ๆ ของโลก สำนักงานใหญ่ตั้งอยู่ที่กรุงลอนดอน ประเทศอังกฤษ โดยรอยเตอร์สได้รับรายได้ส่วนมาก จากการให้บริการข้อมูลทางการเงินต่าง ๆ เช่น ราคาหุ้นในตลาดต่างๆ อัตราแลกเปลี่ยน ราคาน้ำมัน รายงานการวิเคราะห์หลักทรัพย์ เป็นต้น และการให้บริการซื้อขายผ่านอินเทอร์เน็ตต่าง ๆ โดยปัจจุบันนี้รอยเตอร์สมีส่วนแบ่งการตลาดในด้านการบริการข้อมูลทางการเงินมากเป็นอันดับสอง ประมาณร้อยละ 23 รองจาก บลูมเบิร์ก (Bloomberg) ที่ควบคุมส่วนแบ่งการตลาดมากถึงร้อยละ 33", "rottentomatoes":"รอตเทนโทเมโทส์ เป็นเว็บไซต์ที่เปิดตัวในปี 2541 อุทิศให้กับการรบทปริทัศน์ภาพยนตร์และข่าว รู้จักกันอย่างกว้างขวางว่าเป็นผู้รวบรวมบทปริทัศน์ภาพยนตร์ ปัจจุบันครอบคลุมเนื้อหาโทรทัศน์ด้วย ชื่อของรอตเทนโทเมโทส์ นั้น เกิดจากการปฏิบัติที่ผู้ชมจะโยนมะเขือเทศเน่าเมื่อไม่เห็นชอบกับการแสดงเวทีที่เลว บริษัทก่อตั้งขึ้นโดย Senh Duong และตั้งแต่เดือนมกราคม 2553 ได้รับการเป็นเจ้าของโดยฟิลค์สเตอร์ แต่ต่อมาฟิลค์สเตอร์ถูกซื้อต่อกิจการในปี 2554 โดยวอร์เนอร์บราเธอร์ส", @@ -9933,6 +10200,18 @@ "ref" ], "naver":"Naver, Güney Kore merkezli bir arama motoru ve internet portalıdır. Site, Haziran 1999 tarihinde eski Samsung çalışanları tarafından kurulmuş olup Güney Kore'nin kendi arama motoruna sahip ilk internet portalıdır. Günümüzde Naver Corporation bünyesinde faaliyet göstermektedir.", + "naver images":[ + "naver:tr", + "ref" + ], + "naver news":[ + "naver:tr", + "ref" + ], + "naver videos":[ + "naver:tr", + "ref" + ], "niconico":"Niconico, Inc., eskiden Nico Nico Douga , Japonya merkezli bir video barındırma sitesidir. Site, 12 Aralık 2006 tarihinde kurulmuştur. Eylül 2015 tarihi itibarı ile Japonya'da en çok ziyaret edilen sekizinci web sitedir. 2007 yılında site İyi Tasarım Ödülü ve 2008'de Prix Ars Electronica Dijital Topluluklar kategorisinde Onursal Anma kazanmıştır.", "nixos wiki":[ "nixos wiki:en", @@ -10240,6 +10519,18 @@ ], "mixcloud":"Mixcloud онлайн сервіс зі стримінгу музики, який забезпечує прослуховування і розповсюдження радіо-шоу, DJ-міксів і подкастів, які надаються його ж зареєстрованими користувачами.", "naver":"Навіер або Найвер, ориг. Naver від англ. navigate – направляти — найбільший інтернет-портал і найпопулярніша пошукова система в Південній Кореї, що належить корпорації Naver Corporation. Був запущений у червні 1999 року групою колишніх співробітників Samsung. Дебютував в якості першого порталу який використовував свої власні алгоритми пошуку. Займав у 2011 році – 70%, 77% в 2015 р. а в 2017 вже 74,7% пошукового ринку країни.", + "naver images":[ + "naver:uk", + "ref" + ], + "naver news":[ + "naver:uk", + "ref" + ], + "naver videos":[ + "naver:uk", + "ref" + ], "niconico":"Nico Nico Douga або Niconico — японський відеохостинг. Перегляд відеофайлів на сайті потребує реєстрації; перегляд заголовків, описів та пошук — ні. Глядачі можуть залишати коментарі до будь-якого моменту відео і маркувати відеофайл тегами, класифікуючи його вміст. Сайт надає користувачам різні додаткові сервіси [Архівовано 8 серпня 2020 у Wayback Machine.]. Автоматично складаються рейтинги популярності [Архівовано 22 червня 2013 у Wayback Machine.] відео різних жанрів.", "nixos wiki":[ "nixos wiki:ru", @@ -10454,6 +10745,18 @@ "https://learn.microsoft.com" ], "naver":"Naver là một nền tảng trực tuyến của Hàn Quốc được điều hành bởi Naver Corporation. Được ra mắt lần đầu năm 1999, Naver vốn là cổng thông tin điện tử đầu tiên tại Hàn Quốc, sau đó được phát triển thành một công cụ tìm kiếm riêng. Đây cũng là nhà điều hành đầu tiên trên thế giới ra mắt tính năng tìm kiếm toàn diện, tính toán các kết quả tìm kiếm từ nhiều danh mục tìm kiếm khác nhau và trình bày chúng trong một trang duy nhất. Từ đó, Naver cũng đã xây dựng thêm vô số các dịch vụ từ cơ bản như e-mail, tin tức đến nền tảng trực tuyến Q&A đầu tiên trên thế giới Knowledge iN.", + "naver images":[ + "naver:vi", + "ref" + ], + "naver news":[ + "naver:vi", + "ref" + ], + "naver videos":[ + "naver:vi", + "ref" + ], "niconico":"Niconico , trước đây là Nico Nico Douga hay gọi tắt là \"Nico-dō\", là một website chia sẻ video của Nhật Bản được điều hành bởi Dwango, bắt đầu hoạt động từ ngày 12 tháng 12 năm 2006.", "npm":"npm là chương trình quản lý thư viện ngầm định trong môi trường Node.js. Nó bao gồm một trình gọi dòng lệnh (CLI) từ máy khách Client với tên gọi là npm, và cơ sở dữ liệu trực tuyến chứa các gói public và private còn được gọi là npm registry. npm registry được gọi từ npm client và trên web browser. Tất cả được quản lý trực tiếp từ npm, Inc.", "openstreetmap":"OpenStreetMap là một dịch vụ bản đồ thế giới trực tuyến có nội dung mở. OpenStreetMap nhằm mục đích cung cấp dữ liệu địa lý do nhiều người cùng cộng tác với nhau trên hệ thống wiki. Nó thường được gọi \"Wikipedia của bản đồ\". Dự án OpenStreetMap được sáng lập năm 2004, chủ yếu để cạnh tranh với các công ty và cơ quan chính phủ cung cấp dữ liệu địa lý theo các điều khoản sử dụng được coi là quá chặt chẽ.", @@ -10575,6 +10878,18 @@ "mdn":"MDN Web Docs 是一個汇集众多Mozilla基金會產品和網路技術開發文档的免费網站。", "metacpan":"CPAN 中譯為“Perl綜合典藏網”,“Perl综合档案网”或者“Perl程序库”。它包含了極多用Perl寫成的軟體和其文件。", "naver":"NAVER(韓語:)是韩国著名入口/搜索引擎网站,它使用獨有的搜尋引擎,並且在韓文搜尋服務中獨佔鰲頭。除了搜尋之外也提供入口網站的許多服務,例如新聞、電子信箱、電子地圖服務(含街景地圖)等。在Alexa排名上是韓國國內第一大的入口網站。 据ComScore统计,Naver在2007年8月收到二十亿次搜索,占70%以上的韩国搜索查询,它是世界上排名第十五的网民最常用的搜索引擎,超过25万韩国人选择Naver作为浏览器起始页。", + "naver images":[ + "naver:zh-HK", + "ref" + ], + "naver news":[ + "naver:zh-HK", + "ref" + ], + "naver videos":[ + "naver:zh-HK", + "ref" + ], "niconico":"Niconico動畫 是日本多玩國公司營運的在线弹幕视频分享网站。其中「Niconico」()意爲微笑,「動畫」()意爲視頻。Niconico動畫與YouTube等视频共享网站相似,但Niconico動畫提供观看者可在视频画面上留言并以弹幕的形式出現在视频上的功能。", "npm":"npm 是Node.js預設的、用JavaScript編寫的軟體套件管理系統。", "openlibrary":"开放图书馆(英文:)是互联网档案馆旗下的非营利网站暨在线图书馆项目,收录了许多公有领域图书的在线版本,旨在为每一本已出版的图书创建一个网页。本网站由亚伦·斯沃茨、布魯斯特·卡利、Alexis Rossi、Anand Chitipothu和 Rebecca Malamud在2006年创建,其部分资金来自加州州立图书馆與 Kahle/Austin 基金会。", @@ -10813,6 +11128,18 @@ "naver:zh-HK", "ref" ], + "naver images":[ + "naver:zh-HK", + "ref" + ], + "naver news":[ + "naver:zh-HK", + "ref" + ], + "naver videos":[ + "naver:zh-HK", + "ref" + ], "niconico":[ "niconico:zh-HK", "ref" @@ -11111,6 +11438,18 @@ "naver:zh-HK", "ref" ], + "naver images":[ + "naver:zh-HK", + "ref" + ], + "naver news":[ + "naver:zh-HK", + "ref" + ], + "naver videos":[ + "naver:zh-HK", + "ref" + ], "niconico":[ "niconico:zh-HK", "ref" From 9d8592afd71b4ab43be7202082e9679945e8c321 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:15:12 +0000 Subject: [PATCH 407/417] [data] update searx.data - update_engine_traits.py --- searx/data/engine_traits.json | 1 - 1 file changed, 1 deletion(-) diff --git a/searx/data/engine_traits.json b/searx/data/engine_traits.json index 6f80992ec..d687d116e 100644 --- a/searx/data/engine_traits.json +++ b/searx/data/engine_traits.json @@ -7381,7 +7381,6 @@ "ko": "korean", "ks": "kashmiri", "ku": "kurdish", - "kw": "cornish", "la": "latin", "lb": "luxembourgish", "ln": "lingala", From b2727e1be934a20b9fd33c50ab87befff0a81c54 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:15:00 +0000 Subject: [PATCH 408/417] [data] update searx.data - update_currencies.py --- searx/data/currencies.json | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/searx/data/currencies.json b/searx/data/currencies.json index 09bee0ea0..b0096673d 100644 --- a/searx/data/currencies.json +++ b/searx/data/currencies.json @@ -1428,7 +1428,7 @@ }, "CZK": { "ar": "كرونة تشيكية", - "bg": "крони", + "bg": "Чешка крона", "bn": "চেক কোরুনা", "ca": "corona txeca", "cs": "koruna česká", @@ -2687,7 +2687,7 @@ "uk": "Йорданський динар" }, "JPY": { - "af": "Jen", + "af": "jen", "ar": "ين ياباني", "bg": "японска йена", "bn": "জাপানি ইয়েন", @@ -4329,7 +4329,7 @@ "PLN": { "af": "Złoty", "ar": "زواتي بولندي", - "bg": "Полска злотаПолска злота", + "bg": "Полска злота", "ca": "złoty", "cs": "zlotý", "da": "zloty", @@ -4375,7 +4375,7 @@ "PLZ": { "af": "Złoty", "ar": "زواتي بولندي", - "bg": "Полска злотаПолска злота", + "bg": "Полска злота", "ca": "złoty", "cs": "zlotý", "da": "zloty", @@ -5881,6 +5881,10 @@ "tt": "самоа таласы", "uk": "Самоанська тала" }, + "XAD": { + "en": "Arab accounting dinar", + "fr": "dinar arabe" + }, "XAF": { "ar": "فرنك وسط إفريقي", "bg": "Централноафрикански CFA франк", @@ -6375,6 +6379,7 @@ "$usd": "USD", "1000 lira": "LBP", "100ドル紙幣": "NIO", + "1億ベネズエラ・ボリバル": "VES", "2019 zimbabwean dollar": "ZWL", "5th zimbabwean dollar": "ZWL", "A$": "AUD", @@ -6511,6 +6516,7 @@ "Z$": "ZWL", "ZK": "ZMW", "a$": "AUD", + "aad": "XAD", "abd doları": "USD", "adb unit of account": "XUA", "ae92 0530 0000 1514 1185 002": "AED", @@ -6610,6 +6616,7 @@ "aoa": "AOA", "apvienotās karalistes sterliņu mārciņa": "GBP", "ar": "MGA", + "arab accounting dinar": "XAD", "arabiemiraattien dirhami": "AED", "arany mint befektetés": "XAU", "arg$": "ARS", @@ -7438,6 +7445,7 @@ "dinar algierski": "DZD", "dinar aljazair": "DZD", "dinar alxeriano": "DZD", + "dinar arabe": "XAD", "dinar argelino": "DZD", "dinar bahrain": "BHD", "dinar bahraini": "BHD", @@ -7458,6 +7466,7 @@ "dinar bhairéin": "BHD", "dinar chuáit": "KWD", "dinar coaitiano": "KWD", + "dinar comptable arabe": "XAD", "dinar couaitiano": "KWD", "dinar covaitiano": "KWD", "dinar coveiteano": "KWD", @@ -9162,7 +9171,6 @@ "jordán dinár": "JOD", "jordánsky dinár": "JOD", "jordánský dinár": "JOD", - "jpy": "JPY", "juan": "CNY", "juanis": "CNY", "juaņa": "CNY", @@ -9813,7 +9821,6 @@ "livre de sainte hélène": "SHP", "livre des îles falkland": "FKP", "livre des îles malouines": "FKP", - "livre egyptienne": "EGP", "livre égyptienne": "EGP", "livre libanaise": "LBP", "livre soudanaise": "SDG", @@ -13367,7 +13374,6 @@ ], "крона чеська": "CZK", "крона швеции": "SEK", - "крони": "CZK", "куба писысы": "CUP", "кубански пезос": "CUP", "кубански песо": "CUP", @@ -13645,10 +13651,6 @@ "PLZ", "PLN" ], - "полска злотаполска злота": [ - "PLZ", - "PLN" - ], "польский злотый": [ "PLZ", "PLN" From dbe6a6f4fad096cc324000526ddb927c33046f66 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:14:56 +0000 Subject: [PATCH 409/417] [data] update searx.data - update_wikidata_units.py --- searx/data/wikidata_units.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/searx/data/wikidata_units.json b/searx/data/wikidata_units.json index 545f289fa..c9bcad24c 100644 --- a/searx/data/wikidata_units.json +++ b/searx/data/wikidata_units.json @@ -4199,11 +4199,6 @@ "symbol": "St", "to_si_factor": 13450.0 }, - "Q235729": { - "si_name": "Q11574", - "symbol": "y (365 days)", - "to_si_factor": 31536000.0 - }, "Q23823681": { "si_name": "Q25236", "symbol": "TW", From 23396f5a1d2bafd13b86f54b31c2454321655227 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:14:55 +0000 Subject: [PATCH 410/417] [data] update searx.data - update_firefox_version.py --- searx/data/useragents.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/data/useragents.json b/searx/data/useragents.json index 6b806e372..95a245560 100644 --- a/searx/data/useragents.json +++ b/searx/data/useragents.json @@ -5,7 +5,7 @@ ], "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}", "versions": [ - "138.0", - "137.0" + "139.0", + "138.0" ] } \ No newline at end of file From 7448a18efa1d47ee1424db935ba8463fdf2809b3 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Thu, 29 May 2025 00:14:56 +0000 Subject: [PATCH 411/417] [data] update searx.data - update_ahmia_blacklist.py --- searx/data/ahmia_blacklist.txt | 208 +++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) diff --git a/searx/data/ahmia_blacklist.txt b/searx/data/ahmia_blacklist.txt index 065bd8208..9a05bdb3f 100644 --- a/searx/data/ahmia_blacklist.txt +++ b/searx/data/ahmia_blacklist.txt @@ -5,6 +5,7 @@ 0005267c3295eeb612e9e7d2d7939970 00068777b8c3937133e788cd84229143 000914d0c175724e20a84518b1cb587a +000bb12a3fa367e1442fc9fada841457 000ca35ba2095b1443968d4b0ff584de 0013a67e08315e293c274799fa865e01 00145453e48c99747fd7bb981cca0798 @@ -435,12 +436,14 @@ 0251da7034024e7f4a38af608d6a2717 0251df6c4de395e40201f49f460af671 0253d36abff6b07a63e76f6936eb225e +02543885df081a208d9983fbc267d127 025511df343ea2bf7451edf96a1177fb 02551fd7b9390cd9d5221052b24d0c81 0256647357d27acb21ed2de48e784065 0259e254c258e7ffdb51c350ef5eaacc 025a6e40958e34e996e4b03698984827 025b8f1a86222f25aa7ea4709499352e +025c49b129b65ad81f2335a3ca9cacba 025cf1341b8dc023045bf0b8c4d2b43c 025e8ceea86b8b6a95ab56a2ef8d5e81 0261003d3d876d9c236ff7d3ddff9744 @@ -485,6 +488,7 @@ 0295234924c5e11f293d34e9d449cba0 0295ea4ab97988b8145ae756937435cc 029778e7a2c43224635d8315151870e5 +029981242bcbea18dc8746f289bf6397 029aad6a569e9e5aaf05ef93c9197784 029b98a25eff95a2c409f317c52bc2a9 029bef519d3fc5e7e471dd61c9356e05 @@ -609,6 +613,7 @@ 034dd3de1aeeb36cbdb9d6d56a62166b 0351e0d2c113dc8dba239f699ec02d4c 0351ee6dc13b41686001cab8ea2488d3 +0353152c49a1da7454dfffbb7e4a3558 0355dfcc33108181db526ac37ef673d8 0355f17a3d208dd1c908faa0f2f9e93f 0356b4e31a9d13be51790c68ba28547d @@ -780,6 +785,7 @@ 0425f1c3459237cd37ca97424493af25 04270668bda73f4609b7ad3ddbfd0d94 04286bf4dedb2dbd9723474c2a1f217b +0428fd6aaea85ee8a8216389517c36bf 0429f459757ae450c312b3f4fda43fe6 042ab4ed0bd703331efdcdbff54a1471 042acd38b594f6a5744edc478ae3c8ad @@ -1373,6 +1379,7 @@ 07424ccf8c8a24c6cbe752e5a9fc3812 07424d3e5933262a691315419a28462e 07451a915f5b043135ee4d013287e09d +074626a19cfc491ae97f85efb520685b 07473e90e994a61931d33cc18ea9dc39 07477bfbd67a71588324c3e9c11b5370 0747e2f11ae1a5dc077649ecfa250b40 @@ -1610,6 +1617,7 @@ 08a2bf6db54af53fd03b461ba95d7eed 08a3e379c63dddab3890e765e8585430 08a44f882721208bfc54745d3f55db31 +08a46a8ce28df914deebd6148fb0be53 08a6cb00a5d07b8524c0e0d512b4dba5 08a72c40624802259b58b551d2cdeacf 08a9d464024c1b94ee99c08a4e1d61d1 @@ -1917,6 +1925,7 @@ 0a6960746b5556b557cf543fa276ba9a 0a6b9ff75963121b22c9b7f42cb1d524 0a6c5fb79e7cf454d23445b391c08180 +0a6c6deec7369397efd80788607a293f 0a6d4b62e1dc10e0e502df8243d7f3ce 0a70a665f5f8a752d5550d7520aee426 0a71a55d452e5f059fc1d1f889b7ee4d @@ -2112,6 +2121,7 @@ 0b7c13df18404beaae998694a0d6d3a2 0b7c21a239b30e670d6d024c4f29bca2 0b7ccdf4688c4992d81fdee8d6e357e7 +0b7dbde24d5f6852987eb1d7bed68a5b 0b7feffaf8d4b91d8c618e5bbe602e92 0b803f83d985858b304f7081c8549562 0b814c2b2b04bfaec204b2df7a82aaa0 @@ -2734,6 +2744,7 @@ 0eddb1ebef0dedf7438c3953cb40c1c3 0ede9f742cc16451ac616b17c401790d 0ee3ca15dc2d3a43d4174beac14f81e7 +0ee451f7de2d185a89d47d785b1f594c 0eea546b46a48211c407062119b05169 0eeb10443f206a77fa8f555f4165a01b 0eedfdcb06271288eb40aa41d163fdff @@ -2772,6 +2783,7 @@ 0f1dddcae4a97d15da0a02eef4b6e8fe 0f1e17031e3fde4d2221c865aad9a3d5 0f1e25b58f84ac6d22b988d78e2cca17 +0f1eb9508491b97ebed0d4be19493fb9 0f2117237746ecd2fb3ca29be246be2e 0f22018b7ea2cb0d3e653a3640223deb 0f2293b7d4bec3f83b96b62ae6f98517 @@ -2887,6 +2899,7 @@ 0fb04b5ab393b4aa64bb512d1e06fc75 0fb085b2eb9474cee43950434f45a5fd 0fb2418a5718cccd73398d1b659385ed +0fb637ac874447d39c08b730bf161158 0fb82f76000499d915b83a1ddef63eb6 0fb8477a52fb18854441f57bc266a012 0fb90f728807750145a7d7b0c9c5a990 @@ -3193,6 +3206,7 @@ 1166dbbadfe2bc6c0ca60028b4ce5d5c 1166f356caf638c8f2dbb3ba21300028 1167501c494d049744db1ebeab2c4996 +11687d357c714ba02785ef68c6702898 11698d424ee245ff6d2d8199f39c00dd 116b97ed2fa6bded481f9b38eedb4505 116dd01f9b14bb5c621a98cb25045202 @@ -3661,6 +3675,7 @@ 13c68806d5bea1144414ff6adf614f8c 13c6dcc3911fd9e80b78cc118ad6a855 13c81d82802fb195d1375a168dba834f +13c8747ba6dbe6b515930a4ab4c5a9f0 13c878f5e10d4cb6a052d7cca21fed5a 13ca196cebca0f84445ca520ef716074 13ca32082fbd23791283ebc0eecc0966 @@ -4146,6 +4161,7 @@ 164ac234e744c62dcb3b5994dab07009 164e7f0642f1c8f9606add19ee3dc0f0 164eb5ec53f7929eb73a605a3fc35e22 +164ff12c6949772c32df9f68d8278a8a 1652309be7e2a093125b0858551ae7e4 16545275331852b182b785574b2bedfa 16545c5182accbd81059ce9e8053ee71 @@ -4167,6 +4183,7 @@ 167654a6325c7ef6c60bdccd896c2a4b 1676a13396a4f78080662dd0419a45c1 1677b760edcf80a0ff07f308ebe300e4 +1678444681936cb3038a17ca6c55a702 1678639220d10cf30df4a1ea5add8a34 1678e345417c9592d26eecac92546a13 1678ea4e5910d7d433d5eab5309a1864 @@ -4251,6 +4268,7 @@ 16eb61044968f29101651e5cc83b52c3 16ed77594af8d590360ceaab1aa9d049 16ed8827f10bedbbfda1d17699242c44 +16ee0d16b5107699b27ecd9251c5ec79 16eeb4f73d22550f42a67b120b754326 16f168ff9bff0b81d12741d2b94fce4a 16f2261b876c60908dfe30d8ca9d4edf @@ -4349,6 +4367,7 @@ 177e15ee9ab07b74af6000ceae0cb2f9 177e4059ed4cd7ae4266634ec00e9c10 177f24f33529cca0708befea74693dc9 +17801eca49afd689dfc40d45f1ca8e16 17803f1148ea883641b9c4e96f4cfcae 1780b44492ed31c5ebbc0994bfcee9ac 1782151c47e1c5b3bad69b5ca952ae33 @@ -5035,6 +5054,7 @@ 1b4697cc86ea66c62f761ee377cd818b 1b4887d9532e2e07bda5ed2a9b9b87f2 1b48cb2da599ad766c7bf0451a85df73 +1b48f4f9b3d10661b9ac610a2f480fc4 1b496d5a1006d4958b92d4976f28481e 1b4a2b8150239956a7961b37ee70d9d4 1b4a63b804f9e556aa7bb7187074e327 @@ -5308,6 +5328,7 @@ 1ca0770673e44d26e1d4ff2a16cc4cbe 1ca153b82f15856669a8277f228d7b84 1ca2f7ad9ac214f45e8ffe8e63fc2754 +1ca40db2e8e0a3dd8c66c0e673cc572e 1ca4f0e7494a7beb445cd6dfe4f3c461 1ca51ea82c5eee246c89677041b5c780 1ca5df78c3297f213655fecfedd3ac3b @@ -6177,6 +6198,7 @@ 217630ce668d5317dbc7a8248337a521 2176e4fb6722df48bef98b27650046e6 217722e245d3502b156db853c73b7b17 +2177d0759ee703908972a1b91b675214 2177e2b99d89bb2509e1d3babd1bf199 21784c5b00966e217057e37443898c5f 21789af6c870a60cbed83e64cf3e5463 @@ -6538,6 +6560,7 @@ 2364e8462945adde9b041e506f24acbd 23655a0f04b06ee4e67d0d95c00148dc 23657ec88157711235f8a9b52351dafe +23694f10047d2bd64a62c7f49eeb71a1 23698e1d9c4ced0c960ccc0c275043f6 236de1c21a89c567837752013eb5ee23 236ea4fcf59a70d632c6547a3d0451d1 @@ -7014,6 +7037,8 @@ 260b137532694cd8a9a87074ddf31ca5 260d4da49476b8edf04d8793f05febd6 260f6d2a0a82bbdfb7f7766454793658 +260fe149214dc8c66232131c41cc263e +261043514ca8fded2b27b490e62d3038 2612167ed24bea70b3c2e8c7a8f1d60a 261245ae37c5901ebb2cedb1fd88af13 2617e6af0f0e30955694a93bc1453f74 @@ -7527,6 +7552,7 @@ 28d25a82c04c5fcc231e980e4f1b8bcb 28d465fa943affe9e4a8d2bfe5e17548 28d610caef84bec33a19c864b4b14bf9 +28d6dc8965d3dc95f54c625eaf75910a 28d6e03376e226a55e4ad9974db0960f 28d79b60fb216c681e608d7a2966dba7 28d93c57421e2bd6d1e001884899bb9f @@ -7538,6 +7564,7 @@ 28e17088fde3dd1d00f0ba208e7b4797 28e2f81c81908c2fecf7d85a6b7ffd3e 28e329d8bda4acc6d4e1266aaf343155 +28e34145a1d57f1d6f48e7d115147cd8 28e3a32b505dff3420decc88103601ed 28e605db574af11481e1a00bbe645ad0 28e6d60cc9d47404fae7b5df9f62b49b @@ -7830,6 +7857,7 @@ 2a667936f25a943fdb96abeef23cd981 2a68802d6d188fa53d98bd03296b4b60 2a6934d1ff6187490781620b5e1f2df2 +2a6b97db8c050130da7ae2803e2fd273 2a6c8463ccc4fec7d6367aa264a6ea5d 2a6da9abe15822278af2d7e087c246fb 2a6f6ee7170dca45ea644e0ab87c28c9 @@ -8106,6 +8134,7 @@ 2bd017e38367f7c6d998af2ef38087fd 2bd38f4e598f978dbfd5b55546f1bb51 2bd4b7f8a68e5f830eb86e7f01d679e3 +2bd5a49af5f420e751b87028ecddff03 2bd5c83d815f543e24e5041c02ae0799 2bdaac06653f5e57848b69416ee4a6e9 2bdd0bb805f7a24f7528077b1319b8fb @@ -8780,6 +8809,7 @@ 2f6f00b04ad16c1a6d80be858101e223 2f7073c4225b9aa7b1c570a6a92328ca 2f70cfaa4f5d55ff4693e94936acc845 +2f718c5f111a9adc639edf4c2ee465a8 2f71f2706524be1bd387bb7d0b6eae86 2f753ede59bb097edfde6f23e69bc373 2f754f53a50c3ce017f407508358798f @@ -8820,6 +8850,7 @@ 2faa7393187509976167b601abf59986 2faa8f74216aa7c7a3bbab7585ad06e6 2faaa4cb4fd6bd622e037f0fd08fd288 +2fab984ea26758fdda39759469e98bbc 2fac5bad535410943b367dc515bc8dab 2facea7bc3a70adcde954f3a92b46b39 2faddb1bbfecefba6f0262bce5043e07 @@ -8886,6 +8917,7 @@ 2ff1d0043715903d5bf500a346580f96 2ff1e62a192ff56015af810b29064a07 2ff3d45207511f4933f5edf61a8634e0 +2ff4811e65aa1e897a170ea822754042 2ff557c7eb3e55eb40baf48486d912e7 2ff690a74b955b7025afbc6ee7276e99 2ff69747d51087d4f526f413632d741b @@ -9098,6 +9130,7 @@ 3100b8257162244abb54229c31a0d286 3100fdeb8d0e1780cf2777d54ee33cf1 31012dedb15099d66316b7f9d5244270 +3101a714bf4d8412ceba46045b9c8fca 3102ee4948b07ebea379accf358f4523 3106fed0993b88c4b1ce2a30aa85056a 3107ec64b531336e5a23cb7c0cb3b58c @@ -9164,6 +9197,7 @@ 315ba540431d5a3eeda56c65e44d46b4 315c8c0b4f52bb81b4d828acc2452e7a 315e65cc1f34c1811a37f332e87afe00 +315eabdcd44620d32a81ed91caa69b88 315fa325085bc0f2032b48304014a07c 316019a760a7e6d275a10e07af16a9e9 31625ec9963c9f959ddd11f847ac911b @@ -9272,6 +9306,7 @@ 31f2257d432e18e93a55a45ba8ed8c5c 31f26b99be9daffd665d7acf85a35e08 31f2c254f68524c9c0aef4ca32977c60 +31f36083e351d658036e752f4f1a5fbf 31f3ed765c203ed0c548bda622da8299 31f45e7b6b07273ac71eb44f46fba8d3 31f62cad5ae8b19813a4cae58f349b07 @@ -9467,6 +9502,7 @@ 32f1a7f57b512db5b681d9d5da68263a 32f45aa1b9b38292483ab8666d8ac9cc 32f4b8bad803a08f17adb0b3aa3cf4e3 +32f5d69850195952f4211e1f2d9e028e 32f79d43474946ec1c31ab71eb83163b 32f8f9b79832f90bdf4433fc6be69587 32f902e59aa7f0e29cf4512b142e3716 @@ -9608,6 +9644,7 @@ 33d1fd357388cc918d7cd6547a742457 33d30382ab9e0e2166549b25bf97f31b 33d4701ab79f8df24ba2ab0c1d8d149f +33d5fa01b8e70a4aadef9ed32f05ec7a 33d7c5866c32276d154120c672208a53 33d842cedeade74108a9f7efead305ed 33db469e01631389d3e6eaacc5d08454 @@ -9796,6 +9833,7 @@ 34bb80469543da184f6c4687a7dbbc08 34bb9abcdea4f0bcfe24c6efcad5e3ba 34bc9c5319ce936460cdcf6597b71c23 +34be4885055445fd2690d5581082a350 34c0fe8d3d1b1c6850d519951ad971b1 34c2af1244f7ba549f6ad52ab15fbfe7 34c2bf58dde33d8392733df2857c14ce @@ -9964,6 +10002,7 @@ 35954958024018046d1f1b286a582cd3 3595d0b74e1cd8f9c9ccb1e51a1f0554 3595e6d58e506f0cd754d3af1f4446a3 +359729f10a3dc23a33c840b08e4b15a0 359a62e408cc78676438468cf8900c74 359b76c2b9774f59a828cfa0d6ec9531 359e97b8ea9ec5fc427af5b0d2e28c75 @@ -10508,6 +10547,7 @@ 387a4e5fec020b8da0f317f4fe7721d2 387bd966560c303cedd79921e5b78b9f 387f7889a14750f96f60415eb7fd8c74 +387fb115e32520e9bc91fd9dddd845af 3884f3f21019fe7023adedf9b960d208 3885d6825c8c388bb6c617d1fbd27e77 38870a3f87cbd7f163d739ccefee1afb @@ -10597,6 +10637,7 @@ 38fd5093d7dc284070e9b34028ff788e 38fde3d022d5f870933e44bd82f555ed 39027c02cd003145bc74c563c2059c67 +3903e95fa1e05615940a0bc2153c8793 39047b72ea9f2a256d6fa4edd04b7d36 3904c189b0a64f80797627e3399b5911 39057283f2ba7290242b8c13ca720d6a @@ -10991,6 +11032,7 @@ 3b31e02cdd65585d8c21e8cadf3f0d97 3b33311b30793dd887c185a0febd5c8b 3b3446d5e0402dd6830f8202e65bbd4b +3b34a138152f71f7f437c146fafed625 3b358900d7e5e2130918b2803d61bb20 3b372957e901b62ffb0d85f4390e8d40 3b38b355d44989d3aa7c6a84301bd1a4 @@ -11050,6 +11092,7 @@ 3b79c08a1f5d1c836fa0afb1c70a16d6 3b7b99a2c8e1a883c69b0f4272d26369 3b7c84f7e97bf9659c312cd3b2eaa8db +3b7ebea3e5eff21445ecb659a90a334c 3b7f744494f37c19a126e79482758cba 3b7fe83b78e3d169d3f05eb7d6a45daf 3b81d0b8ea2b4b89062a394894f3cd6e @@ -11120,6 +11163,7 @@ 3bdf407eae98cb17524a7aa69322473f 3be028f4cdfae1d166bbcab6d83a7e1a 3be057ab6966061fa151ff412fc0a764 +3be801ff3f2ce8b80a439e4b2bd2760d 3be8544841171ad614e24591990f2732 3be985fc58de16b34117385ce9708f7e 3bea0568acb91a9dd3ed2773cc367e9c @@ -11322,6 +11366,7 @@ 3cee76540462999330b659db06da8a17 3cee9a5dd9a3e935a637fb07804ec246 3ceed022926d9d651dda04d93cfcc8bd +3cf181e33b379e1bfdcdd5c5abebc496 3cf387bff728dca0760fd4d35cf1d706 3cf58d0d4708cff944d725d5a335c956 3cf7f85fc7932876af46649d02e6041b @@ -11600,6 +11645,7 @@ 3ea6416134718040d4d3b8ee1f66d0a9 3ea6c0393882f680923f96587c1ebebc 3ea853604e6b088167c1f34fb0ff95e2 +3ea8fdfdb606ca56c0053fd42a960a69 3eaa3645b6e85aa0385afc516afc0987 3eaa3a2675ce184c28d63c2d1f5b6cc3 3eabbff96f962ebe883547aab1be0327 @@ -11665,6 +11711,7 @@ 3ef3e87585ca6b637d0c267bdb8c2d69 3ef3ebef19b659a56d98721441845850 3ef4131d520a2d9bf26dd6fe61345e91 +3ef4d00bffa4b7c6dcde270e542448c4 3ef5888d2a20889501094a1c1784a102 3ef870b65bb2072912bb958213bfff16 3ef90411081cf45fb0af9b89ea1f72c8 @@ -12192,6 +12239,7 @@ 41f371db4d3093e95c0d4c771f882c16 41f4a7fd341656fb670ff84822093262 41f5ed0e40f638046b5e5bd74bc86d15 +41f621dd173791bc2e020fc8b658790f 41f8afd05fe87f440135874acf65e8a7 41fa09550baa6720b89ad14a373171d4 41fa72e1dd47cdbcec0415f48fe5154b @@ -12497,6 +12545,7 @@ 4390b82422c7df4351b850b6662d05c5 4391806ca647f912b0f981d18cc07a01 4394e2c9bb6e195980dd173762d10f23 +4397bef5f8da23f9e049f084e2b0c5a1 4397c71ce2b06a0aaf1c7f2cfa36755d 43986c3729c70fb4a5bd2ff2c5b15b0a 4398ccca44b4473d3ae68824880ebf48 @@ -12518,9 +12567,11 @@ 43a715b755029901ab99639f1b7e7107 43ac5e18663e692f78afcad1c753212f 43ac8bcb1723e102321a5e2869485dfb +43ad92cdcc828dc6a8758209f251976d 43ae2c9f8a3c2d507d4e3f32e29291c1 43b14d3b24429b6c6e44192ee272f896 43b1a07f3b558a8dc2e19b65f8667f48 +43b1d41a4af0b16ffa6c7aece70df9fb 43b2e200d9d58469e477e21d7f2ee8be 43b3f657584b3929ab2e5268e75ecfa4 43b49419cc992476d9bb41a6b7fe68c2 @@ -13158,6 +13209,7 @@ 4728c1dd740425bc772076ad0f78abe6 47296ac974fb9c1c3836bd598eee5894 4729e6616dfe0db8113202337628daa6 +472a4a83e12c9338aa019ab71b1cd538 472cf2000130f8a77e3b4de2265facdc 472e7a1a0797d2fb3d00cf964874db4a 472fc7143444e3123879ec40a3f1db40 @@ -13209,6 +13261,7 @@ 476a3eb77739bde4ee459f94abb764da 476ab8f7e92c2a42443493060aae370b 476b2fa725198faa5121c3547d3e8347 +476d3d7cef20b6425bd69fa10f8b8a4b 476ea5205f1e6380a58a6df08c09fd16 4770eea1612bb30564975a9bbf358dee 47714b35c03c6f49a0a4975a16296895 @@ -13516,6 +13569,7 @@ 48fc6af29385c116d37c8de5696dca44 48fdd78848122b4bdead6edf02e073b5 48fee9aba233ba72649bc95759307de6 +48ff0180ae3a8a78997fb890ee109ffc 4905317ce4d52d076ca8bdd3e49ca44c 490540cdb17bd218f1843041937c2f2f 4905ee878e5bbae74d889030b5d5f7f7 @@ -13545,6 +13599,7 @@ 492333ab6a412229720e5ad738e19b3c 4923d6659affb6396d2b9d4ac13869a7 4925c4f814f259924a6e2f6ebf4ae0e7 +492743728e902d23d6d5d53eb2543a03 49277325dd0f0358390a2203f5a7896b 492a2e08c2e3526c7ae7931154b479d2 492a593678012737d98bd06c4ab5dfae @@ -13608,6 +13663,7 @@ 497dbbadf503c2754e3ca8f4ade772db 497dd4c9b950bfeebe8ca1475564261a 497ddd96968b68f3c933270094709b03 +497fe6b5b77e35e8391441306a44ae7a 498c8b74a55c40504df838841c50f530 498d363012544b9065486670301a0b00 498d9848907ea86c296e6908f2683faa @@ -13693,6 +13749,7 @@ 49f945bbac8b563ad109ee7df71c227c 49f9f09bedc8e8156d724e6226d91a29 49fa83f0b5b58d4ef8c452c4bf9d5282 +49fad9093e12519919a7304127e10f6a 49fb7045df30df154c196b145cc98ea5 49fbf597844788a1a8a1633b0b278062 49fc480ef62f2ad8f98793c570890fd5 @@ -13726,6 +13783,7 @@ 4a22f67aa46100b5ee925abb25b1fdb7 4a24051ed87826f394dd38a62695d3d3 4a248cdd983cd58ea7d798c160fc4f60 +4a26b6ed1c266d9bde5cf5e42b84a0f3 4a27220ff91f482eb411b9edd1b968e2 4a2780fed5c4e2aa36e4e1c0e48dc552 4a27fbcc4bd11abd494763c7a409927b @@ -13847,6 +13905,7 @@ 4ad8f41c8001987de29e6c1deff123d0 4ada6bdd950bf63b4c95603dd795b1a4 4ada8d639f42ce1ca43c6eb17802baa0 +4adc3be48978d137080ecacc4bc6bcb0 4adca296b6f9567a6c2fa53f27865d3e 4add259046057425791175040aa7f5f1 4adf9823a4e3540b59168f3926c5970f @@ -14412,6 +14471,7 @@ 4dfed6fe004fd210ea6b6ca081045eb6 4dff7473ffca9d4e6ac22955e90bd4c3 4e074fe040111467eee72e254e64ed42 +4e07eb61d55593353142e4c01d152346 4e08c12df4962152457e12596d308229 4e08d1287975a426b7124013ff7cf6f5 4e0a189a882c70d1d1fecf920213c41f @@ -14529,6 +14589,7 @@ 4e963337e8eb71b845849884a7b35b6d 4e97d024ccaa8ad5c97ccf32a818bb5c 4e989816aee4c90b559a65b783562253 +4e9966e92658343a7a1276f8290c9aaa 4e9a9bb355f473f19669705030826c20 4e9bde5ec8a199be9ee3b888f45509bf 4e9befc446812a156b2bb29a3fe59386 @@ -14650,6 +14711,7 @@ 4f3edb86c8542999a695415371904561 4f3f33f5efd98562c761b2fb4a9d6a9e 4f426816815b5e558d384c6250df4231 +4f427169a6bd2bdbe0009b9915c77aa0 4f430a804cb613c689552167e1a556b2 4f44618433c1c129f223717ed379fcd7 4f48e60858dc789551af56083b5839e3 @@ -14717,6 +14779,7 @@ 4f9bf2aba5e6dfba7f9da70a44be9a53 4f9c08d4e32f540d9bce336ebe1a2718 4f9ccb93ae9e8e68be640c0b94657723 +4f9d2c2dafb8ec79da73e6800165f136 4fa098e48d8415a952ea73e8bdc06b9b 4fa0e3691b89b29a7cb0ce3bfe2c3a6e 4fa16c78b1f133361f177ed27aae3337 @@ -14899,6 +14962,7 @@ 50968cd52286863dc7ebcb794fe1bfa8 5096ac701c78d0dc5829445d0452464b 509b21c7075b184e0a9442de18fcb9fe +509c53cf5aa1f8440e1917100cadbc04 509efb0fb72d699efcc2202b9e8df738 50a04e0edab9eb0f33638e44014bc899 50a27c0ff47ca278030ceaad66ae5b74 @@ -14920,6 +14984,7 @@ 50afd89108c8b230b3456fc4342b9115 50b40bf654d30d283765d41fa56f3c40 50b449bdf9e43272756a934a16ea14b5 +50b44ce4cdd1d844dc0f63213f790285 50b59e1f8b3623163ac5f173a54360f5 50b746380291b31c39dfd51a49bcfb79 50b7d0acb6575322679f80f47a663e07 @@ -14965,6 +15030,7 @@ 50f2bb053f50d4e1300c035d17a27248 50f3af9df22ca6d57883e440310afbdd 50f3afeb653f2070e231eca2fd927034 +50f546b2519eb0334f3c2f16b9387751 50f8fec774c38dd6e77c92cbddc217f7 50f9fa163abbb8aecdea13b024b6341f 50fba0b0b9d7cb1a2e655fa16ce1a78e @@ -15038,6 +15104,7 @@ 515078554d2552e33bd80ae77f945ace 5152327db053043f45e0844e1ed65878 5153ad54a1ef93f18a7dbb2d90599f6c +5153cea05218e4ef7fefe49a84a1aa2e 5154378095868719fd800987ae8c7067 5156b384f3f1c20f947c0f8be9874461 515803b028b1bd972a94509c7474c4b6 @@ -15359,10 +15426,12 @@ 5315d1d2bab05cf4863000863312a449 531684e91481de1f6ab71c683825e771 5316f3530f3bd3b850581804debd1afa +531744ce6be100b5716fd40d7c9de0fc 53174761da7fd6b454d8b88e8a919a9d 531773a4010d17332a7caf09f591c683 53177a67efcf6bfd373fddae10b215e0 53191fa60d0407df72cb2c5abfc40045 +531bed5576743bc965cf1a75f39672e9 531c16f0d2155e7a25bb05182886f6a1 531c251f3349d3a4fd19fba51f0c0bce 531ddc65722f737dc6e21db4719f601a @@ -15928,6 +15997,7 @@ 55dd33bc7bd3729f22af3fe72ef4074b 55ddca1ff9b5a6c07552c2a2032070a3 55de4872b2e2456b0678fc884b88dcd5 +55debbf864d74de3c9f374f3e289f2b8 55df5e14ad4f54d79349cdcdb3ed9788 55e63216197d3818a3a447ca32db25b9 55e63df04cec0b854e06249f1e059be6 @@ -16534,6 +16604,7 @@ 59302280671e8af89575b3df20fe3c08 59328d41e4e8edeefcbf2534e0988ec8 5932d7254df19252bcb9631eafafe6fb +5933b4f2aeeac44c631c46df7dd69df4 5934024048d6f1db3c7c65519a35ae15 593468c6fe28bf4db0519ed4d479ed77 593778650c3c289e594afbb4fdf3171f @@ -17079,6 +17150,7 @@ 5c3ed8b72b3eda7bc6acfb02f3f37902 5c42536cfcc8d0dad8352ca659da3e6b 5c42c1e7c70b17a7810b5b44c03c81b0 +5c42c231c2325f3f82354dfc759481b5 5c4320bf325cdd8e20114525e14f9a86 5c44e68b5db37eea1277a7f5ffa68d9d 5c4529e86446c3406ab013830ea81a2c @@ -17210,6 +17282,7 @@ 5cdeb4e6df97593260509be936465e2e 5cdebcc7034cd6277d9ea85cdbff9fa5 5ce0a5bb5304260fd4b992f996741499 +5ce2695cb47af61a5e0ce4f958fe8ea5 5ce2e4c461a65e39dcd26351248411e0 5ce43e85a4b420b2344548785387966b 5ce4c9bfe401ffe097895183ac7fdb1b @@ -17250,6 +17323,7 @@ 5d1314cfa63355410c5827083249357b 5d13dc34191e9d465c6818c91c376e13 5d14bc76ffc78dadafb5a3669dbfdff5 +5d161de209bf1bf98f219ec307eb065a 5d177927392666524df5705eb3ebb19f 5d1895183e042229ba8a4ee313b6fece 5d18b362d49eb721e31636c281ca4c51 @@ -17281,6 +17355,7 @@ 5d3abccc255b4de613480efccf789d40 5d3acd1731553ac1b12d99a272460c85 5d3ea10db3bf697703df3bb1e5999b2d +5d4207cb8311cea2ce9990bff32ae156 5d43521304247dc7e362a3a42488b3a9 5d43b7004cd2b85e204eb934c4d21f4e 5d441f2a53c15027fdb230f22cd5b1ce @@ -17291,6 +17366,7 @@ 5d4cf609ed33d0e5c962222a4f62bc2e 5d4ed47446d65b3fd7a43889f0ea2aa0 5d4f846d5105ac2a8b3438d6ec5a1064 +5d51181e2725deb04b7e69a73f80306c 5d5130aeef7c56307e39bc857b03cc54 5d5351b57229dfce62a9c1de79c0c5a3 5d53b511e820e0d5f5fea50b317adcf4 @@ -17694,6 +17770,7 @@ 5f86313b2e10abc3980545b82c68bff8 5f86a0d23b8b013c888e0a14f6822ff0 5f886a9589924f5cf4d77f02358d0dc7 +5f88a4a255bf4ee7e4055b40bc668ec9 5f8a2ec713417456b927e0bd4244ec22 5f8a58767579838814e849fb422884ec 5f8c6382f324328181b9da39c996c6b6 @@ -17951,6 +18028,7 @@ 60c5fb168f7e56a84e62e65830433f6f 60c704251c42b530a21d6df5d3a351b0 60c78326d31afd502a3ae2828ec3e7a3 +60c813048196b96ba6ebe545186036f4 60cde4151ef796abe8ab1d54d2efecff 60ce2a8dad2c0cb0a20b227725a2de9d 60ce30408d1eba6e195ebd038ce951a1 @@ -18030,6 +18108,7 @@ 613f1029835a7252580a6932e407c6b3 613f67592fe56f06b2c94df38a0f1c10 61408db2b29a06794fede644ab20f239 +614236ac149fa8f620e9e37778857498 614262e3acf34f0709b2d14c8236d11d 6143f72b0ef132ef553de94c75497e4f 61456bafe129d78150cdc6db87427dec @@ -18794,6 +18873,7 @@ 65831641173f0b18a97b2cff5077392d 65832f6060492902e3f4de8e678666d9 658461930db45db09a61d256a12acdff +658513dac258a043b0d9f279dc684422 65860d5114e4f498ddde3cfcb2fd26f0 658742ef1905d8750547aa5c10480ae8 658755c993f52f8e802899e68fb35e0d @@ -19358,6 +19438,7 @@ 688a2a79406c252ae1247412367f798e 688a8bf9b23ef593e19c55c484484669 688ab0d391a92dea10b000416519d113 +688c8293cf53e8ba22f98e97f08befe7 688e9990fb2da39a3053743ea2baf72b 688eaf480152d00454220652ce45fb44 688fdd6fa158e346c424fffdc75e1c9c @@ -19794,6 +19875,7 @@ 6ace6b2b9672f137929cfeec9a63fea6 6ad146f0525c2dbc966ad888dbf7efa6 6ad51785cb7c26b35786106f03b112ad +6ad5ee75d0764b8b99a8141c954f4f1f 6ad6c838a03bcf9f363c6dec42822ba8 6ad6e3cb7804031dfe989dc6dc1f31c1 6ad80d9071e7cecf739ff58e9a83c719 @@ -19895,6 +19977,7 @@ 6b3f1d9b44bbeed61a5ed2824b59d8ca 6b406dbcbc7fb6e924aef08ec7a22b16 6b419871cf74d990afad21f2b2922353 +6b429588c3893ebd080393b0ea89a535 6b42d6b28c7cd89ddae18b4b79e85310 6b439bf9b8fc5d63bdcbc2ae3c17a0fa 6b4407116af9c1557a1aa63a3da499be @@ -20239,6 +20322,7 @@ 6d1e30693f133b4b505b85bcbf3d3d56 6d1ef843ae5e1936db51836a8e097e70 6d1f81456fa158678f4c574c0bb26fd8 +6d201793e178571f66f27253870a0d48 6d20f535ec451dfff2373515573c33c7 6d24e2945e40baadc4c5d2bcd17304df 6d28603e872afd051c9bdd0a0b7ed7d2 @@ -20423,6 +20507,7 @@ 6e1fb233ddcae13c97e9f9cc1133ad91 6e20bded530e0d55d92ca2ec47961e7e 6e21e7ee5603b9663cf1e8c2bd097e4c +6e220734d4b351482b142b6df489ece4 6e22211fef150f27739ac8cfe0c83b96 6e2269cb145bd1355549f54ebca12f3d 6e245be4e0bf674abba28553fdeb4ec8 @@ -20462,6 +20547,7 @@ 6e5eb13d4564bf66e3325356f307e7de 6e5fa18df4f14b62479efa69e1eacf3d 6e613bab444df20d1f48af8772dba9ed +6e61b449c8534fbe92e40a38019ddee1 6e62d4b7094b92c37c13c8c3dba00a3b 6e634138dec899ffe6229e2afa7f0fdb 6e640be35d729977821d9210cccf5c11 @@ -21135,6 +21221,7 @@ 71f7840a6d3741a3b36d246f48f4b61f 71f7b2185478ee2e56c4717621ff8a0f 71f88215f6f467a9ab65fc26e13b77a8 +71f93bf783ec79580e9997c9895d4054 71fa38de6bdf0ded885df0899fe56601 71fa5c79c17002e70705d7ba5a6f33f4 71fdab28bbaa97d38271099788bd68e7 @@ -21479,6 +21566,7 @@ 73b460210393d8796110d9b426e8573d 73b4f5c1c6d38ed92a250129119797c0 73b6e099869af1a3199259a6e07794ca +73b8c0db1019b9de94e2719285931aec 73bb769999f1e51c14d7ce58c659ea88 73bf1b224ec0387ad08311f1fa5ea180 73c11fe13f798df0cdf4eee548afa8c8 @@ -21921,6 +22009,7 @@ 75f95f5e85bd1f3f46e419020ad63f15 75fff04ce1ebeed5d16530e670db268c 760085ba20b9149fe81aacf83eddc5cd +7600933763452f69ad5b0e343ee0f5a8 760298979e3be1bf18d6a7cf04f8af4c 76034039934bc9609cc7e823a04ab88c 760502d8033eda17002679269ae42cf1 @@ -22571,6 +22660,7 @@ 797124a61ffd65f6a8a3e479913f7ff9 7972f670ac1f6ee26d313be2db065f0f 7973da40cb1e96802e259c96eee30f9b +797401ae93fb906d6629e53e47c982b1 79740340811de064c00fb0b1041efe44 797570b9133e0c2c3eb6eee601ad79b5 79766ed3fe99f02d711e542f80dae4de @@ -23043,6 +23133,7 @@ 7c29cc8c004f6c134e34b5c49a9a7a72 7c2c187d5fcb80c6467f8bc453dab631 7c2cff8f68c99c4c7baca68c6423e26f +7c2e93aab1f292b0ba2c8383393ca2ec 7c2ea8a82633e97f32b77d3998fd4555 7c2ed7dd1602af288bc67ce15cf27687 7c2eef5b6132c9366df606a50297f6bd @@ -23437,6 +23528,7 @@ 7e11c261bcc4bc31d0ca5f9d79604890 7e128ce1c00273e73ba732a6e633ec26 7e153b7108fa221218ff9c2c0c1a0341 +7e1557a5fd1acabf3599bf50107cfb98 7e15728911bdea17f1321897224b4a3f 7e17d9bb1e6057ee99ebad2938f8b7ed 7e1bc22ce97c5b24ac2b703932798eea @@ -23916,6 +24008,7 @@ 80bc83f179ccb15b5fc105bb8720f910 80befb4e9bf34560b46d753ee6115acb 80c0661e3a1ce54e58ec1b2ee39f6cbc +80c1ca1a8dd1a3c523356859479a812c 80c524454f069d8fbdbe6d809a49e837 80c5d6f80eb81faa4eae1934803ddb72 80c6dce86a902bad249c0f1df3c8de92 @@ -23928,6 +24021,7 @@ 80cdc66d676df68f898012f0f9fcaceb 80cf01eaa832367c26d76a9d5b4f820b 80cf190f48263418271326dc3c0b8688 +80cfffcf2aaa447888ef9f5489c7a5e6 80d05144107b1b5ea6b36293525f7e31 80d4b67be7585200ed1319b1e4c9ceeb 80d51dbe2b2914bab95889a96e345373 @@ -24002,6 +24096,7 @@ 8131642c4043d6ce84713e6c61db2e84 8131eaea51d89e6f2530110458513cd4 8133f1a5c55b77ccef0810d32d1b779c +8134b5c117e131d9dd228b3c572bc35b 81358d13c16a9ebae7589ddc887b2911 813785a9a90fb319a631fca698c12384 8137fb7eba55746a5cd413df0c017c63 @@ -24167,6 +24262,7 @@ 82137a6c4eb4c424dd06478e2ff37a99 8213cb107716013405dc8449f6bd9700 821418987dccdd7aa80ab7a1b63b0166 +8216e226abafe6ab8627a022b4308200 8216ef135438ee0e5e84120646bffbdb 82171e1280c520722ae4832ec013383f 8217751134e8a0fd623de86b2cdd1016 @@ -24570,6 +24666,7 @@ 8424d98a44dbea364f7fbf259e3f8e07 8426452629e10ea857cea509bf10c500 84298c2ee702a08c10c18f5e523bbcfb +842a07d3e17c7906d353acd86e0d510a 842a6e586447d28dd15edad7d8c2c08f 842bd654c1a9de1ae231bf18427728a7 842c2d9955795953faa9de49ae14985c @@ -24830,6 +24927,7 @@ 8587613a0d81d113b9cec94f2b9c7ee9 8589c3aadac86ff890ec53fc3df7b390 858a4eb6106da7fe4f235697a06ee7e4 +858ab85605114c068e3e897e05f8a6df 858e4ddd566270e581cbafaa1bd1e3e1 858fd33959f4976224a6790126139d9f 859148c9266cab9411b229b07305d4e2 @@ -25032,6 +25130,7 @@ 86871b3951507a261150fa17d00ca189 8688507b3f5f11cd4a3dc5b413845e46 868b537ad38764182f754aba09915d1c +868bb4ad43aa3988aac08f8e034f7e43 86991eb1355ffc35d2a5039bb93cd2ff 86993c6c3f1e1833a7a3cc6743e87861 869bb234e2767065444f718d89d83724 @@ -25283,7 +25382,9 @@ 87e92dd0e40fc50ebc43796f04ea0225 87ef22ec3877a9d14ccd30aeccfde1fe 87f00f2a5da03ed6df4d05f7281caa24 +87f0e39cd48ba38a6d99faa835afbe8f 87f6e428c8a335e6e4b101ebffb227dc +87f6f41393168aafcb9c01db3641ab85 87f8b35ec1eeacac3b59cd458967efa5 87f9e0c79bc510e7b44e1533fb49b66e 87fb324067b1bd6e5ad768bc867d0582 @@ -25354,6 +25455,7 @@ 884a511263b737c37f361ddeefcc5e66 884b0a9330fc69d5d49a3a6b3f83ede0 884c35e791f1aabed328d72676026f21 +884d41f1b62c73f20c4491f7d849e526 884d808cb3270506628e151c49b051f9 884ffb1cab822a4c8492db48a13f19d9 8850f605aeda7de843dbe36a7083b8dd @@ -25442,6 +25544,7 @@ 88b3062f26b921408c0aba87764af6f6 88b3adaed51aab42fe628c9a693b5454 88b46cf24a7a3cd1cdbcb1029cb0c6e3 +88b63906443380508b381e8b2c8ad59c 88b65d2e6e5493b6da9be84b15715c9b 88b733125439eb1e2448cce121494123 88b82c4bc2ff55409800a729a9df51f3 @@ -25678,6 +25781,7 @@ 89f604f90a8b5466e679b3913ef98646 89f92de3d34aa227526d212921ef95fd 89f932f16ba02d8953763930ce4262f1 +89f9beba4bffa2912beaac73d548988f 89f9cd70ded4727e73a972e513fb10e6 89f9d666f06504da08b5ecd0322d16fb 89fac72430dbcd05e2c14c3f9eb6bc84 @@ -26461,6 +26565,7 @@ 8dedf964458d1b180fad2680309fac97 8deee6aeb279b0b6ec0e086c645b7b70 8def008d89e17619eb340d5085f25791 +8def721c85cec08de05f0e9aa54cb5a4 8defdd23b7fca88d69f6ece6ea63d885 8df011860bb85b91c240e2573dd34bef 8df1867b9879901284a14231f130feef @@ -26548,6 +26653,7 @@ 8e5096d7e10f3643140e2d8bde84c74f 8e55f6a1ac10042f4d63504d4b702573 8e57024d1545207a41c70ab82eee28c7 +8e589099833b8c658a4f64f97e7e523f 8e5933f2fb97ae024abe492df504ca29 8e59d3086c855e1f0938c57b1ff4ce34 8e5ae1879e9e1c2a2b8ad7158477565d @@ -26886,6 +26992,7 @@ 9053e589ede5cf799b9b9596d42d20b9 90547489c9f1c5d83f08c96403af54fe 9055b8af5f0f8fac915e3d2f95ba8be3 +9056852bb99c1f03efd328d4a9ddc83d 9058281d66bd641893c8fc0066e865aa 90582859b0fd0be760a55c71b3614313 905850c28cd05ffa7e6053b189fca4a4 @@ -27341,6 +27448,7 @@ 92c23754c63f287b9f9686abe39f7ab8 92c36f053220afd1ca3341fa9d8cd582 92c430bc558ed92b92cc30439d28a0a9 +92c48e69659528bc694af84967255fca 92c8086c84e0b37b640c9cb44aa16c2e 92c8dd1f4d020de42a8a15f8edfc8775 92cb23f58ce4b861aac0b77c7eded58c @@ -27371,6 +27479,7 @@ 92f2968ab3321be298fa70890e907e27 92f4821c240ca16402e68be3a53bee35 92f5a7d56441e7ca33cf202ebc55ecb0 +92f7e17375718587ad9d3be86653fd1b 92fc4eb821b9ab5457b2afa12d8b84a5 92ffc68c5f1c390604b5fb58aa260621 930059530f1083df6a4f11fdd6f0bc72 @@ -27689,6 +27798,7 @@ 94ac77b584a5b497f2b017846a7b76a8 94ac9531a877f3f6755c714e75fa32d3 94ada90323253873dd90b66ba40e8388 +94af7c940bfda085337e212035870f22 94b0f7cbea9534db2b8587cd9343a191 94b10a0afc1b944b2f7df2817c610635 94b442daad85ca878832332d6a604e52 @@ -27722,6 +27832,7 @@ 94e22cd21ee6e3d00de342b9fe3d3664 94e34579459b8bb6fdd5249a5c46410f 94e7c0c305dd7d2cfb3941ed77d13ff5 +94ec87f3be87da8076582349abc5e787 94ee53e735bf4e02d5d6d2e10dc0626c 94f149bb4c28e82d44b005639ea581b6 94f177f79b4bac3c1085cc80fba218f7 @@ -27765,6 +27876,7 @@ 9529b3962128a44d9cff968a61f89e9b 952a233ff29336d708b1636f01a154e0 952b22ba823b715e18d7f6a18a98c115 +952daae88592ed29e536b0a687bc7b01 952f907ed00aae1d502d96188458dc4b 952ff364f02381d5923fd4790d33f324 95312d1b24a488c1aaf1dc3fd9f618f2 @@ -28008,6 +28120,7 @@ 967758403d06ab582e3174920a9ca912 9678d73dfaf9bee5b3803dfa065d1265 9678f610950c282722077a70094a7d7d +967a63480f72678f750901913770d489 967b01a89ccaf0e7170c35d24980e158 967dd42b2f10cedf4e203bc19c5b8698 967ec6f2e4186e32ecb994733e912641 @@ -28154,6 +28267,7 @@ 9746df8fd5acb58872fb6359f02e9b90 974797d2123f4935a2a3222c82770711 9747e7ba026e9b2129ef83d217530460 +974844e0b11483f6fb0fb03cbc57eeea 974a1e1e59c1eb7e19d87ea50c90274f 97500a08462c7fdc83c31fb14e2ca2a7 9752b843d90eb06d9842418e97e9f244 @@ -28185,6 +28299,7 @@ 977d5de93f9e584aaf760f79d73f5015 977e1826b8e83dc15133d6957e51ac16 978340a7d73b2d9dfead72b642b86e9c +9783cc73906b9f01e19d5da5443bea81 9788ac48083b78b282a3360d34cba2d3 978903c8d30d0bd363eb242d8e6bf9da 9789acf3684f96c2f0caafc477252c7e @@ -28357,6 +28472,7 @@ 985e77fca1abd1a6b2cfdbf11f473649 985ec633ba21223fbbd31f1da350ec5e 9864b9ea121fac1cf437861b6aca3ea0 +9864cf5ec6dbd8f7566669ad122ee55a 986acf25406a033a30c69d57d5745259 986af39f8bed3841397297561d5adaa3 986babb4eaae342f28fae7d442ff09bc @@ -28548,6 +28664,7 @@ 995df8ada5c83cf740813d72201fdfb7 9960d5b1f2ca7fe0b823eab3c7a0a0b7 9961bc7cf483552063e320f7d7580574 +9964d4a4be9dae1b10febc2f55d28630 9964db07992625cf4fb2e8a438bfb430 99651e7fdadec147114f35076e4ceea0 996549f3ee3b174b3fcc6f9bdf1bd001 @@ -29008,6 +29125,7 @@ 9bc60241f70be80046243f842702c282 9bc60eb2112f11c439e1567c3b50cc61 9bc6cc99d092842b65f969acc5abbdab +9bc7e71d8c464e2de2e828990c67675d 9bc90d459fb5a016dfc01eda397d7602 9bc9907cdac51e993eb3f94c38ee9418 9bc9e31d551257ff596ca28bdeba92a6 @@ -29325,6 +29443,7 @@ 9d91e35788fdf67f2941091fdef8348e 9d935262430cfe429c7490963d09fcd7 9d95c47d8165e3c3da80edcebcb2cc5b +9d9777d5ee478878603f728e46cb6da2 9d98fc65878e4629933abde115892b82 9d99d1b2ccb5a8950ac93b23b7696e35 9d9aebf33219b85300611a8c91e7b1bb @@ -29492,6 +29611,7 @@ 9e83f860e740028292a2b5b7350cb8d6 9e8407949b8f4f4ade4ac9a420cdd494 9e848f6c2022e51cbac582aba9131006 +9e84f01f90df1dc8f405c5f70e74a3bb 9e85820fbdefc963d563d5025afde750 9e8769d40c03024bf4ca169489194daa 9e877f684a4e83c61e08de2747ce6850 @@ -29600,6 +29720,7 @@ 9f171aa55dd3a5b319fd4b996ef1c9d7 9f1741e24207ec85de99653036a9ce2e 9f191088b6c278c4428268dd3df88a2d +9f1d45bb689655e7141f7f89127a0c10 9f1db129ade229c7f17dfba0ff280ed8 9f200e257386f251c6a3bc58760c313b 9f22ff86cd3b140e52e3d9fdcc033e21 @@ -29630,6 +29751,7 @@ 9f49578edfd588dc99271d321333cbf4 9f4a5a9735e7a90627e7ce2da9683bc2 9f4b78dc8b5111de238d8eacea7f84ad +9f4ba9b6221d7c579417dcb1220da28f 9f4ddc6427476125544b6c9e7f153511 9f4f809b3ccfeced05f78e9516760e50 9f51a47adce0b9e3c943cfed80b56f88 @@ -29811,6 +29933,7 @@ a03c44a2db95349a2162a337a1c277ab a03cc6f3645a3f99ee05311591c94bf3 a03d656ac0e18d0b1e3da56403e18b24 a03f2b6a68b7b33715bd7afe74b9e77e +a042741fee86db3a41f1db1a04702bed a04441f99124b3c5a097d296103b94f9 a044cafe06a9dbab02af703ae4351cb7 a044f1d1e5bb03025365504da1da7363 @@ -30117,6 +30240,7 @@ a201a390e40cb5e2db7dec9c22be376a a202bedc98d42630836b7d9b13f9bd87 a2055a3a2b1a6d52982ebccf8d2235e7 a205e24bb3607a39fd9d06b4682a814a +a206f9e0bb9ff1aed51cbe684bbcd972 a207b29a98ccf8c33c592d7ab2157682 a209ad43c1313a5fa91e87ba97ad0d0f a20c8de60acf1cc52767edd6e05676b0 @@ -30672,6 +30796,7 @@ a4e06740ba336b7252a674e83e50d854 a4e2c5f46e52d22f2b480e2fc92e774c a4e4a21f4395db7c876ceccafa3d45f3 a4e8652f42673f66069ad19f813f82f6 +a4e8d8887e3a08a850015aaea902c443 a4ea8a19a629e1f6f7c3f95eb09953b3 a4ec1b54c9a2152558783e2e3d4a6b83 a4ecea027ecc6ec471da793bd6c82588 @@ -30691,6 +30816,7 @@ a50856934899d7b0ba22e0219d7c75ec a50a6475615f04fffdbb9012caae4516 a50de03e8890f1f1e336a9332a68a7c1 a511ae9ace9495c309adc18f9b35603b +a511bb1ff5f0f82fe40209b8cb212070 a512462dee847504de2a6e96ba6d732c a513f06df214aef80ef9f3f0ccbb85cf a5141eea4d0e149d321c44d3d318c468 @@ -30888,6 +31014,7 @@ a62f20995b167153a2c61978ea5908aa a630e033562b2502f1f098ee858d0e73 a6315a0db6c74f16591af958d86c9cf6 a63197b3c93ac9bb909cd308b3667a4a +a631c660039554e8aaa64cd3cd470f2c a6324e3efa542db5abee42fb72466ce0 a6328860f557c0ca5180fa123e3ca168 a63556a754fec63abfb4013052fc4b66 @@ -31181,6 +31308,7 @@ a7cda8410b153993b3f112f9c27876d3 a7cf42b2c72aa45d0143a57316ad84f9 a7d06bc8685e7414c8c75318d777615c a7d10c004ec1b02f1b893dcc71bdac46 +a7d25dc45d826dbc8b73b93346a99ffc a7d5d64e2fec691f42f38ebb662ae9fa a7d64290e1040499b1c3be7b3ea82daf a7d71de6b8c80b67e47a3c04f4986c8f @@ -31220,6 +31348,7 @@ a80daf101a5576bde27a0562fa39a4cc a813615d65351d2e5b2c5faf02aa30b4 a8142286dae679088a6e0c540356f6b6 a81454c0889f48a8b4dedb7510628950 +a814d6b139b6f1de703333dbe82bdcae a815255f8dd8ea8f56766d01b08b32ed a8156cf6b2822be4ed2aae7ec987e9b8 a815887fb16aa023e00403a78a3e8e6f @@ -31275,6 +31404,7 @@ a8500c20736f7ec6451b81e7922d9dbe a850e171f57ca7214dd6e270f0fb2254 a85376a28b83d79171bad65d5c0cd17e a853ecf10e295a5340ea1916400d528a +a854e1d2b03a069b3cf7ed10289a586b a856e94c43cf814c0f5ac187e34b6e97 a8575516ce45f950778e2c6822d3a900 a8589fbffb0de629aab10beb6a9fe66f @@ -31296,6 +31426,7 @@ a868a08020c2f51aca1f70b55f771000 a868ab292b4a03756972724718356185 a8696a6fc88b3ed32ed4899816223b99 a86a12ab1f377bc959e830d2faa6611c +a86a3083d1bfd8f49e34cb1d6cf746a9 a86a4f49bef16f0e7d7004d0be4b3be2 a86aeb171959e769847870e08169309d a86c7122f02d5e33779e0ee002a001e9 @@ -31341,6 +31472,7 @@ a8aa1e299c844e49e769fc4cec46e7ae a8ab47eae0999b40539c51bfa6b263ee a8ad92aa5e0abd074ae841ca7eb05631 a8b196597d26b9df153729f8901b11c5 +a8b475aba9ee8661b3b73eb3b0ef9583 a8b4b7dd11193180087f01efe9bd0880 a8b7e7acdb0d306ef5d09f93eb78b2d3 a8ba540d9bd8109f0364d28533121079 @@ -31355,6 +31487,7 @@ a8c899b7aecb9ac02006f2270e1dff9e a8c8ea60889237392b2f5570897bd886 a8c96be24390dc7884ae9f609efa496d a8c9c547176cb01c560ee5d5d35cc0ee +a8cae0e5c4d027e9449396fe4d0815f1 a8cb22502380e52f5bf22f9cefd079d7 a8cbdce74463d485b2ceffc4a37aa21b a8cc74a4f58eb478afcb1c9bb555b90f @@ -31432,6 +31565,7 @@ a93fc1bd88fbc2df95034ccd7bf4010d a940307cd0af50624f8151352fa658db a9403c152e6dc54393245bcda33c73b9 a94049ca1c543ae05108f1bdad6a7b57 +a9415a2f7c89327d6664be07b5104a83 a942628dcaeaf3c05a832b5fc184eff4 a94271fd6eeda401f2c591a95e2f06d9 a9428e6bbabd9f647e9f1dcdbf6e9e81 @@ -31746,6 +31880,7 @@ aadf6cbe3e7adc90b59c4da78a484ee6 aae08c272c8db732acd0979aa47d5864 aae0fd5dbf21ef01122e17c191f66ca1 aae22eef4260b0d141e70af505d64627 +aae273b9e3bb49c66f4d20a6b262b0e9 aae2f3185d477896ab2c3e1e946e94a7 aae337ad54410abe22085fd79dd42421 aae34367842a723d74b5c7663c84844f @@ -31897,6 +32032,7 @@ aba16813601bd452fee184a3815b9779 aba30058484749643439fb4f6a06b3f4 aba40c1226c50fcae9d5faf0b6a3c9bb aba636a9741ad125e78b07e9dcb057cc +aba79ecf897214d2e08ed1f560564042 aba913bf8fecb68046821b21d32a753f aba947b0945cf24cff8fa86a03dfe139 abaa5a127640864d9be9f87ef6db1752 @@ -31911,6 +32047,7 @@ abafd81efd1aecdb84105435c4fe22b4 abb0ffd13a6155c03bdd0b852640f81a abb217c5b42933679c59060f372a91bd abb2c76617a43c0872d45ec706ab199e +abb3175fa3c6474500c97d75ca546bd9 abb4c87957510f04117710d2c8805589 abb4d8aa46709f197491ef7d65106cf1 abb65d50261d54da7d7de3c53494af67 @@ -32555,6 +32692,7 @@ af067bcc545e067eee3f528d6e3c9851 af070590153217a2d8d31a2f3a68c542 af09a8675dd1b2d7cfdb51d204b36d42 af0bff6eeacd222285e5ef241c4e610b +af0efb3a79e1921962c63a4ab517d198 af1104a6c84787397db205a9984f0da5 af11fce599c55d9e8d677a2b550614fe af13405d51f98995fc0b2c121d73772c @@ -32619,6 +32757,7 @@ af5f8ea812f6fade2069847b33ef2681 af608ce4413626cabcc8d470d54a4144 af6544bdd3d79467f8946d9bcb5e0b5a af6545d1cd3327470756725b69335cdb +af66bd34c313bb7aa3f7cf9a7ff0d1a2 af67340f0d5ffe18181d9a356ead95df af67d598838637d4c2299843ee81236a af683e9bc3d22fcfb02bd187053d9cb8 @@ -32880,6 +33019,7 @@ b0a70dc67ef8645c2ce961e96027e2d9 b0a7c582d87a1d1ea55618ca90c7bb52 b0ab7c0702eb486eb3347d177c3ffd44 b0ad3034c7c8839c63c232605e13d336 +b0aef7571961edba6cacc8ff711c6da0 b0af8a15da5d662d4900dce3379a5191 b0b0c709f8a52d22f780261939df1b0e b0b1096dfe76c31d920e4ed312e5e507 @@ -33019,6 +33159,7 @@ b157b93be085c79207c9422cb7e9e33d b159a6d68606f60a60580a09cf7e78bc b15a58aafe4d517835c8714e9b4db95a b160692237247be24409094ee0ad95ba +b160e760b8348ba77366ce694a92d13e b1610be7216ac211e6e39bb65e566cf0 b1661ba861cda15cc1d95e2f8a7241ab b166d51fd6a36efcf180e30482c20793 @@ -33029,6 +33170,7 @@ b16ab5f054c1465229a0bdb2b42cb0de b16c1dbf1578657ea2525e8578dd009f b16c428253fa1f8767a6a605a84c7f7b b16c512ca209542f3e842a415050ced0 +b16dc1e3e70fbfc8f5eafb7781b9b902 b16fe83a264f55b75222032f5e498177 b171888a2e924ef45be770688dfc7aa6 b171bba5b2144b05de78b49586dd7d97 @@ -33072,6 +33214,7 @@ b1964c1efed01461b7091e279d2f06ab b1980824ab97d32da1e9a2f06d47012b b1991efde207664138a9323499f0583b b19996ab23c7493987fb14d8ac110be2 +b199c0054d2a9fb1f466b1912558abdf b199f67e96e0f2906a2c5cd364ed15d4 b19c6c8746bce23db93897c6312d3f5f b19ef5f16ab1f09a93a5edd42576cf08 @@ -33560,6 +33703,7 @@ b42c057630f7f4f1ad80977ca24c0121 b43016383f818427ecfc3eaa780824c2 b432216db666cf4c5e7d265d189b9c04 b432851882594e7dde9df8457ac1a47c +b432b56ac844c5181b0f6bdd45f70881 b4335405dd8e2172e413fd5bfc4e9812 b433cd7bf1314d3ab7e60b889f59ce4e b4350c822e414a85f403129d630e5274 @@ -33837,6 +33981,7 @@ b5dd414058bece579223452845680255 b5dd9625f2f49471d2b272869d97fb7f b5de16777cc623f8f38fa488c1f65eeb b5de4f8c96fb638eb8a3c0def2872f1f +b5de87bb320d2e80ed253a42134f228d b5df908d4737853dc289b64d79834f15 b5e0219ac7ea8c642579f40322c5a1c2 b5e2e3701e1f3e142fecb2587034cd5d @@ -34314,6 +34459,7 @@ b8608f844b96b2479a59197fb01ce72f b8612f05b7b3469670695a8be4a4ded7 b8632072679ea01fdad246db6191e6c1 b8638979ea8c5f41606350b3d9a0c9b0 +b869510c5e72e2bdef7e8b059b370423 b86ac394f404a5ff16da4ad61b7c2468 b86b81062bc60b5b3bfa578cc9f927ef b86b8ab06d3460afd3f600fd06384254 @@ -34552,6 +34698,7 @@ b9d1249478e3934e0451ea68b061a998 b9d1948db61cefe6b94a72d5b13c3210 b9d1ab89b7928a83c1c5ae0bdb8f0ca8 b9d5551c3540426c8a178ec81122971a +b9d589a5341a93bcbc9aaad3102af709 b9d5973e8d6f3c0fb6a0c1bc091d8ee7 b9d903a427b1c8f1c6580f189665e36d b9d938b0445f13b978d3b0c901f2bf24 @@ -34602,6 +34749,7 @@ ba1987ebfcf643da479cf344c9c2f624 ba1a07bbf50ce78eff970e3c7f506ce6 ba1a1b6172a1205ef6df5b10a80f8126 ba1b4396cd82b7d36808421798339113 +ba1c04316648ef3c986b451444cf4213 ba1c65ff320e2960b39e3a4b0a61f04f ba1c76a51ef7649a07b8dd88eb79ebe5 ba1cd4b62b9dc5ceddec44719c16c2eb @@ -34679,6 +34827,7 @@ ba7586b9b4f4338bd4a8fd7d2366243b ba777b1fbda380609d611db54fe9cbd0 ba77938b60b756ca36683bed9ad469a0 ba78b55a233407bf0c6e359028483cd0 +ba79498df405dc3b6ec95515fcba0492 ba795ec2e36ed4937bc1049b434694e4 ba798215fed31ec3da482a91de1b3445 ba79a6caffc5117e8f3196eb7ff48ef7 @@ -35090,6 +35239,7 @@ bcabd318018eb3b60c7a2f6bd81da7e3 bcadddbc7b1bb0a8beb8bf4af34ed08d bcadfa00a1c65b068f201ebd5155cc91 bcaf513b6d06d25055be70a130d0a575 +bcb0195549a6cf8acb6711a79bc02cb3 bcb076b10c0ec05737dc90f5d2978487 bcb0971bc7c2457e5971c0508af95265 bcb2844ca4b7708c2b2c14f56ab52334 @@ -35099,6 +35249,7 @@ bcb6e0b49fcb6b8b055e58c0d8ad285f bcba07074b5a3083456b52094d340ec4 bcbc6b3cf98638baa84e22efaa04f7a6 bcbe8348a4107ef688298f76ebcceb1b +bcbf6c0b4d7631cd92fc4167c628a600 bcc37ccc0025d23fcaa7403127751e46 bcc55a33f1c4c58670b00c72d9787f07 bcc56dea1d7f70b8506ad29b96f214fa @@ -35125,6 +35276,7 @@ bce3f4ccec0e8bedd5a97c3523a8e2c0 bce47f546f07dd52ec3cbcc6ae1d2a0d bce4a83b51846e724a69e2323bee2565 bce7a004287cece1a43ba5f4ed69ae95 +bce85622ce0dd3568970e9fba5f921f4 bce9aef8219ede97efbef91a3b2d9c47 bcea594f1bc067b29e22099817b40e57 bceb637ca41c7e17846f86f02871240c @@ -35444,6 +35596,7 @@ bebef1f0f1d919615911ee50eb4cc1eb bec06655838c61fc533a32ff1dc4afd8 bec7ca27ea5b58a2e59c69ec483527e0 bec938b30a9fcf92592b9f7d5991d34d +becae7cadc63c5a25160c75d78ca1373 becb39128633cf1a225e7594928d40a7 becba62c2de30cbff2c2e688f625641b beccb10c63ff39edfca6d75653118e8c @@ -35523,6 +35676,7 @@ bf233ce1a481581d687bb62331d0c643 bf2452793f3c6cd940f4b079e9da0cd2 bf2532fe6ce175b3d21a1c242e0e721f bf26b8d8177f1c6e71a1287742307721 +bf27e5ed19843984298a49acc078b212 bf27e77b52301acb2371dc7aad3f1ca9 bf2c48809c80ca195fad5fec2191ab26 bf2c64e03c31bbffa29aed80752ef228 @@ -35821,6 +35975,7 @@ c0e1c249434d9ef114efd4ad3543768a c0e23702e09766b7581ae7f9ba24c0d3 c0e2b7e3528e43ed5a8f130f6ff3939e c0e2be1e6d0fbd722988fed47babfc84 +c0e2db92479585a34541ed6bcc795201 c0e332a206dfce80abab3eecd73d6da7 c0e381d5b3bb56f23945cfb018182e20 c0e3fcc18db9d332c25c11f698565234 @@ -35949,6 +36104,7 @@ c1662b61ba2a432993aaa8adb3739bdc c1673faf93e54d0eb24fa234ff4ca448 c1687b5d908456ee2fc314ab832b9dc8 c16a2103e770626c099cf2700dc5df38 +c16b64300119ebb1367598822e1e3f59 c16c3b521a37ed3e08a70d55ee8d7baf c16c9f4eb346ca2671debfac466ef191 c16d75959c1b2a02d2ff791e07d72206 @@ -36088,6 +36244,7 @@ c20608e4d8d40a33e60061381fed91e7 c207465f7436477f030826802fa8d5fb c208199fef03e5d6d9127296094252dc c2096946a2ec9d344b3d74610cb1867b +c2096bc1a301472a6f2d723500ad13e0 c20b90b283a9917d0a192d00f47c32d9 c20bb6986c00324532f15344ac9b350d c20be8853de7d462dbef5596cccf5d06 @@ -36171,6 +36328,7 @@ c27f902332b821b43942e16ff7b8c861 c28728ffc5d176400f57423370902b3c c2873d4d00e7eb354028490a13c4e81a c2889806d60588b2a6c5390ba5416474 +c288d7cf37350be1fb837ef642330d6c c28a6e34dba002dac2d1f83496bb3034 c28b7f4eac528160c60d2c3753130d1d c28bb64316eae681ed19c65b1b2e5c85 @@ -36353,6 +36511,7 @@ c35897ffe17c91756ad6ed2f4c2df62a c359755e89002d8bb3f14da9a8d8639d c359a1d16ea94073f0b2d66e5964bbfa c35a4811bfff3d052bc72542545fa870 +c35b441f400343863df7764a84410222 c35c4e36dd18812818fff0cd81216267 c35c5529b6277d2637e258650f540de1 c35d4eca0f2bc31bd984dc15fcba06c7 @@ -36729,6 +36888,7 @@ c5732c9cc93b85f973a546d278adc2b3 c57387e1e3d8c5eccc7cdd4e98f4b205 c573d56825619ff2c67e341f64133af6 c574e021faa3b2f4d321b6e2ea0d8901 +c5757cdf6a5ca392312d7f1ae7644bfb c5759e87dd67aa5c513db85a2a6f15ec c5776d8d7c1821197bbef236424b90d5 c577889f4e7b13ad169e8898cc92d207 @@ -37042,7 +37202,9 @@ c70d865d7414d93a8614163282b6b421 c70dbe1f7c68539607ea9f81d3206ce7 c70fe8047dee6d355710a98111452cf8 c713d23be678056360d175b8a90a6599 +c7151dd6667d9a4b83d874c2fff06ccb c71676185918675711878b1bf201a765 +c717185e5e2a2fc5bed8f392d2a82e22 c7191f68f7df95fbdf341ce76fe8f952 c7195894a22c31cf14de2240a7f9b54d c71c18c57fdf1c8b6ed4b687edb3772d @@ -37182,6 +37344,7 @@ c7ed4ab01a672ac8a8470b5c60e5949f c7ee3db4a097aaa45e885581f28beafd c7ef72bf5d359bc97e3450045ecf66a9 c7efc97d246c9e47d8a7fabf127baf7a +c7efe97417d8550023d082e03b93cd57 c7f152fa93013ef1fdc8a125ae1f0fa1 c7f27f959c83fcc2d30c7e1c562ec71b c7f3861dc4325c2786e2fb0be4a81174 @@ -37198,6 +37361,7 @@ c8004d37f0385e670b0101a7391094ad c80190f89b911c4629e15ec667c36f04 c802f8231c39ecb66ff3199ca75179b3 c805f82d956c6e778b6bfcf438781101 +c8069c891db41ea68b6387ddee13a50c c806cd12f696205ef55ae1eb2751e4ba c8086993f26fee70ece394bdb7593e40 c80a7ae9a7efdd50fbc5b8bf3d342dd4 @@ -37228,6 +37392,7 @@ c82dd07b5259a426e7296e7e9c63021a c8315ee619ba9d400e8a2d848d048bbd c83335c1576ab28f94f05e79b16b49ce c835248adb6b18e34a45770d864713f8 +c83524aef20aba50fd13661f00402cf6 c835fd0a00a5705a3ffddfbb183e7c67 c836c29d4d71f5119ec19079f9bb6d94 c837b333d1b21d8b4cb31a26e8c2970b @@ -37604,6 +37769,7 @@ ca1bf0773b56678031b4681919c79b80 ca1c71d92dffaae0da278344196d1496 ca1e4be1c0117fe91d1e7b4cbd165ec5 ca210ae240da1d1adc2111e683b4420c +ca2201581ce15e472fda38cac221e01d ca2211b5e1a98fd6b697db99620ddbcf ca232fd5cd14301ac37e546340748571 ca25d41de97bcfca748a0f0171bb54f6 @@ -37797,6 +37963,7 @@ cb02fb6b1eb82a6749a34a33707be0a6 cb03f44e29bd64c4aaa6fe1107578ba8 cb0593a36375b7823c51483ed93aa8ca cb05ef898dfe11a4222868777df2d351 +cb060da0161852857ccee2e3e8f9e603 cb06fab0d6fdcb6d7933a0749b893e41 cb071fd1c728ff567043906072eba5ef cb0c3bf0d4eb67a382f509b65bdf985d @@ -37879,6 +38046,7 @@ cb7e490b9fcf18f3c58e080cd740cebb cb83e70d5011ba0b7592b6dcf1ba3a58 cb84f8064f77b117ba662cce95264f19 cb8847df0560dc0f03548ebb0cb46657 +cb88bf847190e2baec89ae004b6e8ae3 cb89e25ed6e968bba8a40162b05b512b cb8b174fd84b0bba429d6ea876546a10 cb8bc58698355fb1c19ecd8df1de900a @@ -38104,6 +38272,7 @@ ccc67030a5249bd95ff7976c8a16b845 ccc70d6b2ffa127819eb2c75ba085a63 ccc8bdeae955648928f0a092d70c2802 ccc94bf22246f2b59621b8867376509e +ccc9c282ece804ffb2d8566f5b1ee6df ccce5aff881c3ff9f3c7b8831a836efa cccffd87efad1c006a992fd6b51ea846 ccd1731ccf710229cb2152d68870e091 @@ -38330,6 +38499,7 @@ ce06ea6cfe067c1851b87f40a23549e1 ce0830eb28d609d24e520ed57f48c1fb ce091bf03b5eb8e5a0a554a1c2eb6526 ce09a4aa83f73b8ba6289af206a4f6ee +ce0d7f7d462b352e9c8ebdcccc2d77aa ce0ef093a5acd4fbd70035992b4fb98b ce0f9469d0d101c721ad1d3d8bc4bc64 ce104201c33f93c03357be91c75d5bf9 @@ -38351,6 +38521,7 @@ ce23848a8cf1f8c8508fd4306d1f5599 ce2559e7a31f4eb3e87833e6974f3a22 ce25c734868eb18baf8e4aff1ae3ca71 ce2852ee9df78fb230632e88b800ca40 +ce2a28b11f7e81e617090991bd8197da ce2a9dff1b56c4663e614a9c059fb30b ce2cf03e8f0aa07c395c29f97726e2cd ce3114f6c20302af0629e0e832d29d8e @@ -38424,6 +38595,7 @@ ce89107bcd3ec6f73bc65cd843416bee ce89b58e13f807979e5d16334d3d7ff2 ce8c6eb1286eac383024f9cd45e40aee ce8d77d0c71debdab00ff1415f84696f +ce8d835c8bc202accb2d44a772d85f15 ce8f51ed1a082d3428760f14379d179d ce91381740e566ca42bd4f6e11da5e9e ce953d2b2e4b538874cac52777279440 @@ -38471,6 +38643,7 @@ ceca246651679761c6a631fffca56a7a cecadcdb828d657c5072235c4f25ce5d cecbdd48a7b30a29f1a83ae4cbf6564d cecdbf4b860acf733f8d050f01440b79 +ced91b34e00592b8f2c74c061585f765 ced9613c7e8d848abdd4a8d0f0742244 ceda52ad07d1be2f359bbffc77b6b85b cedaeb0bd29fea2b4f2095b15c66ba57 @@ -38565,6 +38738,7 @@ cf47ac70448ffe55c1ebe9cd134386ec cf47cf93822ec8170f596853fc320fc4 cf47fc5539c47154cd7cf3f5a7426cf6 cf4b1ac9155becf5cc12a70bbb1b6dfe +cf4b65ca9526ba464c46d72b4a2f7f6d cf4db1516d6a8de520001d893caa03dd cf4f87da2071ca5957eeefc55b0a6342 cf5224b3e8c93444df7c1c10f48d6870 @@ -38574,6 +38748,7 @@ cf58148f54175490ef7d7c66dcf33361 cf5ab1096653dc27a685328ab1558631 cf5c4d4bb531be453b3dc746819ec9fd cf607dda9f8ef33c99ac204a08cf47b1 +cf611b586b6ec53c1516f535360246c4 cf6340d9a47d760680575e5d09f89e83 cf63cc21e68ee4f727a5bb02eec113e8 cf66a9d6815c68e2d18a5efa85aef5a6 @@ -38721,6 +38896,7 @@ d01c3378002d9d3e7f80c05c448671b1 d01cc450927cf0412c8e4a67afd84e46 d01edf77b7c5ad374b9fa5d14ec61632 d01ff9f9c09f3c3d7602b6ad699b0875 +d0216ded7c1d540db5e17ff51ead006e d0237d02c89c07dc906e9a50d4dcf261 d0242d282a35ddce370fc227469d4ff1 d024a6c5037aee9fc3581f665e41590f @@ -39020,6 +39196,7 @@ d1c94fe461b176c70485ba632bf8fee4 d1c9ff93baf7f0c0072128d9fe8ba453 d1cab63bf309819e9e1f1321c809f72d d1cce21a22e2449846999309891fee33 +d1ccfe4131a1a8fd573ca3717fd2b960 d1cf7ff96411f991e8b11a4964cd7819 d1d1b1dadcfd8844b4fe38126bf313cc d1d3db80fbb2f8e46d736e619860af99 @@ -39790,6 +39967,8 @@ d5e9050da29522a5c72ecca42ffd4251 d5e9d8e846f9ef388ce51744f19eb8be d5ea56e7df1b965b8805f8973a222517 d5eaaa3465574b330c6c27bd2ac23a32 +d5ecdad92f107eebf26c69c41708308b +d5ed33931fbba1fa5c1d431b175833a6 d5edcf161d7dd6cd71c2dfb31ee1c510 d5ee1bc14139d3af2afbff2392702a3c d5ef47d12ceb755348974ccd7dd4af38 @@ -41372,6 +41551,7 @@ de0547c068ccc028ba4cc1f28ed915a5 de06a737772e7c2fcf5cd9a93c5be6cc de087678f68db38ef8eef1e1f0b7b05c de0a0331c5e2266fcd2ab4ffb27f323e +de0a817a867d521766531c88c28a46bc de0d349c73f32438c8cfe529b839f49f de0f7693123fd000c1f2ccd5c48b895e de0ff48c7ac1f0c553a1039fe1799982 @@ -41465,6 +41645,7 @@ de95af2bc32fa7169b1e2c6a056d0fe4 de960d178f2d7465d2164b149b30aa64 de962d5c4da6269bd7a97f9d22159b26 de968c1d29ae9d3a568aed6627ebd56a +de97ebe125963225d471e7a662b4b98b de9a0e43a4fd52abae6862ac1a630d92 de9a25066f54a65fdb62a4cae47bd867 de9bc3035cafb7999344df70068204f1 @@ -41535,6 +41716,7 @@ defb126b13d295ea4ad9c60ff680e274 defb555d456d7a79c376e364631329b8 defd852c049e9fa5e839cd442f54276a deff411de717292a4449e17bfc04fd07 +deff5018e45579cc7f0f4ca52b9bd53d df0393f839b1b01518dd775ce2fca52b df07082bd9a99d6daa0b70a764e863c9 df074577784954d49b4d8018cf685678 @@ -41813,6 +41995,7 @@ e08fe87934d3481f1c0a0e7ef16932e1 e09094ff6ce7c88e70c91811fc4107cc e0913abdbb32ae0c29d135ebb03e7bb3 e0918b0a25ccdbc6bed7f4a741c6e298 +e091ecf5053793fecc2a56f9e1a7e3e9 e09227268450a76a703d8954590ad8e3 e0924829355e45efea09944426467943 e0943453cadeadf44136499c28af7929 @@ -42077,6 +42260,7 @@ e20ac72483f690835af33a32fb5811a1 e20b4023023c6a6cc1b53c7ad0b02c6e e20b5a2642acc6f580f1f8a07d4fad53 e20bae6839bd42bf0d421cafdab9ca29 +e2101d4e1831a45f3410076fcdd8e497 e215cad849e1045fb8d40dee1dde21ed e2180b4a195add9c677af858bf9c8c57 e219cdce32a330a21e46f5415a18d76a @@ -42123,6 +42307,7 @@ e25096716e8097a6c146cf4aed6c1d94 e25185c8dcc90fb8f9a54acf4194bf34 e253bedce4ae5b643c6cda8732e774c5 e254b87fdf5db942f03cb7f777b1272b +e255d6fa4ca0bd281ceb6563fecfbdd1 e25626d550ae59318e49c8c1e66f2d84 e256a43465cd0e9879a4949770c748b7 e2572bb759c6c887e40591d126ca2744 @@ -42165,6 +42350,7 @@ e28ceaaf23ad82f792226acd2a236a4a e28d05cc44c6d65e0a8fd8a6e23d3a69 e28d8efddf4c487340edbc63d037b1e8 e29045d56da1989bcaa63b85c9e79291 +e291f84f7ae263c3a586f7d6f3083f4b e2937cf5e89532ee32cb107d1cfb6f7c e2946ffa46639dcfb7a3b2490dc8451a e29635524cb702961a4bc1e1c6451a5a @@ -42244,6 +42430,7 @@ e2f9b78ab35ff32fe3cc1768f23f995e e2fa2ce826a7f4b3d8bb60b3dbf001ce e2fb2ff566cbe012570c854cb4616f5f e2fdb193213f6b209e12e99fc81fe96a +e300fb6218a28ac766a44dd9f96aadf5 e301a8cc8f8e06cdbcc7df996b93e94b e3028611571e9b87f48ffe12f619d1ac e3034572daf08b02ba908451489d3134 @@ -42414,6 +42601,7 @@ e3f056b4f5db9d56f6b9d3c724055a8f e3f11a553bf85c1bfdf97ba0e35851d2 e3f6e877df51f1df9e94cddd5cec1a8e e3fac11d6e21127d44281b3590374103 +e3fdce0b57119a256719f3f578564c91 e3ff5427c069674b619f0f35754da592 e3ff8893e2cd4934989081b0fe158249 e3ffc6475212b90741a4b443a1603cae @@ -42470,6 +42658,7 @@ e45340763a211b17b1311578539a3bf6 e45406e192feaad91ab832cb4e43cbff e455fe9ba335217ed0c94662d3359db4 e4560ec419d3fdddd74c91e57765c4ca +e4568f5232ae61b25b14d6cc4b0949c4 e456bb8231a0a408576e502c3448906f e458bcb8db4413c7a3c146e1c7a2b8f6 e458d1e74544951c9f909e28144b75dd @@ -42743,6 +42932,7 @@ e5a526708779178ab009e9efbd7b6586 e5a56607de28026ef38a96c8e77bf010 e5a595fd66578d8bab60de0fcaafe237 e5a5b4633e1ecd223f6a630e8532ad48 +e5a919ce8913b315e99ea813fd5e9697 e5a9ab74bbb74660771264dcab33152a e5aae759aecbc592936875ee3ef65380 e5afcfa23f8e58e7ea5371e9e4b60be6 @@ -42838,6 +43028,7 @@ e63077712c3878a0dd9086bc4d8a324d e630ba01cc5547a799cd58e4b223d476 e63215b7601518fbf2b6f38df18c5e60 e6321847b69fc36a32236a00d03cdbbf +e6327ba6e9d9e886e440c419cfd7331f e6331d488bbdfb4d92a1671110f32661 e633bf01bb94b37006a23d87572bd147 e63403867407a1b72e4b45ff127f3433 @@ -42902,6 +43093,7 @@ e680fa43b4c7aa7c8dc91debb910ec2a e68391e14be83ad5cb428c2cfec6bbfb e686d582b0292d6fbf390cf19d2676f1 e687eea879d77fd26b64c75015ad1a2f +e689059aa58fe68da552d8ced38f958f e68a34a16c13b9376e9b0fb6d25cc124 e68a653799edc964680f3dd5e9c79725 e68af299d861cca9c55b5dcde3825e50 @@ -42987,6 +43179,7 @@ e6f5a5c0d56bcee8b6b87e2dfd8b79a4 e6f78202abbcdc4dac2bb5868e7636e3 e6f9a1fc78888abc07c3e20791aea4a0 e6f9dbba94ad6804171f2bd740a60923 +e6facf93112fb88e70f707c69e14618e e6fbd802b65cefffe9b25ed27bd324a1 e6ff2ffdb517d5de5a85519cf199afeb e701c443b45866dc9f13660e45117f6b @@ -43475,6 +43668,7 @@ e9ab9f3dcdeebc709e264c39a65448a7 e9ac8769715d5c5a92a2fa5b6532d24d e9ad3bd3e05ef6016d774c6941f34b13 e9af1c6550085a8ba16c3ce96cd83158 +e9b33b7e844d616f44f5bd0d657aa550 e9b57af3ad907dafb1e08e300b765513 e9b66df100a9826f2090cbff204f69e7 e9b8c5f85c8711f633f61d555bace8e5 @@ -43951,6 +44145,7 @@ ec27878e2f71353214491d914ea6fd05 ec279ccddf12f0a3d18fc035c4ce537c ec29d87198be3d6dbd95e4e69fe94e5d ec2dc762200eb17a2191fbf72ab84a9c +ec2dc7c418a14e64c5a22c36ec3ecb3b ec3273babfe174a70640325c63e72c1c ec34dc6434f296c868a4d555d9ad9cb2 ec34ff7303ce3738e5324d0962cb02fc @@ -44080,6 +44275,7 @@ ece6bcafa34152f0befdc0b2a9d2ec5c ece9ceaa2fbef197c53066993a5f5ea5 ecec18d4fe0d2df913dadf22afdd14b8 ecec7bb7af409223d2b8fa3bcc5f41f9 +ecec9c787a6a76fd7f81c7f75706ed25 ecedc3df34cf0d9f97ab7fa01cf4b317 ecf30f633e5795d81ef632f5350b9162 ecf3f65c7e8d89c8a55e7c2605674862 @@ -44136,6 +44332,7 @@ ed24431c0c405ff288ac1375110e7a73 ed24784023861085d59efd85b6e400c8 ed2488672bfa641b2313f69e0708fa9a ed258eabf8c9d1809b6238b1a2d293fb +ed26c6de499b07009552116a8b481230 ed282b8104b62b9de984317bb1ee0b3f ed2aa2c23a4db744a6984190c21fe371 ed2afcafc1863c1efd1b62210e4e73d8 @@ -44287,6 +44484,7 @@ eddbcb14280502430c213441f257c3d7 eddd69004278a4ecd2a06482cf906f3a eddda44e26cc919e4ad69bd5c0927c6b ede0c86505f940b6bd639a0cf034a973 +ede139c05fb1da3b51bcf938a8becadf ede3f740335cdc85a1f8a865b275a307 ede4666eb8603ec8112601c040d49b45 ede56a182eeebf09b8fcd670fb5acbc0 @@ -44430,6 +44628,7 @@ eebd8e12c2539a84823217b59fdbee5c eebf56ab8e0733dd671cb84159d26dfc eebf99523aad6a142691ddcff3bf0d4f eec08ba43414334cf594bafcdfefcee8 +eec103174c5d7f98897d7ef1cf0e09db eec13a549c6ebfbd2b9a63969082a36d eec144ed5e73fb743b5fa0440dfc552e eec3aac8fd33f752419878a13e5dcbd2 @@ -44564,6 +44763,7 @@ ef6bd3465a28ee9cf6aa24207b979f6a ef6c83b9b535e5af29b362bb40a44dd7 ef6f1365b31c8321c0788bb9dd19a040 ef70325a61dbbed6721bb04534012167 +ef7111c4250ba0f2625eecb7bf65c242 ef71f4c46ae1d6aa3ff903a2385b220f ef72c2aabd5e34ae4ad402d53e020671 ef738a2039abb790e012fbe54bd9221a @@ -44849,6 +45049,7 @@ f0dbb7400d4771a2bfac48dc72ac5f21 f0dcf4ec180d7a8093e3d590f2224317 f0df3cf5f8e8d558a4e86ff6fc7fb7ae f0e1c5720ea75497b0ec7617d33a9dd6 +f0e31f2396324b201a640eaffa3885e9 f0e7859d1357b295aedeab2471c848c8 f0eca4761d3b9cfce2058abbe1883ce1 f0ed7ae2242b3f940d8f4abe6329c851 @@ -45552,6 +45753,7 @@ f4b9ec833fad6a119cd6f418e030896a f4bb276b31acc783b99bb89be6caf53c f4be69e55b2ede3b072139b0d56192d3 f4bfe11702f8cc47bb5fd8da527dcdfa +f4c02e07b052a26f8c8fa316b24239f5 f4c03c0836ab1df0a42c1e61f86a764c f4c33bc101b9e014ccd3c19292bccc68 f4c54000cb8b1372ca72b28a7eaab58d @@ -45894,6 +46096,7 @@ f6896094fedd9fa8995251bcdfdad4ae f68ae7e7be20b1fa2428dc4bbe49fd09 f68da1139a3ba57c1d66225da0c585ad f68e9bade32011ddace66e5fe8788711 +f690810fdc0352bcab870660941742c7 f6943608057c906311c8652716b0bfef f6945e6c3a8039599c7191de19d0118b f694a9f976383a7ede6f8fb270a9e7f0 @@ -46053,6 +46256,7 @@ f76d67994b24dd782890525ec57f8856 f76ec17c4c00bcf343402b3ba6f80002 f770d74061d61bb4a19e59e48ead279f f77133534e6e670c72354ec899b763ae +f7721c84c0215d75f874345dd3cf786c f7760dfb56e99042adc055f6efcc5437 f778cbab9c7ff1d9b9faa0fcef277150 f77a31feb2531ea362e95f1f445e18be @@ -46179,6 +46383,7 @@ f81f29c21949f6ec4874a52c1a8bcb14 f8203f487719248050a6d2242dd4c8c6 f820546f4d19b888a5c1fd9e9af3da0a f8212c07cf2c06e62f136d0f2220bc9c +f824f9a2fc66f013aa12a4883b962e24 f825f4f6913e4a2dfe3bbf1b7ed68c65 f8267072405d07590851124f661f636c f827756d8de0937fcde5329c7dd89007 @@ -47003,6 +47208,7 @@ fc9ce3ca53307a6843bd148bf5ae0fc0 fc9dd3a43f0ae139e9ae5aadd80ddec0 fca0e7ac7298000f82a820c017425f4c fca1776e9cf97ab5d32aef9dc189b818 +fca56a428b5c13372e3b912c3d05d519 fca8db86d376d4e845a379fd2f3ead06 fca981982b5301f980c50ac2e5a757e2 fcafddd71789f3660b4211c932ae0e3f @@ -47207,6 +47413,7 @@ fdcdb782389e3249531534951281a11f fdd18f0a1db219bea88a0ff9fdca4b63 fdd329cba0052c33269ab23ea9c63e02 fdd3325911a4fce988f6fc3d9c66f64b +fdd3c0e9f3af94072deaeb9fa11b9a15 fdd727deef6209b900007f7cba9898cb fddd7eb9aacbf44798a9d7d493873f80 fddef0c27f2c7ba703a006912a35bf9f @@ -47368,6 +47575,7 @@ fec024dfdde6e347262968adaf10367b fec541d7a8a95181fe9de32cef490420 fec5aa7042d154bf4fc4baf62a450045 fec629773270160ba4110b9871935213 +fec6ae44e7a9512e320cd7c8752f39ae fec6c4dc0fb8c6387ff66142a4390802 fec6f80d492c6e5d906a129e990366ce fec8460590d596f617dbe432f06922f4 From 913dfbde3cc02c6775cb8d2cb547a679ddce540f Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 29 May 2025 07:26:13 +0200 Subject: [PATCH 412/417] [fix] plugins: currency processor bug Fix C&P typo from https://github.com/searxng/searxng/pull/4836 Closes: https://github.com/searxng/searxng/issues/4861 --- searx/data/currencies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/data/currencies.py b/searx/data/currencies.py index a4f2901f0..0721037a1 100644 --- a/searx/data/currencies.py +++ b/searx/data/currencies.py @@ -51,5 +51,5 @@ class CurrenciesDB: def iso4217_to_name(self, iso4217, language): self.init() - iso4217_languages: dict = self.cache.get(key=iso4217, default={}, ctx=self.ctx_names) + iso4217_languages: dict = self.cache.get(key=iso4217, default={}, ctx=self.ctx_iso4217) return iso4217_languages.get(language, iso4217) From 0b4c47a123ba2192990178ff94da7d347d3da9c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 07:43:50 +0000 Subject: [PATCH 413/417] [upd] web-client (simple): Bump the minor group Bumps the minor group in /client/simple with 4 updates: [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js), [eslint](https://github.com/eslint/eslint), [sharp](https://github.com/lovell/sharp) and [webpack](https://github.com/webpack/webpack). Updates `@eslint/js` from 9.26.0 to 9.27.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.27.0/packages/js) Updates `eslint` from 9.26.0 to 9.27.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.26.0...v9.27.0) Updates `sharp` from 0.34.1 to 0.34.2 - [Release notes](https://github.com/lovell/sharp/releases) - [Commits](https://github.com/lovell/sharp/compare/v0.34.1...v0.34.2) Updates `webpack` from 5.99.8 to 5.99.9 - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.99.8...v5.99.9) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-version: 9.27.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: eslint dependency-version: 9.27.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: sharp dependency-version: 0.34.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: webpack dependency-version: 5.99.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor ... Signed-off-by: dependabot[bot] --- client/simple/package-lock.json | 1123 +++---------------------------- client/simple/package.json | 8 +- 2 files changed, 114 insertions(+), 1017 deletions(-) diff --git a/client/simple/package-lock.json b/client/simple/package-lock.json index e1f183493..f05ee9e21 100644 --- a/client/simple/package-lock.json +++ b/client/simple/package-lock.json @@ -8,11 +8,11 @@ "name": "simple", "version": "1.0.0", "devDependencies": { - "@eslint/js": "^9.26.0", + "@eslint/js": "^9.27.0", "copy-webpack-plugin": "^13.0.0", "css-loader": "^7.1.2", "edge.js": "^6.2.1", - "eslint": "^9.26.0", + "eslint": "^9.27.0", "filemanager-webpack-plugin": "^8.0.0", "globals": "^16.1.0", "ionicons": "^8.0.8", @@ -20,7 +20,7 @@ "less": "^4.3.0", "less-loader": "^12.3.0", "normalize.css": "^8.0.1", - "sharp": "^0.34.1", + "sharp": "^0.34.2", "style-loader": "^4.0.0", "stylelint": "^16.19.1", "stylelint-config-standard": "^38.0.0", @@ -31,7 +31,7 @@ "vite": "^6.3.5", "vite-plugin-static-copy": "^3.0.0", "vite-plugin-stylelint": "^6.0.0", - "webpack": "^5.99.8", + "webpack": "^5.99.9", "webpack-cli": "^6.0.1" } }, @@ -172,9 +172,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.0.tgz", - "integrity": "sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", "dev": true, "license": "MIT", "optional": true, @@ -675,9 +675,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -725,13 +725,16 @@ } }, "node_modules/@eslint/js": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", - "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz", + "integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -745,13 +748,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", + "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.14.0", "levn": "^0.4.1" }, "engines": { @@ -825,9 +828,9 @@ } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz", + "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==", "cpu": [ "arm64" ], @@ -848,9 +851,9 @@ } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz", + "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==", "cpu": [ "x64" ], @@ -1024,9 +1027,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz", + "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==", "cpu": [ "arm" ], @@ -1047,9 +1050,9 @@ } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz", + "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==", "cpu": [ "arm64" ], @@ -1070,9 +1073,9 @@ } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz", + "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==", "cpu": [ "s390x" ], @@ -1093,9 +1096,9 @@ } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz", + "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==", "cpu": [ "x64" ], @@ -1116,9 +1119,9 @@ } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz", + "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==", "cpu": [ "arm64" ], @@ -1139,9 +1142,9 @@ } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz", + "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==", "cpu": [ "x64" ], @@ -1162,9 +1165,9 @@ } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz", + "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==", "cpu": [ "wasm32" ], @@ -1172,7 +1175,7 @@ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.4.0" + "@emnapi/runtime": "^1.4.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -1181,10 +1184,30 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz", + "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz", + "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==", "cpu": [ "ia32" ], @@ -1202,9 +1225,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz", + "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==", "cpu": [ "x64" ], @@ -1330,28 +1353,6 @@ "node": ">=8" } }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.2.tgz", - "integrity": "sha512-H9vwztj5OAqHg9GockCQC06k1natgcxWQSRpQcPJf6i5+MWBzfKkRtxGbjQf0X2ihii0ffLZCRGbYV2f2bjNCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.3", - "eventsource": "^3.0.2", - "express": "^5.0.1", - "express-rate-limit": "^7.5.0", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.23.8", - "zod-to-json-schema": "^3.24.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2232,43 +2233,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -2576,27 +2540,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/body-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", - "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -2734,37 +2677,6 @@ "@keyv/serialize": "^1.0.3" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3011,49 +2923,6 @@ "dev": true, "license": "MIT" }, - "node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", @@ -3098,20 +2967,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -3389,20 +3244,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3491,21 +3336,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/edge-error": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-4.0.2.tgz", @@ -3570,13 +3400,6 @@ "node": ">=18.16.0" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, "node_modules/electron-to-chromium": { "version": "1.5.101", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.101.tgz", @@ -3591,16 +3414,6 @@ "dev": true, "license": "MIT" }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -3692,26 +3505,6 @@ "dev": true, "license": "MIT" }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", @@ -3719,19 +3512,6 @@ "dev": true, "license": "MIT" }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/esbuild": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", @@ -3796,13 +3576,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3817,9 +3590,9 @@ } }, "node_modules/eslint": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", - "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", + "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3827,14 +3600,13 @@ "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.26.0", - "@eslint/plugin-kit": "^0.2.8", + "@eslint/js": "9.27.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", - "@modelcontextprotocol/sdk": "^1.8.0", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -3858,8 +3630,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "zod": "^3.24.2" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -3980,16 +3751,6 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -4000,111 +3761,6 @@ "node": ">=0.8.x" } }, - "node_modules/eventsource": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/eventsource-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", - "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/express": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", - "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.0", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-rate-limit": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", - "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": "^4.11 || 5 || ^5.0.0-beta.1" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4249,24 +3905,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", - "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4325,26 +3963,6 @@ "node": ">=8" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -4406,45 +4024,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4548,19 +4127,6 @@ "dev": true, "license": "MIT" }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -4578,19 +4144,6 @@ "node": ">=8" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4634,29 +4187,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -4825,16 +4362,6 @@ "@stencil/core": "^4.30.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", @@ -4944,13 +4471,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -5337,16 +4857,6 @@ "semver": "bin/semver" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -5365,16 +4875,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -5388,19 +4888,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5533,16 +5020,6 @@ "node": ">= 4.4.x" } }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5587,42 +5064,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5751,16 +5192,6 @@ "node": ">= 0.10" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5798,16 +5229,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -5839,16 +5260,6 @@ "node": ">=6" } }, - "node_modules/pkce-challenge": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", - "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -6146,20 +5557,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -6178,22 +5575,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6225,32 +5606,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.6.3", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -6457,23 +5812,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6534,7 +5872,8 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/sax": { "version": "1.4.1", @@ -6619,9 +5958,9 @@ "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -6631,52 +5970,6 @@ "node": ">=10" } }, - "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -6687,29 +5980,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -6724,16 +5994,16 @@ } }, "node_modules/sharp": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", - "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz", + "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.7.1" + "detect-libc": "^2.0.4", + "semver": "^7.7.2" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -6742,8 +6012,8 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.1", - "@img/sharp-darwin-x64": "0.34.1", + "@img/sharp-darwin-arm64": "0.34.2", + "@img/sharp-darwin-x64": "0.34.2", "@img/sharp-libvips-darwin-arm64": "1.1.0", "@img/sharp-libvips-darwin-x64": "1.1.0", "@img/sharp-libvips-linux-arm": "1.1.0", @@ -6753,15 +6023,16 @@ "@img/sharp-libvips-linux-x64": "1.1.0", "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.1", - "@img/sharp-linux-arm64": "0.34.1", - "@img/sharp-linux-s390x": "0.34.1", - "@img/sharp-linux-x64": "0.34.1", - "@img/sharp-linuxmusl-arm64": "0.34.1", - "@img/sharp-linuxmusl-x64": "0.34.1", - "@img/sharp-wasm32": "0.34.1", - "@img/sharp-win32-ia32": "0.34.1", - "@img/sharp-win32-x64": "0.34.1" + "@img/sharp-linux-arm": "0.34.2", + "@img/sharp-linux-arm64": "0.34.2", + "@img/sharp-linux-s390x": "0.34.2", + "@img/sharp-linux-x64": "0.34.2", + "@img/sharp-linuxmusl-arm64": "0.34.2", + "@img/sharp-linuxmusl-x64": "0.34.2", + "@img/sharp-wasm32": "0.34.2", + "@img/sharp-win32-arm64": "0.34.2", + "@img/sharp-win32-ia32": "0.34.2", + "@img/sharp-win32-x64": "0.34.2" } }, "node_modules/shebang-command": { @@ -6787,82 +6058,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -6955,16 +6150,6 @@ "source-map": "^0.6.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7666,16 +6851,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/truncatise": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", @@ -7703,44 +6878,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -7758,16 +6895,6 @@ "node": ">= 10.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", @@ -7816,16 +6943,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", @@ -8024,9 +7141,9 @@ } }, "node_modules/webpack": { - "version": "5.99.8", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", - "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "version": "5.99.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", + "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", "dev": true, "license": "MIT", "dependencies": { @@ -8276,26 +7393,6 @@ "engines": { "node": ">= 10" } - }, - "node_modules/zod": { - "version": "3.24.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-to-json-schema": { - "version": "3.24.5", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", - "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", - "dev": true, - "license": "ISC", - "peerDependencies": { - "zod": "^3.24.1" - } } } } diff --git a/client/simple/package.json b/client/simple/package.json index 94ca1e189..55f7f8e4a 100644 --- a/client/simple/package.json +++ b/client/simple/package.json @@ -9,11 +9,11 @@ "icons.html": "node theme_icons.js" }, "devDependencies": { - "@eslint/js": "^9.26.0", + "@eslint/js": "^9.27.0", "copy-webpack-plugin": "^13.0.0", "css-loader": "^7.1.2", "edge.js": "^6.2.1", - "eslint": "^9.26.0", + "eslint": "^9.27.0", "filemanager-webpack-plugin": "^8.0.0", "globals": "^16.1.0", "ionicons": "^8.0.8", @@ -21,7 +21,7 @@ "less": "^4.3.0", "less-loader": "^12.3.0", "normalize.css": "^8.0.1", - "sharp": "^0.34.1", + "sharp": "^0.34.2", "style-loader": "^4.0.0", "stylelint": "^16.19.1", "stylelint-config-standard": "^38.0.0", @@ -32,7 +32,7 @@ "vite": "^6.3.5", "vite-plugin-static-copy": "^3.0.0", "vite-plugin-stylelint": "^6.0.0", - "webpack": "^5.99.8", + "webpack": "^5.99.9", "webpack-cli": "^6.0.1" } } From 44471bef35074ee03d9ff44c396c8bbf4574948d Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 30 May 2025 07:10:07 +0000 Subject: [PATCH 414/417] [l10n] update translations from Weblate 0f55f2438 - 2025-05-29 - sandijs 109f7dcb8 - 2025-05-26 - ngf d2ba9b3d0 - 2025-05-26 - artnay 33c6f23bf - 2025-05-26 - realkendrick_fr --- searx/translations/es/LC_MESSAGES/messages.mo | Bin 21639 -> 21792 bytes searx/translations/es/LC_MESSAGES/messages.po | 17 ++-- searx/translations/fi/LC_MESSAGES/messages.mo | Bin 20666 -> 21219 bytes searx/translations/fi/LC_MESSAGES/messages.po | 37 +++++---- searx/translations/he/LC_MESSAGES/messages.mo | Bin 22822 -> 23444 bytes searx/translations/he/LC_MESSAGES/messages.po | 30 +++---- searx/translations/lv/LC_MESSAGES/messages.mo | Bin 10901 -> 13480 bytes searx/translations/lv/LC_MESSAGES/messages.po | 74 ++++++++++-------- 8 files changed, 85 insertions(+), 73 deletions(-) diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo index f27636668dcb0ecae5d23c22234feb5f65f295cb..bf052ca7a44846aca07bdcd5ff865da50c87cf2a 100644 GIT binary patch delta 5680 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 J-mq~o{{!rsc;Wy6 delta 5529 zcmYM%32;!w8Nl%kBqRh9AY7sm0|bdlK?qT92tq`WA{rDqEl_n-go^P1sm~UtqEL%e z2L};!)Tkg*8Zj0FtvZ$>)QJaBrAp0E8PQP-f)qvi|MPaH48w2ty*4QL&jtc`dMZo!uL z5uSwy&;UZ0bev9T|BKN1#$yZS4_8xg!0Bj*Sy+yD;iI@7+u_JF*#@k}=6EaG?{+M} zg=l7ei>CvPu0sQSCD!*~G4&=)$XduI+`-rtC*fptk2awLz8dR0&=ohv`aX1`CUgtG zLbvXFbcHR+H^tBnU084Q`Kah+h2%en2h}_cnh3nCQ6EuLO=)|khiJn9Iy&T<& z`PBc4E@(HpfG^Pu9YNb4M+3+pjYZhW=!!Ss0NjG^^c`Mb z-NUK{5$k;o8>75EcOFtNjn6f&_MT|oo-{7vkQ@1VEj z2duzB_{e zk4M`rMN_>i{ycBNl4WOudeNaCV|wau74|8?^sXG_Z_bWEG2hk^d|TYj|LTXRs9i zfV2(!uo|0{aFy_CVeL}&# z*^1ulchQIspnLi`mg8~E!LqXSLsWse)W>2Ayb5hU4ITJq%*I=hHG~D&3ZFvXZ$QUO z>L@r+Lwv9u9k3DYxEH76DKxO@oE*= zG28oJM4=TAO3(o+(2NX=UV;Wzjm>ZhI>7Y!d^XzuCTxy(#Ptx_7=^BUTyzrJaTey|JamA2&;cGq16+ZAm>xshuR}9ckB+|u4Rj|OP$SxJ z@A>546@APD@9n4Po}ENjaBklaeul%*+p!iKGq`@}0E@XA{74TEp!d2K@4y}C8K~@^ zUgNRop}ZAc=x@-4{;ogy_r)q6IN(O~_khjlR_wwV_z~J}P(?bycyuLiMR#F)>hGh! zCmcjGbP`8l)&=SNOVJ<8)6s=4N+^_4cozBHAT*+1ysyxJ$}UV(-VY~IABL5<0@>d1 zKAQSw1JVgQpn(^nAF5J3y`|WT`XnsC1pR;|D<~NGPBh~E(Szs;zeXcIhQqKUy=t)< zo%jSgaO*+o;jBOdABb-0aCE{c=-Id>x)6JM|L>>Jh8G)f2yR99^uKr!cH%4Jr*|?s z@Mi3Qui@##gbutnzCVCw@(>nd4ucwKZ*+kp(C1^YqxXLf1rNoq(FvBu`on1IR-vhU z7QF@A(Tweh?+?ZLQFNk~?4K(>3vJg2&%le&0H&hz%*Gt=|Bdm*d~~9P=*m}PN8FEI zpQF(e=!#EaXKc;BxaY-ay&Mg6EP4wjqk+uEwsj@oqHG2DJTq$hi#vMguAwksjg->=H}l*cC;1R zu?>3odPe)=ZPbS#eZxldQ+ycR(;v}{wHck>jzTo>erT!(qwPkb<6eoKFqs}7)Sw*_ z?21c}8yKELuiK|+V8_q_T37KqJ$6P{JOq7yIofXuo{Nv5fxd>e+m5!|hs=|N&nR5Q zgRG0wUo57gkuFD5{1m#f7tjG-LB6WtZRFb%PGNr>I40eSIcU2(uoxf2Y}|+*zIyci zLG0xH|DJ+}r{Iz_Ro&2f3A*wD*bT>F4$eioggeod{W(70iJpZI&^BsY3ftLnoLOorg}m2>n@bA3Dxz$>Hpe=2;(GMZy^a1H zKZ@63{>1cs&BVIWj$5vcQt)}*mj$S2T2{mFrGd>bCXUn_IVUXw@121FphXKmY&$ diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po index f7e8954a4..1883ae4d4 100644 --- a/searx/translations/es/LC_MESSAGES/messages.po +++ b/searx/translations/es/LC_MESSAGES/messages.po @@ -44,20 +44,22 @@ # curtwheeler , 2025. # return42 , 2025. # Atul_Eterno , 2025. +# realkendrick_fr , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-04-24 14:06+0000\n" -"Last-Translator: Atul_Eterno \n" +"PO-Revision-Date: 2025-05-27 03:58+0000\n" +"Last-Translator: realkendrick_fr \n" +"Language-Team: Spanish \n" "Language: es\n" -"Language-Team: Spanish " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -557,7 +559,7 @@ msgstr "Lista negra de Ahmia" #: searx/plugins/ahmia_filter.py:33 msgid "Filter out onion results that appear in Ahmia's blacklist." -msgstr "" +msgstr "Filtrar resultados de onion que aparezcan en la lista negra de Ahmia." #: searx/plugins/calculator.py:38 msgid "Basic Calculator" @@ -2132,4 +2134,3 @@ msgstr "ocultar video" #~ msgid "proxied" #~ msgstr "por un proxy" - diff --git a/searx/translations/fi/LC_MESSAGES/messages.mo b/searx/translations/fi/LC_MESSAGES/messages.mo index 5ec82f6cf9f1e7d9f843add0c9a80284ec2beeb5..651bb25d13b1b60b69561a5d448be8c3d51672c7 100644 GIT binary patch delta 6123 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 delta 5607 zcmYM%dr;O@9>?(?a#6V|N{A>vf*=>UlcFF};sw#fRl==RdrWqRP;dcV+0@4|9gDJI zL`-v6vuJeG8Eu|&4Vl$M_K(=r*%GsHkwsh;Z$&gNHdg!o@H@NfG``L`zjOJ1&pE%} zW8EKmG#&DAT@UtZu=q3I!?MQUMqkzb|K}egEz6r~2advS48bR+J($XP>Z4Horr}`B zHO@sJ>V@cs#psVO<1EW^S!*c-&~OTu;05%;u&3++5yp7b#FO!9%)wz;jSR82V+8I; zCDMcn>?=&g$EfiMp|&o_GW`@HhtJN2ts%;6R|p zE>wUIOg&(tV-iBHj>0M4Tp{t~s&b=1In#_utZ`j4oL z{5fa^7=_xQcvSynRA8Ctz+B8mCu-aQRR2%Lu>UGF(V#%iqB3Yh1=58h@VjBKNA;^T{tjnT--ueL1%vRC%XH{OWqcE-U@z*dxV-0cz_v zq86@2{#|XwIi;D zMLsOj-jOiWQ8-XLlZ0AmGHQWYro9j~ekm%^Qd6(PK-RYoQBY(jkyqDhLS=dx6~HY_ z#_v!IL`K;Qq@n`IM%|rxsLNW6^RNsj;VD!=-KZUYh&s|fbm_ql6cW*Ug8iDLV+QrL zs0BVm9f2DaU<+!34kRY)CMv_hoC7}#)+p5TL}Lajku20ab5J``9L@f#<7OJNal7ew z9<`+xQO~a+-zKXAwNw4bC%_uSEIN`1^umd#g(jf_%fuRd5xue9JimtV)NjYI|CFuZ ziI%k(r{asa6FF|H2Q$$xmK%Zh=bf+N9>Xfx{UUqihWr!f!vP?s!|8>KUzg}PiX@R#n$4)n(cRABF;0yv7w z)QwvBw5gv(`njwN6qM0lO@}W`{cBV2G~Pl@_yC9EBaB7eTrCiX{+NWCFAEjOGw6r; zsPRSUi^~V({7We)vT7WJuc9W{Y}&V>CU_G)@g4JgKL$`ggbLsUYMzfx{S0cJbEt*? zf&q95)vp7+_5Rrw_ycNUefU-PMrGuO`tprHO_YGjJPkF^3{<}Y)FoVu z3Sbo~^EJi|=+eN~CpQ8G=p?2yjYJqF0K<}dh>P3y~M#dKs5s08LDbN(+;SV4nci*xw72fzQQ2@a&%9UD;}o@Uf*bOpJ$)?HM;5MCW+ z7LGv}gGyjB>bD{X`9ZacF(23Aa6GGje=Vf&cN(-sF7veP#I50UB=m{ohUHvMX3JEaU^cRVAi)9C@8Zdr~p1j zWq1LV`IqRxe;PgbEb7ulqIMt_l|Zs_3Widjfmv8=>h-9=ju}s4klz1KDCn}aqB6UJ zim(ec(IZr5fy_1vLs5aIpcc->88{cU!0X1HSV(;rj>B%$I-dO0D)5o$(gfiY3NQ+_ zKm}?`U&kaoh{1RfwWVDchxc&c^_yZ*3T#8C)?R54(fIyF#^>u0(Ci~QGsV*2|JNyKp~zYG5hNP3P?seiHPK6`Ojo1&zkyn4w|TxF$5KCxwb+W@SUB4b z?0HO~{xU}6ZY*MbtBJxU95%=PnS2{Fs2{~&VJB+g?78+g`(Q4yw&GYrBo!V^bb*O;%qULdZK*5v32~HS|sK^Z$y8NY(cYy;}cwgvTLvIn(Ohf#qX zMJ@apYUlojn&&bqp$=5PE=hC^OchF@^w}2anr{I%&cl@tf(rjs&*z> zOIjM&v@|+amkzW!9o5dtGCgrla#XKdT~bn3;aFQ!Q(oP2%CThOFB~NsN~;~^6{||> icg>6OsVZ?)luvS>n>Wg1=>Mjuzg4i;eQ, 2025. # Ricky-Tigg , 2025. # return42 , 2025. +# artnay , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-03-31 18:08+0000\n" -"Last-Translator: return42 \n" +"PO-Revision-Date: 2025-05-27 03:58+0000\n" +"Last-Translator: artnay \n" +"Language-Team: Finnish \n" "Language: fi\n" -"Language-Team: Finnish " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -526,15 +528,15 @@ msgstr "Tiedoston laatu" #: searx/plugins/ahmia_filter.py:32 msgid "Ahmia blacklist" -msgstr "" +msgstr "Ahmia-estolista" #: searx/plugins/ahmia_filter.py:33 msgid "Filter out onion results that appear in Ahmia's blacklist." -msgstr "" +msgstr "Suodata pois Ahmian estolistalla olevat onion-tulokset." #: searx/plugins/calculator.py:38 msgid "Basic Calculator" -msgstr "" +msgstr "Peruslaskin" #: searx/plugins/calculator.py:39 msgid "Calculate mathematical expressions via the search bar" @@ -554,7 +556,7 @@ msgstr "hash-digest" #: searx/plugins/hostnames.py:123 msgid "Hostnames plugin" -msgstr "Isäntänimien laajennus" +msgstr "Isäntänimien liitännäinen" #: searx/plugins/hostnames.py:124 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" @@ -596,16 +598,16 @@ msgstr "Selaimesi tunnistetiedot: " #: searx/plugins/tor_check.py:42 msgid "Tor check plugin" -msgstr "Tor-verkon tarkistus lisäosa" +msgstr "Tor-verkon tarkistusliitännäinen" #: searx/plugins/tor_check.py:44 msgid "" "This plugin checks if the address of the request is a Tor exit-node, and " "informs the user if it is; like check.torproject.org, but from SearXNG." msgstr "" -"Tämä lisäosa tarkistaa, tuleeko pyyntö TOR exit nodesta, ja ilmoittaa " -"käyttäjälle, jos se on, samalla tavalla kuin check.torproject.org, mutta " -"SearXNGista." +"Tämä liitännäinen tarkistaa, tuleeko pyyntö TOR-poistumissolmusta, ja " +"ilmoittaa käyttäjälle, jos niin on; samalla tavalla kuin " +"check.torproject.org, mutta SearXNGista." #: searx/plugins/tor_check.py:65 msgid "Could not download the list of Tor exit-nodes from" @@ -629,7 +631,7 @@ msgstr "Poista seurantapalvelinten argumentit palautetusta osoitteesta" #: searx/plugins/unit_converter.py:49 msgid "Unit converter plugin" -msgstr "" +msgstr "Yksikkömuuntajan liitännäinen" #: searx/plugins/unit_converter.py:50 msgid "Convert between units" @@ -1119,7 +1121,7 @@ msgstr "Tämä on luettelo SearXNG:n pikavastausmoduuleista." #: searx/templates/simple/preferences/answerers.html:29 msgid "This is the list of plugins." -msgstr "Tämä on lista lisäosista." +msgstr "Tämä on lista liitännäisistä." #: searx/templates/simple/preferences/autocomplete.html:2 msgid "Autocomplete" @@ -1179,6 +1181,8 @@ msgid "" "A URL containing your preferences. This URL can be used to restore your " "settings on a different device." msgstr "" +"Asetuksesi sisältävä URL-osoite. Tätä URL-osoitetta voi käyttää asetusten " +"palauttamiseen eri laitteella." #: searx/templates/simple/preferences/cookies.html:46 msgid "Copy preferences hash" @@ -2086,4 +2090,3 @@ msgstr "piilota video" #~ msgid "proxied" #~ msgstr "välityspalvelimella" - diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo index 83e05011fdf47b593aed542cbc48c6c0d4e8ff96..c5e8058d3a8cdc9e92eddfd849196a63f3b92356 100644 GIT binary patch delta 6121 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 delta 5538 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 cJ+BrQ`}jX!R`tAV)|}bpRn?wrr8~X<4, 2025. # shoko , 2025. # RoyBarina , 2025. +# ngf , 2025. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-01-30 05:21+0000\n" -"Last-Translator: RoyBarina " -"\n" +"PO-Revision-Date: 2025-05-27 03:58+0000\n" +"Last-Translator: ngf \n" +"Language-Team: Hebrew \n" "Language: he\n" -"Language-Team: Hebrew " -"\n" -"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 " -"&& n % 10 == 0) ? 2 : 3));\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -532,15 +533,15 @@ msgstr "איכות קובץ" #: searx/plugins/ahmia_filter.py:32 msgid "Ahmia blacklist" -msgstr "" +msgstr "הרשימה השחורה של Ahmia" #: searx/plugins/ahmia_filter.py:33 msgid "Filter out onion results that appear in Ahmia's blacklist." -msgstr "" +msgstr "מסנן תוצאות onion שמופיעות ברשימת השחורה של Ahmia." #: searx/plugins/calculator.py:38 msgid "Basic Calculator" -msgstr "" +msgstr "מחשבון בסיסי" #: searx/plugins/calculator.py:39 msgid "Calculate mathematical expressions via the search bar" @@ -556,7 +557,7 @@ msgstr "ממיר מחרוזות לתוך hash digests (לקט גיבוב) שונ #: searx/plugins/hash_plugin.py:62 msgid "hash digest" -msgstr "hash digest" +msgstr "דגימת האש" #: searx/plugins/hostnames.py:123 msgid "Hostnames plugin" @@ -632,7 +633,7 @@ msgstr "הסר ארגומנטי איתור מתוך URL מוחזר" #: searx/plugins/unit_converter.py:49 msgid "Unit converter plugin" -msgstr "" +msgstr "תוסף המרה של יחידות" #: searx/plugins/unit_converter.py:50 msgid "Convert between units" @@ -1177,6 +1178,8 @@ msgid "" "A URL containing your preferences. This URL can be used to restore your " "settings on a different device." msgstr "" +"כתובת URL המכילה את ההעדפות שלך. ניתן להשתמש בכתובת URL זו כדי לשחזר את " +"ההגדרות שלך במכשיר אחר." #: searx/templates/simple/preferences/cookies.html:46 msgid "Copy preferences hash" @@ -2058,4 +2061,3 @@ msgstr "הסתר וידאו" #~ msgid "proxied" #~ msgstr "פרוקסי" - diff --git a/searx/translations/lv/LC_MESSAGES/messages.mo b/searx/translations/lv/LC_MESSAGES/messages.mo index 71f90342ef5f67bb019166a5055b9c308b052c81..4cbb498fb11e5b52eaf92908e361403f9e1a7c59 100644 GIT binary patch delta 5860 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 delta 3267 zcmYM$c~I6x9LMo}6a^174iN?M@cBbQ4`K}?F&$MVlk3!v)nyj=iG?pw10$JP#ou> zBT3;`YwU^1I4X+#>ul!IK=#bbsGTfDt#l1)f{mz!>_+uF;OaG)LcPwl-$nKJaL~$F zOYDN3P#YM9%IH|^iUrZ+UjtUspp|YwWn?$9coTH>&ru7jbM*_@m--dgp1^EcU@B^S z7PiG6_$afe@%h*hr{a8E7NDS1hQ)?DG)3(w4)qrF!=5-9^?JUC+QC880#6_z%voeD z<|gLg15^exxJX)1cU0#3pynHaiW3+`A(cWtDn(V;9haaoa}0U&Or3jv5f$)zSHFSU z`Om1pcii*)s0BPkWgwhaK=Gqc@#2vF0n>?s0;Hi*=1s^98I&pH216g2U6RKOr=qQlN(s0G%bZf_kb@O9Kq zenB0@ebmAu=%n@-RLZ@m_*tkpeNgcSW0cgky^mJs7!3cNALf33THnbPj9ymrp zXH|n**;Q2FTX+P2MJ;3}pGKPC5T@fP?1uHIqe&$_nlJ+ur!OkSPoh4cMxu^-imSgE zdLA%~C_KS~<*1$4qK@D?Dz$ep8zVb~0zQG7Xc($}JSy-q)I@7gN3auh_6JcrtwU|> zENX$5a02(wT%(|s_TxYmXeg>a8g(QSU41Sp6AO_wnH9Je_n{^jmK=IM61l%79|>*d zp*FYymFdfl=?PE?>a@H(oW#XuN^^%Ruy4^e@uokvg$IEmr-C2HU|s1$#PjqoQ_oZG03 z)uSeg^o7Q?#Rk+nqQ)nq=Ii1k{|eB@bsXp(40j#Jx%SDZ38rEMmZ0AIIjDfkPh)-z7P@3@QO`3l0tcW54o77s4|S#! zQ9GQ6inG8ye+#vc^{9nz!X~&Kbw~F5C_GN#4D#7x8mDt{Fc}qS5t@Nh%I4VFkymYD zi&*<{i<7phWmfQJ%N&m_i%PRwqbAti(Hm@ibVaZ-CeLHPik)WXxANQHT5SpLj=STr znQa2Lrp*%DHX+gWPl#_`R8m}6Zi-5#7tO4&vl8C0eB~XgZy2ydwBi1 zy>q)|Wb@VZ>B5T2u4BpzODjqWE6d7zd&`R}=aiRr&++#CuQXszMR9pWW@%Y@@vM^h znf6LjTySqvfhU;aP4d`r9opGohbwkZ$7h26P9r_GNpfF1K6!?XOgU!%N!cF!EcKSh z?oC^1tI`MCt{KOJ;a$2kuxB&(+AUc}ZI0h(i~Xr~wLjMG^KZ42a?, 2024. # Anonymous , 2025. # Obligate , 2025. +# sandijs , 2025. msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-05-13 19:13+0000\n" -"PO-Revision-Date: 2025-01-06 15:53+0000\n" -"Last-Translator: return42 " -"\n" +"PO-Revision-Date: 2025-05-30 07:10+0000\n" +"Last-Translator: sandijs \n" +"Language-Team: Latvian \n" "Language: lv\n" -"Language-Team: Latvian " -"\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100" -" <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " +"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" +"X-Generator: Weblate 5.11.4\n" "Generated-By: Babel 2.17.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -166,7 +167,7 @@ msgstr "tumšs" #. STYLE_NAMES['BLACK'] #: searx/searxng.msg msgid "black" -msgstr "" +msgstr "melns" #. BRAND_CUSTOM_LINKS['UPTIME'] #: searx/searxng.msg @@ -293,7 +294,7 @@ msgstr "abonenti" #. SOCIAL_MEDIA_TERMS['POSTS'] #: searx/engines/lemmy.py:86 searx/searxng.msg msgid "posts" -msgstr "" +msgstr "ziņojumi" #. SOCIAL_MEDIA_TERMS['ACTIVE USERS'] #: searx/engines/lemmy.py:87 searx/searxng.msg @@ -334,17 +335,17 @@ msgstr "autors" #. SOCIAL_MEDIA_TERMS['THREAD OPEN'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "open" -msgstr "" +msgstr "atvērts" #. SOCIAL_MEDIA_TERMS['THREAD CLOSED'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "closed" -msgstr "" +msgstr "aizvērts" #. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] #: searx/engines/discourse.py:160 searx/searxng.msg msgid "answered" -msgstr "" +msgstr "atbildēja" #: searx/webapp.py:291 msgid "No item found" @@ -448,7 +449,7 @@ msgstr "" #: searx/engines/openstreetmap.py:158 msgid "Show route in map .." -msgstr "" +msgstr "Rādīt maršrutu kartē .." #: searx/engines/pdbe.py:96 #, python-brace-format @@ -521,23 +522,23 @@ msgstr "Failu kvalitāte" #: searx/plugins/ahmia_filter.py:32 msgid "Ahmia blacklist" -msgstr "" +msgstr "Ahmia melnais saraksts" #: searx/plugins/ahmia_filter.py:33 msgid "Filter out onion results that appear in Ahmia's blacklist." -msgstr "" +msgstr "Izfiltrēt \"sīpolu\" rezultātus, kas parādās Ahmia melnajā sarakstā." #: searx/plugins/calculator.py:38 msgid "Basic Calculator" -msgstr "" +msgstr "Parasts kalkulators" #: searx/plugins/calculator.py:39 msgid "Calculate mathematical expressions via the search bar" -msgstr "" +msgstr "Izrēķināt matemātiskas izteiksmes, izmantojot meklētāju" #: searx/plugins/hash_plugin.py:34 msgid "Hash plugin" -msgstr "" +msgstr "Jaucējvērtības spraudnis" #: searx/plugins/hash_plugin.py:35 msgid "Converts strings to different hash digests." @@ -549,11 +550,13 @@ msgstr "jaucējkoda sašķelšana" #: searx/plugins/hostnames.py:123 msgid "Hostnames plugin" -msgstr "" +msgstr "Saimniekvārdu spraudnis" #: searx/plugins/hostnames.py:124 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" msgstr "" +"Pārrakstīt saimniekvārdus, noņemt rezultātus vai prioritizēt tos, " +"pamatojoties uz saimniekvārdu" #: searx/plugins/oa_doi_rewrite.py:55 msgid "Open Access DOI rewrite" @@ -576,14 +579,16 @@ msgid "" "Displays your IP if the query is \"ip\" and your user agent if the query " "is \"user-agent\"." msgstr "" +"Tiek izvadīta Jūsu IP, ja pieprasījumā norādīts “ip”, un Jūsu " +"lietotājaģents, ja pieprasījumā norādīts “user-agent”." #: searx/plugins/self_info.py:52 msgid "Your IP is: " -msgstr "" +msgstr "Jūsu IP ir: " #: searx/plugins/self_info.py:55 msgid "Your user-agent is: " -msgstr "" +msgstr "Jūsu lietotājaģents ir: " #: searx/plugins/tor_check.py:42 msgid "Tor check plugin" @@ -594,18 +599,20 @@ msgid "" "This plugin checks if the address of the request is a Tor exit-node, and " "informs the user if it is; like check.torproject.org, but from SearXNG." msgstr "" +"Šis spraudnis pārbauda vai pieprasītā adrese ir Tor izejas mezgls un informē " +"lietotāju, ja tas tā ir; piemēram, check.torproject.org, bet no SearXNG." #: searx/plugins/tor_check.py:65 msgid "Could not download the list of Tor exit-nodes from" -msgstr "" +msgstr "Nevarēja lejupielādēt Tor izejas mezglu sarakstu no" #: searx/plugins/tor_check.py:72 msgid "You are using Tor and it looks like you have the external IP address" -msgstr "" +msgstr "Jūs lietojat Tor un izskatās, ka Jums ir ārējā IP adrese" #: searx/plugins/tor_check.py:76 msgid "You are not using Tor and you have the external IP address" -msgstr "" +msgstr "Jūs nelietojat Tor un Jums ir ārējā IP adrese" #: searx/plugins/tracker_url_remover.py:37 msgid "Tracker URL remover" @@ -613,15 +620,15 @@ msgstr "Izsekošanas URL noņemšanas līdzeklis" #: searx/plugins/tracker_url_remover.py:38 msgid "Remove trackers arguments from the returned URL" -msgstr "" +msgstr "Noņemt izsekotāju argumentus no atgrieztā URL" #: searx/plugins/unit_converter.py:49 msgid "Unit converter plugin" -msgstr "" +msgstr "Vienību pārveidotāja spraudnis" #: searx/plugins/unit_converter.py:50 msgid "Convert between units" -msgstr "" +msgstr "Konvertēt starp vienībām" #: searx/templates/simple/404.html:4 msgid "Page not found" @@ -634,7 +641,7 @@ msgstr "Doties uz %(search_page)s." #: searx/templates/simple/404.html:6 msgid "search page" -msgstr "" +msgstr "meklēšanas lapa" #: searx/templates/simple/base.html:53 msgid "Donate" @@ -647,11 +654,11 @@ msgstr "Opcijas" #: searx/templates/simple/base.html:67 msgid "Powered by" -msgstr "" +msgstr "Darbojas ar" #: searx/templates/simple/base.html:67 msgid "a privacy-respecting, open metasearch engine" -msgstr "" +msgstr "privātumu respektējoša, atvērta meta-meklētājprogramma" #: searx/templates/simple/base.html:68 #: searx/templates/simple/result_templates/packages.html:59 @@ -660,15 +667,15 @@ msgstr "Pirmkods" #: searx/templates/simple/base.html:69 msgid "Issue tracker" -msgstr "" +msgstr "Problēmu izsekotājs" #: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18 msgid "Engine stats" -msgstr "" +msgstr "Dzinēja statistika" #: searx/templates/simple/base.html:72 msgid "Public instances" -msgstr "" +msgstr "Publiskās instances" #: searx/templates/simple/base.html:75 msgid "Privacy policy" @@ -1784,4 +1791,3 @@ msgstr "slēpt video" #~ msgid "proxied" #~ msgstr "" - From b991688fcb2a3b04bf3a97518809884eb1db8e92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 May 2025 07:09:34 +0000 Subject: [PATCH 415/417] [upd] web-client (simple): Bump the minor group Bumps the minor group in /client/simple with 2 updates: [globals](https://github.com/sindresorhus/globals) and [stylelint](https://github.com/stylelint/stylelint). Updates `globals` from 16.1.0 to 16.2.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v16.1.0...v16.2.0) Updates `stylelint` from 16.19.1 to 16.20.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/16.19.1...16.20.0) --- updated-dependencies: - dependency-name: globals dependency-version: 16.2.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: stylelint dependency-version: 16.20.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] --- client/simple/package-lock.json | 68 ++++++++++++++++----------------- client/simple/package.json | 4 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/client/simple/package-lock.json b/client/simple/package-lock.json index f05ee9e21..f0e8e8306 100644 --- a/client/simple/package-lock.json +++ b/client/simple/package-lock.json @@ -14,7 +14,7 @@ "edge.js": "^6.2.1", "eslint": "^9.27.0", "filemanager-webpack-plugin": "^8.0.0", - "globals": "^16.1.0", + "globals": "^16.2.0", "ionicons": "^8.0.8", "leaflet": "^1.9.4", "less": "^4.3.0", @@ -22,7 +22,7 @@ "normalize.css": "^8.0.1", "sharp": "^0.34.2", "style-loader": "^4.0.0", - "stylelint": "^16.19.1", + "stylelint": "^16.20.0", "stylelint-config-standard": "^38.0.0", "stylelint-config-standard-less": "^3.0.1", "stylelint-prettier": "^5.0.3", @@ -2657,14 +2657,14 @@ } }, "node_modules/cacheable": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.10.tgz", - "integrity": "sha512-0ZnbicB/N2R6uziva8l6O6BieBklArWyiGx4GkwAhLKhSHyQtRfM9T1nx7HHuHDKkYB/efJQhz3QJ6x/YqoZzA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz", + "integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^1.8.1", - "keyv": "^5.3.2" + "hookified": "^1.8.2", + "keyv": "^5.3.3" } }, "node_modules/cacheable/node_modules/keyv": { @@ -3176,9 +3176,9 @@ "license": "CC0-1.0" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4108,9 +4108,9 @@ } }, "node_modules/globals": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz", - "integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", + "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", "dev": true, "license": "MIT", "engines": { @@ -4168,9 +4168,9 @@ } }, "node_modules/hookified": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.2.tgz", - "integrity": "sha512-5nZbBNP44sFCDjSoB//0N7m508APCgbQ4mGGo1KJGBYyCKNHfry1Pvd0JVHZIxjdnqn8nFRBAN/eFB6Rk/4w5w==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz", + "integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==", "dev": true, "license": "MIT" }, @@ -6235,9 +6235,9 @@ } }, "node_modules/stylelint": { - "version": "16.19.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.19.1.tgz", - "integrity": "sha512-C1SlPZNMKl+d/C867ZdCRthrS+6KuZ3AoGW113RZCOL0M8xOGpgx7G70wq7lFvqvm4dcfdGFVLB/mNaLFChRKw==", + "version": "16.20.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz", + "integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==", "dev": true, "funding": [ { @@ -6261,15 +6261,15 @@ "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", "css-tree": "^3.1.0", - "debug": "^4.3.7", + "debug": "^4.4.1", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.0.8", + "file-entry-cache": "^10.1.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^7.0.3", + "ignore": "^7.0.4", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.36.0", @@ -6489,25 +6489,25 @@ "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.8.tgz", - "integrity": "sha512-FGXHpfmI4XyzbLd3HQ8cbUcsFGohJpZtmQRHr8z8FxxtCe2PcpgIlVLwIgunqjvRmXypBETvwhV4ptJizA+Y1Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz", + "integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^6.1.8" + "flat-cache": "^6.1.9" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.8", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.8.tgz", - "integrity": "sha512-R6MaD3nrJAtO7C3QOuS79ficm2pEAy++TgEUD8ii1LVlbcgZ9DtASLkt9B+RZSFCzm7QHDMlXPsqqB6W2Pfr1Q==", + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz", + "integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==", "dev": true, "license": "MIT", "dependencies": { - "cacheable": "^1.8.9", + "cacheable": "^1.9.0", "flatted": "^3.3.3", - "hookified": "^1.8.1" + "hookified": "^1.8.2" } }, "node_modules/stylelint/node_modules/globby": { @@ -6542,9 +6542,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", - "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", + "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", "dev": true, "license": "MIT", "engines": { diff --git a/client/simple/package.json b/client/simple/package.json index 55f7f8e4a..7fc4d3c79 100644 --- a/client/simple/package.json +++ b/client/simple/package.json @@ -15,7 +15,7 @@ "edge.js": "^6.2.1", "eslint": "^9.27.0", "filemanager-webpack-plugin": "^8.0.0", - "globals": "^16.1.0", + "globals": "^16.2.0", "ionicons": "^8.0.8", "leaflet": "^1.9.4", "less": "^4.3.0", @@ -23,7 +23,7 @@ "normalize.css": "^8.0.1", "sharp": "^0.34.2", "style-loader": "^4.0.0", - "stylelint": "^16.19.1", + "stylelint": "^16.20.0", "stylelint-config-standard": "^38.0.0", "stylelint-config-standard-less": "^3.0.1", "stylelint-prettier": "^5.0.3", From 1b424b8d541d3cde1d40aa52b59cbcc38259ce3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 May 2025 07:16:18 +0000 Subject: [PATCH 416/417] [upd] pypi: Bump the minor group with 2 updates Bumps the minor group with 2 updates: [selenium](https://github.com/SeleniumHQ/Selenium) and [typer-slim](https://github.com/fastapi/typer). Updates `selenium` from 4.32.0 to 4.33.0 - [Release notes](https://github.com/SeleniumHQ/Selenium/releases) - [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.32.0...selenium-4.33.0) Updates `typer-slim` from 0.15.4 to 0.16.0 - [Release notes](https://github.com/fastapi/typer/releases) - [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md) - [Commits](https://github.com/fastapi/typer/compare/0.15.4...0.16.0) --- updated-dependencies: - dependency-name: selenium dependency-version: 4.33.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: typer-slim dependency-version: 0.16.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 63c5fe842..418824b03 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,7 +4,7 @@ cov-core==1.15.0 black==24.3.0 pylint==3.3.7 splinter==0.21.0 -selenium==4.32.0 +selenium==4.33.0 Pallets-Sphinx-Themes==2.3.0 Sphinx==7.4.7 sphinx-issues==5.0.1 diff --git a/requirements.txt b/requirements.txt index b4006c48e..b27f44e52 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,5 +17,5 @@ markdown-it-py==3.0.0 fasttext-predict==0.9.2.4 tomli==2.2.1; python_version < '3.11' msgspec==0.19.0 -typer-slim==0.15.4 +typer-slim==0.16.0 isodate==0.7.2 From 37d851fb23935166ac7714a83c7273ce712bece0 Mon Sep 17 00:00:00 2001 From: benpiano800 <51756721+benpiano800@users.noreply.github.com> Date: Thu, 29 May 2025 14:59:06 -0500 Subject: [PATCH 417/417] [mod] UI footer: correct capitalization of "SearXNG" in base.html --- searx/templates/simple/base.html | 2 +- tests/robot/test_webapp.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html index 2eebde676..deac295b7 100644 --- a/searx/templates/simple/base.html +++ b/searx/templates/simple/base.html @@ -64,7 +64,7 @@