From a656a3947507b4352f32bcd9d80aad6ba7037675 Mon Sep 17 00:00:00 2001 From: Moss Harris Date: Tue, 9 Aug 2016 16:52:47 +0800 Subject: [PATCH 001/236] Update wappalyzer.rb fix SSL_connect returned=1 errno=0 state=error: certificate verify failed (OpenSSL::SSL::SSLError) --- src/drivers/ruby/wappalyzer.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/drivers/ruby/wappalyzer.rb b/src/drivers/ruby/wappalyzer.rb index b0e4452fe..d7c7a70f4 100755 --- a/src/drivers/ruby/wappalyzer.rb +++ b/src/drivers/ruby/wappalyzer.rb @@ -3,7 +3,9 @@ require 'net/http' require 'v8' require 'json' +require 'openssl' +OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE Encoding.default_external = Encoding::UTF_8 class Wappalyzer From 24d0c4c1d2a172f71ec1eb414ed4292511b8a925 Mon Sep 17 00:00:00 2001 From: Emmanuel Straschnov Date: Fri, 12 Aug 2016 18:10:22 -0400 Subject: [PATCH 002/236] Adding Bubble to the list Adding bubble.is to the list --- src/apps.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index f4ad3a9b2..c2adaf42d 100755 --- a/src/apps.json +++ b/src/apps.json @@ -9126,6 +9126,13 @@ "icon": "xui.png", "script": "[^a-z]xui.*\\.js", "website": "xuijs.com" + }, + "Bubble": { + "website": "bubble.is", + "cats": [ 1, 3, 18, 22 ], + "env": "^appquery$", + "implies": "Node.js", + "icon": "bubble.png" } }, "categories": { @@ -9181,4 +9188,4 @@ "50": "Document Management Systems", "51": "Landing Page Builders" } -} \ No newline at end of file +} From c043438d3eeb68d2bc9b581fba73dead5876e91a Mon Sep 17 00:00:00 2001 From: Emmanuel Straschnov Date: Fri, 12 Aug 2016 18:11:49 -0400 Subject: [PATCH 003/236] Adding the icon --- src/icons/bubble.png | Bin 0 -> 2075 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/icons/bubble.png diff --git a/src/icons/bubble.png b/src/icons/bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..924e733fea77b516fd3b486e141cee9659854414 GIT binary patch literal 2075 zcmY*ad05if8vd!IBQB(tCTS@tDx)A`E(9*)S}B^jLnW?>3k0}9I!L2QOtzVWN{d>V zkuvFIZj`y?GBw>N)686RbkwXgm)yz=)$QJUp68tNo%egc_dVbF=kR<99%^7H7ytmZ zy`HXq(%nEde^8XJ3>Irax`ASxy`2Hz&KZ?;@+Mg_!qd+i09bGU;QRsrt5S$F2>?l! z05BZ}09XM4=+K1q2XNAaGR-rD0RSpmvMC1?3bz4(Tu7{cFf-WO3mZXAK$0V=;Zexc z1e%l$0Jv1FG)#zMk_}Q5;u9IzR6Ohp11pVXFbZbyg~E)(!-Bni4P2=7D1+TdYosO2 z0c>DkfTKr7WBpv+zm-c*c-T=UlZHj1Qc_ZoDHtS`9)m*L+uNfotx#507E*=U#*C#V8pw3X;nXB19tM*ceIH-%$&8KuuTvu9TU*iwQL+pQ zjkH94*Or#zWGL2$9vdZfmgzg7abKAKhkf(Gp=9R&bD6K5enF+JI)HJg@6YA{_G&f> z0RTnwy{^vw!OE9{I?rs0(n}BM>3I`BsDM%bg&h27x8a;qGY1ae;gxd$iBRU*mU=)Q zO%4_*DR@9W%TY?)38b8o9D?d2UAdDS&uxVvg*Seis;CzofB(h|R`6~rF$2?cH+}fy z(ECsMx2l}jZyVxT&PC5eG_m+)YqcQ*+$Z>y1pe%;mM8OapCOb{R>+^tAq_8A{}$Oo z25S08<`{Det>@h9fML-|g`M(~+!l*rRhoDz0#4aQCLWzD6sU(~>hppVDXNRjtloQX zbrRB$v;CiXpbz&{n$50(9EHhq4`(dl5jI^FO=qD1$;DzgZWSbMb+0LFi@h`|If6;8YgR4 z1o9cW{cHm*vb15$Ax7W|qgmo{(YCWbHWzuO@^fX|j%9OrjQobx-Y?UB0@xPi4)+*JP|aNJS9- zMtg=d2jO(RT}q6?mCub_=(uCY@`faITvbJ_W>y)2d4eeSyF>`P zRGB~)Z8lZvujp&0lxJogSLn{GC)jL7%oEFbPd`8IUemq>s-%l+8)j6-4xAsollS*K zjW>LbqFJ%gCwg)2(~Sh?}fZ**=3r zUhZ_6PYSP+G%GH=EB>`pDQcxz0?yx?8^ANcpmEh0a%4~~LO35+!?kNqs=f?b$S<+* zrfL_Yp0q9OxCYDSSWTP89a==GYFM@FiEYdI8~L=lNwU(#*JpEYtWQ(w%k9LN${>ov zWqp2lj&VRVY5NSqYrn$HOHICJL$3VK5_L{X3jV*g_Wcvwa4!tc2tqqNKs#u&QMl{Z$T zGT8NkHX5kQ7L42OwDw}0dv1T3126$f?4x=xmz&pCEv zKJ-yT0aLiBCJgN;{R=I2#AlbXvzPr|M`ZGD>RdQ*zDLWq>Z81lN)h>Zq|mU5-sKy( zxC|W=uLkP)$D15PP6(7JR&A6ENkdlRi3mMWMsXWxNbF|kA}B18*ykK8-VG1soq5SC zzG+x&{vyXbLU;`vq&wCV2YLL;hu3K`>&(e=>n5VBYFwW5=R)Oin3q2vOH)`m6|>Jv zRV)s$ydtU|??3*&`uFD4H!5Zeq#u_OTC4lSi)2QxK9pT{xTD9@w0x6M-C;}dtXwrq z!jarwLr6&Bkh7YjFV5bFxWxl)cN^i)2cFXgM0x*I*xqkM57LGER|7Fu_D`^{>#KK` zMs}C_FIxDWYHi}ktDU~AHL!#*?o-c=#S51wmgLe+Kg`9)9*j+AHOujn&r2Z5x0Eaz!U`n2L~n!F$~Zu9ZK9asLejw2~?S literal 0 HcmV?d00001 From e4e3706c240dd060d58e57454393f79c7b7b2ee5 Mon Sep 17 00:00:00 2001 From: aninder Date: Tue, 16 Aug 2016 23:26:53 +1000 Subject: [PATCH 004/236] fix app.json file path in ruby driver --- src/drivers/ruby/wappalyzer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/ruby/wappalyzer.rb b/src/drivers/ruby/wappalyzer.rb index b0e4452fe..670536347 100755 --- a/src/drivers/ruby/wappalyzer.rb +++ b/src/drivers/ruby/wappalyzer.rb @@ -9,7 +9,7 @@ Encoding.default_external = Encoding::UTF_8 class Wappalyzer def initialize @realdir = File.dirname(File.realpath(__FILE__)) - file = File.join(@realdir, '..', '..', 'share', 'apps.json') + file = File.join(@realdir, 'apps.json') @json = JSON.parse(IO.read(file)) @categories, @apps = @json['categories'], @json['apps'] end From fa1f08ed107cfe76334ea81db0b86926fdcd3e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Petit?= Date: Tue, 16 Aug 2016 19:25:00 +0200 Subject: [PATCH 005/236] Adding social network widgets (twitter, facebook, linkedin, g+, pinterest) --- src/apps.json | 40 +++++++++++++++++++++++++++++++++++++++ src/icons/Facebook.svg | 1 + src/icons/Google Plus.svg | 1 + src/icons/Linkedin.svg | 1 + src/icons/Pinterest.svg | 1 + src/icons/Twitter.svg | 1 + 6 files changed, 45 insertions(+) create mode 100644 src/icons/Facebook.svg create mode 100644 src/icons/Google Plus.svg create mode 100644 src/icons/Linkedin.svg create mode 100644 src/icons/Pinterest.svg create mode 100644 src/icons/Twitter.svg diff --git a/src/apps.json b/src/apps.json index f4ad3a9b2..c66c6b58e 100755 --- a/src/apps.json +++ b/src/apps.json @@ -2277,6 +2277,14 @@ }, "website": "fwpshop.org" }, + "Facebook": { + "cats": [ + 5 + ], + "icon": "Facebook.svg", + "script": "//connect\\.facebook\\.net/[^/]*/[a-z]*\\.js", + "website": "facebook.com" + }, "Fact Finder": { "cats": [ 29 @@ -2701,6 +2709,14 @@ "icon": "Google PageSpeed.png", "website": "developers.google.com/speed/pagespeed/mod" }, + "Google Plus": { + "cats": [ + 5 + ], + "icon": "Google Plus.svg", + "script": "apis\\.google\\.com/js/[a-z]*\\.js", + "website": "plus.google.com" + }, "Google Sites": { "cats": [ 1 @@ -3898,6 +3914,14 @@ "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", "website": "linksmart.com" }, + "Linkedin": { + "cats": [ + 5 + ], + "icon": "Linkedin.svg", + "script": "//platform\\.linkedin\\.com/in\\.js", + "website": "linkedin.com" + }, "List.js": { "cats": [ 12 @@ -5367,6 +5391,14 @@ ], "website": "pimcore.org" }, + "Pinterest": { + "cats": [ + 5 + ], + "icon": "Pinterest.svg", + "script": "//assets\\.pinterest\\.com/js/pinit\\.js", + "website": "pinterest.com" + }, "Piwik": { "cats": [ 10 @@ -7179,6 +7211,14 @@ "icon": "TwistedWeb.png", "website": "twistedmatrix.com/trac/wiki/TwistedWeb" }, + "Twitter": { + "cats": [ + 5 + ], + "icon": "Twitter.svg", + "script": "//platform\\.twitter\\.com/widgets\\.js", + "website": "twitter.com" + }, "Twitter Bootstrap": { "cats": [ 18 diff --git a/src/icons/Facebook.svg b/src/icons/Facebook.svg new file mode 100644 index 000000000..aaba01894 --- /dev/null +++ b/src/icons/Facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Google Plus.svg b/src/icons/Google Plus.svg new file mode 100644 index 000000000..3db5d94ae --- /dev/null +++ b/src/icons/Google Plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Linkedin.svg b/src/icons/Linkedin.svg new file mode 100644 index 000000000..f7ed76695 --- /dev/null +++ b/src/icons/Linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Pinterest.svg b/src/icons/Pinterest.svg new file mode 100644 index 000000000..cf60b5531 --- /dev/null +++ b/src/icons/Pinterest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Twitter.svg b/src/icons/Twitter.svg new file mode 100644 index 000000000..dbd044201 --- /dev/null +++ b/src/icons/Twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file From d2e65d3242c485ffa84ad28583fe42249e6344e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Petit?= Date: Tue, 16 Aug 2016 21:10:18 +0200 Subject: [PATCH 006/236] Adding Usabilla and Act-On --- src/apps.json | 16 ++++++++++++++++ src/icons/ActOn.png | Bin 0 -> 609 bytes src/icons/Usabilla.svg | 1 + 3 files changed, 17 insertions(+) create mode 100644 src/icons/ActOn.png create mode 100644 src/icons/Usabilla.svg diff --git a/src/apps.json b/src/apps.json index f4ad3a9b2..19109bed8 100755 --- a/src/apps.json +++ b/src/apps.json @@ -137,6 +137,14 @@ }, "website": "www.accessibleportal.com" }, + "Act-On": { + "cats": [ + 32 + ], + "env": "^ActOn$", + "icon": "ActOn.png", + "website": "act-on.com" + }, "AdInfinity": { "cats": [ 36 @@ -7326,6 +7334,14 @@ "script": "underscore.*\\.js", "website": "underscorejs.org" }, + "Usabilla": { + "cats": [ + 13 + ], + "env": "^usabilla_live$", + "icon": "Usabilla.svg", + "website": "usabilla.com" + }, "UserRules": { "cats": [ 13 diff --git a/src/icons/ActOn.png b/src/icons/ActOn.png new file mode 100644 index 0000000000000000000000000000000000000000..d288e51166e727cb52f78ce97f3cccbd13e5f801 GIT binary patch literal 609 zcmV-n0-pVeP)vvx0zF;?K3@PgSpYj+05DSnJzfAZRRKI*0zO^Yx{scZ=054JiH&_5J zQTY1%05wDz^Y!uc_Kl~uJZFG%k)uIug`c#+05Md`*4@e0-4sh{ zyv)=sU3mdBRRAG(2AwB@bvb$$kAwtowvu)04z`qMPvdqRn*?(`~3XP*xq1;ngBRjhoZ6A;pWTM z-8Ex<9#L;6R&#lnsQ@-u4@YJKHCKC@t8tQ~-R0>YRB*e?)cgGX7D;FUJ6wjMvMgM8 zB2{tq_xS)SPFQ@B(cI$f@bmfl`)-h;+2ZE~H(2!d_|o0tBvoXzJ12>72*rCTO6mLynq3<1&VG?n00000NkvXXu0mjfm0c%R literal 0 HcmV?d00001 diff --git a/src/icons/Usabilla.svg b/src/icons/Usabilla.svg new file mode 100644 index 000000000..c9072c2ca --- /dev/null +++ b/src/icons/Usabilla.svg @@ -0,0 +1 @@ +Group + logo copy 2 \ No newline at end of file From 7967c0c93ac4791c6dbecb61e6d81285daf90dd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Petit?= Date: Wed, 17 Aug 2016 11:44:42 +0200 Subject: [PATCH 007/236] Adding new category 'livechat' with 3 techs: livechat, tawkto, userlike --- src/apps.json | 30 ++++++++++++++++++- src/drivers/chrome/_locales/el/messages.json | 3 +- src/drivers/chrome/_locales/en/messages.json | 3 +- src/drivers/chrome/_locales/es/messages.json | 3 +- src/drivers/chrome/_locales/fr/messages.json | 3 +- src/drivers/chrome/_locales/gr/messages.json | 3 +- src/drivers/chrome/_locales/it/messages.json | 3 +- src/drivers/chrome/_locales/ro/messages.json | 3 +- src/drivers/chrome/_locales/ru/messages.json | 3 +- src/drivers/firefox/locale/de-DE.properties | 1 + src/drivers/firefox/locale/el-GR.properties | 1 + src/drivers/firefox/locale/en-GB.properties | 1 + src/drivers/firefox/locale/en-US.properties | 1 + src/drivers/firefox/locale/es-ES.properties | 1 + src/drivers/firefox/locale/fr-FR.properties | 1 + src/drivers/firefox/locale/it-IT.properties | 1 + src/drivers/firefox/locale/nl-NL.properties | 1 + src/drivers/firefox/locale/ro-RO.properties | 1 + src/drivers/firefox/locale/ru-RU.properties | 1 + src/icons/LiveChat.png | Bin 0 -> 1979 bytes src/icons/TawkTo.png | Bin 0 -> 2076 bytes src/icons/UserLike.svg | 1 + 22 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 src/icons/LiveChat.png create mode 100644 src/icons/TawkTo.png create mode 100644 src/icons/UserLike.svg diff --git a/src/apps.json b/src/apps.json index f4ad3a9b2..0a01af5e5 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3932,6 +3932,14 @@ "implies": "PHP", "website": "www.lithium.com" }, + "LiveChat": { + "cats": [ + 52 + ], + "icon": "LiveChat.png", + "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", + "website": "livechatinc.com" + }, "LiveJournal": { "cats": [ 11 @@ -6947,6 +6955,14 @@ ], "website": "taiga.io" }, + "Tawk.to": { + "cats": [ + 52 + ], + "icon": "TawkTo.png", + "script": "//embed\\.tawk\\.to", + "website": "tawk.to" + }, "Tealeaf": { "cats": [ 10 @@ -7326,6 +7342,17 @@ "script": "underscore.*\\.js", "website": "underscorejs.org" }, + "UserLike": { + "cats": [ + 52 + ], + "icon": "UserLike.svg", + "script": [ + "userlike\\.min\\.js", + "userlikelib\\.min\\.js" + ], + "website": "userlike.com" + }, "UserRules": { "cats": [ 13 @@ -9179,6 +9206,7 @@ "48": "Network Storage", "49": "Feed Readers", "50": "Document Management Systems", - "51": "Landing Page Builders" + "51": "Landing Page Builders", + "52": "Live Chat" } } \ No newline at end of file diff --git a/src/drivers/chrome/_locales/el/messages.json b/src/drivers/chrome/_locales/el/messages.json index bacd7cfa5..0700ee471 100644 --- a/src/drivers/chrome/_locales/el/messages.json +++ b/src/drivers/chrome/_locales/el/messages.json @@ -55,5 +55,6 @@ "categoryName48": { "message": "Δικτυακός Αποθηκευτικός Χώρος" }, "categoryName49": { "message": "Feed Readers" }, "categoryName50": { "message": "Συστήματα Διαχειρίσης Εγγράφων" }, - "categoryName51": { "message": "Σύστημα Κατασκευής Σελίδων Υποδοχής" } + "categoryName51": { "message": "Σύστημα Κατασκευής Σελίδων Υποδοχής" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/en/messages.json b/src/drivers/chrome/_locales/en/messages.json index 1d8f78b02..bdf959ace 100644 --- a/src/drivers/chrome/_locales/en/messages.json +++ b/src/drivers/chrome/_locales/en/messages.json @@ -55,5 +55,6 @@ "categoryName48": { "message": "Network Storage" }, "categoryName49": { "message": "Feed Readers" }, "categoryName50": { "message": "Document Management Systems" }, - "categoryName51": { "message": "Landing Page Builder" } + "categoryName51": { "message": "Landing Page Builder" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/es/messages.json b/src/drivers/chrome/_locales/es/messages.json index 8e4c42490..a62320673 100644 --- a/src/drivers/chrome/_locales/es/messages.json +++ b/src/drivers/chrome/_locales/es/messages.json @@ -59,5 +59,6 @@ "categoryName48": { "message": "Network Storage" }, "categoryName49": { "message": "Feed Readers" }, "categoryName50": { "message": "Document Management Systems" }, - "categoryName51": { "message": "Landing Page Builder" } + "categoryName51": { "message": "Landing Page Builder" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/fr/messages.json b/src/drivers/chrome/_locales/fr/messages.json index b0b900f9a..52fabcef7 100644 --- a/src/drivers/chrome/_locales/fr/messages.json +++ b/src/drivers/chrome/_locales/fr/messages.json @@ -59,5 +59,6 @@ "categoryName48": { "message": "Stockage réseau" }, "categoryName49": { "message": "Lecteur RSS" }, "categoryName50": { "message": "Système de gestion de documents" }, - "categoryName51": { "message": "Landing Page Builder" } + "categoryName51": { "message": "Landing Page Builder" }, + "categoryName52": { "message": "Chat en direct" } } diff --git a/src/drivers/chrome/_locales/gr/messages.json b/src/drivers/chrome/_locales/gr/messages.json index bacd7cfa5..0700ee471 100644 --- a/src/drivers/chrome/_locales/gr/messages.json +++ b/src/drivers/chrome/_locales/gr/messages.json @@ -55,5 +55,6 @@ "categoryName48": { "message": "Δικτυακός Αποθηκευτικός Χώρος" }, "categoryName49": { "message": "Feed Readers" }, "categoryName50": { "message": "Συστήματα Διαχειρίσης Εγγράφων" }, - "categoryName51": { "message": "Σύστημα Κατασκευής Σελίδων Υποδοχής" } + "categoryName51": { "message": "Σύστημα Κατασκευής Σελίδων Υποδοχής" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/it/messages.json b/src/drivers/chrome/_locales/it/messages.json index 266ce5102..fe25a3cf7 100644 --- a/src/drivers/chrome/_locales/it/messages.json +++ b/src/drivers/chrome/_locales/it/messages.json @@ -59,6 +59,7 @@ "categoryName48": { "message": "Network Storage" }, "categoryName49": { "message": "Lettore di Feed" }, "categoryName50": { "message": "Sistema di Gestione Documenti" }, - "categoryName51": { "message": "Landing Page Builder" } + "categoryName51": { "message": "Landing Page Builder" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/ro/messages.json b/src/drivers/chrome/_locales/ro/messages.json index 66718fa93..851974d2b 100644 --- a/src/drivers/chrome/_locales/ro/messages.json +++ b/src/drivers/chrome/_locales/ro/messages.json @@ -55,5 +55,6 @@ "categoryName48": { "message": "Network Storage" }, "categoryName49": { "message": "Feed Readers" }, "categoryName50": { "message": "Document Management Systems" }, - "categoryName51": { "message": "Landing Page Builder" } + "categoryName51": { "message": "Landing Page Builder" }, + "categoryName52": { "message": "Live Chat" } } diff --git a/src/drivers/chrome/_locales/ru/messages.json b/src/drivers/chrome/_locales/ru/messages.json index b71511911..6338d320e 100644 --- a/src/drivers/chrome/_locales/ru/messages.json +++ b/src/drivers/chrome/_locales/ru/messages.json @@ -45,7 +45,8 @@ "categoryName48" : { "message" : "Сетевое хранилище" }, "categoryName49" : { "message" : "Граббер контента" }, "categoryName50" : { "message" : "Управление документами" }, - "categoryName51": { "message": "Генератор лендингов" }, + "categoryName51" : { "message": "Генератор лендингов" }, + "categoryName52" : { "message": "Live Chat" }, "github" : { "message" : "Форкнуть на GitHub!" }, "noAppsDetected" : { "message" : "Нет данных о сайте" }, "nothingToDo" : { "message" : "Тут нечего искать" }, diff --git a/src/drivers/firefox/locale/de-DE.properties b/src/drivers/firefox/locale/de-DE.properties index 54780b3be..430d023bb 100755 --- a/src/drivers/firefox/locale/de-DE.properties +++ b/src/drivers/firefox/locale/de-DE.properties @@ -65,3 +65,4 @@ cat48 = Netzwerkspeicher cat49 = Feed-Leser cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/el-GR.properties b/src/drivers/firefox/locale/el-GR.properties index 02222be90..753498c7d 100644 --- a/src/drivers/firefox/locale/el-GR.properties +++ b/src/drivers/firefox/locale/el-GR.properties @@ -65,3 +65,4 @@ cat48 = Δικτυακός Αποθηκευτικός Χώρος cat49 = Feed Readers cat50 = Συστήματα Διαχειρίσης Εγγράφων cat51 = Σύστημα Κατασκευής Σελίδων Υποδοχής +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/en-GB.properties b/src/drivers/firefox/locale/en-GB.properties index 5f9ff5b18..072240c37 100755 --- a/src/drivers/firefox/locale/en-GB.properties +++ b/src/drivers/firefox/locale/en-GB.properties @@ -65,3 +65,4 @@ cat48 = Network Storage cat49 = Feed Readers cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/en-US.properties b/src/drivers/firefox/locale/en-US.properties index 5f9ff5b18..072240c37 100755 --- a/src/drivers/firefox/locale/en-US.properties +++ b/src/drivers/firefox/locale/en-US.properties @@ -65,3 +65,4 @@ cat48 = Network Storage cat49 = Feed Readers cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/es-ES.properties b/src/drivers/firefox/locale/es-ES.properties index 8f1e65477..68999f709 100755 --- a/src/drivers/firefox/locale/es-ES.properties +++ b/src/drivers/firefox/locale/es-ES.properties @@ -65,3 +65,4 @@ cat48 = Network Storage cat49 = Feed Readers cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/fr-FR.properties b/src/drivers/firefox/locale/fr-FR.properties index 42536e288..f65c5da0c 100644 --- a/src/drivers/firefox/locale/fr-FR.properties +++ b/src/drivers/firefox/locale/fr-FR.properties @@ -65,3 +65,4 @@ cat48 = Stockage réseau cat49 = Lecteur RSS cat50 = Système de gestion de documents cat51 = Landing Page Builder +cat52 = Chat en direct diff --git a/src/drivers/firefox/locale/it-IT.properties b/src/drivers/firefox/locale/it-IT.properties index a205dc72a..5e106196a 100755 --- a/src/drivers/firefox/locale/it-IT.properties +++ b/src/drivers/firefox/locale/it-IT.properties @@ -65,3 +65,4 @@ cat48 = Network Storage cat49 = Lettore di Feed cat50 = Sistema di Gestione Documenti cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/nl-NL.properties b/src/drivers/firefox/locale/nl-NL.properties index f72eabb62..9d2833f50 100755 --- a/src/drivers/firefox/locale/nl-NL.properties +++ b/src/drivers/firefox/locale/nl-NL.properties @@ -65,3 +65,4 @@ cat48 = Network Storage cat49 = Feed Readers cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/ro-RO.properties b/src/drivers/firefox/locale/ro-RO.properties index 6ecb71a3e..61bf776f5 100644 --- a/src/drivers/firefox/locale/ro-RO.properties +++ b/src/drivers/firefox/locale/ro-RO.properties @@ -62,3 +62,4 @@ cat48 = Network Storage cat49 = Feed Readers cat50 = Document Management Systems cat51 = Landing Page Builder +cat52 = Live Chat diff --git a/src/drivers/firefox/locale/ru-RU.properties b/src/drivers/firefox/locale/ru-RU.properties index 4f8bdffb4..5c820a05f 100644 --- a/src/drivers/firefox/locale/ru-RU.properties +++ b/src/drivers/firefox/locale/ru-RU.properties @@ -65,3 +65,4 @@ cat48 = Сетевое хранилище cat49 = Граббер контента cat50 = Управление документами cat51 = Генератор лендингов +cat52 = Live Chat diff --git a/src/icons/LiveChat.png b/src/icons/LiveChat.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0619e17ef2194dc2eeeb6f84cd8da1e104331d GIT binary patch literal 1979 zcmV;s2SoUZP)sUoN6)1%3P}SgA#% z&?3=Ba`@Z!M~R?{n@Vn^Hdd&JQmV>s6G9sS=1~mP#s)w4F}pLj=bU+HR_msy>XpvU z?45h=cg}YncgEVcZ=ZSY+&TBusZ(8(laoIz6bgH))#@5e1Arn4uQHC&6a%gaW&T!v|y5l9`_qk`A3*RJcfrc$YI z&dts3KYsl9o})*PzHbc<4t8I?dUcp4RWg}$Xpw#E)-7dO7XDv@x%50&<@0%6sZ^Zl z>FFF@e|!4$=_jn4H*XFQ?M#nDMkLzW+Hl~&0W>!^lcE=o!v6}-^kaJZK8A;f6=5W^ z*{nlsH;<2xf7e=ASm2n$aU8p)r3FWh9LCzUYe5!@;>w&V#1jP2|AhgKEnBu=)25Ah z_09tO8fZp~K;vr*g(BF& zzP>)3IPqh(efyIj>~>4j@H|hk$GKb%Zq)_FpA!*E8N88%LWQ6z;vf#|1M@5yPKr_R zX>-7H0osf53v1S_#?sOv2$Mxw{6m77nOU09w9XLSQn3V=6e%~5uoE%h$cPACj7cN~ zOcj=(iv?%~H7%%A8b~!j`5_hH+1Uqt6=4SCW_fu@cC&2@ckj;P*s%e!bP2t^y*PB} z5KM#F5a(jl1{0PI@Afsge|;CY{Ws{s3>O`gMd0ZsVAC$B-acVeK@s&OW>$n55X(aU z3e5Sey9!40`q@|YTW^&>j+e4 z6*N_scjH5)x_f~{3JMX02$>fKWOLs-_EfHwN|mp?ke`c0G0+U2fIEE`m67j3bv^?; zya2QJWh9^32T7(M9s| zK2&)QM(0OLPq%s0#Ak-?;l9-}I^k>#X+buBC8DEdq z1}+C6Iyet>9lLc^AY~X-K`=ytsgph+Yy6~irQ-$bwBxg98omJnNdU4|Iw?uGcPs>i zTg!kC9%O&i&t*;o5Ru-KZh%U+`B2Urbg3Zc2M8dDI*gzddoY9nVHhz6TvrT;0R>j7 znktAS`p=d(=3uVdj_N-z$b4mT0+}a14P6$4#cT14*F%T<#`?etNf;)I5z-X&fP`(s zvaN6pYfEEEJ-HhT9}K~0eHz6-{sP&jJ_ozG6>hNrPr53XpcNcSPCN$)e5Eo(K8|y5yn&s&cA@DTKgIo5cEil?MD^|% z?*C*D?9I=?ShZGYuHGDn+0lc>{omm|KCur37AjGkxIQ8BpGL7%l56f$yI{WjXUzQa z7~DI*2htXtOG7|4Y9sI_N8ohdK6(a=m&Z`N`T^XBQ_yY|%1**q-2%JwahMHRMy+ebbxG*DuDq7L_~O@t zGe9J2Na0{Tw_1hCZPzKormAS#{VcrCejcvlNQrq0a$I{{C1f---PJcD87fRL6+A4J z$_yyyK#-Wqi1i5(F~|qe9s!mrq#M?|3B}G;D;h2V3&zTaQS{zDH8m|BdHit_dCNE| zWTUPxgbZq*!oV}}E_|juNH=6>@UMIK;s$sef`wA4v}#o@r%%8By6WlaK}ScPHxUKR zRFlNm4@1V!<6()1CoU4!blSl6>(}wK*Iv`@?d_T{6+N4@$dk8d!GX?>j>;d&VBD|g$)Sq>AMprPoBis*qG|>?sjOu zB*|}hr$M^;8X1w;wr!g;Iy!2R7-26yd-g2$?%m7ADE@xn#xyZ8fr}R};>?*}VPxcY zc*MbMX~L+`UP-#YLynxXE?>TUt*fi6k0#zCOB=Rs-74jm$z&9RG&VMhcT-bSpbuCz zGBSdpp&^8WbmjTVBRbNVIc7@H|0MmtM^5jd{T_y&=kE|LUBto<_yN^<8`Doioj-rx z`1s?07>5rZk^NXUZ{Doa=`_a?B>EE!h#zR0oV-o)CK+>*9Dl&r{|2E}pShrZ8B_oO N002ovPDHLkV1gq(qd@=w literal 0 HcmV?d00001 diff --git a/src/icons/TawkTo.png b/src/icons/TawkTo.png new file mode 100644 index 0000000000000000000000000000000000000000..87d0b6611318f539033064d9f99e50efb4769a8c GIT binary patch literal 2076 zcmV+%2;=vOP)i|m zq9huF2@xX+z7pJ}fsbh|sdo$bEnai70)yi-cjO@JLgnUneF zckegnmz>|dmrw^0p@jGk?Cp($@Ea1F91|VaDcYC$;Vokya*Z`KG$i?ap78|y&S`Q|_EzIG$A zTCy#&VZ(av?CMsz&Q7q16ecEOp}@uJ=I!>0+3oQ{^~X!UdHzXO^gSB9;q6+u!V0eZ zTq`4y-qec5j9aXjQU=U9{uIQL<%+t8^wZF{e@~)zaJyTWhp;cB5zG=dq>#Ggy1+Rj5Wl7>Cjr zfI8j{RLXHI+fG&*g&>aFHR_`P@N8;kRb$ZBs@Z~qBCqPfFk`lO1~nZU`p~kv7c(<6 z@G6U?Fd2zTP6jcNWNRR`oE9wd!#e4SB>kR|6MKwtyA|0a?R8T6F&du-S=?N63 zCLtog`RyknAm({h%tfVB7i^;075`ZMS8@ddmBhoCH5a{d+^p@0ytDxaOv0-p+=n6H{1e@JAuWf zC2~s&Bnn`Fh0g^lQeZY>X-yJH)tf98DKtT~THWK7{QHrR;@??SnHHoXm~I$DHx!bgSJ6$I2k&5DE&O z2?1qL6N3Q(lvX4hXa4VwlZU@TV#m`v8egd#yTmYKqEf(Xi$~!o3nxmaFdr_$u;5s= z2wPd_XIKc!)gOG}_Kf31M~`k^{Z3^PFU%iAz&^$nj$(BF6~q!_eC{Nk^$X~=T}1EA zvw#3$fslmw02+00$X(4Mt*5;rG!(@WVca{8CY8bA#W(Tt+$=h^1B(a|3kV5|UD#W>JFxn@ex6S3~f-30z-^NOcntGhGAgQPr(5|%n(2b00YKx6dWb{AH8mL0RZKZ zuQNCgN{W#XqFxZyeryv62_m5ADNF}~6ayRqia{b0K`X~ChhdY@BS;Jk4=4~mBv?Qf zR{ypA3W=?|x4H!B6%lA8MSx2RWnbY<59ncn8xt%8NF-4VWw$mcG%L>+ihYd9O z!O!+?+jBn>`61AGWgafuAq#0W&MqJ9GH6IFIT3?efXN{rJ1GE z3y=yKBo6NAw(|LJNB9WT_xR0UX2GzN)(SDh5W#0)scdFa7T)g7ux`=vtDQGJH;jZp zG=XBAH~-zgZ8x!eu^fjZC#|ktb`jSThU@gD}I%CkQZZ4U8kE{POJ-2oXrIg8u;!g!%k^jc(Ea0000userlike_general_logo_small_60x60 \ No newline at end of file From 3cc14fd6e9c433a190f4ae4ff8047788e3e32b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Petit?= Date: Wed, 17 Aug 2016 12:03:30 +0200 Subject: [PATCH 008/236] Adding LiveAgent in category live chat --- src/apps.json | 10 +++++++++- src/icons/LiveAgent.png | Bin 0 -> 1517 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/icons/LiveAgent.png diff --git a/src/apps.json b/src/apps.json index 0a01af5e5..0c1570878 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3932,6 +3932,14 @@ "implies": "PHP", "website": "www.lithium.com" }, + "LiveAgent": { + "cats": [ + 52 + ], + "env": "^LiveAgent$", + "icon": "LiveAgent.png", + "website": "www.ladesk.com" + }, "LiveChat": { "cats": [ 52 @@ -9209,4 +9217,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} \ No newline at end of file +} diff --git a/src/icons/LiveAgent.png b/src/icons/LiveAgent.png new file mode 100644 index 0000000000000000000000000000000000000000..112c6a95b91bcf7ddf2e6f9d7cd0fc65604eb080 GIT binary patch literal 1517 zcmVKEsa-dbWikhrm49z=sr%j_+I1up0A|<<*Vw{fLiMH33*l|jV_Rpjh{mK^YU%S^La@yu?Z`yp@(~?*9{d}0+8tem0 zh{(V7YMBlrhSMj&m&cX4`H-^OFTH=Ft&nv6t zHAt`O3`eAFGzg497bEA0hNq+zpMh)=q}4NvrqCpst<8|OWoTk!DR45KAVq5)1Z$x^ z2xD-N{T(Mi(yTh9YF{F7VB2yB>ZHwkZir4I&e?Psv6Ql7HdG3MJxfoc&@rV^< z#wfyQFDMb8wavQ6=l2Mc@I9Bj@i}4)lNjRn`vFd)o$3P^$KMl4z+9iT)2n0d8o?T+ zi2mY5LdgsPml$|t3eHdx_c1`4TVHY4Gf%oxC>grph%Jx7sDWWawpQ$dw04Y2(U!$r zeyc?64_m~}NzpNjBxZoGP0<>~tM7v0E(9^i>j1cvj7QRtFiws%KI@Y3B@GyMWpygZ zBSX>jGQ7oB`_aMcn-(91 zptO#{2mPS<_BZB%t?FJS>JLCjPRgp^UmWVzQR2;SyJ<6PZ-;CbP_8N5B?K}hBnng$ z7~NAE=p9z6td41Eb24Wkz9)Pg8%OJYsr& zq^d_S=>e5Dk#LGb1|Z&_sH%Eq^Nl?)MnLWF5y;F@wgGG4GMwn8+|E+S9ntuN4tM?i zkW1kGq=FL(Ktg-yJ~bgP4N`kt*8Ey=-1WR}FNV724wy^=b}=ucn|ES8__8X%2vvFW zOS%Rc?xTgIbr>;_z}AP|HCEdYjOscFOR{`X8VcU+0cF-7#7bNffs+X&5HYnBt5Z@F zaFFdB5pb;L=Sv9S1~zYcNE6tR^9k6C5U@S9Ko)C>*Y2W*utJL1Z)jimHG$XDFw*N5 z7HJpT@IgNXxR6pHUHO?cNiPK-!iY{mS@6J=?j7-8A;&72-k|kGm`DI*bd#}p;+<=h6}_-%JJ!`-fNTn22r;ax-2t{YCUpVc zwyT(lyFDAVeIChtL+zIu4;E&TNI;fVA@EunPLu}7Cl{7q@LOWoZLBHEyHsZNJps6P zgh^0ykT?Zl64_4l;UX8{imTl`N(VJ%^3#(J;oMUqs=VP2Eaa ztw*psey>&09d5Y_h7oX_0Fyupp&o+M^9PzQZtFhGmIwPG_<#8d4&S4pG?!)#O0hsmH^KPO-(;|?T8@|At1EA_0u zO5pOfp{(ltFx-tbpyi~FZ`|iTAKz2q6QvYV>aOXZlEC}OB%JA|FQyqH6Og-ZM^HG0 zbk&29je)cxqjSgD_8S83e?00jy?&>iUe_5Wc0>P+hQFZ0QoWHRmQD?_Ywq=5JITkh TW;)Hu00000NkvXXu0mjf47tzp literal 0 HcmV?d00001 From 289f1547ab26bbfb9e45f6c4ce4a55cdb146188d Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 29 Aug 2016 16:10:46 +0200 Subject: [PATCH 009/236] Use headers instead of whole response --- src/drivers/npm/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/drivers/npm/index.js b/src/drivers/npm/index.js index c88b7cde1..74843cd9d 100644 --- a/src/drivers/npm/index.js +++ b/src/drivers/npm/index.js @@ -29,7 +29,7 @@ exports.detectFromHTML = function(options, data, cb) { /** * Do a actual request for the body & headers, then * run through detection -**/ +**/ exports.detectFromUrl = function(options, cb) { // ensure options and url were @@ -59,7 +59,7 @@ exports.detectFromUrl = function(options, cb) { exports.detect(options, data, cb); } - + }); } @@ -71,7 +71,7 @@ function getHTMLFromUrl(url, cb) { var data = { html: body, url: url, - headers: response + headers: response.headers }; cb(null, data); } else { From 48eeb1298c845f53f97296cb17662364ec7a1970 Mon Sep 17 00:00:00 2001 From: Johannes Steu Date: Thu, 1 Sep 2016 14:27:56 +0200 Subject: [PATCH 010/236] TASK: Update vendor vor Neos CMS and Neos Flow --- src/apps.json | 16 +++++++++------- src/icons/Neos.svg | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 src/icons/Neos.svg diff --git a/src/apps.json b/src/apps.json index 0c1570878..33e79726a 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6925,7 +6925,7 @@ "url": "/typo3/", "website": "www.typo3.org" }, - "TYPO3 Flow": { + "Neos Flow": { "cats": [ 18 ], @@ -6933,20 +6933,22 @@ "headers": { "X-Flow-Powered": "Flow/?(.+)?$\\;version:\\1" }, - "icon": "TYPO3.svg", + "icon": "Neos.svg", "implies": "PHP", - "website": "flow.typo3.org" + "website": "flow.neos.io" }, - "TYPO3 Neos": { + "Neos CMS": { "cats": [ 1 ], "excludes": "TYPO3 CMS", - "html": "]+xmlns:typo3=\"[^\"]+Flow/Packages/Neos/", - "icon": "TYPO3.svg", + "headers": { + "X-Flow-Powered": "Neos/?(.+)?$\\;version:\\1" + }, + "icon": "Neos.svg", "implies": [ "PHP", - "TYPO3 Flow" + "Neos Flow" ], "url": "/neos/", "website": "neos.io" diff --git a/src/icons/Neos.svg b/src/icons/Neos.svg new file mode 100644 index 000000000..d6fc9ac8d --- /dev/null +++ b/src/icons/Neos.svg @@ -0,0 +1 @@ + \ No newline at end of file From 8652b417b309c90d908d9d91ab2686bb131f60a0 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sat, 3 Sep 2016 12:25:53 +1000 Subject: [PATCH 011/236] Add Sitefinity --- bin/wappalyzer-links | 3 ++- src/apps.json | 11 +++++++++++ .../images/icons/converted/Sitefinity.svg.png | Bin 0 -> 910 bytes src/icons/Sitefinity.svg | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/drivers/chrome/images/icons/converted/Sitefinity.svg.png create mode 100644 src/icons/Sitefinity.svg diff --git a/bin/wappalyzer-links b/bin/wappalyzer-links index 1d033d908..b3184ebe9 100755 --- a/bin/wappalyzer-links +++ b/bin/wappalyzer-links @@ -36,9 +36,10 @@ ln -f $path/utils/*.js $path/drivers/firefox/data/js ln -f $path/wappalyzer.js $path/drivers/chrome/js ln -f $path/apps.json $path/drivers/chrome ln -f $path/icons/*.png $path/drivers/chrome/images/icons +ln -f $path/icons/*.svg $path/drivers/chrome/images/icons ln -f $path/utils/*.js $path/drivers/chrome/js -if [ compgen -G "$path/icons/converted/*.png" > /dev/null ]; then +if [ "$(compgen -G "$path/icons/converted/*.png" | head -n1)" ]; then ln -f $path/icons/converted/*.png $path/drivers/chrome/images/icons/converted fi diff --git a/src/apps.json b/src/apps.json index f4ad3a9b2..5773a19ee 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6432,6 +6432,17 @@ "icon": "Sitecore.png", "website": "sitecore.net" }, + "Sitefinity": { + "cats": [ + 1 + ], + "icon": "Sitefinity.svg", + "implies": "Microsoft ASP.NET", + "meta": { + "generator": "^Sitefinity (.+)$\\;version:\\1" + }, + "website": "www.sitefinity.com" + }, "Sivuviidakko": { "cats": [ 1 diff --git a/src/drivers/chrome/images/icons/converted/Sitefinity.svg.png b/src/drivers/chrome/images/icons/converted/Sitefinity.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..422f5048e506fb269b7c25122d12eea8c77249d3 GIT binary patch literal 910 zcmV;919AL`P)yyZnDM%sJ;9A&eBM>*f=by#OL?i%0koL4&rEparW_%rdYaVcsi^ zgiDg;^VTYE{x1NrKbfEzzCzgemO4*`qb0(QA0j*$5rAk1C8gzTLD&hr=ZjYOS7F!K zG>4DY(ia+_;U4d2O1KQn^kw{}?x^95M1*sp000`g`5>cwgAxr10m`|oq4~7U?Z5yz z#k!fN9tQ~jHZr0dvijJ4qMAp60RWgSeuXyyba;Sw^7Ot zlqR4kB*=BwVRk`)rcO#9jip(Y6{?&q?xW>IHBSfUtV&a3d3=YkC;t9@3!py94A0^K%KU<5$}hlHw~`x!m!ln&l$Ent z4LecF0|Bf`Gv4y}8es!q`6%{Kjul&MfBnSsd14L#82TL>5!U%M2QUbYeM)Ctisr^E z6z2l*3VPg1J`-h=zea#-v)A*OF7T62fPN|E2rZ8zw8xSxekCR^_xg|k0H>29tP}JHf#WZ%R(k@bI>T05sm=appAzG zkW*_V|F|}r)MGYqanu2FN>tJAIxJ9F|4smM@`T?<6(E{qTrA0lBW*e)zO&3jN zhE6r1E*jr@<0`H1VqrGTet~I$XYAnsti8{qj75tF%R&taA!Pt!X|`o8Is}%DnzQzw zw&n%KaUc$Oqhbxmv&AeN0Ek!6<2r0KPz(GTvT?5n?L*}JhEVG|Y&boUzXkwuYIV5g zI?PpADUkH*tZ>0H%yAv=Progress_symbol_primary_RGB \ No newline at end of file From 55709c4581461eef229d638e39f1d2190443fad9 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sat, 3 Sep 2016 12:52:42 +1000 Subject: [PATCH 012/236] Update Bigcommerce icon --- src/apps.json | 2 +- src/icons/Bigcommerce.png | Bin 0 -> 1129 bytes src/icons/Bigcommerce.svg | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 src/icons/Bigcommerce.png delete mode 100644 src/icons/Bigcommerce.svg diff --git a/src/apps.json b/src/apps.json index 70bde6c20..11ccbb95d 100755 --- a/src/apps.json +++ b/src/apps.json @@ -763,7 +763,7 @@ ], "env": "^compareProducts$", "html": "]+cdn\\d+\\.bigcommerce\\.com/v", - "icon": "Bigcommerce.svg", + "icon": "Bigcommerce.png", "script": "cdn\\d+\\.bigcommerce\\.com/v", "url": "mybigcommerce\\.com", "website": "www.bigcommerce.com" diff --git a/src/icons/Bigcommerce.png b/src/icons/Bigcommerce.png new file mode 100644 index 0000000000000000000000000000000000000000..30ec67fa2b0f7ebdcfa8f6fd78ad97af53d4104f GIT binary patch literal 1129 zcmV-v1eW`WP)!->zZ5&(b^?ZJZ(JKB&B%rZ0)Xx^FR7G&6%@v_J7Wvng8$MTz}_3^Zot4zuW(RKr^u| zC;L3zww#})Zs0xN#kQQ8z;$4dp&|Hbz!ShE`=Al{Ilv6n_({!T7ELj%v>00wDefUeL!wILvZuMwWlD@F>zJHRcVuQmn`B5ESDj6VwUm)syXLr}ENFexm zz(t_9igk?yf^Sv1wwbV)zp8qDBO%~xfNMaNHU^NuF9vQF>pJDmfXTo~V4(DIKVXEa z1YYh{;61Q7Q0{sGeSk^8R$xWyt3WU`06gE#z8?>q2c~LafUrCvUhfBXYBLOFS&(G} zup2m+I0Hxk3ewLq!1LX9U_0d;&&yQN0tW_I&qU#Cn~H$pHn*T5X1*9IUO%l^ku$ zv2-Ydk0ZWoNTLBMW9aVleD`{eo}e07S5~utpr!$sqE?5=4$<4UM9tAG|@ljpn5imzb;b-;dL zRM}L4fahDpbvlZaJC*`N%BBnkz@IH|~8@Dz9edl+J(+VssX$T1LYk&(BwsqYWLw5|Y$F`h-IYMJ^$#Q_ye=m!<+F<% zWW*RUf0&x0bQTcc>wqH)65b!xVIwGC3)B}n5*vAFzY#dD=)PYRI2bBHpL z%rSYl9Aku0OG \ No newline at end of file From 0d7c20e95c4cbe40b490a440483af201942e6eed Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sun, 4 Sep 2016 09:53:32 +1000 Subject: [PATCH 013/236] Fix Docker build --- bin/wappalyzer-build | 2 +- docker/Dockerfile | 5 +- src/apps.json | 77 ++++++++++++---------- src/drivers/chrome/js/driver.js | 2 +- src/drivers/chrome/manifest.json | 2 +- src/drivers/firefox/driver.js | 4 +- src/drivers/firefox/package.json | 2 +- src/icons/ArvanCloud.png | Bin 23686 -> 1851 bytes src/icons/Asymptix PHP Framework.png | Bin 1697 -> 1087 bytes src/icons/BEM.png | Bin 208 -> 128 bytes src/icons/Bigcommerce.png | Bin 1129 -> 1071 bytes src/icons/Blesta.png | Bin 1057 -> 1041 bytes src/icons/Chartbeat.png | Bin 979 -> 921 bytes src/icons/DTG.png | Bin 1084 -> 1007 bytes src/icons/Fireblade.png | Bin 776 -> 739 bytes src/icons/Font Awesome.png | Bin 678 -> 590 bytes src/icons/Ink.png | Bin 2029 -> 1834 bytes src/icons/Ionicons.png | Bin 759 -> 671 bytes src/icons/Lighty.png | Bin 23537 -> 3355 bytes src/icons/List.js.png | Bin 1290 -> 816 bytes src/icons/ManyContacts.png | Bin 371 -> 355 bytes src/icons/Materialize CSS.png | Bin 971 -> 900 bytes src/icons/Mono.net.png | Bin 717 -> 640 bytes src/icons/Moodle.png | Bin 1253 -> 1213 bytes src/icons/NVD3.png | Bin 964 -> 876 bytes src/icons/Neos.svg | 2 +- src/icons/OpenSSL.png | Bin 546 -> 488 bytes src/icons/Prospector.png | Bin 1566 -> 452 bytes src/icons/Public CMS.png | Bin 2798 -> 1239 bytes src/icons/Pure CSS.png | Bin 406 -> 373 bytes src/icons/RD Station.png | Bin 887 -> 521 bytes src/icons/Rubicon Project.png | Bin 553 -> 495 bytes src/icons/Sitecore.png | Bin 890 -> 832 bytes src/icons/Sitefinity.svg | 2 +- src/icons/Stamplay.png | Bin 2569 -> 2450 bytes src/icons/Telescope.png | Bin 74925 -> 74072 bytes src/icons/ThinkPHP.png | Bin 2812 -> 1833 bytes src/icons/Woltlab Community Framework.png | Bin 7410 -> 7352 bytes src/icons/Yaws.png | Bin 935 -> 877 bytes src/icons/a-blog cms.png | Bin 937 -> 782 bytes src/icons/anchorCache.png | Bin 13085 -> 10688 bytes src/icons/bubble.png | Bin 2075 -> 1468 bytes src/icons/question2answer.png | Bin 1062 -> 1058 bytes src/icons/spin.js.png | Bin 1243 -> 1155 bytes src/icons/xonic.png | Bin 15239 -> 12348 bytes 45 files changed, 51 insertions(+), 47 deletions(-) diff --git a/bin/wappalyzer-build b/bin/wappalyzer-build index 24e0f788c..8cd9e48c1 100755 --- a/bin/wappalyzer-build +++ b/bin/wappalyzer-build @@ -24,7 +24,7 @@ node $WAPPALYZER_NODE_PATH/node_modules/jsonlint/lib/cli.js -ist $'\t' $WAPPALYZ echo "Compressing PNG and SVG icons..." -node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/* $WAPPALYZER_ROOT/src/icons +node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/* --out-dir $WAPPALYZER_ROOT/src/icons echo "Converting SVG icons to PNG..." diff --git a/docker/Dockerfile b/docker/Dockerfile index e4834db06..2cacdfee6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,9 +8,9 @@ ENV WAPPALYZER_ROOT /home/wappalyzer/synced ENV WAPPALYZER_NODE_PATH /home/wappalyzer/node # Install packages -RUN apt-get update && apt-get install -y sudo curl bzip2 zip libfreetype6 libfontconfig +RUN apt-get update && apt-get install -y sudo curl RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - -RUN apt-get install -y nodejs +RUN apt-get install -y nodejs bzip2 zip libfreetype6 libfontconfig RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* @@ -39,7 +39,6 @@ RUN su wappalyzer -c "mkdir $WAPPALYZER_NODE_PATH" ADD node/package.json $WAPPALYZER_NODE_PATH/package.json -RUN ln -s -f /usr/local/bin/npm /usr/bin/npm RUN su wappalyzer -c "cd $WAPPALYZER_NODE_PATH && npm i" diff --git a/src/apps.json b/src/apps.json index f0676d3b4..1c96fdc39 100755 --- a/src/apps.json +++ b/src/apps.json @@ -899,6 +899,18 @@ }, "website": "browsercms.org" }, + "Bubble": { + "cats": [ + 1, + 3, + 18, + 22 + ], + "env": "^appquery$", + "icon": "bubble.png", + "implies": "Node.js", + "website": "bubble.is" + }, "BugSense": { "cats": [ 10 @@ -4761,6 +4773,34 @@ "icon": "Nedstat.png", "website": "www.nedstat.com" }, + "Neos CMS": { + "cats": [ + 1 + ], + "excludes": "TYPO3 CMS", + "headers": { + "X-Flow-Powered": "Neos/?(.+)?$\\;version:\\1" + }, + "icon": "Neos.svg", + "implies": [ + "PHP", + "Neos Flow" + ], + "url": "/neos/", + "website": "neos.io" + }, + "Neos Flow": { + "cats": [ + 18 + ], + "excludes": "TYPO3 CMS", + "headers": { + "X-Flow-Powered": "Flow/?(.+)?$\\;version:\\1" + }, + "icon": "Neos.svg", + "implies": "PHP", + "website": "flow.neos.io" + }, "Nepso": { "cats": [ 1 @@ -6968,34 +7008,6 @@ "url": "/typo3/", "website": "www.typo3.org" }, - "Neos Flow": { - "cats": [ - 18 - ], - "excludes": "TYPO3 CMS", - "headers": { - "X-Flow-Powered": "Flow/?(.+)?$\\;version:\\1" - }, - "icon": "Neos.svg", - "implies": "PHP", - "website": "flow.neos.io" - }, - "Neos CMS": { - "cats": [ - 1 - ], - "excludes": "TYPO3 CMS", - "headers": { - "X-Flow-Powered": "Neos/?(.+)?$\\;version:\\1" - }, - "icon": "Neos.svg", - "implies": [ - "PHP", - "Neos Flow" - ], - "url": "/neos/", - "website": "neos.io" - }, "Taiga": { "cats": [ 13 @@ -9214,13 +9226,6 @@ "icon": "xui.png", "script": "[^a-z]xui.*\\.js", "website": "xuijs.com" - }, - "Bubble": { - "website": "bubble.is", - "cats": [ 1, 3, 18, 22 ], - "env": "^appquery$", - "implies": "Node.js", - "icon": "bubble.png" } }, "categories": { @@ -9277,4 +9282,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} +} \ No newline at end of file diff --git a/src/drivers/chrome/js/driver.js b/src/drivers/chrome/js/driver.js index 0ddfd9045..724068861 100644 --- a/src/drivers/chrome/js/driver.js +++ b/src/drivers/chrome/js/driver.js @@ -216,7 +216,7 @@ */ ping: function() { if ( Object.keys(w.ping.hostnames).length && localStorage['tracking'] ) { - w.driver.post(w.config.websiteURL + 'ping/v2/', w.ping); + w.driver.post('http://ping.wappalyzer.com/ping/v2/', w.ping); w.log('w.driver.ping: ' + JSON.stringify(w.ping)); diff --git a/src/drivers/chrome/manifest.json b/src/drivers/chrome/manifest.json index 868d48120..7ef03d0a2 100644 --- a/src/drivers/chrome/manifest.json +++ b/src/drivers/chrome/manifest.json @@ -1,7 +1,7 @@ { "name": "Wappalyzer", "homepage_url": "https://wappalyzer.com?pk_campaign=chrome&pk_kwd=context", "description": "Identifies software on the web", - "version": "2.48", + "version": "2.49", "default_locale": "en", "manifest_version": 2, "icons": { diff --git a/src/drivers/firefox/driver.js b/src/drivers/firefox/driver.js index 71ef1a2d7..6c4cc29c5 100644 --- a/src/drivers/firefox/driver.js +++ b/src/drivers/firefox/driver.js @@ -448,13 +448,13 @@ }).post(); }; - post(w.config.websiteURL + 'ping/v2/', w.ping); + post('http://ping.wappalyzer.com/ping/v2/', w.ping); w.log('w.driver.ping: ' + JSON.stringify(w.ping)); w.ping = { hostnames: {} }; - post('http://ad.wappalyzer.com/log/wp/', w.adCache); + post('https://ad.wappalyzer.com/log/wp/', w.adCache); w.adCache = []; } diff --git a/src/drivers/firefox/package.json b/src/drivers/firefox/package.json index c46c45a8a..ea9e811de 100644 --- a/src/drivers/firefox/package.json +++ b/src/drivers/firefox/package.json @@ -8,7 +8,7 @@ "description": "Identifies software on the web", "author": "Elbert Alias", "license": "GPLv3", - "version": "3.2.6", + "version": "3.2.7", "main": "driver.js", "preferences": [{ "name": "tracking", diff --git a/src/icons/ArvanCloud.png b/src/icons/ArvanCloud.png index b8eb19159e234f6494ab83a738f7dc819fdbcfc4..c9ec8e0edc46f18f6edef4db33c898d0915e4f06 100644 GIT binary patch delta 1838 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 diff --git a/src/icons/Asymptix PHP Framework.png b/src/icons/Asymptix PHP Framework.png index 72dacb36b12a78b3117f3133a783ff443e683675..cc8d5eeacb7e0f9e0817a9d5bf97fca6d2840200 100644 GIT binary patch delta 442 zcmV;r0Y(0y4ZjGGBe8670)GLPNklpt6oWz`%>1k|t2>!G-n2MQcd#h411miZC5mU?ZBb=ly4`xYk znTVLk+8RM_t?dK;qh%^$!rB}d*^&n`ca@12W7o_NU~tO3*y(*WuzQd$ZBdCBv$g;_ z)`Gp>1)Ot?MO1oj8-LJA_ZS|T?-$aP_sMN4F_m+l9dJeuC_P)zF)80XPbH>wXVZ<~ zY+FFadRwK1Bg)nR0a^b;0sOqI(w~-Us}KVh-{lsHo048ryY!_G2%hR?0fSZPc|oYS zr7J{WKNUd77?acB9wrdcOSS>681ux^;)$rp)QUzfl_{YcPOo0IGCQNG=fb6H2Uj_S z``@oW5Wv0Sz=<0yv-hl=xwCcYRMQJH5A8AA79nyY@`kmAm1XnYmxuZ^-@kg6kpKSO z!hU(GPMq*qy+FXz zQSb!gx1*{PEOd3X*RMFUX`R!F@a8=k@iD>NpZfHjV{4t0gNwaa>)+|lRS>`RdTV(} zS!wyVFW zH3^bOx=)9%+2RmdpOC+i>&?-t3Hs|Ick`WPSn!}Kd_fcMyJrp$_7z@!w)5SJ19xgp ze_G3Pd3)~tjm3x8-L3w1>+S9B^^cD+v-7{bSNr3{#pL6C^DQbrUCCs-#mulSyOYgy z&3a{EWU7|9MwFx^mZVxG7o`Fz1|tJQQ(XfKT_eK~LlY|lODjY3dTj#(D+7a9tF@k? z=*Z1a$xN%nrURm3_P0qKYm;1R9ztWR#Q?Sn2DRmzV2hf>hT737~Sl{G#+bZEt}lGDv`o49O_XO|r6b z$xklLP0cH@vI+pIEoLxW{(rYVni{aBR#q9QnduoN42G6Q{0v2{KsDk>=0MeiXQq^7 zfRtQbqsReNB3a^E54X!VGdH!QvLKZK>@NL+ymb3bVSZ=^`Gx>hF&LVd7#NzF8Je1F zi)xDlmGC3k6`Wa>%3$E+G-Z+98=zDel2mArCqr6hPAV_}^mFq{a`MylebN%kGL!T3 ziuDnZqo16dXp&-Vlw@RPU}<7zkY<`OTnYOV*=p$Bx}hHbTXfL1Vg My85}Sb4q9e096``djJ3c diff --git a/src/icons/BEM.png b/src/icons/BEM.png index 172170eb38291ec25c94e3406c14ad0f562e73b3..78356f4cffae8875f94995ec4fdabd0d88aea4d5 100644 GIT binary patch delta 111 zcmcb>*uXeJB7=#Ufq{WfWKuei;tB8xaRt)6yu9KfB1-b|g6iMq0Qt-%L4Lsu2^&IQ z$$SNJ6+B%WLnJOICoHi0;m`BCM_%~HK<)}GvW$4FdgVk6DgIRpi++#iKwWwj^(N R7l!{JxM1({$r}|bm;n^Q5~u(G diff --git a/src/icons/DTG.png b/src/icons/DTG.png index e2134e1f539f479926c3e1d43e6329ec8050d50f..fff0ad86ea0f0a6ca933763c9228305d9996741e 100644 GIT binary patch delta 10 RcmdnP@t%Ex^2UNQ%m5h?1YQ6D delta 86 zcmaFQzK3IivNr=uv6E*A2N2Y7q;xPaFmM)lL>4nJ$Xb9fBfH9@O+Z1J64!{5;QX|b l^2DN42FH~Aq*MjB%%art{G#k)1?OP17kf7KY*akQ3;?{%8L9vP diff --git a/src/icons/Fireblade.png b/src/icons/Fireblade.png index e34ef1313980900d8e4816cec68e1b27b9a41c23..aff85b1c059c38bba6ef8a8777188c592324cc60 100644 GIT binary patch delta 10 RcmeBRd(1jPd85YxCIA)q1LXh! delta 46 zcmaFN+QBwKS(!ny#5JNMI6tkVJh3R1!7(L2DOJHUH!(dmC^a#qvhZZ8%|^vTOaN}- B5PARr diff --git a/src/icons/Font Awesome.png b/src/icons/Font Awesome.png index 8666a591fd6a393cf727dcdf92b24262cdd2a208..4a9568af1984aa51a04e8ff7cf2c46acc42701db 100644 GIT binary patch delta 10 RcmZ3+dX8m+^2TayCIA)N1Bw6u delta 97 zcmX@dvW#_tau@?+age(c!@6@aFBupZSkfJR9T^xl_H+M9WCij$3p^r=85sBugD~Uq w{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$0gN_s>q|8x?h#08nfk8vp&pIsQGn4%uf6wA%R)u= zY}FFih?11Vl2ohYqEsNoU}RuurfXoRYiJf?U}$A(U}Xa2npzncENrX-8qa{xkei>9 ZnO2Eg!-YGCRDc>7JYD@<);T3K0RSlfJZJy_ diff --git a/src/icons/Ionicons.png b/src/icons/Ionicons.png index bddc79c12d04c93a138047d2490eb637e4f0676f..ace620764f506bba30df3764dfea922f07dccb0f 100644 GIT binary patch delta 10 Rcmey)I-hld^2X{KCIA>V1O5O2 delta 97 zcmbQw`ki%xau@?+age(c!@6@aFBupZSkfJR9T^xl_H+M9WCij$3p^r=85sBugD~Uq w{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$0gN_s>q|8x`xA09~#ej{pDw diff --git a/src/icons/Lighty.png b/src/icons/Lighty.png index e0e3dd27a3eb5e85c7ca756ece41872ffd80a87e..fa64c37afb8d7703805553b9050fad178d50f2a5 100644 GIT binary patch delta 44 zcmeykopH9*1Z7U1N1iT@AsP3cZf5kq#Usi-?fws;$;QX_GXR07tDnm{r-UW|liv{+ literal 23537 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 diff --git a/src/icons/List.js.png b/src/icons/List.js.png index d2b0278561e8d7d2c5330a51287138e908f4a5ae..b58fefb7670e76005acabc895926133047ebad4c 100644 GIT binary patch delta 804 zcmV+<1Ka$H3a|!{8Gi!+002a!ipBr{0XR@hR7C&)0000000000000000000I01*)Y z4-Wti4gd=l02CAe5*!E-8V4041sx*=9487REeRql2q`uTEj$b~M+`Sf4Lnc{JW>!v zToX-a6HRFpQEn7cZxmN`6k2u^S$7s-eimYZ7GZ-IVuToGiGLVoiWz8&8f%amahDo$ zm>YAN9Cn`{fU6#Ytsa7}ABM6Zg|Z@!ydjUiB9Or%k;5aC#3Pi(BbUh}n9L=b%p{x6 zC7jYGp3^0t)hD6XC!^RWquC~-+a{&lCZyabrQ9f|-6*EsD5&5nso*TB;V!D-Fs$J= zuHrhc<4w2bPk*@PTfFC6z35!M=wZL;aK-C)$m@H`?1Rnih0g7a(C(1Y?~u~(o7VB7 z+482_@~hqRt=;pk-t(~E^s(RcwBhu&;`F%U^}przkqh3_0000-bW%=J00RUC2@Ves z5*Ha89V9C)Gc-L!Qd3-AYj$^ieujvNk(8B|oSmPft$(hswZq28%goo>+}_~f<>=|_ z@9^{X_xSnx`~3a>nO_yX0004CNkld=J=U5fm=7Yf8fd_R6gp}az2C6 zCgFLM5tbWwDOc2LHLaMFkN`VOfdmG;$pD#rxmy3MyjX8l0`zIK=YPC#s8)5?qJk+Ak3-;Ecc*=S*%rZmsWq+uxiKp{t?Hw*v@y**9pn*& zysX={zjTxTuiwta7NAd?oweuq`ROK)Kpf&cJynma9GwYr)Vj>P^WgD2MGgR@N|R`M zxw;NI-N<34A}`4sx4)>oduiclha)RfriHldT>r>BGk?RBky^5A|Md?lN^c2BNSUE8 z-uYTI=f*xCGBh;wav5yiAgo>iR#rd{7lbnqic21C6G^K|o?(CZ^vFua)jI1S>a2s%G9>0EGRQN?@mXh_ zU5|spoRdc~siw?Hd5r_hi)eQEr{v2RXQz{dQlq^c0k;JiB_rco-C2-f9~bqS{9h0X zhJQ%@x~+REzDtY>XqnqfAn&+prTo2?i|YK<>!mnE{`H#zJE0yjw4mD!^NY0_?b*i;Qp-t8Uq8@C;%8ZRdYc1;FHhCx)CD~!b*CCNIx*x-{(Ae_zmM@75gN~9|p^dXzKH$sejKO zGdt1X{;{^k*WLC9Ft#V8%)3uCjP8o=L`TH;*?PLGHsnVJmx)d3>t8m~hFNo_g?Sv} zHKl;le$~F`iTeeIy?46FLtfT><(+3Yj-L%=6AXu3PS>wzPN?QCT23d=Oq&k!z_sqq zD|@%CkjtY rdjqyht=_h#damW{w_sVPl%W3tk6#cqLkD!%00000NkvXXu0mjfLiT7% diff --git a/src/icons/ManyContacts.png b/src/icons/ManyContacts.png index 570450fe564a921d727af76d3147d9be0099c74f..c4510a6e1045a491d99af3fdba4dc27288bc6e78 100644 GIT binary patch delta 10 Rcmey&^q6Ua@0GXND{1CRg! delta 80 zcmZo+Kg~Wt*_DB@ILO_JVcj{ImkbOHY)RhkE)4%caKYZ?lYt_f1s;*b3=F*2L734= eV|E2lkiEpy*OmP~J3FVTwakJK?=~tXGXntLhZtZ0 diff --git a/src/icons/Mono.net.png b/src/icons/Mono.net.png index c66e4018523b9a3f14c762fb64240fdd622aceb2..74b1d85dcb241242dbfc9f4ff1c59f893b5b7ee2 100644 GIT binary patch delta 10 RcmX@h+Q2$Nd1FB=695%E1B(Cv delta 86 zcmZo*Jl*_(l-*vT`50|;t3QaTtI7&r?&B8wRqxP?HN@zUM8KR`j564!{5;QX|b l^2DN42FH~Aq*MjB%%art{G#k)1?OP17kf7KY*dVA0szLs8PNa$ diff --git a/src/icons/Moodle.png b/src/icons/Moodle.png index 6721efe77e3b356fab0a3f5a7aad103eddb97b78..3afa9c9fe1518c184291ba005a65e017c46ec7f1 100644 GIT binary patch delta 10 RcmaFLxtDW-@<#7jEC3i_1Ofm6 delta 49 zcmdnX`IK{lvKj+tfk$L90|U1(2s1Lwnj^u$z`$PO>FdgVk6Dh9k$F;ByZ=VTIV=DX C)eAQO diff --git a/src/icons/NVD3.png b/src/icons/NVD3.png index 9e1b4f8d4d06f78a54ccc00343cb726167d3ef40..d5bfdb17738dfd2fc63e4086b7767de55ba96270 100644 GIT binary patch delta 10 RcmX@Y{)TOW^2TaUW&jve1L*(& delta 97 zcmaFEc7%O`au@?+age(c!@6@aFBupZSkfJR9T^xl_H+M9WCij$3p^r=85sBugD~Uq w{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$0gN_s>q|8x_5o0cfQhdH?_b diff --git a/src/icons/Neos.svg b/src/icons/Neos.svg index d6fc9ac8d..5fff5a8c2 100644 --- a/src/icons/Neos.svg +++ b/src/icons/Neos.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/icons/OpenSSL.png b/src/icons/OpenSSL.png index 3f4a6f7b9cd2a4b1d7a9b4e017cf2e24d150668b..837b4e9730194165ac7d6bfef80095abb847aa98 100644 GIT binary patch delta 10 RcmZ3)@`8DS^2XSsi~tu*1Q`GT delta 67 zcmaFCyohCjvIPTYfk$L90|U1(2s1Lwnj^u$z`$PO>FdgVkA+2CjH_CWKLjYmmgMd3 R!tfsi7wla=d86WSMga8{5q|&x diff --git a/src/icons/Prospector.png b/src/icons/Prospector.png index fba2daee974bb8c43dd7c139422170ad656f76d3..2a694ae38c1c91559d8e6f1f55b4a5bd9788788e 100644 GIT binary patch delta 437 zcmV;m0ZRU!48#MF8Gi!+002a!ipBr{0GUusR7L;)|A>*5iHV7cl9q~-my48`jFgy+ zm6?r|nU9y7kC>d0kdTp?ospWIlA4~BoS&7QpqHScn4qJYqNSUnrktauoTR6not>em ztD&f@qpGZ=s;;H1ucxiBsIIZFx45&pytlo;y~4!6#Kz3e(SOX)(#_D))Y#eA+uYmT z-rV2d-{Irt=;`R`>g?_A@9^>P@$&KV^YZia(=J{u00001bW%=J06^y0W&i*H*-1n} zR5;6plj#D2AP|HB%kC`gR4cnLv*Z0Au5u$5Ty%boyPr6Vz?jmGgXWAB$BGN>2{*JY zc^%ZQ=yNVA`hT2vaKAAMK;xDoeCSWVUQ4u)1o{9yvryi$E6P5s#GwkX#aTjqPXMq% zXQ)R60R95LrvWeIkKi2%eM}Q)94?@h!Q{g^1afHgQ8W2Px zkqJ0H7Ke(2ZHx%Q%(5n%Qa_>)v*3nP)c65HCqo@jH|u0{R|K{{#x8gFzV9#3^ZY*V zDpR&5F85jO!(y?PYm$^YW(C}jH=B7=7Rxhc387VbI+e(#3n3C^DGte7~n34-%b8Ze+a7%u1h_FWGLzz{hn zU7{6gO$lf&mSiE(RLj;h*pdg!5Kdey5Mu@z0V7I7fZ4bUr$DouGph?Sd$(D@0cIg| zo}BY4D7`iXNFYcQknkgTuuvodq*A^pQX-X#!U3^RBo+vnTgnqff)Xhx{s5S}IE*(E z$p&>w^_(x}B5+<65hO2H&% zqA>yo+=`Ha$fxBTCel|a7)=YZI5k%$reFdyWDVEL}z-HI;wP0Cl zrfx@5C_m=Y+R`Pqq$)2kO#8Bb6Q`!W!En&WFRQiJgKF$_y6jJ)*~$A3bcgOg`^~%D zK0n~fO)D!pIyymN5pPcv{&<@VaK3PaC8Vd{ENO|~ce{b>b=cJtGUafD>;_qP$)KPh zc5!BAh3j?e-Ak8xdnaC8O|Ll7Qye(z?NJ+#l$YnJ0en40bxl93>et zPdoMnwMsA${_`7N`hs;aRjEf#R5#WRlAevkn+O{Gc1&^ES=_^NyfP#9{I+YsW3Wm(Tnjry(cE8gbj8ipkwClOaG`*v)MYC=+U`j zQ~0124!ig0NJAZxH9S1hs+lRCc+}@w^X=2&ZScgELIzKbS zof95BR4M*Cw{1fNj@UBq8#b3)ZH~s%GsK-U)un^$o9bG`EuekKZg5WhzUIT#_s{Kd zl{{^_73Gk31M64*WMPM0cs#O1ty>ZLd4t2@Fx;qU&W=30Nxe6mTj6yOyExEt%vR2S zE&15>o&H(l+<;vTjrH{>qslUD*HhNzEnAwW@g|qN-=*4;+*6y<6@4oM{@BozuLum` z8EBht`1qM4!;?(XPny}Pb!|1Jqg0tztm6d)tw8E(>!w|Q{I$pQk$?M9MeNdT;mtRy gTdl#G&}9Kxta~M6VC&3jKldM7quQ$MjL$0j8-XESIRF3v diff --git a/src/icons/Public CMS.png b/src/icons/Public CMS.png index 7a25b47fe5c5c07bc03bf10b3c04a56bc8701022..9a8e084ed64b29998866972898c605b986e92bf5 100644 GIT binary patch delta 1230 zcmV;<1Tp*W71s%n8Gi%-007x@vVQ;o1fEGmK~zY`jg@~)TU8XtUx7`gK{n?EOk_+A zM3*dx;y)^o`75w>32f?Aq7H$f#4I{+usFI+K$n?dbeNgw$jm@w6hfiDOIzB$w)6*W zft5mO3+*dV+X5@l(x2D9wzOLTOHN+i$vfwMa_+hBd@lr`?SIU-+xyJ+(GA=D31iOz z@u=s>gok}esAnqGeYbN!94u5f1ial0rKtq(8T6X}e$$B>X=BvLEiVEx+zKMA3ss zrW#Oyp_0Q#BZdmnocqZbTR_eD8F3yYvxU|oO)Uz58QK~EtsU`$^EQq=3|QHvdU`WL z-X`kRU6i%yY9$@MWHRDB2=>sXH1)x#{tIOXz=Tp;>VL3Hq8Ea`CxS?1O67PiPxY(( z_k~g}2SAbz0U3>W_ly1^Yt4n>3L07pTwi~Ct6Z04Nw|DvFfZJREV7BT%u|fFiu#Oa z<~|}By?X&^<4rTyy7R&A$7P>N+0Kogz9* zZm6_pGGtt)^H6ZHJHwe3;;hBZBy)4GHlC!ss=>OxY{Ob!TPtuDTaJxYGZqsCA_5@U zM%(n&{qvghXuc~$e^y8&>t}IMeRn|PX~g4ASAWjZP8dsE#~lT0ShFc^siqUK%zPGy z>Bx4aYif8bs)ozf)Y%V*Pa)cDn8^e5{KkvND8)1fWc{Wa^mwJrsqZ-q>ZFjMFL$Qz z;71Ca0yOs+NL9$X0L4SJDgL&WfaIuQGJnVxu!K=2U~{-Mm^w@yC+Ptn{+L`4nA)J z7tU=SyJq@eQ_-F@q)d!wNu+mFH)+VAfn;UsSh{2Ie+{Yrkpk;}x+Leh|P z1goJU=nMPNq5(7{L@FYp%7OJ&LB(8rZwpafdDHPq==!LoYS25$kx4<^sS$wgJUqAq zSzpZWTUpIPz3F=N=pq2;A)?ih6-NsY&xg_7qaIU=oOuucpqWN{cFYP~p-FRPzzWZS s0H9e+*!ku9KrOzM&`f6Aj&7IrAB)4K9<*AQ0000007*qoM6N<$f}bH%+yDRo literal 2798 zcmaJ@c|4T)AAh9ia*QLa%G2moSYyl>#|$IP43U|fLvjuC7!za0%wQ;q7)e&UNNHEr zQDz+-2&JXT88%rfVUOKj-tjo)jmFo!sW{HUj`4 zXTP85BALOpd!vlx$%~1Zl}s9Zk|*Dl9mJ2KaUsB(&JKV;dlroWxj-~}ba)$N0RYl) zrkf|F%;vLs!E6pla5VvS zJeXm0b`($d6P`@Q*@yA?w6H+Po`{D_6bzV5I?mV(gCUWyMz%JRq@zg2Hbh&j4c63* zNFot1wgl@hTp~L#f(3=~zi{dQaxvfJuC)S-Be6_`xXeh1Zp&q}z)vCLnBVpV^-aCc zT>7_tL4T8rlsJQ2E9`$2`pc1|d)Ag;+g7sq+W1hIq}#cYwtl;DwG9Ad1MG>`Zi4>G z>}W?f50z$yke0o}`Yc%mMue_fHFZWn^0VsQP**CX$U`W{$$|~^!?#sT2smK zzJeC0#6|R0C1bhR_t_5U;K6j{6I{2ApWmhSG)+?_DH^;CFPQQtL`2LDt!`)-AE=Hi zFD+em@iH_tESAY^yO*qxy+5R^tjxEwvyw4MkdNrpTXp~J)fBg6{G*lOD*4Ux`H5H^%v?Y4VKy-_kq8_3W&70Sii(+scIi78D#{O*$`)l$JgL{(M5tO^T+DhF z6&t&Qp;^Cr{vd-J4 zo4Z}-M&G>o>&5HWT1F^Ttt8%X>HWB-aZYaTPIqT# zShr+!_4SR=Xf)@$!#OoIHJ&CRK^^CvwIB6YGXFGCQ&nx^*5D^EXliJv?X{!7vsS?k}cM4~n<3iVF8 zcuo(q_;=`$*u{=F1OJzMWs`%LSixhKT^{LX6>gSpo8-H$8PP%l-?}v;GS63$| zr<|&)xkKGX@?KH+L~XHet)~@bKNlm$~}xKA^jw?xZl! z!`ahOv283>4f%WA>pynHP5d3oV(A|HVQ+0Z@tx2xPnbgS4B>`{Gl%NqR=JHAJBNT@ zrO{y9;GjkN%27NX|GcZgnil8p-;kt|2G)HKn5Q#ZGLc7G?%cVvS^ZjxNc8Sr319;w z2EXFAy2)!LAmreqwskiJ)z6m~W}Zmh+>o9+#W4dxe_8#?b;snEhE6)~6}#H0ql*OdVzO^yOX;#ZLprIT3TB2N6r1mLDVBq+zzzg9RP1#)~4yc?xHvN zJYDH$c#V&4-CY1(zhY;djA_=)kffF`e#$y>#KC53gtD-{MoAxms1Q`e4*DJ(?A6X= z0nQZ6#vdutPW`Fb_Y$o!g}dZ?&hD6@H96N2<YM4kzRVNpJ$3H()FPL)u3YNR4ddUQmSP^O~QdEhfd!U&15ab)8zCR0KG?YXH7eNpH zkfeT9G4PyccDdx+B_|Sz(sWkNevn%^j7Fn>t9exP!Z$$_;qLB!I~cR+S#)INdt>fu zV7S6bql}DpPrtkTrMj5Yrl-*p@v%C>r*b-rcJFs$WR{~ z-GjNV4xDoKkvcyT@~9kgh*YC%D`Z-_?~4I zdGwX~)c*Rz9f^Vk80qqQsmN(Z4-@2Wn2UmVihmP4lae{+YBqDbZuN{g%z7cxhAUJ* zPN+_WPhM=o?aT#Q<+#f&KRS;}PbgQ;yPj^sc%L-$*dNk&+E#X7aB8?CAaJjwxBav+ zGmiLvueR6L9KJYBJ2t>1t1I5(phmmQoJyq76nqOYorWM*Z>k_YFlMiI<3N6(~eM)Sb#nAO2ro`N>! zo|=Y7{rVHTEv(JvOEKGv6E*A2M5RPhyD*37#P@+yxm$*^YrF-O<;Pfnj4m_n$;o1_lO&WRD45bDP z46hOx7_4S6Fo+k-*%fHRz`*FTQPq{P{{R2~d!qsu0~InRdAqx02c<3rDq>(S@$_|N zf55~q%5P{gqrVC$w8GQHF+}2Wa>4;72}#L?EFuPmn>QFSahk0Vux3{mH|N(^m*3Ce z;u7Ey;S%B#;}ql-#ipg8t-gN2iY03no#GM<2)=&d%B5=;uUbP0l+XkKv9Y)X diff --git a/src/icons/Rubicon Project.png b/src/icons/Rubicon Project.png index 2aec17ef4c8bc02fbabf9dc5b9dc0b6b679949e8..fe5a3f3bfc80cc42485813c8b52271ba862b3863 100644 GIT binary patch delta 10 RcmZ3<@}7Bu^2XRRi~twd1TFvo delta 67 zcmaFQypm;tvIPTMlDE4H!+#K5uy^@n1_lPs0*}aI1_o|n5N2eUHAey{$X?><>&kwg RgHu?7w}J2HosEj;7y+9%68-=H diff --git a/src/icons/Sitecore.png b/src/icons/Sitecore.png index b5b3faf8fa36a13b4591322d93fdac83a7d06926..31f2b6e9a16b4eb5c04931f514b10aa78a033a6d 100644 GIT binary patch delta 10 Rcmeyxc7Sby^2S(MW&jvf1E>H1 delta 67 zcmX@W_KR(TvIPTYfk$L90|U1(2s1Lwnj^u$z`$PO>FdgVpHWa;O8>{3{B)oYTavfC R3&Vd9T(EcfProgress_symbol_primary_RGB \ No newline at end of file +Progress_symbol_primary_RGB \ No newline at end of file diff --git a/src/icons/Stamplay.png b/src/icons/Stamplay.png index 264699655277ab8140d13e00b0ceab0bc64aff6f..8f5b25759d9585469376e790abece7ce979990fb 100644 GIT binary patch delta 2390 zcmV-c390sp6p|B=BOVD^NklN@rXQQ!WbK9!$gdwi_0LyNl$+7WBAssSE9NqNq>7~1K!{I6sBHu_M&{=TV{-{ z17L}WdyS)v1VqFDY!K*CnQZRGQ$`J&zj?zVv-<2`W#FH(&+jqr;Ij(@&>%R8c=Yx{!CS(B96q$# zj2uyOVgNVZ{0jsnEnL@su~NyA&CMO#jIl`~@Mp=L0b-e1IF4!_JErc7*4ox=wm^rE zw6i+Vj=|NHsNdR10FX>XzhkXU5L^NV0+_`tFy}&duTXEcp{xWGY^4qo|arB5h6u8J_3#S>wV1~5} z@aJE|3}Y>;Om}hYJ{>|uXRGWN&*!JlKu{<^gd@m%8nJvkVwLf_Kx+`df-IN`h6#fB zcy|nVVJwxoD)?A`FCZFG!_%2IXsi1tRBH4nwABBLh{3amccj`jz5n~cSEQ~QcCAIJ zK+>~exXPfy4d9g|bdLdMhH@0DM_3S6y~QpRCWFecDaq z=k^2Ob# zCyt*j9EU-Fi4sm9-Hkzs0HuIH0l_j87*_kGEBgT;A(0q08mgwYKpQvZIOJAsNnQ+T zHNwhbN_rClYQdp)7wMV^@<9lKOgXX)zyd@-sU$F@%EwnPXhSLyARaX+X#vZCWdZ{R zU`0Z7^#hQo8^#UKJufSYnPRxI>NlOS^y6M~5QGVTAcTtzEt7E5sF!i=6^z%8T#n1| zXGEh0J}WpbA(RA25QMRa$2`oR`vCxkF$7qGHGmr~LO2P#zn14MwfsikO!NISTn*3<-^{P!b*C zB!snpU?K=`IWHNO91?+JUk`gn?q9a{t@=IyzkF%~uD*XIaCk4SD_X&nvl}nFtH!jo zyJVRGCWlHW1R;bX0)>O^cyfImCgy-kTDKvm!e9eLwTHhC8H>hv9YQw10J2&TL^2g$ zRXD3uU*}D56#&d#xDIb@-iuKejK;a+S1KicNyj4YORPg`b?Adqwc0FDC$M>~)| zup5=300$zq*oQWZD6|5^*cBUrwsbYBxOl>nmi+T8MhXG?jLclO#ZPi2!_K$)=Xbq=87O*FO zsmTV?ru;lWfckiE2SSd-=%Fc95mH)7adBt2_kyu3h{zaiRi^PHc&&#(LIGe1rOHjw z_7ykmbE?Z83Uu#0azX%sAq1L0L{LAv{#-10dAm@Ov=rjpqut(0Z8!`t3l%CvI~#XV z@W~`m6K1fX^4#acGJ_eAf_kd3*HdeM3Cw_Hh9JVgc1Hl>aRtxuK>*Za%j=z3)D2uE zhIMAWmyG2k5lWKa<}u{1N2kq89xaFk1U9|105eb#5l~VfSJ3@i9s^1eq7@SPqCpVw z01yNjPQnHSfCz#JoXeMxD+J%Lmg@-ch~UP;;(;3nKmKe+CsRsVNXd|rAp|3T8X;`h z-i2pZH-pH6xxB0`f7hPzvEapnXzBD24waix?|vy6Qha(>M6_a1BK%OG&AO5{nk|PN zDSy6X@l_8!`NZ95$d1;`{ZD8t@VjOE@xktHta+~sN>X3jbrj)9hmReN9q{~9@Z;Ha z=*$F=lKScB)v1_yW_O`!5*q3D}lBJ?%!G7|4SD ziO8^wfh^DjRt%NZcKB4Vx1A^ua({R-Rxf&I)#OXYEw{|8N7W{`S>~YC8_rX{@Tzb_ z{{B$Z-6o{IMmZ*=9IKUo!*E}MvJ$|_i$7LwjLOE=eV~ujGQm*I>#iBD@r|Ug8 zloRO*<1Ed7@D)0m^{6HtwL%bl zJ*Mi=fEY6X0p_0nHFpzo1^e)?Uwj>NWqU9G}eOBbFw%;bsz z6lF21=5mk%oYa?PsP=XfbiU!*pm`3gz8A1#jv4cgvETR101-$wkf?anshqxa&%*EP z;nz=-)<0}O1SdZExC1g0gOi#rSs!I`23wL971lp+8C!2Az~=#CBv{AF z6mdK-b`y!s5EUyeWn}ys)>+Tw>jlX;*cL2EK!ipkdD=4k8>3*sF=L?;Z2$lO07*qo IM6N<$f_QCsegFUf delta 2510 zcmV;<2{HDP6Nwa%BYyw{XF*Lt006O%3;baP00001b5ch_0Itp)=>Px#AY({UO#lFT zCIA3{ga82g0001h=l}q9FaQARU;qF*m;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^ z000SaNLh0L02dMf02dMgXP?qi000SKNklgu?0T_?G3f5)^^N#6uuToC9e0Jx6oA)>}`#C>Vx8TBs~i+<16?fc}w+DdCJ zGXN}H@UtVn>A!(b`T9>`Eh7?ksi}Dn?cA~7e@?pM{Ar$7nq`bVjhPt$5tUt)r(hx? zrR2_7G&1wE=3Pq?@rXQo%m^E3!$gdQ^UEZ}Nmu^Bllb->*Py04Nq>KR4L;iVEGAxh z-n@L?TV#x_2VjYa4}+u31VqFDY!K+-nQZQr(}xe9y?)I+v;3{KR8^V4!uj*@z5Aa8 ze*nmn5r{<3fUkj7D>n#hncrE}IKNa1z6BuYjh;9`6sb2V3_u6kOgQW8OVfMzx4&_) zwM#ty_=CJ*V>6mQdH=*I_|5NLge!f#x~x%J%O;tqxW7>JXZM0Tr=p!+V*nZiClQa{ zRVa817?48-)tF&JYfntzmfL=bprnQCe>zqwIjp6nbCWSPNd!I>?esIt%))V0%g7P+ zU$WM=WwQl3aIk~biM|+6Q;Ein%>)3+MD)AX+9VM)0Cmc+M@Px>K3OA`2{4H8NOe-@x6Ecgm+i`QLkRRe}%p< zlrP_T4_?Tn1qe3es0%wfGwXY6_?q7gMDooR=*y04&84a3pe_-`TxPao2m zYG3!!9|l~Vx_0ml7Nr77&xYYDg9KDAWwKATmdo#40o_6Y@n_e$PTW zF@demmmd3kb?&?~Zyi0e4*{>c8?74}NjNU2^CO$Wy5dUq^lOxlV&uh@mW zuOP^RjX)`2021Ml#b-O?fB5;_QK(9ka8^SPsuBT80f7R7WhOAJ_Dk3FAwWVRF}wk) zwyr>H*X20mR&PjN25B|I%3?x#9Rg~_{tg%E+6eMN2!c#GvkbrjL_nz|FtFOk*Dh{H zDiI(aH7IET%YbD90|sD4LUi{bkf0K*spEWsMUjS(Ed3PK^A zj6TwbKwgBA@N;J6J#$1(MW6oa>IGXR`1OFL>xzK4WX8~rkA@+qqli!*Yqt+To!^F- zmj^it`Rxn|jqXqqf1TkZgtcHI2yj`K3`-7)z_D+Iy@L-eTKR6{5dyz@b`7q3Xen@D z7j7(C!IZOWue`U`w0F29%mm7xH8BX!t~b_^}F0mRrI8;bUH4XU|#!j_l{d#c9`A!BN+ zdU)RZSpR7YO2*>CF@uz&gpNntDVH4j}x_F1{(qZW*?Rr%zzZsf7^w<-d;;!1}rlK5&Ca;1Rx$) z@EjimKs~v*(TPRfz*S;!SJr#gSWXh5BnfUF1Mhue(yZj6f|x^KgWi7uW}qS>prk;q zp!)zY14k06P;Kst@;adhg^+HA` zQ%YJ$f60)NAp|2DA*|WljTe@;fXITmJghCh*OBot=aqeE?eY)~l{cfq-%H7m;^HE->ZP3hpS73@s1v>_^=yF(vfY~ zQG|n?KDIP>!t+nZPo~$SD-%FU>f__EPsPkre|rk0ec8N!Un(9xTL9^g_Y~GX|KJRF zYo@+bhU=S1A%Hul4#KV$4>w;`1ItGpJBrZORl<^$FYG~D1ZR{uGYgVZ9s@H2~ zIYBu+D+$(RkU{TRqJI_i6(Ykj`d5J_uwtmJwnHX@z0E{{kbA=8v3%b9%f??mYO!Tr zKD;iu$ub9R-VmN}+8e?R`Flc9caxC%e|qJZkaDb64#RORIW9vv_W0p49G9V73+1p? zjy1}$O1Yvd6pK!Ao$e3aP)?-BjIuQSk=N-^)}z{V)CxgZ{MM()toRX{{&q1;;3HKR zm5CZ@bPyT~E-VD>xi}hhdra4%emQ0U0?fVVHFq6}s@tS%xAk-sWv;WwkZ?hde?9jB zTt{Nl_BLUyrAy8kY;wf_in5qidlg6lPU+Tw8wJTY*cL2EK!h5QJaZBL Y1EXNUG1OH;9smFU07*qoM6N<$f=s22CIA2c diff --git a/src/icons/Telescope.png b/src/icons/Telescope.png index b3eed1b7de1c70a855e4e79778264bb4b2ce8f1e..65f03875ae911b69b4047ae7c7840f704ccd9a29 100644 GIT binary patch delta 17 YcmZ2`lI6xBmI+GD<;>g5nHkL#0YzB`Q2+n{ delta 874 zcmZ`&O^(wr7!6`Bz>=NoVF40N;x9oJ z7&5Y;BTAC(hdbIgjE7Is$y80FH#p|ZBo)Rim@ul-zbXWYS5$!+U8I=@|9t-eL7I5* zofFxS@aZyry_0mjdpn7DtGJiItCyf(U@gE(st739ZI18S`DHB;&^(r@P$|zqB}ry{tvsl$9%^9X zpsQuG{MabnGOHlMLZ)5SR0E?(Lrd-99G0;YJXa%nbbJn-Pqum1msKu- zeMyPpa>Ds--N&0HS3F;G0sM08f~OIQ)2xa-+f$+l53^j6ET+T2gIdH)(*%bh3fwRp z_^$0B6n3r$z7wJjdeODRuv9uej8t*^ju0wi>s_S8W^_uF(=?9>h-g>Fm`_b<& NuRb-tH6C;ue*tMo65#*< diff --git a/src/icons/ThinkPHP.png b/src/icons/ThinkPHP.png index 4f8c577ac269819c48d64b1b97062519209c4c03..5851c4a7428382fce12937754b6bb65aa76166b7 100644 GIT binary patch delta 1819 zcmV+$2juwt6{!x8BYy_)NklEAbfz-o`2v2u6Tmb^H z9e3uP%;ekM=eO^*%L`Y};f1MY@($=$esnBfaNeHO$7^ z^iZxR;tIkcDSz0B1NxO_=N+fwIi5sgcAt1ZK-XXZYM~TD^Q8q4zSx)ZJ(3Ieqpap0 z_UM+GIk^BN;jqnAydR)rC_rC0wr6}{42KyA`fXR%w@{Z}fq^sNR6zg}G7--w;yMq6 zsb>*@SwnTq1N3FGz% z;6?@L^F*X(9!WIn$~FD2r&+%bA&ASFKrU9AT6jq2ty?9(l0bN1_2V5@Q(TRY0$mH`Yv%*R1JpSbxuCjO@R z9R`oT+kflW$@gR}g-A6O(V4ywtLFWG4}_DZK`lt(h%m)$Xp4VC=PLt-j)vAM?8^L> z!3N45aI^Rf67ED|lYA0uJpT!RE)=O;5h!!OaZLaoRy+VYG2*yiuR(y+o~_xK?tp?P zN|ZI`BQV_&;TiAg0kPU0q3Y?_D7VLt%I}~mN`FCHQx`@XvG=xMlWY=m|8~VfylQGi zC-;Vw^8%I+76DLtTC;%)dxXo~@k?GTUevw>x<}PUQJo4Kr4Fpq1*F?SU7P~+Mk%3C z%)r8jhrtwpiiaqj5iE0tBzrHa|9T3HerPrx|8o~2r5ihCfZPrV*-_xy2EHqvNQ|M$ z7=HyoOe{#@fW0a{ivGw$cN;7knzCzHf5izRwJQ^k$&4VOGEEYF^-Tsq^I%9t7y-n+ z8GcF|LfqX9^o%Xs@VW{oGJ?U6v4U5uH3UD~B3XZAm^dA|H56bXB1svCncf8)kBE1K zC|wYpu@)`Q+s72{G_*rn5d;5=E?9B)6MuNdk4NCexlk9Rnz()NkUc&Jq0|Puwaai? z7mO{+DFXoHg6P;Rn~dT|Ib(_!*2}T`_7Zp`Sb-mF1%YG|Vq{TxR#VrXa6^Zo$AF{c zy$~e(98sDjcvyL#T}r*4;CLdHTZdRVAB`{T%nH9~e~P$b5rk=W@RV4=JI)S=e}4@^ zX;}&Ib`0n`1p=jx2v$zUiL3zhkO-Z*8$_zYiB<*23sp^T3suZQeRI`_8$4*#BSPyA z|I`WamQ28o%bv)+uf;nHlC-wy)1vBlP=8y1%_%dnMKy)>l+&4_{)>xVTEQ|GdQGz=e7#vd z8OQVj7z_h}yjv@SFx?jG(`>Qh8XpxEkIcr|BuPoyL`riU z{E}Qqg;*ghc?qhkYD_1RGN*|dqL^X?V10mOY3!Y??EBfGP1qo{h2ME+JbY9-rf~Jk zavW6(iSVcJO>n@vq)Fh%jl+>&gVEH`JbVEGpbwl7`IG?<&}UPqat3~{%O)+;9X^S+ z*md0(hEDTc>0Ngxt{0xf8h?ocR>j#6U>B^4{|v(O(~+uA#@kmTUmz`S|7J~Tt8#jG zKLCTsn2BB5#SkV>gIAm_qSFG*#=WZPAtHZS#+uQ(q{&zus?k*_-Dr>n3SkkGv^vFLOZv0Td%l(uXrDT zPl6q`rz}TLk1-EQYkzY|tS4YK`9JjXBIFdyNljUHYnDGR#MY}{!87hNY#=?wPvZKg zD0QYakG%0(gqPen|3p`g2oE#wb2i+q;&WU{jgAvtUBG$ATXR9lb2(}LW$w|lBCfPf z&y_sQCf`Rg9ryb)J(rZbkF2xl_KCNDN5pH$z88s}6#?M=3lvJ2l3otC%6b3*002ov JPDHLkV1h`?Urqo3 literal 2812 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 RQAR*ZVDeG^&W(!GWdPp*6j%TN diff --git a/src/icons/Yaws.png b/src/icons/Yaws.png index 34b07844235a485b59b8f4c657bf9b0f0fb3e599..5b8c597c293d5cd3fa457c7b459e4ce99bc3302e 100644 GIT binary patch delta 10 RcmZ3^{+4Zm^2S&%W&jrA1F!%9 delta 67 zcmaFMww!%}vIPTMlDE4H0~q{t-dzu5a29w(7Bet#3xhBt!>lgrI7$T7+L4Lu&5Mp9xVP)gs;^r3?6PJ)wP*hS@(a9glAUcdkF>GPLw-+%u3 zC%uXdXbEGOr;B5V#p&M3;lYO-L|V^>nz$GyyjP7#>NP#awyh&VvE#tc|Mf@OQzkc@ zY5BaR`knda?Yb(i0va!uJ^s1mz2!2wD9-~MqOgc}u$m{v%?Mphu#h`ps(u7ftMT__E>O zH;#rkDPj!gLhMT#XK>la-q@MH`Kcd6ls;O*qOG9M%&_Bky2A;^%jN=3Z!_5~k?e5ncBPpMckPf2pHE#&jL>M==_ z;r&Npt&_D2B<6G-uz9Q!I+HIU#Pi=frUIeVRc=>{4*a-wuuSeikorZ9t6BF_uNb7+ zPhQ*Cb~H$_V|{%&ueOx=&*F_6_iX!qWM1KM?#tTQ7p8j0-@3BZ|Gx!u&E7BPSDQ@P c({V!H&i(AdNegW+1EZ0_)78&qol`;+0IW7p?*IS* delta 926 zcmV;P17ZA*2B`;-8Gi-<0047(dh`GQ00eVFNmK|32nc)#WQYI&010qNS#tmY3labT z3lag+-G2N4000zpMObu0a%Ew3X>V>IRB3Hx05LW$GA=oJR}k?40010xMObuGZ)S9N zVRB^vL1b@YWgtdra%FdKa%*!SLsK^Byt0e{00RR_L_t(og@4W0L1-OS6b9h$RjDPk zR1i#UF49Ip>Y}0q3hK7FFu792jjkeE5L}4RY(zmyH&)R_agi>vv7sv=lY)yUxG3l* zx=|NWj94aWK+%vkmSB7?W+t6CzBlulrqmw-_ue`0KY#8$_ndQEoleK?#GTM;wHggm zaR?JQiZP60Pk;V-6^mFv8}mW3){m?FPq#XqPOX4c9L5xmV|Sy{3|BCXcY|bk%K}pI z6`aQ20UcMdf)hb<_J#zc;!e!qg)KU+ViuD@vfd~lcYZ;3*4v3T#)D+NEMP|u!mC=u&BXq>poWyBMV6!`NTLxmXsk&>-MIY5X}Z zSH54vRFIr6t-aB}xlk6+ZZLkX6y3|Rt)0X>cnJrCx*xhzao#{SmEj3oD6(B2=Mi5vIEU$x&fFR|R*nl?#mD#zzhMZE;8}xZ z)UI;8m4@VI(Yqljkc#JQUo%?8Y>>Rz)Duo>z7<>X ABme*a diff --git a/src/icons/anchorCache.png b/src/icons/anchorCache.png index 9e160bce568dec04f5be109e8da7b1a71e6b013b..fc0e13c33730b8c0ed41a09b4b7b5526d7f17865 100644 GIT binary patch literal 10688 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 diff --git a/src/icons/question2answer.png b/src/icons/question2answer.png index 53f6e571bf5c0074f9f2b3d4279e77af6bb845b3..4b58a3c6fa628d5adacdff3287caf94022ec2882 100644 GIT binary patch delta 543 zcmV+)0^t3o2%-qE4+4Jy{YgYYR2Uhh!3A&IU=#(=>o7N*l$n_s$IQ&T?|rtD!kB*j z?4;GEPL($89Q>_vI+^G%jo}Q#dE-%I@-N^U3nlQIXqW12q*O|FsA^Xfz+KhOC{9>$ z)i4^?TBvcrQc_bm(W&gjv4o*^px*?^JdSNE%`i@MkS(L(V84G-GiVAa^Jp4>wtoBI z;M29kFj{GP(J*Yt6nuMynq!N{{ysI-L&njNBwI4@6tk{)YK|>p*B=@NqVU}#gBE~d zO+@U;_VfEk;#mw*Bk=W*trjp;7ZJOyf-e2wib!r%8G^5e3|PQGT|}HdAg+hDh!kE2 zXhz{#CbbOU(bazo?R`Kr#C==Dxv|npjlh#qYA-z7?-BqqL4FgF9}^QKXW=OuG6qj3 z5Xbn$o?6xzX$Ij5D@_WXu!i2?^82qMZULS+8HO)L&cI^@80s}&T#-5W*2oxq zX(i|10*EO2*%fJeo$+r80gQX>;A_$G2wGBq}er2F7v9NKNcQW%v2|&4sCY z_RdHYr*u0aZId;}$u2$^s^U+3-E+Czm8JVz_%D6eFLl4d+1edj-0V2cwBU$17ppi^ h^+~ZfP{kKN`3b}sfs~9tno$KOkjq7@ zh*%Gja|f{&^m1Pq(QlV$5`bZH5CCHyP(!G>b%X;}S(D2EY1e<-L*UaMT?I&V{c;ll zCmc&b5AHwRx-}Yoyn5tkCE%0J035(R?l5EOno82X&38@#gl!;7J*{Thq#;rZ(gqJW zNcJ3e0c4-ZP4Vtr<=pUCaH}$4zyhdOiGa>Pzk^EZduN zTC+F;oPI+^fQnCssx2H?{yulFqOBk#HsbAg2u7xAqzZq`mh9XiX;b3JNoNh!I1a7v z*lvuRfCKyXx1-VRHBHq&03GPK-FPm~erl#{7z>YXE+UTcXM(>24P8~sbEd8*SMPU<>`xswmQ$(AYxj29i8OWXV&mms@(TTLMzTL1SfLNq lFBHcE#m5`jY>V>$(GSEKfs`yj%4Yxo002ovPDHLkV1g3S1f>7~ diff --git a/src/icons/spin.js.png b/src/icons/spin.js.png index 69e9c1a53749dea707bb6cb1ed8b8ef25e37ca14..4d79611b6efc80ad49c90e502a5f5398f2701903 100644 GIT binary patch delta 10 Rcmcc3*~~dXd1G|~3jh{K1GE4D delta 97 zcmZqXyv;d5IgEj^ILO_JVcj{ImkbOHEa{HEjtmSN`?>!lvI6;>1s;*b3=DjSL74G) w{)!Z!pj3%#L`iUdT1k0gQ7S_~VrE{6o}X)oLYc9ish**s`)4QfjfzPu084NjMF0Q* diff --git a/src/icons/xonic.png b/src/icons/xonic.png index a49fffc983aefe9d8cc198115fc4307d27ea0dbc..77f6d9e1755bf7a7e0171ffac620ddb2c976b033 100644 GIT binary patch literal 12348 zcmbuFWmg=$5`Y&i4#nNw9g4eKad&rjcbDQ6FN-Yh?heJ>iWhe%zFgklaC1(QbMiTv z%skJ;s3=JzBj6(d003lJ841N+F09c`9B}CP|*DnJ6;;EK=tn$>Z zK(9Tm1sq!oQv$}nadGoUjDN2O!?@Usr&TSdR9UAdG;5Nx#A4B8F*)31g zx485fnkZnW%BvT^ivS#^{-d2RPRE>}OUZCBKm`3o*=u?|v#&93H- zm9{!G%BG(Kw_p9sa^T6*L|>=4gh=}V!4QBjZh$eMuMio43t+W|0>A>0*8k7rk39e! z*&Z)SC}6bbsy2X1*SGkgpe&3PNvo4b7Ttf|z+J&>Hv?RAOv5+k)DJi@)nAD_)Oour z)&`f;rWCt}qg&E6Itig%FA3kEj@I`@)JJtHy&)bv+?KovV#P+MFKW#vqPH~iW9G=_ zyiYoo#f4Q(F4);8Ame8dAE6fwMxh#c??zmBzEbXib*1CK!n)_S{*q48&9K0QP2^IH zBUcff^T?Z3)xc68@$p4d+G8i|x}9LqG75MY7=U!7Ja85TGbBJfS_0to8-4Enj^=w0 za4G`S=&^lZBdJvltbTBMmphilF2_YoX6}*tSZtrW)sn2bdEZ=zdRfG5-9? z>hbG)brk_gHZDQ676Xn`g@HG?q>|311oIwgWNgKQB2f*AV81W?kmH9oZA{JS8)y2& z1|ax3SeqB@y6lQxMGgJ#t@65u)9Za!-P%zjf5c{eTC#Gs)`DCCDZsmZ;vQeMiz{pp z^!_j-aEFwSk|PFo#f7uv8!O=DbYP7D%4Jb%T2QMK z`{lmq-tx(PAo1pq-ywo1{>6$Kb@1rcJqCuIe& z3C>82M5E&{3{KFnDA+hS5KBZ}n>P_G{vr3o`H2Lwy9Z)`KQvp>sgVvr{~8P4?@7QW zKf-~bae<7ZFi}!{A_(E=m2cN#Zx^pY?jM87u(3c*>Z8AZLunbYTrG^ymT^T@G>UGT0sQ z8NWBJM0i%G*6#AT|Rgq%oLiDt5z z*#73mEZaKMRth1=(4iGidAA>(mL~RlX@+u3rASwI7GFU+R*uew+oug4GIqC8gp983 zzs=$Rtakf7Vrl8Spx^a4Kp{c}`(3tMnVXw?d*fn$dA^pNpg9U4EIa}Nfr!j)#+H^N z)4GjoL$aGFZ@WQnzYktKnq48xvvPB4)K7u7T+>-MS64yjmr?m^ zE2>SVL}{koo{M@aZ4r3Zpjc%QL=9$A-JFzgVl9tSe0?YudHApk7`J0N>ovz#9QQ6} z%8?dMEX_>d;P`oO_j9Y$+qDLl9!zr0q8xeS$nshWz%`K7YERRD_$Gxy8USTfQ9TAO z5&U~})M~#5N!DkPOkd0!Ox9thx#ftnIF!Bp+P%He>O?|E(ol1Nm@)^uCHpmn(|)yX zcY>idH#h%Zhk?PN_~2lonnD|>{ZgUP@73Vr?N^zR{y8ww>;XGbr~j=E&w4BS(V>Q? zsjzDFFti%KC9|B!QA*0E3%8u!-4SibkkJ<*4vTmX$xPGErJsFKs(NUi7pXX$Ky)CW z`e|q;=s6C@kQr0{=QQ35CfBu~0aW!g2s&95Dghu;x#YVWfg^Miqg+)Q`m$A|A3XK} zQ5kq)XGB0iP^nH|N43K^5UGxqIQOv)zSs@~-xZ8%(UO-_yoINRV+_H3ad%^!qfcuQymwC^>F6EHSDZ`tA2^J%R^?FB(0lTGDrN=Wd6Olu)pc1d-zszj3Un z>(Gm_+^!Q^s%hL*4Qrkq<-rTbcafry3h7VfbtDc{O7dJXMRZd|+Yc-n{&t_tQ?4$~ zIQ{cGizx6s=c3nbzxfO_oWD({9nnYu(LN~dA7!S{qtAS`-h8&xA9j!%oGBX?mS)bR zY3?Fn}X3I;kjj=_e&% zMOR-$pJ8(nSyYi@aY}mgES@(txGn?Jkal0p8mtv_lkG_b*S|`{#NKuUvK+t3%l(5G~6!}Rn8-21UF(!v3l0$&yi zLSG8M@`mbvZQ~mnE92I%)k~b*`J?YXC;7z3$(iOQ84pYRwmK@bJcTd&y8?N2W_nsI z*cl?XG2cal_ElK80P)O0?GOxHNbuyr<%J$@I^{ zbxt2z)-%_NzT5L*=Aaf?CT4N)9WQCV!5myF^;*5zXdFw=Q$K1T8U#^mXWu< z{Zb4X^0?Gyjd@GHdmT*RU_5QIM_xZznuqy_Fc zU_c|{RKzgyJ~EFZzvP!whjIDX#9<2M?^6p@FSfRY1{4d*&z;81jgqi&VVZT;j(Q!qdcAg8x_2UBpBF*OQz=?NZ z|F^x#ny2HXjnIf}Y0q=;GRBv{`?vf6`Qow_NfYgIC3;*)O)ahJ`|@mW%Tv5!D=~PN zw)cu@wbJsQS;1c|eG{)g!QjEsooD+sf#!OBv;m!aU!k+u;!C%SRZ>{|9Y(RfQ$4>=5E%10#CJ(6~o`lPu6Y!%;}=n71N?I6}l1o9+Nq<0gYsS z*2?f6`=a5Gq@Ht6lVHkA_&Io zqsyq8OUS!Fl8EJ^=g8^{*ku$9GlX34;8Jc{N=+s&SmUmtlI(#lRCH`ns-@mNv>0lP za=@W@AGyp95puTL=-H}n&6ZU)s?t)_H?gJDO<2ocz?2 zKWAdg6hZ>!mnS{};Pv=?vowK#D2&bpfL~p7+UzCs4u(pG2N7apH9@(!1R@iN?Sz9 z6^wdP6xSi@ZqB#&&y!*~d!yB}duJdFn)^r}$q|C0L(J zUBoDI1aGe-DLVu)Ihj#Gz#U2s3<uRSm=p zYuofr@J+jPz923xT-fd{6Q5XXL@F!Q-d37)jA?91IrYGfe9N3cCL=Gb7qVk{Oa(jA zIHx_d4?cNl)%TaUTdD@S9@a@Wv{*`ar1vE#H|6s?%Ow+WS?}|o`iUeVI>pvSSKmsP zHRK|B^k~)##w1tn|34;@(o#t2~CK%$h zmuV}4PXIBQMuFM>is(71lt|rVrdiq9A%%S=!z;)H+zQId@^l>4MRVW#zG*VWrvdSl zoA-nT!Ecp*sNoP|i_wj^d_(F;RN>#@)h%g}q+piW*?hEvb!J70w^}%@iS^VR)GVzW zD*HSJxue0lK_di%92zt`|Dr2zIRAdHGsz{1>&T-pDC*QNXVoVc%>ufP(CyU&3i>IA zTyoet4=#N7`+z^Cp=!(Ua|;E>>jfMD$4W?;9k>}gAzz5KKZm%N+JK<4&p;TYw^P@R zRB!i%ktJzTqh@8uqYc(BG?v+S0&xAT5+7k3vqr{3y!L$KmrVKa#auG$)cCt^%VO~zp}Dz!Sp_Fp1qbXFa21~ zHLUm{CS=O1R(f)3Ne@Yd&OQ#mA}^1u-94ldVMALn*`d+H z`+F(&QdhE5n^7HPK8cv97Y@yei;$jD_XGN%gY8b)f?EY+(-LL#S(^jr$S&y$aRaVC z3)pAhANS*%jbQ3=vV6c_%K2yJ9xma#k@|>g0VY0XzN^eS4(Q;nKztJS`-c^ykK2Z9Uy15h+6>I-3zJ)qglL(y;xTp{9Q5Rdt zkSZDHc@?gRexOyPg{$C_*jmc3dpVHN(q1G`i*b+$)L#TzW)SJ~M94Tf<{KwJ(~9ZU zoxrZRD3!&$2|w|~Vz$I>oSfF{wK543sC`mkuCyT(g{T>&Ld)U|d1jsBj79F8#Q;}E zy|?AzhrenzQgtbqftVIEt{C25aqwP`98{zZbj32l!Q ziBC$hl09cf3jXD`5h`x+;eRz}71Z9UPP7k?HLTgu|~;7wxOO_!(~ z7|bzAmj}w#L%tf&Voj#U8aN{p^=C-w_XXzNf6FFSDIGBXO~_#o$zEh5fibvLz0Wj* zYDHdDo|7|zuSOa`$MZEkBBr#`_Pkl6@`rY__|#u9nsReCYKd&#D+O24Zy~oDn4!Ca zB;e~oRAGh7iHZbtUe>H9%8W9+dGCgreKa|=R(r5Qh&~?&;g>C^?XJr)(=sm9g(_P*wSG>OnaFW7 z7+4)Oi6zZ2N`-h;nsZ{imMAnwZR{$1n<6g_9EruU9c%=A*wp!4h8E3ANfaS?UK?Db zh(N)m?XuwKAM(s0&?54E@l{vE&7P<@m^YMw>MSc!v1SxN*D0oS#f?ZY&1`*zGyz~ueO-rsFr){OtmyYR zAi5JSk2a4G+^*3oCG2S3_S0(&_7G=!>rkkxH=$yM(Ma_xPIF?!Wu5A>bY1AF54PASwDsqd<)OW zzo=6^pwjeAfR+MwhYYyPa&Sbzk+=4{CZEIbZVLm9ZsQHZx#(PY`SEB(1bo_amtBd| zNCfa-F^RY6&TtW`Fyf2?Cf$>jY4~e8tTDi&(4@tF&GlgH>yR}r0xymUCeufaW$s;s zhgb>{KYmx>bs(8tGSjutGsArIEZRq$QZeDrpNP9u?A`@R9de{G$CK)6adwiUqNsJ9 zPvL!kf%FD`E$Y#gIp8} z>Ft`c_C6|YSr4`qYItaL`NL+TDmzD7@`t9t^R^nBv-Y=cd4PgiC3arD@0uvw6egbJ zvC6wmsTL4f3s`Q4v>RgzC;8YB*!pD&ZS;FhXbGXUmDGC|c1jyOG~dVD9St>g`2qA- z#_+UTj7p8~2Wvr_aW0=I#z2^hD?*vauH>cvwa`^_I$fjC=JaNGSRKaOGQ(C;^K4rI zDvAcifMINU=e)CzWy=4dQFS4vt??LlFg;YTfVJE=%ar+@Z4B}^x7MNr0#ve6cJP4O z8!KEREOC0jq^2m%A4M1DDS@Oiks)ROJ&d%AqG4=8ajxo-qP7&xVEFHK0s`yx^=zAn z#bNg&LvRkVlJRVY3f`Pf%k_c&+JX^3^d?rC~94;)ez$fEZ3aOkaeX z2m>UY`kpHZ*!xY|3HxS5CQm2|r9u*^vGi(Zt~|yU_6u9gq1vw9x&hFZp7o!Y`02Nx#5o1!Mu#DGm0d4KAKU zK?rm%XcRuI^RmP4lU45MSiAYFT2NFJE;)|Yw&i8e>~ig56Aq$4L8-o**JN7ICSXD9 zhpIs{Go%jY+p8PL)mj@O7&;={kS6oXy49;Uh8HOY=o5buYY^82b{HJp*KwnK>AR(ai$MAM` zlCqWO)t`W??#G%IC*uSgv{-0ZArmANVu5Jh;0dYm)!Ev#0c}eMl!tscvg}0v)AVoZ zdV4TWi3Jc~ z%;p~`HqE-*Z-04?j*b=Pvq*72esTlr9vP^Xb-7{Qdyn)q9%dd<-gI#y{( z3ck;KOesfI{MmN7WG54G!2KM_+s+r(EawnSdFfsUxv=EIRJ2g5d>>dgqKk|o+tWja z!#-e>R%~MQpn7;kjjX6{L{-SZ`zmyz3;qN-qc*Cbd6^D>k0&LXi^WRFew~!JZVA32 zZaUih;QXX&XH}#D9P(|-ljmNFn>z?PSC%h_6UzSYO3y#89VF1<*R>N!5r%Oe&Ztx; z^NX&#X$I`LG(O;+PJ^1OR`a=SET*jtX?*a&k8}gZ(g*UXIA76ud30a>l3YbV(|g=R ze}sx$>82`_!(iW&$%Oe5QDjazTuM7!!jPBb&x~j5rN(WJ#c7e}*^Cu8e*ARBND&c+NXl9o`?PR7aCE_9u!hcE>bqwHZu5yI zW6Alf-mPa4S-&59Ki;hh0y5a=gWX+R*uG6=Y?z=!-bPy!;R-@6I=04f&^XAZ4g(~o zxDzlQUhTOENYmBRUanU|4Rc`%XYt0@8X)%2QWkUB>!Ha75=Vtjy$bMHFa^AX#`$w?UDRRy?(*X*{27&?xbv+mM7o zmg@Yrk0QKA{L@Ia`O-0>k(l7GGv)#@tXOCCZh3eLDnoY{l{Rt7Ghd4sN{uz04UbG{ zGB++w{g1tgKMukIY1+txKb8H%A*fE^U@lagCyk6vMp5_jO<^~q_eA7%f3&%HV3g9b-U?|*%4lXIjiv%@M+T*-+pO~o5 zPeGmnv*42$gX^xMDEOihNR+gDJG^lwLzS%f`g7vkIPgCZv$Ne>p+3;79^3yN4YBH(dguPP< z#tnqY`H|DZlU>(M8>-Fo6`SWWiSJxKn~IP@kNVdmwU6AIB8F44Coz1LfA?vM&`}WZ7BY2dAFf@R>U982X+7Kb4Bun9`F>G&mfgAnLBE z^*$tyo1kI^)vAW9f)STOZtCip`)Y$>g6I@ypSO91CR+G+%Y_JZ zH!97qZ3D4ZqbTM|>)#X#Bx9S;j9)h%KMta6A6T{@g?Z!}1@COkhw^M){blatS{$*@ zNbv!r+b=}206Ld-pb}~Cr=$E2W{QZa6r8%9V00y0d5={V-A|V){uBxDX1}I$!70r< zN^v#KTQ3iUgm&Qm=^Q1~$A(*O?(L_e1d*Dw-B{D%VNlV!Sn>xh3>?_7CwmO@HP|*v zccwegnr@k2)Sh){-jY7g%h+}_xO{^?%N394G7eU;Z1$DN)25qoa?Lmj!s)b(+ObV-X8)lfWz9b17l02U-g^a>?W8Aa zv<&0W_^qW7!&Q+S(~)$n(_Bl-5Tb}=XTNlns$=|C(qOoF)-9@cl6|iA68`syDnxX8 zIIOvGK+f~ZnJF+h7Mg*@ZFi$DdBRKWwfRGjQ7e|4(b*9CPeGzVvq0WI)Hw#i>j$@j z*UdyCe(P==nu>+YhEX;zKvsHmfVKLeY7}OtnhHbe%R|FF@9M~2OsZ(xE_Z^ilsFWxaB$--Gf)}_W zExg9FLbTC@VyMWI{ImN9sa&6IC>5NxhIpT!3H=kWlD3xk=;L}7@#E|d$>q;SuCk8B zf9BaL8MepDmw*4{{c=CGb&@zk(ka%jNwcL$7`b+?R;AZs#bGbMqD75ao`MOQ?OwPDxM)3bqHQlV z<$7L*M1giYBgG3xeI9WBg%bGH*z?wIedZCdxBn4XQx~ME zRtvwa&a`+0X~>qV)!8Bm!pOT-ozRCe|ksfAOB>JDhS%C(_I+8 z?HC7HBh9{iYL9fPH#4&~;ukAx>u3p7^y@w-RF(La5i#V8Int64=;|ti&uGUh<>bSL zE+Yk$NF07E_j-DI^G_~!#3Kt^F>v>g(6%YfNyX4Hl7e4(PQDVHSAglf-K*BJ$5Ymo zKC-kbsR$NDew)3rCU^BPT!cZ)9Qc=;L9DTmG17Hzp`20+E%?-c)UU18qYKkBKQQmz z;Qn1ayQ*JWoA0!}Zq~R*ap6-Aj>^NV)K{BIg``6~o%Mpx{3-lvX=V-F>rGLg>jOIk+AM_)?5R3;`ShQ2ozm$P3~jB+UpJyWLF97LWirZ?P& z`vSrJCm0wQb+nkW^S+dk5|h&~)p~TghR0XJJ*+t8pBcT4^@M{VzGZP?8ReARY=)vd z4VP8t$xn_c;Pc;+4wtExiiZTTb0%T~B=ZbX20>kfVk#r(-U(M_?NsickaKS_}2&L)wL-w71#34VL4jUafQkhjuROXO-Kj z5$#Nv_Ax3^8k}{t>x5$YIx#Q5vHBTX5+9XD%HcRz+i$g**p7MX1Ow!1geSQSkz>mj z76zjwMN6Q2@?NlrkW`_FvBGkcp>B&0V z2ZPGtEc)&bo0XmTmOesjTlYAd83^5h)=v#9NR27K1{UMcc<3Jpd8xUXvmT{cZib}Z z$j;TW;l$(gN}o@oHJk1&){gsBLu0{=EG|p)?s17F;6(l#PfAjf87u$W^k;;zBBcUi zyC$UcO2r)n`+K6{5F#M;U8%en`|HdI@a0_Xmg@CQw*CF2#s-QX$rUwy0asPwr>(f_$kp~gNmz`eklSyMn{GE)i(hc}_xERSc}Xl1mNfwMD*YG12uc_0 zSD;A_yF&JEy}i#D8t^G9YdTKp`=De3H7JwmK@}&5CLGuVi_;G{D4o97Z-0J834ST2 z;~rOBzPf<_I!Mp?4a(*Q(#hF=jn&WUXM>=5D zXW$HPsWfej7iTguM-T}M;k$EnqfuYb<`Y%wUTw4cJRiv9*&ucsR;zkea@7zxTTOCH zr{z`ESBaf{bjMemrZyQBFDJ>-> z;u4(lT2Y99@~#|ks)j1`v}4;$Rnmu0xa>BvV5*F@jjq%bZ@+20~RDqna3>bxw7f>=6 z)NNR{Yk}olT0zj@iL*Swh;UhwqS{&=hv*5DXkIIb6Kld-EPG?R>Y2YD>qvVjd9hh$bwh79GpO|ynM+46%!oSVFnY5@`bDXSq*vI;2cP+s@XJGO5Ye0mvGW1(g>4H2M?bIE`D(q>wose)LD(FmS|Egh zc%*Kcsaeq(?P*)7fi_FGP~+2jO8cOE^wCO$Ea9+gzow&SihIVDT)oYp5HdhN$P|+) zPbbIbjBitDmt`HqZpeUwnqHf;(~=DW+m}&L{1~~G0Sei!NumY+;q{*XeAILW8&17M zN#R8sy+I#SJlnba-)O2iAIkV?i(qq|x*s(CBgSD?#Ge6x@^dg(RF`M{N3&&93{+Qq zVZ0}@Dn6H&h?e<>|4$O;p3jQrM%sFeJ(>P%|4LPJ2s}D*!6&rh~tNKIY7*l~;weh`Ee$cbSLHzKCTjh~M-Lh7y z)cPUa8=@ht7U-c!4rmDVn4aO&TL7a>Pbb_y5grPt6V6S|k8xt^{`}q|z6V zL8!cMv^a#7K?9MHj6a)plM4wwdj7^paSNc{JF~cN^@n|_?Y!j6TJS$fnD?pd#>H+b zJya05yzIQ{xgJ1tVY?m-f8Dmq?F|b7>f!W-Sojg0o2DVQn87JRs0fuzHW%IZLk){H?`lrm zj(MC>wdy;YTK@eR^n&B?1hTldiLLJsfq-@96RmoF_8}xigZge=(by}-Gy^e9FmlZb zP_AVWrD+PB?LAhgu?1hsy8?{`u(7d^V>&%ALZ@izd42C``E;t&auAm1N=r+xd1*yN z@_VP*w_Q_L6o;cxOnWm&WRctmS%?knro zQ>aR?oavYjemE<8AgSo3JfWrl4X0@Ucl_Y!^m1D!cg=ng@Xgtisz+bo%Sg8*wP8q4pmn0xE2e-`WTU|?$bf2mH=mT`e`er1)_@F-`bQ{^8H_=0 zIFF>Bmo;kl&L~UuwIoMoQnW=x$bSI0Z=tMJ=&+%I9MA_lA6auPam<&TA9}GFb-5zO zrsl4b>9hCnSHN0Yo{2;WIjNZUJR*=KF_af6RYi$2;jL8RvJ_q;r2#`P3x)uKFsG&s zMw}W-v7Dy;*|dZ^g|Y}FN~EKrRUglRM6T8g{&w;}%TP&rIJ6Dlhtyp)H(k_>hJH-n@x&aGfXP@abgy1h`%5^DR@=FnW9;r={1vI z_s^-5Eo0Lk^arThxKIPSU@#pcN&x2}_}GhjV-(pWzB{RZYhL}ANBf=*F*eEYvNgrU zeUf*tw1V}R*v*9X!t?F$%awo9#Ks8kRhO9F$?GH$4Kjt-$Di^2KUjb=Q1uer3Tm)x zX=ja6_gNEw_pbOBgF%MI!{c;eC4VLMXqyReb z<}J46$Vlhn&F-@=zPEz=N#6JW?2dm&Z2I^zkH_`ZqxJIsGr$03C6y#<#Ee7#2XY$y ADgXcg literal 15239 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 k%Z2)X??wHr82^Nj305l-%rjj7GS~v7#N Date: Sun, 4 Sep 2016 09:58:13 +1000 Subject: [PATCH 014/236] Ignore converted icons --- src/drivers/chrome/.gitignore | 1 + .../images/icons/converted/Angular.svg.png | Bin 1388 -> 0 bytes .../chrome/images/icons/converted/Apache.svg.png | Bin 363 -> 0 bytes .../images/icons/converted/Bigcommerce.svg.png | Bin 273 -> 0 bytes .../icons/converted/Bounce Exchange.svg.png | Bin 1178 -> 0 bytes .../images/icons/converted/Captch Me.svg.png | Bin 143 -> 0 bytes .../images/icons/converted/CloudFlare.svg.png | Bin 926 -> 0 bytes .../chrome/images/icons/converted/Criteo.svg.png | Bin 635 -> 0 bytes .../chrome/images/icons/converted/Disqus.svg.png | Bin 752 -> 0 bytes .../images/icons/converted/DoubleClick.svg.png | Bin 1341 -> 0 bytes .../images/icons/converted/ExagonConcept.svg.png | Bin 554 -> 0 bytes .../chrome/images/icons/converted/GitLab.svg.png | Bin 1137 -> 0 bytes .../icons/converted/Google AdSense.svg.png | Bin 1065 -> 0 bytes .../icons/converted/Google Analytics.svg.png | Bin 1138 -> 0 bytes .../chrome/images/icons/converted/HP.svg.png | Bin 1588 -> 0 bytes .../chrome/images/icons/converted/IBM.svg.png | Bin 136 -> 0 bytes .../images/icons/converted/Lightspeed.svg.png | Bin 1302 -> 0 bytes .../images/icons/converted/Marionette.js.svg.png | Bin 1693 -> 0 bytes .../images/icons/converted/Microsoft.svg.png | Bin 143 -> 0 bytes .../images/icons/converted/MotoCMS.svg.png | Bin 1177 -> 0 bytes .../chrome/images/icons/converted/MySQL.svg.png | Bin 1153 -> 0 bytes .../chrome/images/icons/converted/Nginx.svg.png | Bin 800 -> 0 bytes .../chrome/images/icons/converted/PDF.js.svg.png | Bin 780 -> 0 bytes .../images/icons/converted/Penguin.svg.png | Bin 1420 -> 0 bytes .../images/icons/converted/Sails.js.svg.png | Bin 594 -> 0 bytes .../images/icons/converted/Shopery.svg.png | Bin 1171 -> 0 bytes .../images/icons/converted/Shopify.svg.png | Bin 1327 -> 0 bytes .../images/icons/converted/Shoptet.svg.png | Bin 171 -> 0 bytes .../images/icons/converted/SilverStripe.svg.png | Bin 1179 -> 0 bytes .../images/icons/converted/Sitefinity.svg.png | Bin 910 -> 0 bytes .../chrome/images/icons/converted/Sulu.svg.png | Bin 1305 -> 0 bytes .../chrome/images/icons/converted/TYPO3.svg.png | Bin 834 -> 0 bytes .../images/icons/converted/Varnish.svg.png | Bin 734 -> 0 bytes .../images/icons/converted/WordPress.svg.png | Bin 2000 -> 0 bytes .../chrome/images/icons/converted/caddy.svg.png | Bin 1445 -> 0 bytes .../images/icons/converted/jQuery Mobile.svg.png | Bin 851 -> 0 bytes .../images/icons/converted/jQuery UI.svg.png | Bin 964 -> 0 bytes .../chrome/images/icons/converted/jQuery.svg.png | Bin 1336 -> 0 bytes .../images/icons/converted/pimcore.svg.png | Bin 842 -> 0 bytes .../images/icons/converted/webpack.svg.png | Bin 1493 -> 0 bytes 40 files changed, 1 insertion(+) delete mode 100644 src/drivers/chrome/images/icons/converted/Angular.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Apache.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Bigcommerce.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Bounce Exchange.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Captch Me.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/CloudFlare.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Criteo.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Disqus.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/DoubleClick.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/ExagonConcept.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/GitLab.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Google AdSense.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Google Analytics.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/HP.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/IBM.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Lightspeed.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Marionette.js.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Microsoft.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/MotoCMS.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/MySQL.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Nginx.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/PDF.js.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Penguin.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Sails.js.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Shopery.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Shopify.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Shoptet.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/SilverStripe.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Sitefinity.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Sulu.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/TYPO3.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/Varnish.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/WordPress.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/caddy.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/jQuery Mobile.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/jQuery UI.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/jQuery.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/pimcore.svg.png delete mode 100644 src/drivers/chrome/images/icons/converted/webpack.svg.png diff --git a/src/drivers/chrome/.gitignore b/src/drivers/chrome/.gitignore index 60dc6455a..72da3a6ba 100644 --- a/src/drivers/chrome/.gitignore +++ b/src/drivers/chrome/.gitignore @@ -1,4 +1,5 @@ apps.json +images/icons/converted/*.png images/icons/*.png images/icons/*.svg js/wappalyzer.js diff --git a/src/drivers/chrome/images/icons/converted/Angular.svg.png b/src/drivers/chrome/images/icons/converted/Angular.svg.png deleted file mode 100644 index ed9e10cd378113458b51abb41d88674423110fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1388 zcmV-y1(W)TP)C6GN$h2r8Jkge79)MvxL^YiVI>XSz(cS^oX^;h!0X z=|AnnHJ+#W@45G!@1Aq#+;ibS7U6GPZ~R*T0$>N6fFtp(0}7xfe&-C6D?rkz190U* z{(;5^o146zwu@49K6$eMuaFJ0&=b}GXV&IE$I~SzFgO|u(_bPz0&F4RO)n< z0CX#H0LBzW?2Sc#2*~mGI|Ka}M2MupXxU(_0Mea$_EgWSU0+3 zq|1mR$9iM23%BBt_c{jyKLIhON5&Gs33%7|{S|xswOdOa&h}cj=RTVtSVqd#P{(ym zV(MnEl^TGcEJpg`v9mp~*t*?R$v{ z!QkS)S7w_Ez@Q|KcLoPuJRcrDl7P@{X?g*0`|S1=xj46%l~S;7HFMUl#amUG6F`;Q zQ#>fe)?lVr0CU&r0QPZJnasslVe2LYhXcW8qp59YP5=hbACLE@`?Y20^$ArQnaz;R z>!onZhSYcM<_)+?if08FktJkZzfIadA`?K3>snwoLj_N-!{+m$$K$BcD0a7-hV8Ah z0u0F#z-`O}XbGT+y4EwJ6`PHs9a{m2e(^Q8x{d)*zpWKVo_EHjAz3nj0nEB!4WJqN z)tQXsKi-0)x(a~Fp`jx*fQqmL#o=B)q)^Uv}+px zQunXOH+qoA#_2ou2>^|4JFz*PS(lH>N|=m7G!5XpvC%u(40skV!u`Mk046^^nHul; zuoGQY@Ra+hS-&&5z(~s3-i( zWdNFXw;|Xv&6*ODr9RACGX>zt1OT)#Rf&3C_M&u!v$lr3mPY{)91bcvUIQSr1QpcP zQn{*y!87OX8P^PhfE2®aMmby8JFr|o`6D_CC%)1>M7_Gxp6Wf@i1`^iW_W(0IV zjc95RXh;s)ONuFY%FJ!#^p_0pe?7Gz{Wh$8;xU$Y9H3;;LdqUq%E*sDr*t7%gp3*h zSt20n#;x>0-t;C55k zx(NWKuOIR9m8<}UuG4$?C;;UvnkiZ^KcyR0y>8vNAOuR+JGyBJBWzbw}jf;P=mavbf^>>Jop|Y{$;3 zBT5$oI1?T=J_-ij4ocE~V1h(50%oH*O|Hda(&yo!&KvP4r4HvqHEwU_VNJ=9Zdoz_ zxHL7vTm3gLpBfJBjc8gIW;djy&&jqyJKzR4%f)%)AZYc|f$%b%7qs|fVRV;l+w z2EHE;zY2T>jAM4p3OS@8UFQHifY0Y})VEjEbnNn1H&?jamH=TzrYjhj{3bl|rmE|Q zfpEgHM8@IE1t2NOF4+qd&UNK2d#7ZY7SWYa9;^DyN1A4@NZY9U#Qr zwmfz9{#CJIrlka^TU=21LPz8M!+Yn}>*X%@Nnj-~2QzKX95?r;o@RE;rZNx62TCz_ u90lTJ)cSt{Ai2(#fJwd$ldqrum;3=N6%^JY#$(z50000laZp;}Fw2Yb17Rh3h>cjKpv%g5eH-CWsO&>Pt>X38Is zxjUUaI6RrOlEuyPY_*n4O9}ty59k0?0HSravDQ4wpO?&3fk6Tv`grT{=gw9CUF&`- z+o7^p^x{B2fN(;L`V+i()4_E%8Z6akjPDGH0mvLTt=9hTe8Z~fc|~E|wnsxT75ZvH zD=!-wzy;t5fD1UU9y&L!J!+5HR+m*uZVXW*A%p~9Vz_4k{{oiAT*!ig4H*Cc002ov JPDHLkV1m1akmUdX diff --git a/src/drivers/chrome/images/icons/converted/Bigcommerce.svg.png b/src/drivers/chrome/images/icons/converted/Bigcommerce.svg.png deleted file mode 100644 index b10abfa835b796128c3c1b119b9a6a334adf6bd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND0tY@ z#W5tJ_3Z^iu0sw2tQYJ%cV&45h~(&A)9Rhuq43gVg7M9zpLAyZz7bKuAgIzZBSq&6 zQ>1Fs8SV0)#`76l1f2eG-~Vpi{j(~}JiRu%a=)!z$cC_9@e5WVwx(7_ibf~vV-g;u z2@1dG*fHx#^s?@)d{-}=G+D7F*Da7qPV$W5u7+z1rFLWn3F^e zQJc}7*(Am&D_#l~L=kgQwIGO>5^co|J3HxCXekk?NOK{r7h=KSUxH1V#-=EVZ8q9w zvoptw-EB9U`B~EX!otis=R40kv*&!@8KFU?(`lnnC~OzuDd0ii_R7x#rh#dt_(9XO zq0O5&pX%%D^Bb90;s#ijwMj(Y1l0>{Y|!tF2p<=Vr4RD?{G}BcNT<`r{QUeIp!NbA z8U!yh0_t7IaX$i7!v@Mv&0*lN6@u$^tf^^D>fphHg;)cYWj!Fm5ODVmf>-r(BBAdb z7#J82HPGE{-c>5;-%(y%^%?;+7e2pi1rjkPegoO&IL_bI2EBS=n&zrfNk0|>2RPr{ zeBX|+)ot6>MdBCfz2JWcyjX3}suzZlc!%=#3RBzY=&$d^0OIt!NaF3<1`QyYOx^>s zHzwE<;q>*vwU%r)J5}4L18ADO1sKtAmC9z_!4<;K_`Yg&-KB5pONayvzy_QTSKN&Vc7f~%LFh`Z)j^nst!Iovc3~b8fa{B|i zCqQe>WZXb_Utga#Ha50HSBfnwfu~Z*UZv;<#I}?5Z*T&n#c`aoL9wQ3CPqg`GoYGv z;LduuQgr2V;c(lwdz4b2a5a%h?bbS5UU0cUc%`a3pgMpV4Y+wZJeP}rcY``WO%Ayx znM@?~R@ZeWf@0g-+gH!e7rqdoqtdiq2No%(&_>`XP@jdv6D{?*zN(&{o~B}P;Rw)H z8>9i3C~vjyD7a-=7O2mI;hY0n!{F)kuC>MD!cZL?rT9w&eiBjL*{thCz@HOgfJ(6u zVMv6N*Wl9PIL?`%*xugW4TZw`uYkwv`$U-3M6?&8;HgxyLxe0fmCpCMTr8H_L^$Mm zerp)qG|i1yuKaskgzZ87B77ftB(rV%Sx|%2RLzQxI8N@Fs94i9Z!!%1IPgf=7^Uc_ zpZKaQ%X%7=8vsWnvTk6S<}JFee+@hoF|1H3mA(u#(Ak;X?fV=eq(CVpp$1ITyv;E5 zZ-D!wOo}j&&*v{MGmuK9cKW`b4}(`M1okD9$vZSnP5{kOaG>aUYCqI%sZ{FucBTBo zz^a%D0u6YcHwXL~6N?D@tJQJI8&FDn4OksF0nlvQ$xlP3|0CoCUe)P!>o)AG-YhY& zxL8UWhJK3pS9mMPOTk@{@F@{(cYlBXVzpt(Uy#q|XA=qiNfCaDF|Y!uanJLgs6Ub| zORME{s%@=&8{8{(^b diff --git a/src/drivers/chrome/images/icons/converted/Captch Me.svg.png b/src/drivers/chrome/images/icons/converted/Captch Me.svg.png deleted file mode 100644 index f82f3d8f09d7f7def3cbca9bca4d53a371c1b7af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDCp?v z;usRq`u3`!D1!k9bKnYho|5F%B64kxZdP|BPuzc0cz?!*#WMf-CtRI&)v7@WsD+{6 e90!O30SDd)MQQeh(X1a^L0nH)KbLh*2~7YG)g+Gq diff --git a/src/drivers/chrome/images/icons/converted/CloudFlare.svg.png b/src/drivers/chrome/images/icons/converted/CloudFlare.svg.png deleted file mode 100644 index 1bb04bd94598663297de546c1a62fd0907e7de5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 926 zcmV;P17ZA$P)r^RnfK!<3dGIvDQUF zgkmY`Ufj49E!xqVO?Bf!!JQzuP_Tk4b)|@xML;T%)Y2xVX=u_(Ch24{)5+Za|9mb& z)aF8OR0Zc*pYMI&^If1rhYtUDWiQ&bI|44ww>%I3l%P~px9Hi&2 zq=e#VZ2?z2a}MV|iZ{%A^6q@?mISz*?>S-;-EVsjy&So&)_D1 zfS?KCIJ6p|!DeMw5{`j7T(*u5`DjzniqT-nzR#jP@0!sQnf!FYtgox*)3>YGBi8I*iw7 zXC8LA12mSe&3HWl$ee+B1N{L!-o)GaDsE~LzKmmAA&m8N*5kzzix+?q0jRvuyW7Gi z5=-AtG7IfGTA2gaT5HQHYa6qE_snYhwM!x9kQhh{C<~Mg>;tp>BsR4ViKg*KKE$6p zHFDe8OOMIYa5^3KL%-R*Pvz(uAebG)zcdZ4I@+p%+cA;9XYVM8`O3i_@% diff --git a/src/drivers/chrome/images/icons/converted/Criteo.svg.png b/src/drivers/chrome/images/icons/converted/Criteo.svg.png deleted file mode 100644 index a64f7cf0e486ec5513561de93ef2715f843d5a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)BldIh}$ zp>ZX2VHO6uniRZ)TtPtTGTWjO3~sw|Q|+oI&?Lqg=Idf+(l(7`nkJcdHN!ca=jHsq zpCY2}tGTqP%v}XLKn`IYNC(Yr6gNOipy7yfwpwbnql~L2b?DiJtl%D@cnd5=^gBSP zVY=ni{?+YN2E;BTd&+qa>HtVa1dpl@Vq0QX)WPR|WCPvm<_pkuU~5Y7s4l>JlPWdu zCK~wh@%1Yu-X|bCBY3EHM$jlf%Gyz`z_nFY)huDQAu2G*O z93Tt2E_PwKr-lan4M%>C@K9R;3ka5=XBV=f+%HVO+y7O44EJSf|LRr)2=37W;Q&b- zqYR+#tGRRn^Bd7GnOSKt7E9Ok694w6hfQru{u6`KKQX@N#ubb*F;#5n^7G4KbE58kO>Ew$PR zwT0t_+S*~W;~zuQEdygiojJ`sm{I+OyWO3gb_y6AVDJzSJ7j@AZ$y#;=5_wvkiIn+6L`O%tStO4+6!V+T} zq{9E5jvm6X)v>n6RYee?IPIQnWN?h~!i&>UegCleEU~QjqLk;458mn8VY3ru+@BKF V#wCkI8x#Nl002ovPDHLkV1hxD9Vh?* diff --git a/src/drivers/chrome/images/icons/converted/Disqus.svg.png b/src/drivers/chrome/images/icons/converted/Disqus.svg.png deleted file mode 100644 index 0c18bfcaeb856b3c0b817dcd7d6fa48cad012897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmV97k%VhdPO`kZLAGH%*Zu6A?)u z649njk4+Dv{(x3R5J3<{4`@-4QLDgBBn46QfM^y{bIx^I>}>w5$bB5jY+2V;;g$ zc=Z+Dh9Q>t2LNRbIO2l?ji5^McCZm5akv$N?vD^R0b(;#hFd*wxeZnon#G0BQ*g2u zzRhJ{XLtv8RKo4u*2Dqo%i;cBs44pkfEpKE+$m4Fk+}-sN;^37=$&BKzb%}dr3cyojES_nbRzp>(7{?MYG?PBB zDyb|P0xU;|U^iL1y359YS{Lm54kNQ-T&zNsGkyM75@urBINdS~&%weX6c~IdLK9G= zLjNS(?Mt0|N3Hg}2d6)bri8dr zLt?5U0`Y}A>W8k4*`Mi19Bzi-!E&}_X&?mak1{= zSnW_#xP*wZ0an0#6;Pric(2xnzfZ2%+51oeHk`v416V_hcLBJDBQcp;>sv!j`y2D8 znI<_>QvC#MF&yUSbstu>+?N1m(1r$l!NA8va1K}43PY!s$nm1Swyt1-B^3kc>)MYh zzXXA81(empr#bNpnV9z=g;T+V*x?J|qqUd9)2%rISM+PNBz0Mo!5^gzk=~667;`~M zX%7(usCmJz+=Qtdymm7qWRXzlQ2DvmX&-FHo;?fzVlWlHg!K%}Ap#yb08x^Ez9=iu zeg1BTXl`+^`l~yx0NB)s$p+y_svwEAeVXR3|4(!Gxm|Hbn!A6bD$KC$S^$XY>e(Nw zUdrdYc}<~<$%mKjIH?XiVI7fu@#ZW30~P;1J5eWRF)0G15`;q_JhEf!yyBBjgD^!l z&+XI;Cyl;x@WkbiwI2kl#ySA6i(i{iKmxDW*vWrXg=;rgO`53-XF&0&P&^8RLji#+ zPK*3Sjg{M01K=nO-;oE(oWBqyr7H zxU!^vVR?KZA)e{MViIVSad=#b30_CMT`Gc=c|zE{y2S{AVLlaz#2VzAR$x&n1=*2M-MJ5*Q^5G45Eh!H)LGtY1&;p$;eTOl4>kaoy08p zpVA>(Sfo-SluAY2uK z&@AiTr_y>|HtQw~(Y;9G%wn6}bn8S@Xo8H3S+od)uuEoJnoBDnK$qnV=2bJ-&h!sH z{~kq<2+L(-tIv$C>5n_IWjVmuB@`VIS<2}`FxTI4O4d67kBd3oKaczV4OgTSena3l z9=NOwL3@{f-@a4NyeRKK0BlCY{16%e?66K23Q$tez&70rX1twl#B18Fdp81jA$2Y@ zbyU{oSN~KwbrzV(ruwcUOaEyg04TeHiKO5-EFXt3Ymx8jI1yfs6{o)D^J|sQe|yeL%=7gql^U5c}=uzte%~zo5DMs zhz9`^)*oHAdnJ(a#tU-r88EaT6bIn*o1+#^J9G{(bsji~9xY7lINDRPYOuy_0Yurc@CgACTeKir$}5b4(#KCf}O(7t9pVq0C2Vsd>Au%%bvEtOQ{-051T}gU^PrE2H=Y&Pk$m9(ayl(sv`xV z8@*{EyZK4@oC+v`@EK0vAq$lUO!%C#w4sLd+QoVaF2Eyej)ZDKi_Ore3 z_xQap@Avp|u*3h3RDu;9VI*Xtu)8A<#p58`P z`t+;=yq+vKftP7rVYC`_CY=WWQ02O*3%3r3YlU8|ZzNe!4LZ*i9XG5-tq0dl;lX&B@^8mjvr=TKJV-MdBI}Z@~rB&dWVGZR9->1Rh z5_TC2Tcf$eTQz!ZYOII;`Xx-ifPdmd(4H6MR9aVf?0N?P5WG*e&WQ5>m9Sj~y=Yj9 zr;WVJ=Ed2ST_ilfTy~v{CXToATe-`vvS+Vc0X-V~alK_<`oeMzC4(BzN>h&MpGV}Ydg{=c|;=Kp<^}8}3 z`Nh+{O6C(t67P=PoUd^#Q)w|j=s#ha-yNnRGtINdKBo0;c?p3J`Hl4%%h;9xs&Z-R seEpl{IeiHMR9Ia0i%(tm+2P;iCq{OU*YEUpvj6}907*qoM6N<$f;)}=o&W#< diff --git a/src/drivers/chrome/images/icons/converted/GitLab.svg.png b/src/drivers/chrome/images/icons/converted/GitLab.svg.png deleted file mode 100644 index 27f76dd4f274a05788319004e19d870565899639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)n7?99&D z<3o1Rz07QGKIj(~&ipRl-*?XMH|MbMU&Q>01Lx;Y960}P@%{bgz{hh#smUOp9b_yl zn-2vH@X2T)*Pd(6tSdk}^6XlIqn_KYfTF|G_xa>dLjk#={zFBF=KBdW zFAS!(EFwRYe%W&+z9yz1E%}jyPlXE5p8BAcL~E(rwvD1#WUS8S=!sAPMMoW}P4FD` z!j=U%Qn!0vfun%}?u?|LC>BW8krYVgh97=>v&9#NQ_okn(}!D-wuQm;qjdtbV}CaMM~#R2G;4fo0vt!Z7?$8R@P)y1<#4Fa;h4V`0CORon*W`v{&N6~6_rb# zTQVCd9*r5R=%}~DBaG>M(oV^_Kd##Vx~=q4`!fiChGxjUyu5SwcHOZNh^D=oL}w{H zU_YX9&jF`b8RK%C9-u2cC!W~Q%L5QgG;nqS-5|~K3V<@7KGI9Vbe5GtQ*fTL!Hza~ zt1|3Z39&+)&E*<^NziS+?Axof?VelfyaM`x5Q3HlJLDr77GsyW{VocWv^A+{;?=6a zIPegG;}~yQzYVdL5JxW%t2UXqc|#E^Z+|5^fZg>R%3l42!H$Bm0z~cs+Um_FO1C1% zw*<9z571g~PBxhCmLOj{@IXMY0m<`?vNP9C>p3}P3KXjX1n2{z)p_x@@HWI-YkV<+ z+v(!!S>Ce8vhON@SZ4Y=dpWvK^4zEj^arPczzS)D6#-Q_y#7Gf#7ds5<;M5L&Sby$ z-?Iwd=L28UW!^(o_-+F?@5e073yZVWhf>?F5{Vt<9S~MOx1ALMC5)MquOgZ0(aOBK zqs`7tzi-{rM`eZOHDfnbhg4JTRs&7R3fs==;<6%ltyvD&77r8vAQLx!R5QtLlat@@ zdG~{VxmpoW6`9I1s7U!C0X$e<8!!v=%vr*A)O@rc&urJ3pHwJIMjp!E@mD_0_5C z>C;#-U;tP7YIZ&D4G91+7f`yr{|7qcHD-Vrn7L}9fL&<~dx71c7Pu^< z*^?q{==R#M03Xi9{t>G~E^(9SVpb4KNcNXtACAt+so41R<<0PIS^$8#_*l0WDg30b zkw$^lD_87$OGjk#ulcR;Z5i&_)Mv%Bsk;Ar|110h&A3m^xHTWW00000NkvXXu0mjf Dsm~*j diff --git a/src/drivers/chrome/images/icons/converted/Google AdSense.svg.png b/src/drivers/chrome/images/icons/converted/Google AdSense.svg.png deleted file mode 100644 index 60003100be6e80139444259911fa38504d5b6b43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1065 zcmV+^1lIeBP)?~&^^c)6-BQlhj}dk!M7X7;N{%K0U(Mm3>>Wfv@QU`{31Z^0oHy!-c_zP`h%bXZ-&I>oRLn!~qyx7~z2>>?fRVSr+6Tl{A24>RpSTmi!sNhqRy+!k zy1oO1F+pg|yDpr4?*iYKabcBj3JdCm>rp)$Pv3p0dff$}=MKmW?joh1hBQ{)fROs{ zF1umk5TW#RzB51&`ENt_S_{|j{bsuE{I(T&8A80+&nnsE3r_M34 z_W0E^bgjCNz?_ntK!A;mxqhb@9!T{-<ⓈQfdSukoHVM05y!z>5IQ_@4WR_`LV5v zV~F0+20(2~B@n>ARy$-EGpQvI;ujhM)Zu}8Ig-Ax7N5_(JWLS48cOk=Aby}#b4fq|NnhLy?k)bj^i=DlG%?Tz!WgsA6@V2TAxfHT1%gD-2>}2WQ}fRc ztxDDhB3O<;S>==RlzN79dUEB?PnZm?Z=qIyX?fG)bC-S@)@cP*9+2~!^9g{7#2f-Hm7cRB-?>5fCmXRv&%&`vip@VdZK41Th|Oi8dgRc<)=j zsD^&&+>KWUd&t)zVj!#nA~10r<90X(B#vUX7=tEm3OA44ww8De&)*y+My{{^3WNb{ z1y#d8%$^=80&OQ@Sn&3UqWuZA`eM7hh7d%Ns(drPX4o*(#lA^jiRA-y|Y$ zbx8a9-`T&ous^KHrY!oXS(=%B|DHb^eGLGMUttF;KA3*dCT~K(8m@gjcXD$U@zBE7 z41dr*#sHv|8W*CC{Zq7zI9uEsl;V*r`l!Wp;p(YvKXw4fB(|`k!|rJW*1(*dKfWc4 zxDg<<>Z9a12OIP_h%+VoqqJx7-`Yc2LQsit<;tmTUnIvh3?3GdUtJSfu=;HN=+K=A jPXBlsZQ1bYZsY$0;<&daI9{-D00000NkvXXu0mjfXy)^( diff --git a/src/drivers/chrome/images/icons/converted/Google Analytics.svg.png b/src/drivers/chrome/images/icons/converted/Google Analytics.svg.png deleted file mode 100644 index d93caf9fd01c821d0dbfc9dbfe33313606c1dd5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcmV-&1daQNP)FhPxpe}bPWtyZIAZ3>OG)CxrkDPSqaMB9dFngA83NH;+n39!2}v%6;Z z%<*Da0?Q0^NxHn3XL8=(bKcC%A@Q|q7X-Bf2mx@SFqHyu6(m|noN`|VaHK$RZuK*m zC*P?GF%)j>8_MuJy1;e{=f1j#e)yWaBLTQ?Z$uCO=m5#p1rNY|`yzUH*g;IG0sy)2 z_>hyBQkh*V*aW!$vAelAP@oBz_;4|iRGItiflq*!1n2B<0LBBI051v7=`RertZ*TO zk-B*D)|L}60>N3~2t@P6)4uvSy=l;Ghiex<8&`YUpR^4i1i%AN+|iqc{A%;fe+_5F zQa*SxJme-ORaoNReL5ch{`1CSiLBoNApl8G zl?)Gg>~QtM$%$C^7maS2!6jP+F!85n5~03wVp1TxPIB?X+Kay=40r84TRhM>t2bTo z5|hd;aISWJG7<0ja=%Ar@G1lc%LyO^z{{VRPK17_AYy^sCQ@>~_P_epBJO!)-VzTD z`0a4L>*LAzrS^5Wyf%Ok0IzsbcvgL)N&#xwdrtt%bO@Cjyc-2*ji^J3Mywqp7WM z0AR`IFFa&}tLpJL7GpO@YVUUaS`)<)%MjN1hf`YrnV?7690veK#JpCxcH+%NZR}dD zS7GqV41afDuZfE0h#<+ZlZ6oJSmy^*T7O5-qcC`6f>W}`0gKDX;9S+(T9@>(k=@C`W}zW;8B=)L0I5`xh4_8 zDFFn6Lox#>L~uyR8wUWocXW4(2o9%2o8oIr05Ak#2r~eq``c$xDdvb%7 diff --git a/src/drivers/chrome/images/icons/converted/HP.svg.png b/src/drivers/chrome/images/icons/converted/HP.svg.png deleted file mode 100644 index 351064cebe70a63816a8aa17140283743e3c2827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 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 M07*qoM6N<$f|OlOMF0Q* diff --git a/src/drivers/chrome/images/icons/converted/Marionette.js.svg.png b/src/drivers/chrome/images/icons/converted/Marionette.js.svg.png deleted file mode 100644 index 613c98ebcf47e38eb8bb27f263df3b7a05d0cfe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1693 zcmV;O24eY%P)VA=g#bm?PTrPVC>k0HQ3n3z(Y%-rY{y& zNRw14O8Sv6HI*vbs%?O@5A=g3?e?Kk-6{{*v4N(PC~65rp-r0)C9+A3s#aButwult z!3NgYi?MgTYa6e3c4qGBgS|U5i+8rlL(kK_`#<-b-@W(TJ9h~_)_3~!CbD=x1pie5 z-stG)u>Ab9cI?=()uaTzQ&CY~Ey_xN^I&`X^+LX?Um#)g9tnPun7(cU!Tb#&#FpynHPMF9U0VX0wu&Y9$71mi2pf%b`pS)|>1*k9s-BtNgyf@D)vKEK zKJ(qz{o?zsK>NO>E^KwoR=yC8ec@80hHlAL!n(WBVXU=3)TCPgHEWlgNyoIB~K=LJrKt6Kh9CMhCA( zBBx9{^X*?ezrUrebz^9LcK#=WL&F~o4h{}ok4BrA_#f|`KE1wJ@}euif~t0Z|CyPC zM~_D4#l%Xl@;9Y<{%rpJyg}dVY6LA%9ZU2kQUuN^GdH<-y_g zn?eE0o)bb;_~p2z28PzReu=>MfY4@l_uQ?R<_QQ2fC26AA6`(~T3!G!xFYbsFSezp zXCEUCp8-jH?!bYRRFo^jjV;5(^f80`K70A%84q-Rkl_t22>^H85}hgWiLF-3+scOG zk3YS0Pk2w%Ex-8ekM8F`zx#3to0Z!%S-KJ+gWleD`NG2F}*#`h&K!^qXkF=QH3IGxW26D&Gbj1J=dJRxKIo%y*SxebnA@A;(x8D}DS%We+ zzwC_8S3_GTVkY0q;IBF<>cLZE7BL3^fTZ+HxS?TlHLjkYToHhnYI3tz6$s08#G4BN zYvWx&K!p-dEFrS|Er7b5&xUnC+JI!X1+WB=cNGPYsRfV&$UBCd+kZ>fp=6AlVl$QK z7e-*;Q312II*aU#Z)yN;rhw=TNT%E}bAFktil@Ny07R~UY)yx1WE`~Rebq*sgb4TmNI=iFElq>SI5kiP{ucwk%=XpjB$S(r*DyAI1IfAEFcR`>3c>SaV^={l zP#8dfawRKl3s77qhM+w;b}kG;Zw_K|vL15_*>lEB*tL87<97(q+{xYhL6YpkD?oBF z7u+ylX}TjaN&(>U$hqAB{S-@|;jASAJhFG<{42|S&n)43mq?;Tx0F`{j;I(0Y+Z9{ zOM6EEKQVUp*OK@P0L1`�uTLCwl&G4l8sNFoG-$0OphfV8Ya0afr&?u1`hIzrQHt z{iZ1Y{N8KlM!iYAh2}9KQtocvO-NJOdQr^`r0%>W7+94b>zl3{&1P~MQ88O_t2VmRC$Q1y&BB_i-T5=+zc6oNbMr?-M{mRRiw>l#JlkcB*3LpWTD-c`E z1C2!iK!yK|NPLw4(=AUj)zTiY6k{C`ua%_K6QdsBdJxu1DXNMAuppI~-vlthjBz1o n0+J?JF(+iI;%c$+|9AT@XlI!9N2>Jy00000NkvXXu0mjfJLNz4 diff --git a/src/drivers/chrome/images/icons/converted/Microsoft.svg.png b/src/drivers/chrome/images/icons/converted/Microsoft.svg.png deleted file mode 100644 index d5f68770da16212c07012261aba0b65240745ebd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWNDCp?v z;usRq`u2h&FM|RPvx9;HSE9yzh7S%N#~y#nua4~Ph!t9&+Q$r33IsKbFZ8{R&ANW` d3qM3)2{WHT5zE=885)8h0Z&&ymvv4FO#rh?Bdh=b diff --git a/src/drivers/chrome/images/icons/converted/MotoCMS.svg.png b/src/drivers/chrome/images/icons/converted/MotoCMS.svg.png deleted file mode 100644 index 07054ebbde9791a719582d364201bfc27f429d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1177 zcmV;K1ZMk*P)Id25MqR8%s6qL(??+ z>Wfd-7gIDLtxf$WjQ;`nRx$Cxq|w-56B`YY28fhm!axw@GBCqsZZNkqXXc#k!!XPY z=bX88J?^vD`qtjx+I!Ck93X#2rI}f_khF0{d_ux$t}Xwsb1J%fmi8V=M7ttxEZXuF zTk<0YQQ1MIAHe{J1mqZlH5Y%}F$gU?cw74E>=>Zi8<0~MZ21-g@)w3_XO3pnlR<%s zU`~#4r)u$ubHj9~b9mfEzE@T0eSJ<&^;`I52IQ}d)6OU^o1GCT2*%_X4;_m?=^Cfg zJBq8p%5QcnoPT3XPQP2m7f{k~m3|A+XH&_8OGZL#uu`mFrD10PXsNZeRV z2>FOX+L$cc@@fVEByr#xy&Vc|p2@N;uVw%s7LRify5^#h8JclBlyQbYCCe;GfyZ4x z->a%*)3YuTxXA)tbqZ*}22IEiBs1_nIDS7!X}tC z2uKq)79qU|!YoOUO3Mj#f0z%z@0%Q8_M&q)D=w&wd?dyCfg;4oFpMZVu4tO8a81?a#Q$Owqt z8Vi>q6o0A}5S%}i3ki`) zFX5-&>H=|Kj+0y{WXbm@Q=MCYwqMLeq2CFgr*;9IlU%rnv4qJ$?d&{^6l^_*^lU3< zv(Bg45fWI(r--{;MB#^exI%%W2Jr8|rr%&Q6SKW!D#FFMxX(KZfVjt}D11o`cb(D< z!4!le#j$7 z-vc(d`kbq0-{f0cAw|;Fr+-sVaj0_#3Yfpit=K9PMvjK0?xE3b8XXsMAHDZy?)Q4N rUdjNJ{>C^i@ctWH)%ZmR2W=^&<^-R`h00000NkvXXu0mjfCDI}- diff --git a/src/drivers/chrome/images/icons/converted/MySQL.svg.png b/src/drivers/chrome/images/icons/converted/MySQL.svg.png deleted file mode 100644 index c1b6bbf4a40ed3bc72aa815c81726bc6f666a6fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmV-{1b+L8P)VVF<`t>`NL(FcSiC4Fcb2@zqM zE9~sOcUQ`Z$PFWMX58e0?%Z)LC?#Un*qwW4*NfIUJp8w8!&Uw!7o_l#OLy6wIlo%TU8Br9^i?klWBuW`#^b6#o05w{8 z(2RSZTXFC4$pWD1dOsHmRf~3agw9zBf0ot~Bk{BV2T1u|G)^nJ%eY{k7rAUpt2 zqMt~`+D=yrpa7sRYMv31?W~emF_9as&I|F;YG>ev;+Y?_k7Y*c7XUb+X&krR)T7r0 z001CHzW`6Jb_QwyV0TC89LNZ6N2au4&}q8lN9|^z?$zLXq0ZE@N&r|In67tFM7`M; zGxrB+wi4cU5rhdW_M`Tf}qJuJC%r06W{;M5-*6L%}n^qD*^z3bkyu2 zn9KZLzaprKAFR51WZ0i+%ZLlZHga2vn}&29cY6#-arZw82)(;KZ56ERB1 ztiu3KLd(k)0ch%l6da$3Nl_%b0Iag&-u$uwD4Z|gkL3UiXB!3p3_~GOHUOxq2^lSh zmg}uCJN-L@n0?|roF}kd1TAe_dm73Efc{$`w*Wx1+dmy(l7_q(#0&uHZp!Wg@l(Mt zHkSt=>LkIt$CA0F0=ZEHD_XmHX9h9s4u^9DHVe>ZCH!W`amIPbs{qu`$b2C{L)+G# z1|?ho@CO3jx}dfM0RVu;?9grkTSerxv$bypXp%pdiuAo@8FQ$>t5eNppFY0bFn$#Qtk3dvv&r8j} zlIkgH{l*gKP*qTX?r=Dlj#zus(bk7V@G7AXwj@$br8VPj;Ic$Gb~BF2jQfv)`nGhm zwL2(8saiVIw^9}M3HbHAk)idD|rARV*b*HU%V+~Uuf=yg0kvs63V z+ed=dYO3>uo&|7MI%@E`>&NV4lL}DOIwv_LQ(NDms6YHa=3iFG?Opf}GR&^l T3fo-_00000NkvXXu0mjfdaw=P diff --git a/src/drivers/chrome/images/icons/converted/Nginx.svg.png b/src/drivers/chrome/images/icons/converted/Nginx.svg.png deleted file mode 100644 index c312c5cd55686267f04029ae268a8b97417bfb0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmV+*1K<3KP)6&rQ#Et#Z|jQS}&AE=-)Y6Gyr>u)-TS z5u@^C(oqBWplk7Ye3T;62FmtfphpJQsd=e$1C!PW-tCci1MhThpzbjGdTe03V^*~X z?|%r#ZNTe^BEJZ(Jy0sM4v*ibm8oEV>(X}AoWtfw*}wF8(hfHtXkfxt!PgPy8dj^i z(+ITQf^pjt;$#kVBn}m)@NMdO*b;|698;h99S z51aqCj!^XlE=HJ5j(M)}WBwr=vmB#|Qr{afy(DqS1QUh?n{WU@%%J*u7-& z1}e_ue6i0lgUT-9p$I#z;V&K)5!3u=yF zH%cvK>lPb3Xzj7sEX|$=%S)5EP+G*07w%GNa$Oi{#+@)X-(LV22Z#$fVPjIVC17CW}uQbnsnosdwBH=|< z-!-jWyRi1D1yez$j(XGe^LQdsE6A-kY^K$~agUhuJ06Q9{iI@}Oz3ET$1OAGGFC+7 zzcR8o4;C9`e$b32N^UUe&5p!jP9-Wnzx$7y1FeU{l#*F9MBjw3;AvI23&lUvuis^? zjIbwFZBHA330nlG6Xh=mk+Y#0xdFk(1p9)j3&jSY<{P|RD6~`rr;OOv9!|X#@50@l z8fd%s#RjT=!*~znzg6*L=LVo;KW2L(pV)n|fgv{p2fG%}oH6W&6kYsnnE71hY*z+? eKf22QukkMzAE~K4Q(f8s0000>T^Q? diff --git a/src/drivers/chrome/images/icons/converted/PDF.js.svg.png b/src/drivers/chrome/images/icons/converted/PDF.js.svg.png deleted file mode 100644 index 9d6209a796d56744cab4d0de352fe79c48bb1633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 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 diff --git a/src/drivers/chrome/images/icons/converted/Shopify.svg.png b/src/drivers/chrome/images/icons/converted/Shopify.svg.png deleted file mode 100644 index bc4cee79140bfd38b132729cc5f6a3fd79bfedce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1327 zcmV+~1_*_UGh{ATA}xZtrbNA?gzb@*YIE!N zYi9hX0tQv+4N+XFU)kKayQOv&5OxBA*WO%nI3|X1RYAE{qJgpkLcKTphOfNcxMKT6 zxYM>^|Nix%p2EJ%hiCYj)+dsE z&GC{)A`t`C_5y-cP}SDqz`S&V0URwJ%(5u+^YsXbL?T9Ebz7~#b4c4-go24A9cx;9 zG0P&)&(|}Ag_Wl^i*N{G157?Sfa7?vxFs18@#gaY+F&VS2_DPVs1tS8b)K@@W)#+JE2zf)`M)V@z{PY$vtKWss z%30(Ukfs8brDysIFqL+dU!j#3qTT&3%r4{U z@(-we@O|b^UqWfYa%Shc+DGqTmnT8G3fPteHZ|51CVoWX8|7ZXlKhd2tF)k!(gN4! z05D|raqV`82lu;*$C>~tU{?WO!`KQWT|zgbU7mAbthIH1Lfnpea6QgBknnM2>D}i< z1(c#>?7?>K+A*$2e4q;%uLl63i4Yh$VnXve6{WQV~GKp)W73o`{>Z>Y%@!jgM%q~$TZFv lCI@?L{q4TG6T_)E{s9b!ZPM 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 diff --git a/src/drivers/chrome/images/icons/converted/jQuery Mobile.svg.png b/src/drivers/chrome/images/icons/converted/jQuery Mobile.svg.png deleted file mode 100644 index 501839ca1b5dc48f4cde774f6e81d2a4e2466c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmV-Z1FZasP)q zzku#A(SOii;Ksz2TN7pB!Wc0aBQB&-V~7S>sQ7`1iU9>XrR{ti7q+F-nSQB_G2yIw z-h1c1&pr3{bP8<5KMu+jLKjAzs|naDVV1DDmDiVs64{zPJLx)m>!SRF&)Y1({zkZ< z$pGBhn#g<#hXpgAL50jy@g`Tu0CX($v;*)|&>RGgPj-}s`)ni+tA zh#km({&p#jp3~Rha>g^-K*K&94oI0iuF1GQ-vpJtWdkTse*rMT^86e3Phy)_HfTZb z0r;F<2F*b;1p$}=Sux3l!|qw1BhIkVlm{tm!-Rngc*w2Xq)K zz=Q|@h~Rv85P2GqcXQN`*ErnpNKFQ9L7pyX4p?76LJGjfWLbWPD+;%y8MIv<^G@H% zUy1@mEdT^C2>^o08o<{)1Ca4%?x=1x&6``RFA89B0h24=Jx^00))&yhb*(!OP{CTZOPxnR<&oNQ{SnYHkV8f4kog@a|#{ zGVx?Z0PF%qcMkx#GJP`WX-yIZ}3s^9$Z3Lc9GC%$XVsDvix%*B_$p|J}z60 dZNz^WKLPsr^^~nbny~-?002ovPDHLkV1note|7)> diff --git a/src/drivers/chrome/images/icons/converted/jQuery UI.svg.png b/src/drivers/chrome/images/icons/converted/jQuery UI.svg.png deleted file mode 100644 index 63fa6ac32a6c683f96ca272808ff042ffead02ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmV;#13UbQP)x#X+1<3J)_m;8 z{9g}ELU(6ovr#vfKDT+^=l?#>yfgC-Jm?UB#j{)5)yOG96)F?Mm{t^*Sec8XAt&BfJ8N#JMBln=CR3s zbZ#4SH!o8nFDVz=9 zEw1VtJKPUa)RMxr)7a785~buKAW6{HB7Qy{*x0o0$Ntt=*4#X@2idgK$4e||-`S)Q z)VHSWonHf+JKLWtYYyPF9}VPn<`;h`kx2tOT3YaizYJ_*wjIRO?Fx5~w_tX@;OD(8 zHgh!~m5v%j{4-s=h0aX{I0(^07cp%I{o$JS;XZ!_#Q$a6)IdmL=@b2^KAw${MyM%j z*wRh3`&`ID(1kQQI|8&4zx81hLA3*>sc zC|o;T(Gt?^EcqW_C4cFa;5rPsUi8%RbYk3l4kZJ(-o4!nbj=XB!?_02dD=Zbef@sc z_tCn?r?2O{SSRqq|K=@nIp@VXOU(lV03=RK&A1bpZjh6T-2T_Ta0}$5JDxs}I59O7 zqA3qOSC?4KM&1$0(R*u{!^&N^nW0BngjlkBW(v(8d mpf?2Riyh1Syq3NXHvR!IOgP;U%Vwtl0000PbXFR9JuO`q6DMCL?1LxV!{J4AsRz*3W%4W7ERO6aEU@n2mvLw(kT^+32J~)6F^A| zg?8pFA1Jl7Gt(Qamvhcu|N8&`Prp5g0_JyS}scG9W~&s*!4Jq2Sf*wNFKuEQ5(qe*G`{O zR-Y0NsA|6_Dot^7s2fe z_LoO!KqcmKekJIMcp!&3o&gYpBVJxb!aY{r&#MSc7`6dVdAL-RLYKG?$A{@dH!eCO zUUvL_>E8jZz~pY5A3d*z?;5g!;^JzDDC>di4Z(%y$8pz^+3QF z;7YHE=+Z=3w`0;LK%YLLey=~gBdfUDJreEwK)o~P%%dv|x9rcDmmq$)v8qX!Nt^=N1B6$&54L|%EJY! z`VBWX@2zn{MGgvfMBoByqAK=8Y{^A<4tP+64NX7rfAd^R5U5BUtB?DO=N4)=QkGwz+;8K6||%;Qju4hw-f~jW6ZW{7Z}VNKmo)b zR=_zGHoJw*4ME?9z6t3=@cFt{-Kx{cJ%at8%}I{H4He{r6KJ0`a{<3*3Kyp7ZkV5 zl3O~N*B`PFs^XW(*Iiv*Yfpah!o^XGTj6zxo^Go0)eLB*UMut=ur5LEMG@AgjqR*F zvaw{?r(myDHxF@rfTMo%C6)c5;Px&8wKt;63cX^i z=D5gx!z0cZ+l`y~R_C63zjMBO?!D(iAAR)E#~X%pbB>RX4-E|seFkh5k#|&e0k~$2 zi2z+GsPFsRMC3ye$*AfRRlPnuJp6mLTK#)P0p)V}3ss#4GF@WdQq@DVv$Hq5C7zg= z*zCIQcfi({5{cXcjz&>*A?>$(N( z6_GLEbKra`?$^HWf7}_Tc5oZmWEUNbqUeXT{4fmNg@uKaK&91c?X1`950m5~@(VCv zxn~{6IZ~_D{#{m~!@$`@pfP4kM}Y798$={2=~ZJ)rAHYll}f{Nb92wSB?rzJW4`Rg z4T9hbPyuMQTJP8E^}CK${XuG7wO0Uu|C`+6a$>lyyAkXi5Rui%gsMJWAxO963S3!< zCn8T%_CQB~sy34e$8om($KZ)1 z+5?W`{A^#uO9+BsOjQrq;p1#J`v=%Q&}cN&^SqXbRIG1TKA(>Zg~FX?v)P`UoLnA!(o&wUBunjbUEK9v3!8O-)E6FqMG?PZ7p~YhH zqN=_JY_{%I!1|QXMc}A0=Bwo;j^ntR%jKQ}J8WFB+_zH8&JPX_?wy&L>HG;@KO_5@ z>}RQ`uLB-f<=@w8wZFP?5|qp3f~p=Ck)5jgF7OPvAtFCTQ53z3+eaUL^zlaU0xCHD U#e`TL%m4rY07*qoM6N<$f?I%(>;M1& diff --git a/src/drivers/chrome/images/icons/converted/webpack.svg.png b/src/drivers/chrome/images/icons/converted/webpack.svg.png deleted file mode 100644 index 9aa2526f300eddf6bd43e67544fb630330327584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1493 zcmV;`1uFW9P)0z>kf0Kg5EMjd z5E73Fxe-b$@dwaI1QbBm?IpES80qe=bob1B&iBkYGe@{bd-1o+?+uZQ01|QT^yBk?zZXAp&;g4} zHx7%XZxeAAkv0Gk+lV~7wI$zq>a#O<{x1L#A&Y-l|5AZ`7vWtZ0wTSaLyT1KX;KM@z zDM4~a#3;%vwW&6;H^JShJy?5vljXHL)U^X}nwM1X~oBrnN! z|o zY~3b-A?-|h7(jNOW<5QGt1sQ;wOdYzK4jN3XuA~H3lRbC(CIqe z3fe8Dw9)5Rm4fZA;{oGiN(BAH+8& zP}>U-`6I|xZq#b4K&w<*MSk0@gKp(}fTZyeJ&z-R`vBoig!ThR1VNy(vtA<5DwI|! zLtw2!C<~)o1>M@oX_J#Km*?04i6GoZD==8sd(};fyjR=h-oU$O+b)GxnL)GxjugW_ zcd0OR4(tx@5vT+wAD-fY``Y{JUIcjHzBVTxK8i~A5k3qtXuA|}A~zF=1f>QlaAdN@ zBk!ML{njSeR^OysB}Q3U8Ydn+%(1BnO3k&S)F4Uj5%Mzo(3l|r_dtNM5KJ>|@`Q+B zDojs}bM#1?mGwKU+}I?VtP>UHj!iIkY=W{hOr>9zBLdT)EQD0&7$X6!Pzog zL>x(wBvCY7k(9!_XD6AS8t2;Tn*hA$!NZKVi~gwxIe2bNa+5+hh2>nTeFVUvF?q6E z@oaK`Op_wwxFiw+k|j4aOawLI(0IuQAG*KqXm3N3NNE5hMFtW1oe^gTb7sh1xctx0 zi*cbWiW6_EB}+l=11(vVUP+%nm&6MJ#-Z>{>+{pVUH-%z#5Jxys-sD_$S z-^uvFrqn%cbgJ}B>*no?3kx6U?v8cWowc}hV@8Vf15-Pr*>YPhnycDiTOQ!C)0QW9 zuj};lRO$IIo|<0&Z!z|DF?sR#ubnIkdrp;)?(1UWaWzHy^1>%(|NK_I4|F%YbY=Za zAv}XHH}Yy0tW Date: Wed, 7 Sep 2016 00:14:38 -0600 Subject: [PATCH 015/236] Added Akka-HTTP --- src/apps.json | 12 +++++++++++- src/icons/akka-http.png | Bin 0 -> 778 bytes 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/icons/akka-http.png diff --git a/src/apps.json b/src/apps.json index 1c96fdc39..dfd2998ce 100755 --- a/src/apps.json +++ b/src/apps.json @@ -333,6 +333,16 @@ "icon": "Akamai.png", "website": "akamai.com" }, + "Akka HTTP": { + "cats": [ + 18, 22 + ], + "headers": { + "Server": "akka-http(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "akka-http.png", + "website": "akka.io" + }, "Algolia Realtime Search": { "cats": [ 29 @@ -9282,4 +9292,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} \ No newline at end of file +} diff --git a/src/icons/akka-http.png b/src/icons/akka-http.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc3a7726348212b8967548861e846e789843f95 GIT binary patch literal 778 zcmV+l1NHogP)Aq+ANOSId7MVIo@$3==@8R`%b#MU7%LWhbV2%>^I zF9=>bG%Qh+k#tcb2ut5|HMLBMFcurVRJ(4@>~05VW3+X5b{%i~KMn8uyz~D*&+~ug z14<}i9UyC>R@THW>pEww$0b5^RYBIoN#G&ix3(0#XP0XDNe2W}MEvPxMKZ3Uaq%6tPb4D4Cs)W&sH@fTWw-N2j+ z0Cae)>|1~yM~9OpiM}pUb5ZcF`DJ?6Cu^b}7<5wZk; zLIS=3hq9O5i}Ai^)|iZh@k!l4Pb?gY+e7?;rIC(>L#$YD0L}sJK-nq+K6tE;$FHjx zu2ny?zbiwuk|Y=G@%}*Y8gMI1SaoI!4gfEJt=7gka8y^78Mm744+Lv~H^5G7>3l34 z>df@1UssiFz;t}0Ey4DRAvEF7u<>Vc|QIMiACfhhstFPdEC!K6Z8umAu607*qo IM6N<$f}4m~OaK4? literal 0 HcmV?d00001 From 9d00dcd9661d716316bbf8a5eac9d94a23d590bd Mon Sep 17 00:00:00 2001 From: foadabdollahi Date: Tue, 13 Sep 2016 18:20:12 +0430 Subject: [PATCH 016/236] Add files via upload --- src/icons/adenagh.png | Bin 0 -> 1055 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/icons/adenagh.png diff --git a/src/icons/adenagh.png b/src/icons/adenagh.png new file mode 100644 index 0000000000000000000000000000000000000000..360efa8e7e254c58460f1cbf2de4d2086e030128 GIT binary patch literal 1055 zcmV+)1mOFLP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^Ag1Z(U700WOnL_t(oN9|QhXcJKsO{&!@2*rQfWF~1V zYEi1m%%mySS%{i;-Xy8EAcDBjuB4*45k%322;x%Ig`y&Ua8qz4Ra_{Ain!8>N{gt7 z3jWY){Z-Gs^Ins*Ay_GhkOPhUy+>;lH3Y8H=i65zJw~8K zS}UOImWhWwKetz|Db|1%5fN!V7Ik&)Q>aqqfMmUTtYtCw(xHGXrn6O=`>3O^C-0o|Ke z@?L^VV@h-&rMCg0;^aY4oQS7l zxr5}WnPLlZRaPRPxEwLXdC~)Z6m*w36mVE_n2u8goBP<7AvExm)=~vv0zMj}9HjyR z%!3nmQ*AaI#9_1>a}rAd|4MBI8acz9t#0nxQadc==wD(S!;(0KVt|5Lj{4m^s zMBm8}30`ZK(+0=5nvU#J?Oh2y(<9RYg3FVY*#9S)5TJ_!sQ@`b z<21xxvZcMm`VRQ~w$zN_Y*z<#T#(;{tF+gn1A{C0F`|PCn?rxxbpiN!B8IaYiLOK5 zP(dh+?>H5J^*1CPgl+)*S-Ms9472w{gAN@XHZ8KYf(eW^7)jK~dp*9-ZV^Qk@$cdD Z{RTa3wJY*LtF{0D002ovPDHLkV1mPp-sAuP literal 0 HcmV?d00001 From a018e83da4e595f8622489913ca37be70ac9a1fe Mon Sep 17 00:00:00 2001 From: foadabdollahi Date: Tue, 13 Sep 2016 18:24:51 +0430 Subject: [PATCH 017/236] Update apps.json --- src/apps.json | 18578 ++++++++++++++++++++++++------------------------ 1 file changed, 9294 insertions(+), 9284 deletions(-) diff --git a/src/apps.json b/src/apps.json index 1c96fdc39..d096765e6 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1,9285 +1,9295 @@ { - "apps": { - "1C-Bitrix": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "BITRIX_", - "X-Powered-CMS": "Bitrix Site Manager" - }, - "html": "(?:]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", - "icon": "1C-Bitrix.png", - "implies": "PHP", - "script": "1c-bitrix", - "website": "www.1c-bitrix.ru" - }, - "1und1": { - "cats": [ - 6 - ], - "icon": "1und1.png", - "implies": "PHP", - "url": "/shop/catalog/browse\\?sessid=", - "website": "1und1.de" - }, - "2z Project": { - "cats": [ - 1 - ], - "icon": "2z Project.png", - "meta": { - "generator": "2z project ([\\d.]+)\\;version:\\1" - }, - "website": "2zproject-cms.ru" - }, - "3DM": { - "cats": [ - 19 - ], - "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", - "icon": "3DM.png", - "implies": "3ware", - "website": "www.3ware.com" - }, - "3dCart": { - "cats": [ - 1, - 6 - ], - "headers": { - "Set-Cookie": "3dvisit", - "X-Powered-By": "3DCART" - }, - "icon": "3dCart.png", - "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", - "website": "www.3dcart.com" - }, - "3ware": { - "cats": [ - 22 - ], - "headers": { - "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "3ware.png", - "website": "www.3ware.com" - }, - "AMPcms": { - "cats": [ - 1 - ], - "env": "^amp_js_init$", - "headers": { - "Set-Cookie": "^AMP=", - "X-AMP-Version": "([\\d.]+)\\;version:\\1" - }, - "icon": "AMPcms.png", - "implies": "PHP", - "website": "www.ampcms.org" - }, - "AOLserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" - }, - "icon": "AOLserver.png", - "website": "aolserver.com" - }, - "AT Internet Analyzer": { - "cats": [ - 10 - ], - "env": "^xtsite$", - "icon": "AT Internet Analyzer.png", - "website": "atinternet.com/en" - }, - "AT Internet XiTi": { - "cats": [ - 10 - ], - "env": "^Xt_", - "icon": "AT Internet XiTi.png", - "script": "xiti\\.com/hit\\.xiti", - "website": "atinternet.com/en" - }, - "ATEN": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" - }, - "icon": "ATEN.png", - "website": "www.aten.com" - }, - "AWStats": { - "cats": [ - 10 - ], - "icon": "AWStats.png", - "implies": "Perl", - "meta": { - "generator": "AWStats ([\\d.]+(?: \\(build [\\d.]+\\))?)\\;version:\\1" - }, - "website": "awstats.sourceforge.net" - }, - "Accessible Portal": { - "cats": [ - 1 - ], - "icon": "Accessible Portal.png", - "implies": "PHP", - "meta": { - "generator": "Accessible Portal" - }, - "website": "www.accessibleportal.com" - }, - "AdInfinity": { - "cats": [ - 36 - ], - "icon": "AdInfinity.png", - "script": "adinfinity\\.com\\.au", - "website": "adinfinity.com.au" - }, - "AdRiver": { - "cats": [ - 36 - ], - "env": "^adriver$", - "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", - "icon": "AdRiver.png", - "script": "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)", - "website": "adriver.ru" - }, - "AdRoll": { - "cats": [ - 36 - ], - "env": "^adroll_", - "icon": "AdRoll.png", - "script": "(?:a|s)\\.adroll\\.com", - "website": "adroll.com" - }, - "Adcash": { - "cats": [ - 36 - ], - "env": "^(?:ac_bgclick_URL|ct_(?:siteunder|tag|n(?:SuUrl(?:Opp)?)|Su(?:Loaded|Url)))$", - "icon": "Adcash.png", - "script": "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/", - "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", - "website": "adcash.com" - }, - "AddShoppers": { - "cats": [ - 5 - ], - "icon": "AddShoppers.png", - "script": "cdn\\.shop\\.pe/widget/", - "website": "www.addshoppers.com" - }, - "AddThis": { - "cats": [ - 5 - ], - "env": "^addthis", - "icon": "AddThis.png", - "script": "addthis\\.com/js/", - "website": "www.addthis.com" - }, - "AddToAny": { - "cats": [ - 5 - ], - "env": "^a2apage_init$", - "icon": "AddToAny.png", - "script": "addtoany\\.com/menu/page\\.js", - "website": "www.addtoany.com" - }, - "Adobe ColdFusion": { - "cats": [ - 18 - ], - "env": "^_cfEmails$", - "headers": { - "Cookie": "CFTOKEN=" - }, - "html": "<!-- START headerTags\\.cfm", - "icon": "Adobe ColdFusion.png", - "implies": "CFML", - "script": "/cfajax/", - "url": "\\.cfm(?:$|\\?)", - "website": "adobe.com/products/coldfusion-family.html" - }, - "Adobe Experience Manager": { - "cats": [ - 1 - ], - "html": [ - "<div class=\"[^\"]*parbase", - "<div[^>]+data-component-path=\"[^\"+]jcr:" - ], - "icon": "Adobe Experience Manager.png", - "implies": "Java", - "script": "/etc/designs/", - "website": "www.adobe.com/au/marketing-cloud/enterprise-content-management.html" - }, - "Adobe GoLive": { - "cats": [ - 20 - ], - "icon": "Adobe GoLive.png", - "meta": { - "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" - }, - "website": "www.adobe.com/products/golive" - }, - "Adobe Muse": { - "cats": [ - 20 - ], - "icon": "Adobe Muse.png", - "meta": { - "generator": "^Muse(?:$| ?/?(\\d[\\d.]+))\\;version:\\1" - }, - "website": "muse.adobe.com" - }, - "Adobe RoboHelp": { - "cats": [ - 4 - ], - "env": "^gbWh(?:Ver|Lang|Msg|Util|Proxy)$", - "icon": "Adobe RoboHelp.png", - "meta": { - "generator": "^Adobe RoboHelp(?: ([\\d]+))?\\;version:\\1" - }, - "script": "(?:wh(?:utils|ver|proxy|lang|topic|msg)|ehlpdhtm)\\.js", - "website": "adobe.com/products/robohelp.html" - }, - "Advanced Web Stats": { - "cats": [ - 10 - ], - "html": "aws\\.src = [^<]+caphyon-analytics", - "icon": "Advanced Web Stats.png", - "implies": "Java", - "website": "www.advancedwebstats.com" - }, - "Advert Stream": { - "cats": [ - 36 - ], - "env": "^advst_is_above_the_fold$", - "icon": "Advert Stream.png", - "script": "(?:ad\\.advertstream\\.com|adxcore\\.com)", - "website": "www.advertstream.com" - }, - "Adzerk": { - "cats": [ - 36 - ], - "env": "^ados(?:Results)?$", - "html": "<iframe [^>]*src=\"[^\"]+adzerk\\.net", - "icon": "Adzerk.png", - "script": "adzerk\\.net/ados\\.js", - "website": "adzerk.com" - }, - "Aegea": { - "cats": [ - 11 - ], - "headers": { - "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" - }, - "icon": "Aegea.png", - "implies": [ - "PHP", - "jQuery" - ], - "website": "blogengine.ru" - }, - "AfterBuy": { - "cats": [ - 6 - ], - "html": [ - "<dd>This OnlineStore is brought to you by ViA-Online GmbH Afterbuy. Information and contribution at https://www.afterbuy.de</dd>" - ], - "icon": "after-buy.png", - "script": "shop-static\\.afterbuy\\.de", - "website": "www.afterbuy.de" - }, - "Airee": { - "cats": [ - 31 - ], - "headers": { - "Server": "Airee" - }, - "icon": "Airee.png", - "website": "xn--80aqc2a.xn--p1ai" - }, - "Akamai": { - "cats": [ - 31 - ], - "headers": { - "X-Akamai-Transformed": "" - }, - "icon": "Akamai.png", - "website": "akamai.com" - }, - "Algolia Realtime Search": { - "cats": [ - 29 - ], - "env": "^AlgoliaSearch$", - "icon": "Algolia Realtime Search.png", - "website": "www.algolia.com" - }, - "Allegro RomPager": { - "cats": [ - 22 - ], - "headers": { - "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Allegro RomPager.png", - "website": "allegrosoft.com/embedded-web-server-s2" - }, - "AlloyUI": { - "cats": [ - 12 - ], - "env": "^AUI$", - "icon": "AlloyUI.png", - "implies": [ - "Twitter Bootstrap", - "YUI" - ], - "script": "^https?://cdn\\.alloyui\\.com/", - "website": "www.alloyui.com" - }, - "Amaya": { - "cats": [ - 20 - ], - "icon": "Amaya.png", - "meta": { - "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" - }, - "website": "www.w3.org/Amaya" - }, - "Ametys": { - "cats": [ - 1 - ], - "icon": "Ametys.png", - "implies": "Java", - "meta": { - "generator": "(?:Ametys|Anyware Technologies)" - }, - "script": "ametys\\.js", - "website": "ametys.org" - }, - "Amiro.CMS": { - "cats": [ - 1 - ], - "icon": "Amiro.CMS.png", - "implies": "PHP", - "meta": { - "generator": "Amiro" - }, - "website": "amirocms.com" - }, - "Anchor CMS": { - "cats": [ - 1, - 11 - ], - "icon": "Anchor CMS.png", - "implies": [ - "PHP", - "MySQL" - ], - "meta": { - "generator": "Anchor CMS" - }, - "website": "anchorcms.com" - }, - "Angular Material": { - "cats": [ - 18 - ], - "env": "^angular$", - "icon": "Angular.svg", - "implies": [ - "AngularJS" - ], - "script": [ - "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular-material(?:\\.min)?\\.js\\;version:\\1", - "angular-material.*\\.js" - ], - "website": "material.angularjs.org" - }, - "AngularJS": { - "cats": [ - 12 - ], - "env": "^angular$", - "icon": "AngularJS.png", - "script": [ - "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", - "/([\\d.]+(?:\\-?rc[.\\d]*)*)/angular(?:\\.min)?\\.js\\;version:\\1", - "angular.*\\.js" - ], - "website": "angularjs.org" - }, - "Apache": { - "cats": [ - 22 - ], - "headers": { - "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\b)HTTPD)\\;version:\\1" - }, - "icon": "Apache.svg", - "website": "apache.org" - }, - "Apache HBase": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hbase", - "icon": "Apache HBase.png", - "website": "hbase.apache.org" - }, - "Apache Hadoop": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hadoop", - "icon": "Apache Hadoop.png", - "website": "hadoop.apache.org" - }, - "Apache JSPWiki": { - "cats": [ - 8 - ], - "html": "<html[^>]* xmlns:jspwiki=", - "icon": "Apache JSPWiki.png", - "script": "jspwiki", - "url": "wiki\\.jsp", - "website": "jspwiki.org" - }, - "Apache Tomcat": { - "cats": [ - 22 - ], - "headers": { - "Server": "Apache-Coyote(/1\\.1)?\\;version:\\1?4.1+:", - "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "Apache Tomcat.png", - "website": "tomcat.apache.org" - }, - "Apache Traffic Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATS/?([\\d.]+)?\\;version:\\1" - }, - "icon": "Apache Traffic Server.png", - "website": "trafficserver.apache.org/" - }, - "Apache Wicket": { - "cats": [ - 18 - ], - "env": "^Wicket", - "icon": "Apache Wicket.png", - "implies": "Java", - "website": "wicket.apache.org" - }, - "AppNexus": { - "cats": [ - 36 - ], - "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", - "icon": "AppNexus.png", - "script": "adnxs\\.(?:net|com)", - "website": "appnexus.com" - }, - "Arastta": { - "cats": [ - 6 - ], - "excludes": "OpenCart", - "headers": { - "Arastta": "(.*)\\;version:\\1", - "X-Arastta": "" - }, - "html": "Powered by <a [^>]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", - "icon": "Arastta.png", - "implies": "PHP", - "script": "arastta\\.js", - "website": "arastta.org" - }, - "Arc Forum": { - "cats": [ - 2 - ], - "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", - "icon": "Arc Forum.png", - "website": "arclanguage.org" - }, - "Artifactory": { - "cats": [ - 47 - ], - "env": "^ArtifactoryUpdates$", - "html": [ - "<span class=\"version\">Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "icon": "Artifactory.png", - "script": [ - "wicket/resource/org\\.artifactory\\." - ], - "website": "jfrog.com/open-source/#os-arti" - }, - "Artifactory Web Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Artifactory Web Server.png", - "implies": [ - "Artifactory" - ], - "website": "jfrog.com/open-source/#os-arti" - }, - "ArvanCloud": { - "cats": [ - 31 - ], - "env": "^ArvanCloud$", - "headers": { - "AR-PoweredBy": "Arvan Cloud \\(arvancloud.com\\)" - }, - "icon": "ArvanCloud.png", - "website": "www.ArvanCloud.com" - }, - "AsciiDoc": { - "cats": [ - 1, - 20, - 27 - ], - "env": "^asciidoc$", - "icon": "AsciiDoc.png", - "meta": { - "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website": "www.methods.co.nz/asciidoc" - }, - "Asymptix PHP Framework": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "Asymptix PHP Framework(?:.*)" - }, - "html": [ - "Powered by <a href=\"http://www.asymptix.com/\" rel=\"external\">Asymptix PHP Framework</a>" - ], - "icon": "Asymptix PHP Framework.png", - "implies": [ - "PHP" - ], - "website": "github.com/Asymptix/Framework" - }, - "Atlassian Bitbucket": { - "cats": [ - 47 - ], - "env": "^bitbucket$", - "icon": "Atlassian Bitbucket.png", - "meta": { - "application-name": "Bitbucket" - }, - "website": "www.atlassian.com/software/bitbucket/overview/" - }, - "Atlassian Confluence": { - "cats": [ - 8 - ], - "headers": { - "X-Confluence-Request-Time": "" - }, - "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", - "icon": "Atlassian Confluence.png", - "implies": "Java", - "meta": { - "confluence-request-time": "" - }, - "website": "www.atlassian.com/software/confluence/overview/team-collaboration-software" - }, - "Atlassian FishEye": { - "cats": [ - 47 - ], - "headers": { - "Set-cookie": "FESESSIONID" - }, - "html": "<title>(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "icon": "Atlassian FishEye.png", - "website": "www.atlassian.com/software/fisheye/overview/" - }, - "Atlassian Jira": { - "cats": [ - 13 - ], - "env": "^jira$", - "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", - "icon": "Atlassian Jira.png", - "implies": "Java", - "meta": { - "ajs-version-number": "([\\d\\.]+)\\;version:\\1", - "application-name": "JIRA" - }, - "website": "www.atlassian.com/software/jira/overview/" - }, - "Atlassian Jira Issue Collector": { - "cats": [ - 13, - 47 - ], - "icon": "Atlassian Jira Issue Collector.png", - "script": [ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website": "www.atlassian.com/software/jira/overview/" - }, - "Avangate": { - "cats": [ - 6 - ], - "env": "^(?:__)?avng8_", - "html": "]* href=\"^https?://edge\\.avangate\\.net/", - "icon": "Avangate.png", - "script": "^https?://edge\\.avangate\\.net/", - "website": "avangate.com" - }, - "BEM": { - "cats": [ - 12 - ], - "html": "<[^>]+data-bem", - "icon": "BEM.png", - "website": "en.bem.info" - }, - "BIGACE": { - "cats": [ - 1 - ], - "html": "(?:Powered by ]+BIGACE|", - "icon": "Business Catalyst.png", - "script": "CatalystScripts", - "website": "businesscatalyst.com" - }, - "BuySellAds": { - "cats": [ - 36 - ], - "env": "^_bsa", - "html": "]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "icon": "BuySellAds.png", - "script": "^https?://s\\d\\.buysellads\\.com/", - "website": "buysellads.com" - }, - "C++": { - "cats": [ - 27 - ], - "icon": "C++.png", - "website": "isocpp.org" - }, - "CFML": { - "cats": [ - 27 - ], - "icon": "CFML.png", - "website": "adobe.com/products/coldfusion-family.html" - }, - "CKEditor": { - "cats": [ - 24 - ], - "env": "^CKEDITOR$", - "icon": "CKEditor.png", - "website": "ckeditor.com" - }, - "CMS Made Simple": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "^CMSSESSID" - }, - "icon": "CMS Made Simple.png", - "implies": "PHP", - "meta": { - "generator": "CMS Made Simple" - }, - "website": "cmsmadesimple.org" - }, - "CMSimple": { - "cats": [ - 1 - ], - "icon": "default.png", - "implies": "PHP", - "meta": { - "generator": "CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website": "www.cmsimple.org/en" - }, - "CO2Stats": { - "cats": [ - 10 - ], - "html": "src=[^>]+co2stats\\.com/propres\\.php", - "icon": "CO2Stats.png", - "website": "co2stats.com" - }, - "CPG Dragonfly": { - "cats": [ - 1 - ], - "headers": { - "X-Powered-By": "Dragonfly CMS" - }, - "icon": "CPG Dragonfly.png", - "implies": "PHP", - "meta": { - "generator": "CPG Dragonfly" - }, - "website": "dragonflycms.org" - }, - "CS Cart": { - "cats": [ - 6 - ], - "env": "^fn_compare_strings$", - "html": [ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - ".cm-noscript[^>]+" - ], - "icon": "CS Cart.png", - "implies": "PHP", - "website": "www.cs-cart.com" - }, - "CacheFly": { - "cats": [ - 31 - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "icon": "CacheFly.png", - "website": "www.cachefly.com" - }, - "Caddy": { - "cats": [ - 22 - ], - "headers": { - "Server": "^Caddy$" - }, - "icon": "caddy.svg", - "website": "caddyserver.com" - }, - "CakePHP": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "icon": "CakePHP.png", - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "cakephp.org" - }, - "Canon": { - "cats": [ - 40 - ], - "icon": "Canon.png", - "website": "www.canon.com" - }, - "Canon HTTP Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "Canon HTTP Server.png", - "implies": [ - "Canon" - ], - "website": "www.canon.com" - }, - "Captch Me": { - "cats": [ - 16, - 36 - ], - "env": "^Captchme", - "icon": "Captch Me.svg", - "script": "^https?://api\\.captchme\\.net/", - "website": "captchme.com" - }, - "Carbon Ads": { - "cats": [ - 36 - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "icon": "Carbon Ads.png", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "carbonads.net" - }, - "Cargo": { - "cats": [ - 1 - ], - "html": "]+Cargo feed", - "icon": "Cargo.png", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "cargocollective.com" - }, - "Catberry.js": { - "cats": [ - 12, - 18 - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "icon": "Catberry.js.png", - "implies": "Node.js", - "website": "catberry.org" - }, - "Catwalk": { - "cats": [ - 22 - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "Catwalk.png", - "implies": "Canon", - "website": "www.canon.com" - }, - "CentOS": { - "cats": [ - 28 - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "icon": "CentOS.png", - "website": "centos.org" - }, - "CenteHTTPd": { - "cats": [ - 22 - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "CenteHTTPd.png", - "website": "cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon": { - "cats": [ - 1 - ], - "icon": "Chameleon.png", - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "chameleon-system.de" - }, - "Chamilo": { - "cats": [ - 21 - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "icon": "Chamilo.png", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "www.chamilo.org" - }, - "Chartbeat": { - "cats": [ - 10 - ], - "env": "^_sf_(?:endpt|async_config)$", - "icon": "Chartbeat.png", - "script": "chartbeat\\.js", - "website": "chartbeat.com" - }, - "Cherokee": { - "cats": [ - 22 - ], - "headers": { - "Server": "Cherokee/([\\d.]+)\\;version:\\1" - }, - "icon": "Cherokee.png", - "website": "www.cherokee-project.com" - }, - "CherryPy": { - "cats": [ - 18, - 22 - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "CherryPy.png", - "implies": "Python", - "website": "www.cherrypy.org" - }, - "Chitika": { - "cats": [ - 36 - ], - "env": "ch_c(?:lient|olor_site_link)", - "icon": "Chitika.png", - "script": "scripts\\.chitika\\.net/", - "website": "chitika.com" - }, - "Ckan": { - "cats": [ - 1 - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "icon": "Ckan.png", - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL\\;confidence:80" - ], - "website": "ckan.org/" - }, - "ClickHeat": { - "cats": [ - 10 - ], - "env": "^clickHeat", - "icon": "ClickHeat.png", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "www.labsmedia.com/clickheat/index.html" - }, - "ClickTale": { - "cats": [ - 10 - ], - "env": "^ClickTale", - "icon": "ClickTale.png", - "website": "www.clicktale.com" - }, - "Clicky": { - "cats": [ - 10 - ], - "env": "^clicky$", - "icon": "Clicky.png", - "script": "static\\.getclicky\\.com", - "website": "getclicky.com" - }, - "Clientexec": { - "cats": [ - 6 - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "icon": "Clientexec.png", - "website": "www.clientexec.com" - }, - "CloudFlare": { - "cats": [ - 31 - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "icon": "CloudFlare.svg", - "website": "www.cloudflare.com" - }, - "Cloudera": { - "cats": [ - 34 - ], - "headers": { - "Server": "cloudera" - }, - "icon": "Cloudera.png", - "website": "www.cloudera.com" - }, - "CodeIgniter": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "icon": "CodeIgniter.png", - "implies": "PHP", - "website": "codeigniter.com" - }, - "CodeMirror": { - "cats": [ - 19 - ], - "env": "^CodeMirror$", - "icon": "CodeMirror.png", - "website": "codemirror.net" - }, - "Commerce Server": { - "cats": [ - 6 - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "icon": "Commerce Server.png", - "implies": "Microsoft ASP.NET", - "website": "commerceserver.net" - }, - "CompaqHTTPServer": { - "cats": [ - 22 - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon": "HP.svg", - "website": "www.hp.com" - }, - "Concrete5": { - "cats": [ - 1 - ], - "env": "^CCM_IMAGE_PATH$", - "icon": "Concrete5.png", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "concrete5.org" - }, - "Connect": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "icon": "Connect.png", - "implies": "Node.js", - "website": "www.senchalabs.org/connect" - }, - "Contao": { - "cats": [ - 1 - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "icon": "Contao.png", - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "contao.org" - }, - "Contenido": { - "cats": [ - 1 - ], - "icon": "Contenido.png", - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "contenido.org/en" - }, - "Contens": { - "cats": [ - 1 - ], - "icon": "Contens.png", - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "www.contens.com/en/pub/index.cfm" - }, - "ContentBox": { - "cats": [ - 1, - 11 - ], - "icon": "ContentBox.png", - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "www.gocontentbox.org" - }, - "ConversionLab": { - "cats": [ - 10 - ], - "icon": "ConversionLab.png", - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "www.trackset.it/conversionlab" - }, - "Coppermine": { - "cats": [ - 7 - ], - "html": "|", - "icon": "InProces.png", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "www.brein.nl/oplossing/product/website" - }, - "Incapsula": { - "cats": [ - 31 - ], - "headers": { - "X-CDN": "Incapsula" - }, - "icon": "Incapsula.png", - "website": "www.incapsula.com" - }, - "Indexhibit": { - "cats": [ - 1 - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "icon": "default.png", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "www.indexhibit.org" - }, - "Indico": { - "cats": [ - 1 - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "icon": "Indico.png", - "website": "indico-software.org" - }, - "Indy": { - "cats": [ - 22 - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "default.png", - "website": "indyproject.org" - }, - "Ink": { - "cats": [ - 18 - ], - "html": "]*href=\"[^\"]+ink(?:\\.min)?\\.css", - "icon": "Ink.png", - "script": "ink.*\\.js", - "website": "ink.sapo.pt" - }, - "InstantCMS": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "icon": "InstantCMS.png", - "meta": { - "generator": "InstantCMS" - }, - "website": "www.instantcms.ru" - }, - "Intel Active Management Technology": { - "cats": [ - 22, - 46 - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Intel Active Management Technology.png", - "website": "intel.com" - }, - "IntenseDebate": { - "cats": [ - 15 - ], - "icon": "IntenseDebate.png", - "script": "intensedebate\\.com", - "website": "intensedebate.com" - }, - "Intercom": { - "cats": [ - 10 - ], - "env": "^Intercom$", - "icon": "Intercom.png", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "intercom.io" - }, - "Intershop": { - "cats": [ - 6 - ], - "icon": "Intershop.png", - "script": "(?:is-bin|INTERSHOP)", - "website": "intershop.com" - }, - "Invenio": { - "cats": [ - 50 - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "icon": "Invenio.png", - "website": "invenio-software.org" - }, - "Ionicons": { - "cats": [ - 17 - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "icon": "Ionicons.png", - "website": "ionicons.com" - }, - "JAlbum": { - "cats": [ - 7 - ], - "icon": "JAlbum.png", - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "jalbum.net/en" - }, - "JBoss Application Server": { - "cats": [ - 22 - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Application Server.png", - "website": "jboss.org/jbossas.html" - }, - "JBoss Web": { - "cats": [ - 22 - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "icon": "JBoss Web.png", - "implies": "JBoss Application Server", - "website": "jboss.org/jbossweb" - }, - "JC-HTTPD": { - "cats": [ - 22 - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "icon": "JC-HTTPD.png", - "implies": [ - "Canon" - ], - "website": "canon.com" - }, - "JS Charts": { - "cats": [ - 25 - ], - "env": "^JSChart$", - "icon": "JS Charts.png", - "script": "jscharts.*\\.js", - "website": "www.jscharts.com" - }, - "JTL Shop": { - "cats": [ - 6 - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "icon": "Joomla.png", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "joomla.org" - }, - "K2": { - "cats": [ - 19 - ], - "env": "^K2RatingURL$", - "html": "", - "icon": "Lightspeed.svg", - "script": "http://assets.webshopapp.com", - "url": "seoshop.webshopapp.com", - "website": "www.lightspeedhq.com/products/ecommerce/" - }, - "Lighty": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "lighty_version" - }, - "icon": "Lighty.png", - "implies": "PHP", - "website": "gitlab.com/lighty/framework" - }, - "LimeSurvey": { - "cats": [ - 19 - ], - "headers": { - "generator": "LimeSurvey" - }, - "icon": "LimeSurvey.png", - "website": "limesurvey.org/" - }, - "LinkSmart": { - "cats": [ - 36 - ], - "env": "^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", - "icon": "LinkSmart.png", - "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", - "website": "linksmart.com" - }, - "Linkedin": { - "cats": [ - 5 - ], - "icon": "Linkedin.svg", - "script": "//platform\\.linkedin\\.com/in\\.js", - "website": "linkedin.com" - }, - "List.js": { - "cats": [ - 12 - ], - "env": "^List$", - "icon": "List.js.png", - "script": "^list\\.(?:min\\.)?js$", - "website": "www.listjs.com" - }, - "LiteSpeed": { - "cats": [ - 22 - ], - "headers": { - "Server": "^LiteSpeed$" - }, - "icon": "LiteSpeed.png", - "website": "litespeedtech.com" - }, - "Lithium": { - "cats": [ - 1 - ], - "env": [ - "^LITHIUM$" - ], - "headers": { - "Set-Cookie": "LithiumVisitor=" - }, - "html": " ]+Powered by Lithium", - "icon": "Lithium.png", - "implies": "PHP", - "website": "www.lithium.com" - }, - "LiveAgent": { - "cats": [ - 52 - ], - "env": "^LiveAgent$", - "icon": "LiveAgent.png", - "website": "www.ladesk.com" - }, - "LiveChat": { - "cats": [ - 52 - ], - "icon": "LiveChat.png", - "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", - "website": "livechatinc.com" - }, - "LiveJournal": { - "cats": [ - 11 - ], - "icon": "LiveJournal.png", - "url": "\\.livejournal\\.com", - "website": "www.livejournal.com" - }, - "LiveStreet CMS": { - "cats": [ - 1 - ], - "env": "^LIVESTREET", - "headers": { - "X-Powered-By": "LiveStreet CMS" - }, - "icon": "LiveStreet CMS.png", - "website": "livestreetcms.com" - }, - "Livefyre": { - "cats": [ - 15 - ], - "env": [ - "^fyre$", - "^FyreLoader$" - ], - "html": "<[^>]+(?:id|class)=\"livefyre", - "icon": "Livefyre.png", - "script": "livefyre_init\\.js", - "website": "livefyre.com" - }, - "Liveinternet": { - "cats": [ - 10 - ], - "html": [ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", - "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "icon": "Locomotive.png", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "www.locomotivecms.com" - }, - "Logitech Media Server": { - "cats": [ - 22, - 38 - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "icon": "Logitech Media Server.png", - "website": "www.mysqueezebox.com" - }, - "Lotus Domino": { - "cats": [ - 22 - ], - "headers": { - "Server": "Lotus-Domino" - }, - "icon": "Lotus Domino.png", - "website": "www-01.ibm.com/software/lotus/products/domino" - }, - "Lua": { - "cats": [ - 27 - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "icon": "Lua.png", - "website": "www.lua.org" - }, - "Lucene": { - "cats": [ - 34 - ], - "icon": "Lucene.png", - "website": "lucene.apache.org/core/" - }, - "M.R. Inc BoxyOS": { - "cats": [ - 28 - ], - "icon": "M.R. Inc BoxyOS.png", - "website": "mrincworld.com" - }, - "M.R. Inc SiteFrame": { - "cats": [ - 18 - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "icon": "M.R. Inc SiteFrame.png", - "website": "mrincworld.com" - }, - "M.R. Inc Webserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "icon": "M.R. Inc Webserver.png", - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "mrincworld.com" - }, - "MOBOTIX": { - "cats": [ - 39 - ], - "icon": "MOBOTIX.png", - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "mobotix.com" - }, - "MODx": { - "cats": [ - 1 - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN4[a-f\\d]{12}", - "X-Powered-By": "^MODx" - }, - "html": [ - "]+>Powered by MODx", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" - ], - "icon": "MODx.png", - "implies": "PHP", - "website": "modxcms.com" - }, - "MadAdsMedia": { - "cats": [ - 36 - ], - "env": "^setM(?:Iframe|RefURL)$", - "icon": "MadAdsMedia.png", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", - "website": "madadsmedia.com" - }, - "Magento": { - "cats": [ - 6 - ], - "env": [ - "^(?:Mage|VarienForm)$" - ], - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "html": [ - "", + "icon":"Arc Forum.png", + "website":"arclanguage.org" + }, + "Artifactory":{ + "cats":[ + 47 + ], + "env":"^ArtifactoryUpdates$", + "html":[ + "Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" + ], + "icon":"Artifactory.png", + "script":[ + "wicket/resource/org\\.artifactory\\." + ], + "website":"jfrog.com/open-source/#os-arti" + }, + "Artifactory Web Server":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"Artifactory(?:/([\\d.]+))?\\;version:\\1" + }, + "icon":"Artifactory Web Server.png", + "implies":[ + "Artifactory" + ], + "website":"jfrog.com/open-source/#os-arti" + }, + "ArvanCloud":{ + "cats":[ + 31 + ], + "env":"^ArvanCloud$", + "headers":{ + "AR-PoweredBy":"Arvan Cloud \\(arvancloud.com\\)" + }, + "icon":"ArvanCloud.png", + "website":"www.ArvanCloud.com" + }, + "AsciiDoc":{ + "cats":[ + 1, + 20, + 27 + ], + "env":"^asciidoc$", + "icon":"AsciiDoc.png", + "meta":{ + "generator":"^AsciiDoc ([\\d.]+)\\;version:\\1" + }, + "website":"www.methods.co.nz/asciidoc" + }, + "Asymptix PHP Framework":{ + "cats":[ + 18 + ], + "headers":{ + "X-Powered-By":"Asymptix PHP Framework(?:.*)" + }, + "html":[ + "Powered by Asymptix PHP Framework" + ], + "icon":"Asymptix PHP Framework.png", + "implies":[ + "PHP" + ], + "website":"github.com/Asymptix/Framework" + }, + "Atlassian Bitbucket":{ + "cats":[ + 47 + ], + "env":"^bitbucket$", + "icon":"Atlassian Bitbucket.png", + "meta":{ + "application-name":"Bitbucket" + }, + "website":"www.atlassian.com/software/bitbucket/overview/" + }, + "Atlassian Confluence":{ + "cats":[ + 8 + ], + "headers":{ + "X-Confluence-Request-Time":"" + }, + "html":"Powered by ]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence ([\\d.]+))?\\;version:\\1", + "icon":"Atlassian Confluence.png", + "implies":"Java", + "meta":{ + "confluence-request-time":"" + }, + "website":"www.atlassian.com/software/confluence/overview/team-collaboration-software" + }, + "Atlassian FishEye":{ + "cats":[ + 47 + ], + "headers":{ + "Set-cookie":"FESESSIONID" + }, + "html":"(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", + "icon":"Atlassian FishEye.png", + "website":"www.atlassian.com/software/fisheye/overview/" + }, + "Atlassian Jira":{ + "cats":[ + 13 + ], + "env":"^jira$", + "html":"Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", + "icon":"Atlassian Jira.png", + "implies":"Java", + "meta":{ + "ajs-version-number":"([\\d\\.]+)\\;version:\\1", + "application-name":"JIRA" + }, + "website":"www.atlassian.com/software/jira/overview/" + }, + "Atlassian Jira Issue Collector":{ + "cats":[ + 13, + 47 + ], + "icon":"Atlassian Jira Issue Collector.png", + "script":[ + "jira-issue-collector-plugin", + "atlassian\\.jira\\.collector\\.plugin" + ], + "website":"www.atlassian.com/software/jira/overview/" + }, + "Avangate":{ + "cats":[ + 6 + ], + "env":"^(?:__)?avng8_", + "html":"]* href=\"^https?://edge\\.avangate\\.net/", + "icon":"Avangate.png", + "script":"^https?://edge\\.avangate\\.net/", + "website":"avangate.com" + }, + "BEM":{ + "cats":[ + 12 + ], + "html":"<[^>]+data-bem", + "icon":"BEM.png", + "website":"en.bem.info" + }, + "BIGACE":{ + "cats":[ + 1 + ], + "html":"(?:Powered by ]+BIGACE|", + "icon":"Business Catalyst.png", + "script":"CatalystScripts", + "website":"businesscatalyst.com" + }, + "BuySellAds":{ + "cats":[ + 36 + ], + "env":"^_bsa", + "html":"]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", + "icon":"BuySellAds.png", + "script":"^https?://s\\d\\.buysellads\\.com/", + "website":"buysellads.com" + }, + "C++":{ + "cats":[ + 27 + ], + "icon":"C++.png", + "website":"isocpp.org" + }, + "CFML":{ + "cats":[ + 27 + ], + "icon":"CFML.png", + "website":"adobe.com/products/coldfusion-family.html" + }, + "CKEditor":{ + "cats":[ + 24 + ], + "env":"^CKEDITOR$", + "icon":"CKEditor.png", + "website":"ckeditor.com" + }, + "CMS Made Simple":{ + "cats":[ + 1 + ], + "headers":{ + "Set-Cookie":"^CMSSESSID" + }, + "icon":"CMS Made Simple.png", + "implies":"PHP", + "meta":{ + "generator":"CMS Made Simple" + }, + "website":"cmsmadesimple.org" + }, + "CMSimple":{ + "cats":[ + 1 + ], + "icon":"default.png", + "implies":"PHP", + "meta":{ + "generator":"CMSimple( [\\d.]+)?\\;version:\\1" + }, + "website":"www.cmsimple.org/en" + }, + "CO2Stats":{ + "cats":[ + 10 + ], + "html":"src=[^>]+co2stats\\.com/propres\\.php", + "icon":"CO2Stats.png", + "website":"co2stats.com" + }, + "CPG Dragonfly":{ + "cats":[ + 1 + ], + "headers":{ + "X-Powered-By":"Dragonfly CMS" + }, + "icon":"CPG Dragonfly.png", + "implies":"PHP", + "meta":{ + "generator":"CPG Dragonfly" + }, + "website":"dragonflycms.org" + }, + "CS Cart":{ + "cats":[ + 6 + ], + "env":"^fn_compare_strings$", + "html":[ + " Powered by (?:]+cs-cart\\.com|CS-Cart)", + ".cm-noscript[^>]+" + ], + "icon":"CS Cart.png", + "implies":"PHP", + "website":"www.cs-cart.com" + }, + "CacheFly":{ + "cats":[ + 31 + ], + "headers":{ + "Server":"^CFS ", + "X-CF1":"", + "X-CF2":"" + }, + "icon":"CacheFly.png", + "website":"www.cachefly.com" + }, + "Caddy":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"^Caddy$" + }, + "icon":"caddy.svg", + "website":"caddyserver.com" + }, + "CakePHP":{ + "cats":[ + 18 + ], + "headers":{ + "Set-Cookie":"cakephp=" + }, + "icon":"CakePHP.png", + "implies":"PHP", + "meta":{ + "application-name":"CakePHP" + }, + "website":"cakephp.org" + }, + "Canon":{ + "cats":[ + 40 + ], + "icon":"Canon.png", + "website":"www.canon.com" + }, + "Canon HTTP Server":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon":"Canon HTTP Server.png", + "implies":[ + "Canon" + ], + "website":"www.canon.com" + }, + "Captch Me":{ + "cats":[ + 16, + 36 + ], + "env":"^Captchme", + "icon":"Captch Me.svg", + "script":"^https?://api\\.captchme\\.net/", + "website":"captchme.com" + }, + "Carbon Ads":{ + "cats":[ + 36 + ], + "env":"^_carbonads", + "html":"<[a-z]+ [^>]*id=\"carbonads-container\"", + "icon":"Carbon Ads.png", + "script":"[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", + "website":"carbonads.net" + }, + "Cargo":{ + "cats":[ + 1 + ], + "html":"]+Cargo feed", + "icon":"Cargo.png", + "implies":"PHP", + "meta":{ + "cargo_title":"" + }, + "script":"/cargo\\.", + "website":"cargocollective.com" + }, + "Catberry.js":{ + "cats":[ + 12, + 18 + ], + "env":"^catberry$", + "headers":{ + "X-Powered-By":"Catberry" + }, + "icon":"Catberry.js.png", + "implies":"Node.js", + "website":"catberry.org" + }, + "Catwalk":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"Catwalk\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon":"Catwalk.png", + "implies":"Canon", + "website":"www.canon.com" + }, + "CentOS":{ + "cats":[ + 28 + ], + "headers":{ + "Server":"CentOS", + "X-Powered-By":"CentOS" + }, + "icon":"CentOS.png", + "website":"centos.org" + }, + "CenteHTTPd":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" + }, + "icon":"CenteHTTPd.png", + "website":"cente.jp/cente/app/HTTPdc.html" + }, + "Chameleon":{ + "cats":[ + 1 + ], + "icon":"Chameleon.png", + "implies":[ + "Apache", + "PHP" + ], + "meta":{ + "generator":"chameleon-cms" + }, + "website":"chameleon-system.de" + }, + "Chamilo":{ + "cats":[ + 21 + ], + "headers":{ + "X-Powered-By":"Chamilo ([\\d.]+)\\;version:\\1" + }, + "html":"\">Chamilo ([\\d.]+)\\;version:\\1", + "icon":"Chamilo.png", + "implies":"PHP", + "meta":{ + "generator":"Chamilo ([\\d.]+)\\;version:\\1" + }, + "website":"www.chamilo.org" + }, + "Chartbeat":{ + "cats":[ + 10 + ], + "env":"^_sf_(?:endpt|async_config)$", + "icon":"Chartbeat.png", + "script":"chartbeat\\.js", + "website":"chartbeat.com" + }, + "Cherokee":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"Cherokee/([\\d.]+)\\;version:\\1" + }, + "icon":"Cherokee.png", + "website":"www.cherokee-project.com" + }, + "CherryPy":{ + "cats":[ + 18, + 22 + ], + "headers":{ + "Server":"CherryPy\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon":"CherryPy.png", + "implies":"Python", + "website":"www.cherrypy.org" + }, + "Chitika":{ + "cats":[ + 36 + ], + "env":"ch_c(?:lient|olor_site_link)", + "icon":"Chitika.png", + "script":"scripts\\.chitika\\.net/", + "website":"chitika.com" + }, + "Ckan":{ + "cats":[ + 1 + ], + "headers":{ + "Access-Control-Allow-Headers":"X-CKAN-API-KEY", + "Link":"; rel=shortlink" + }, + "icon":"Ckan.png", + "implies":[ + "Python", + "Solr", + "Java", + "PostgreSQL\\;confidence:80" + ], + "website":"ckan.org/" + }, + "ClickHeat":{ + "cats":[ + 10 + ], + "env":"^clickHeat", + "icon":"ClickHeat.png", + "implies":"PHP", + "script":"clickheat.*\\.js", + "website":"www.labsmedia.com/clickheat/index.html" + }, + "ClickTale":{ + "cats":[ + 10 + ], + "env":"^ClickTale", + "icon":"ClickTale.png", + "website":"www.clicktale.com" + }, + "Clicky":{ + "cats":[ + 10 + ], + "env":"^clicky$", + "icon":"Clicky.png", + "script":"static\\.getclicky\\.com", + "website":"getclicky.com" + }, + "Clientexec":{ + "cats":[ + 6 + ], + "html":"clientexec\\.[^>]*\\s?=\\s?[^>]*;", + "icon":"Clientexec.png", + "website":"www.clientexec.com" + }, + "CloudFlare":{ + "cats":[ + 31 + ], + "env":"^CloudFlare$", + "headers":{ + "Server":"cloudflare" + }, + "icon":"CloudFlare.svg", + "website":"www.cloudflare.com" + }, + "Cloudera":{ + "cats":[ + 34 + ], + "headers":{ + "Server":"cloudera" + }, + "icon":"Cloudera.png", + "website":"www.cloudera.com" + }, + "CodeIgniter":{ + "cats":[ + 18 + ], + "headers":{ + "Set-Cookie":"(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" + }, + "html":"]+name=\"ci_csrf_token\"\\;version:2+", + "icon":"CodeIgniter.png", + "implies":"PHP", + "website":"codeigniter.com" + }, + "CodeMirror":{ + "cats":[ + 19 + ], + "env":"^CodeMirror$", + "icon":"CodeMirror.png", + "website":"codemirror.net" + }, + "Commerce Server":{ + "cats":[ + 6 + ], + "headers":{ + "COMMERCE-SERVER-SOFTWARE":"" + }, + "icon":"Commerce Server.png", + "implies":"Microsoft ASP.NET", + "website":"commerceserver.net" + }, + "CompaqHTTPServer":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon":"HP.svg", + "website":"www.hp.com" + }, + "Concrete5":{ + "cats":[ + 1 + ], + "env":"^CCM_IMAGE_PATH$", + "icon":"Concrete5.png", + "implies":"PHP", + "meta":{ + "generator":"concrete5 - ([\\d.ab]+)\\;version:\\1" + }, + "script":"concrete/js/", + "website":"concrete5.org" + }, + "Connect":{ + "cats":[ + 18 + ], + "headers":{ + "X-Powered-By":"^Connect$" + }, + "icon":"Connect.png", + "implies":"Node.js", + "website":"www.senchalabs.org/connect" + }, + "Contao":{ + "cats":[ + 1 + ], + "html":[ + "", + "]+(?:typolight|contao)\\.css" + ], + "icon":"Contao.png", + "implies":"PHP", + "meta":{ + "generator":"^Contao Open Source CMS$" + }, + "website":"contao.org" + }, + "Contenido":{ + "cats":[ + 1 + ], + "icon":"Contenido.png", + "implies":"PHP", + "meta":{ + "generator":"Contenido ([\\d.]+)\\;version:\\1" + }, + "website":"contenido.org/en" + }, + "Contens":{ + "cats":[ + 1 + ], + "icon":"Contens.png", + "implies":[ + "Java", + "CFML" + ], + "meta":{ + "generator":"Contensis CMS Version ([\\d.]+)\\;version:\\1" + }, + "website":"www.contens.com/en/pub/index.cfm" + }, + "ContentBox":{ + "cats":[ + 1, + 11 + ], + "icon":"ContentBox.png", + "implies":"Adobe ColdFusion", + "meta":{ + "generator":"ContentBox powered by ColdBox" + }, + "website":"www.gocontentbox.org" + }, + "ConversionLab":{ + "cats":[ + 10 + ], + "icon":"ConversionLab.png", + "script":"conversionlab\\.trackset\\.com/track/tsend\\.js", + "website":"www.trackset.it/conversionlab" + }, + "Coppermine":{ + "cats":[ + 7 + ], + "html":"|", + "icon":"InProces.png", + "script":"brein/inproces/website/websitefuncties\\.js", + "website":"www.brein.nl/oplossing/product/website" + }, + "Incapsula":{ + "cats":[ + 31 + ], + "headers":{ + "X-CDN":"Incapsula" + }, + "icon":"Incapsula.png", + "website":"www.incapsula.com" + }, + "Indexhibit":{ + "cats":[ + 1 + ], + "html":"<(?:link|a href) [^>]+ndxz-studio", + "icon":"default.png", + "implies":[ + "PHP", + "Apache", + "Exhibit" + ], + "meta":{ + "generator":"Indexhibit" + }, + "website":"www.indexhibit.org" + }, + "Indico":{ + "cats":[ + 1 + ], + "headers":{ + "Set-cookie":"MAKACSESSION" + }, + "html":"Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", + "icon":"Indico.png", + "website":"indico-software.org" + }, + "Indy":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"Indy(?:/([\\d.]+))?\\;version:\\1" + }, + "icon":"default.png", + "website":"indyproject.org" + }, + "Ink":{ + "cats":[ + 18 + ], + "html":"]*href=\"[^\"]+ink(?:\\.min)?\\.css", + "icon":"Ink.png", + "script":"ink.*\\.js", + "website":"ink.sapo.pt" + }, + "InstantCMS":{ + "cats":[ + 1 + ], + "headers":{ + "Set-Cookie":"InstantCMS\\[logdate\\]=" + }, + "icon":"InstantCMS.png", + "meta":{ + "generator":"InstantCMS" + }, + "website":"www.instantcms.ru" + }, + "Intel Active Management Technology":{ + "cats":[ + 22, + 46 + ], + "headers":{ + "Server":"Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" + }, + "icon":"Intel Active Management Technology.png", + "website":"intel.com" + }, + "IntenseDebate":{ + "cats":[ + 15 + ], + "icon":"IntenseDebate.png", + "script":"intensedebate\\.com", + "website":"intensedebate.com" + }, + "Intercom":{ + "cats":[ + 10 + ], + "env":"^Intercom$", + "icon":"Intercom.png", + "script":"(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", + "website":"intercom.io" + }, + "Intershop":{ + "cats":[ + 6 + ], + "icon":"Intershop.png", + "script":"(?:is-bin|INTERSHOP)", + "website":"intershop.com" + }, + "Invenio":{ + "cats":[ + 50 + ], + "headers":{ + "Set-cookie":"INVENIOSESSION" + }, + "html":"(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", + "icon":"Invenio.png", + "website":"invenio-software.org" + }, + "Ionicons":{ + "cats":[ + 17 + ], + "html":"]* href=[^>]+ionicons(?:\\.min)?\\.css", + "icon":"Ionicons.png", + "website":"ionicons.com" + }, + "JAlbum":{ + "cats":[ + 7 + ], + "icon":"JAlbum.png", + "implies":"Java", + "meta":{ + "generator":"JAlbum( [\\d.]+)?\\;version:\\1" + }, + "website":"jalbum.net/en" + }, + "JBoss Application Server":{ + "cats":[ + 22 + ], + "headers":{ + "X-Powered-By":"JBoss(?:-([\\d.]+))?\\;version:\\1" + }, + "icon":"JBoss Application Server.png", + "website":"jboss.org/jbossas.html" + }, + "JBoss Web":{ + "cats":[ + 22 + ], + "excludes":"Apache Tomcat", + "headers":{ + "X-Powered-By":"JBossWeb(?:-([\\d.]+))?\\;version:\\1" + }, + "icon":"JBoss Web.png", + "implies":"JBoss Application Server", + "website":"jboss.org/jbossweb" + }, + "JC-HTTPD":{ + "cats":[ + 22 + ], + "excludes":"Apache", + "headers":{ + "Server":"JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" + }, + "icon":"JC-HTTPD.png", + "implies":[ + "Canon" + ], + "website":"canon.com" + }, + "JS Charts":{ + "cats":[ + 25 + ], + "env":"^JSChart$", + "icon":"JS Charts.png", + "script":"jscharts.*\\.js", + "website":"www.jscharts.com" + }, + "JTL Shop":{ + "cats":[ + 6 + ], + "headers":{ + "Set-Cookie":"JTLSHOP=" + }, + "html":"(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", + "icon":"Joomla.png", + "implies":"PHP", + "meta":{ + "generator":"Joomla!(?: ([\\d.]+))?\\;version:\\1" + }, + "url":"option=com_", + "website":"joomla.org" + }, + "K2":{ + "cats":[ + 19 + ], + "env":"^K2RatingURL$", + "html":"", + "icon":"Lightspeed.svg", + "script":"http://assets.webshopapp.com", + "url":"seoshop.webshopapp.com", + "website":"www.lightspeedhq.com/products/ecommerce/" + }, + "Lighty":{ + "cats":[ + 18 + ], + "headers":{ + "Set-Cookie":"lighty_version" + }, + "icon":"Lighty.png", + "implies":"PHP", + "website":"gitlab.com/lighty/framework" + }, + "LimeSurvey":{ + "cats":[ + 19 + ], + "headers":{ + "generator":"LimeSurvey" + }, + "icon":"LimeSurvey.png", + "website":"limesurvey.org/" + }, + "LinkSmart":{ + "cats":[ + 36 + ], + "env":"^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", + "icon":"LinkSmart.png", + "script":"^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", + "website":"linksmart.com" + }, + "Linkedin":{ + "cats":[ + 5 + ], + "icon":"Linkedin.svg", + "script":"//platform\\.linkedin\\.com/in\\.js", + "website":"linkedin.com" + }, + "List.js":{ + "cats":[ + 12 + ], + "env":"^List$", + "icon":"List.js.png", + "script":"^list\\.(?:min\\.)?js$", + "website":"www.listjs.com" + }, + "LiteSpeed":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"^LiteSpeed$" + }, + "icon":"LiteSpeed.png", + "website":"litespeedtech.com" + }, + "Lithium":{ + "cats":[ + 1 + ], + "env":[ + "^LITHIUM$" + ], + "headers":{ + "Set-Cookie":"LithiumVisitor=" + }, + "html":" ]+Powered by Lithium", + "icon":"Lithium.png", + "implies":"PHP", + "website":"www.lithium.com" + }, + "LiveAgent":{ + "cats":[ + 52 + ], + "env":"^LiveAgent$", + "icon":"LiveAgent.png", + "website":"www.ladesk.com" + }, + "LiveChat":{ + "cats":[ + 52 + ], + "icon":"LiveChat.png", + "script":"cdn\\.livechatinc\\.com/.*tracking\\.js", + "website":"livechatinc.com" + }, + "LiveJournal":{ + "cats":[ + 11 + ], + "icon":"LiveJournal.png", + "url":"\\.livejournal\\.com", + "website":"www.livejournal.com" + }, + "LiveStreet CMS":{ + "cats":[ + 1 + ], + "env":"^LIVESTREET", + "headers":{ + "X-Powered-By":"LiveStreet CMS" + }, + "icon":"LiveStreet CMS.png", + "website":"livestreetcms.com" + }, + "Livefyre":{ + "cats":[ + 15 + ], + "env":[ + "^fyre$", + "^FyreLoader$" + ], + "html":"<[^>]+(?:id|class)=\"livefyre", + "icon":"Livefyre.png", + "script":"livefyre_init\\.js", + "website":"livefyre.com" + }, + "Liveinternet":{ + "cats":[ + 10 + ], + "html":[ + "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", + "", + "", + "]*/sites/[a-z\\d]{24}/theme/stylesheets", + "icon":"Locomotive.png", + "implies":[ + "Ruby on Rails", + "MongoDB" + ], + "website":"www.locomotivecms.com" + }, + "Logitech Media Server":{ + "cats":[ + 22, + 38 + ], + "headers":{ + "Server":"Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" + }, + "icon":"Logitech Media Server.png", + "website":"www.mysqueezebox.com" + }, + "Lotus Domino":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"Lotus-Domino" + }, + "icon":"Lotus Domino.png", + "website":"www-01.ibm.com/software/lotus/products/domino" + }, + "Lua":{ + "cats":[ + 27 + ], + "headers":{ + "X-Powered-By":"\bLua(?: ([\\d.]+))?\\;version:\\1" + }, + "icon":"Lua.png", + "website":"www.lua.org" + }, + "Lucene":{ + "cats":[ + 34 + ], + "icon":"Lucene.png", + "website":"lucene.apache.org/core/" + }, + "M.R. Inc BoxyOS":{ + "cats":[ + 28 + ], + "icon":"M.R. Inc BoxyOS.png", + "website":"mrincworld.com" + }, + "M.R. Inc SiteFrame":{ + "cats":[ + 18 + ], + "headers":{ + "Powered-By":"M\\.R\\. Inc SiteFrame" + }, + "icon":"M.R. Inc SiteFrame.png", + "website":"mrincworld.com" + }, + "M.R. Inc Webserver":{ + "cats":[ + 22 + ], + "headers":{ + "Server":"M\\.R\\. Inc Webserver" + }, + "icon":"M.R. Inc Webserver.png", + "implies":[ + "M.R. Inc BoxyOS" + ], + "website":"mrincworld.com" + }, + "MOBOTIX":{ + "cats":[ + 39 + ], + "icon":"MOBOTIX.png", + "meta":{ + "author":"MOBOTIX AG\\;confidence:40", + "copyright":"MOBOTIX AG\\;confidence:40", + "publisher":"MOBOTIX AG\\;confidence:40" + }, + "url":"control/userimage\\.html\\;confidence:70", + "website":"mobotix.com" + }, + "MODx":{ + "cats":[ + 1 + ], + "env":"^MODX_MEDIA_PATH$", + "headers":{ + "Set-Cookie":"SN4[a-f\\d]{12}", + "X-Powered-By":"^MODx" + }, + "html":[ + "]+>Powered by MODx", + "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" + ], + "icon":"MODx.png", + "implies":"PHP", + "website":"modxcms.com" + }, + "MadAdsMedia":{ + "cats":[ + 36 + ], + "env":"^setM(?:Iframe|RefURL)$", + "icon":"MadAdsMedia.png", + "script":"^https?://(?:ads-by|pixel)\\.madadsmedia.com/", + "website":"madadsmedia.com" + }, + "Magento":{ + "cats":[ + 6 + ], + "env":[ + "^(?:Mage|VarienForm)$" + ], + "headers":{ + "Set-Cookie":"frontend=\\;confidence:50" + }, + "html":[ + "", - "icon":"Arc Forum.png", - "website":"arclanguage.org" - }, - "Artifactory":{ - "cats":[ - 47 - ], - "env":"^ArtifactoryUpdates$", - "html":[ - "Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "icon":"Artifactory.png", - "script":[ - "wicket/resource/org\\.artifactory\\." - ], - "website":"jfrog.com/open-source/#os-arti" - }, - "Artifactory Web Server":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "icon":"Artifactory Web Server.png", - "implies":[ - "Artifactory" - ], - "website":"jfrog.com/open-source/#os-arti" - }, - "ArvanCloud":{ - "cats":[ - 31 - ], - "env":"^ArvanCloud$", - "headers":{ - "AR-PoweredBy":"Arvan Cloud \\(arvancloud.com\\)" - }, - "icon":"ArvanCloud.png", - "website":"www.ArvanCloud.com" - }, - "AsciiDoc":{ - "cats":[ - 1, - 20, - 27 - ], - "env":"^asciidoc$", - "icon":"AsciiDoc.png", - "meta":{ - "generator":"^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website":"www.methods.co.nz/asciidoc" - }, - "Asymptix PHP Framework":{ - "cats":[ - 18 - ], - "headers":{ - "X-Powered-By":"Asymptix PHP Framework(?:.*)" - }, - "html":[ - "Powered by Asymptix PHP Framework" - ], - "icon":"Asymptix PHP Framework.png", - "implies":[ - "PHP" - ], - "website":"github.com/Asymptix/Framework" - }, - "Atlassian Bitbucket":{ - "cats":[ - 47 - ], - "env":"^bitbucket$", - "icon":"Atlassian Bitbucket.png", - "meta":{ - "application-name":"Bitbucket" - }, - "website":"www.atlassian.com/software/bitbucket/overview/" - }, - "Atlassian Confluence":{ - "cats":[ - 8 - ], - "headers":{ - "X-Confluence-Request-Time":"" - }, - "html":"Powered by ]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence ([\\d.]+))?\\;version:\\1", - "icon":"Atlassian Confluence.png", - "implies":"Java", - "meta":{ - "confluence-request-time":"" - }, - "website":"www.atlassian.com/software/confluence/overview/team-collaboration-software" - }, - "Atlassian FishEye":{ - "cats":[ - 47 - ], - "headers":{ - "Set-cookie":"FESESSIONID" - }, - "html":"(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "icon":"Atlassian FishEye.png", - "website":"www.atlassian.com/software/fisheye/overview/" - }, - "Atlassian Jira":{ - "cats":[ - 13 - ], - "env":"^jira$", - "html":"Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", - "icon":"Atlassian Jira.png", - "implies":"Java", - "meta":{ - "ajs-version-number":"([\\d\\.]+)\\;version:\\1", - "application-name":"JIRA" - }, - "website":"www.atlassian.com/software/jira/overview/" - }, - "Atlassian Jira Issue Collector":{ - "cats":[ - 13, - 47 - ], - "icon":"Atlassian Jira Issue Collector.png", - "script":[ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website":"www.atlassian.com/software/jira/overview/" - }, - "Avangate":{ - "cats":[ - 6 - ], - "env":"^(?:__)?avng8_", - "html":"]* href=\"^https?://edge\\.avangate\\.net/", - "icon":"Avangate.png", - "script":"^https?://edge\\.avangate\\.net/", - "website":"avangate.com" - }, - "BEM":{ - "cats":[ - 12 - ], - "html":"<[^>]+data-bem", - "icon":"BEM.png", - "website":"en.bem.info" - }, - "BIGACE":{ - "cats":[ - 1 - ], - "html":"(?:Powered by ]+BIGACE|", - "icon":"Business Catalyst.png", - "script":"CatalystScripts", - "website":"businesscatalyst.com" - }, - "BuySellAds":{ - "cats":[ - 36 - ], - "env":"^_bsa", - "html":"]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "icon":"BuySellAds.png", - "script":"^https?://s\\d\\.buysellads\\.com/", - "website":"buysellads.com" - }, - "C++":{ - "cats":[ - 27 - ], - "icon":"C++.png", - "website":"isocpp.org" - }, - "CFML":{ - "cats":[ - 27 - ], - "icon":"CFML.png", - "website":"adobe.com/products/coldfusion-family.html" - }, - "CKEditor":{ - "cats":[ - 24 - ], - "env":"^CKEDITOR$", - "icon":"CKEditor.png", - "website":"ckeditor.com" - }, - "CMS Made Simple":{ - "cats":[ - 1 - ], - "headers":{ - "Set-Cookie":"^CMSSESSID" - }, - "icon":"CMS Made Simple.png", - "implies":"PHP", - "meta":{ - "generator":"CMS Made Simple" - }, - "website":"cmsmadesimple.org" - }, - "CMSimple":{ - "cats":[ - 1 - ], - "icon":"default.png", - "implies":"PHP", - "meta":{ - "generator":"CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website":"www.cmsimple.org/en" - }, - "CO2Stats":{ - "cats":[ - 10 - ], - "html":"src=[^>]+co2stats\\.com/propres\\.php", - "icon":"CO2Stats.png", - "website":"co2stats.com" - }, - "CPG Dragonfly":{ - "cats":[ - 1 - ], - "headers":{ - "X-Powered-By":"Dragonfly CMS" - }, - "icon":"CPG Dragonfly.png", - "implies":"PHP", - "meta":{ - "generator":"CPG Dragonfly" - }, - "website":"dragonflycms.org" - }, - "CS Cart":{ - "cats":[ - 6 - ], - "env":"^fn_compare_strings$", - "html":[ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - ".cm-noscript[^>]+" - ], - "icon":"CS Cart.png", - "implies":"PHP", - "website":"www.cs-cart.com" - }, - "CacheFly":{ - "cats":[ - 31 - ], - "headers":{ - "Server":"^CFS ", - "X-CF1":"", - "X-CF2":"" - }, - "icon":"CacheFly.png", - "website":"www.cachefly.com" - }, - "Caddy":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"^Caddy$" - }, - "icon":"caddy.svg", - "website":"caddyserver.com" - }, - "CakePHP":{ - "cats":[ - 18 - ], - "headers":{ - "Set-Cookie":"cakephp=" - }, - "icon":"CakePHP.png", - "implies":"PHP", - "meta":{ - "application-name":"CakePHP" - }, - "website":"cakephp.org" - }, - "Canon":{ - "cats":[ - 40 - ], - "icon":"Canon.png", - "website":"www.canon.com" - }, - "Canon HTTP Server":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "icon":"Canon HTTP Server.png", - "implies":[ - "Canon" - ], - "website":"www.canon.com" - }, - "Captch Me":{ - "cats":[ - 16, - 36 - ], - "env":"^Captchme", - "icon":"Captch Me.svg", - "script":"^https?://api\\.captchme\\.net/", - "website":"captchme.com" - }, - "Carbon Ads":{ - "cats":[ - 36 - ], - "env":"^_carbonads", - "html":"<[a-z]+ [^>]*id=\"carbonads-container\"", - "icon":"Carbon Ads.png", - "script":"[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website":"carbonads.net" - }, - "Cargo":{ - "cats":[ - 1 - ], - "html":"]+Cargo feed", - "icon":"Cargo.png", - "implies":"PHP", - "meta":{ - "cargo_title":"" - }, - "script":"/cargo\\.", - "website":"cargocollective.com" - }, - "Catberry.js":{ - "cats":[ - 12, - 18 - ], - "env":"^catberry$", - "headers":{ - "X-Powered-By":"Catberry" - }, - "icon":"Catberry.js.png", - "implies":"Node.js", - "website":"catberry.org" - }, - "Catwalk":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon":"Catwalk.png", - "implies":"Canon", - "website":"www.canon.com" - }, - "CentOS":{ - "cats":[ - 28 - ], - "headers":{ - "Server":"CentOS", - "X-Powered-By":"CentOS" - }, - "icon":"CentOS.png", - "website":"centos.org" - }, - "CenteHTTPd":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "icon":"CenteHTTPd.png", - "website":"cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon":{ - "cats":[ - 1 - ], - "icon":"Chameleon.png", - "implies":[ - "Apache", - "PHP" - ], - "meta":{ - "generator":"chameleon-cms" - }, - "website":"chameleon-system.de" - }, - "Chamilo":{ - "cats":[ - 21 - ], - "headers":{ - "X-Powered-By":"Chamilo ([\\d.]+)\\;version:\\1" - }, - "html":"\">Chamilo ([\\d.]+)\\;version:\\1", - "icon":"Chamilo.png", - "implies":"PHP", - "meta":{ - "generator":"Chamilo ([\\d.]+)\\;version:\\1" - }, - "website":"www.chamilo.org" - }, - "Chartbeat":{ - "cats":[ - 10 - ], - "env":"^_sf_(?:endpt|async_config)$", - "icon":"Chartbeat.png", - "script":"chartbeat\\.js", - "website":"chartbeat.com" - }, - "Cherokee":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"Cherokee/([\\d.]+)\\;version:\\1" - }, - "icon":"Cherokee.png", - "website":"www.cherokee-project.com" - }, - "CherryPy":{ - "cats":[ - 18, - 22 - ], - "headers":{ - "Server":"CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon":"CherryPy.png", - "implies":"Python", - "website":"www.cherrypy.org" - }, - "Chitika":{ - "cats":[ - 36 - ], - "env":"ch_c(?:lient|olor_site_link)", - "icon":"Chitika.png", - "script":"scripts\\.chitika\\.net/", - "website":"chitika.com" - }, - "Ckan":{ - "cats":[ - 1 - ], - "headers":{ - "Access-Control-Allow-Headers":"X-CKAN-API-KEY", - "Link":"; rel=shortlink" - }, - "icon":"Ckan.png", - "implies":[ - "Python", - "Solr", - "Java", - "PostgreSQL\\;confidence:80" - ], - "website":"ckan.org/" - }, - "ClickHeat":{ - "cats":[ - 10 - ], - "env":"^clickHeat", - "icon":"ClickHeat.png", - "implies":"PHP", - "script":"clickheat.*\\.js", - "website":"www.labsmedia.com/clickheat/index.html" - }, - "ClickTale":{ - "cats":[ - 10 - ], - "env":"^ClickTale", - "icon":"ClickTale.png", - "website":"www.clicktale.com" - }, - "Clicky":{ - "cats":[ - 10 - ], - "env":"^clicky$", - "icon":"Clicky.png", - "script":"static\\.getclicky\\.com", - "website":"getclicky.com" - }, - "Clientexec":{ - "cats":[ - 6 - ], - "html":"clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "icon":"Clientexec.png", - "website":"www.clientexec.com" - }, - "CloudFlare":{ - "cats":[ - 31 - ], - "env":"^CloudFlare$", - "headers":{ - "Server":"cloudflare" - }, - "icon":"CloudFlare.svg", - "website":"www.cloudflare.com" - }, - "Cloudera":{ - "cats":[ - 34 - ], - "headers":{ - "Server":"cloudera" - }, - "icon":"Cloudera.png", - "website":"www.cloudera.com" - }, - "CodeIgniter":{ - "cats":[ - 18 - ], - "headers":{ - "Set-Cookie":"(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html":"]+name=\"ci_csrf_token\"\\;version:2+", - "icon":"CodeIgniter.png", - "implies":"PHP", - "website":"codeigniter.com" - }, - "CodeMirror":{ - "cats":[ - 19 - ], - "env":"^CodeMirror$", - "icon":"CodeMirror.png", - "website":"codemirror.net" - }, - "Commerce Server":{ - "cats":[ - 6 - ], - "headers":{ - "COMMERCE-SERVER-SOFTWARE":"" - }, - "icon":"Commerce Server.png", - "implies":"Microsoft ASP.NET", - "website":"commerceserver.net" - }, - "CompaqHTTPServer":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "icon":"HP.svg", - "website":"www.hp.com" - }, - "Concrete5":{ - "cats":[ - 1 - ], - "env":"^CCM_IMAGE_PATH$", - "icon":"Concrete5.png", - "implies":"PHP", - "meta":{ - "generator":"concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script":"concrete/js/", - "website":"concrete5.org" - }, - "Connect":{ - "cats":[ - 18 - ], - "headers":{ - "X-Powered-By":"^Connect$" - }, - "icon":"Connect.png", - "implies":"Node.js", - "website":"www.senchalabs.org/connect" - }, - "Contao":{ - "cats":[ - 1 - ], - "html":[ - "", - "]+(?:typolight|contao)\\.css" - ], - "icon":"Contao.png", - "implies":"PHP", - "meta":{ - "generator":"^Contao Open Source CMS$" - }, - "website":"contao.org" - }, - "Contenido":{ - "cats":[ - 1 - ], - "icon":"Contenido.png", - "implies":"PHP", - "meta":{ - "generator":"Contenido ([\\d.]+)\\;version:\\1" - }, - "website":"contenido.org/en" - }, - "Contens":{ - "cats":[ - 1 - ], - "icon":"Contens.png", - "implies":[ - "Java", - "CFML" - ], - "meta":{ - "generator":"Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website":"www.contens.com/en/pub/index.cfm" - }, - "ContentBox":{ - "cats":[ - 1, - 11 - ], - "icon":"ContentBox.png", - "implies":"Adobe ColdFusion", - "meta":{ - "generator":"ContentBox powered by ColdBox" - }, - "website":"www.gocontentbox.org" - }, - "ConversionLab":{ - "cats":[ - 10 - ], - "icon":"ConversionLab.png", - "script":"conversionlab\\.trackset\\.com/track/tsend\\.js", - "website":"www.trackset.it/conversionlab" - }, - "Coppermine":{ - "cats":[ - 7 - ], - "html":"|", - "icon":"InProces.png", - "script":"brein/inproces/website/websitefuncties\\.js", - "website":"www.brein.nl/oplossing/product/website" - }, - "Incapsula":{ - "cats":[ - 31 - ], - "headers":{ - "X-CDN":"Incapsula" - }, - "icon":"Incapsula.png", - "website":"www.incapsula.com" - }, - "Indexhibit":{ - "cats":[ - 1 - ], - "html":"<(?:link|a href) [^>]+ndxz-studio", - "icon":"default.png", - "implies":[ - "PHP", - "Apache", - "Exhibit" - ], - "meta":{ - "generator":"Indexhibit" - }, - "website":"www.indexhibit.org" - }, - "Indico":{ - "cats":[ - 1 - ], - "headers":{ - "Set-cookie":"MAKACSESSION" - }, - "html":"Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "icon":"Indico.png", - "website":"indico-software.org" - }, - "Indy":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "icon":"default.png", - "website":"indyproject.org" - }, - "Ink":{ - "cats":[ - 18 - ], - "html":"]*href=\"[^\"]+ink(?:\\.min)?\\.css", - "icon":"Ink.png", - "script":"ink.*\\.js", - "website":"ink.sapo.pt" - }, - "InstantCMS":{ - "cats":[ - 1 - ], - "headers":{ - "Set-Cookie":"InstantCMS\\[logdate\\]=" - }, - "icon":"InstantCMS.png", - "meta":{ - "generator":"InstantCMS" - }, - "website":"www.instantcms.ru" - }, - "Intel Active Management Technology":{ - "cats":[ - 22, - 46 - ], - "headers":{ - "Server":"Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "icon":"Intel Active Management Technology.png", - "website":"intel.com" - }, - "IntenseDebate":{ - "cats":[ - 15 - ], - "icon":"IntenseDebate.png", - "script":"intensedebate\\.com", - "website":"intensedebate.com" - }, - "Intercom":{ - "cats":[ - 10 - ], - "env":"^Intercom$", - "icon":"Intercom.png", - "script":"(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website":"intercom.io" - }, - "Intershop":{ - "cats":[ - 6 - ], - "icon":"Intershop.png", - "script":"(?:is-bin|INTERSHOP)", - "website":"intershop.com" - }, - "Invenio":{ - "cats":[ - 50 - ], - "headers":{ - "Set-cookie":"INVENIOSESSION" - }, - "html":"(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "icon":"Invenio.png", - "website":"invenio-software.org" - }, - "Ionicons":{ - "cats":[ - 17 - ], - "html":"]* href=[^>]+ionicons(?:\\.min)?\\.css", - "icon":"Ionicons.png", - "website":"ionicons.com" - }, - "JAlbum":{ - "cats":[ - 7 - ], - "icon":"JAlbum.png", - "implies":"Java", - "meta":{ - "generator":"JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website":"jalbum.net/en" - }, - "JBoss Application Server":{ - "cats":[ - 22 - ], - "headers":{ - "X-Powered-By":"JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "icon":"JBoss Application Server.png", - "website":"jboss.org/jbossas.html" - }, - "JBoss Web":{ - "cats":[ - 22 - ], - "excludes":"Apache Tomcat", - "headers":{ - "X-Powered-By":"JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "icon":"JBoss Web.png", - "implies":"JBoss Application Server", - "website":"jboss.org/jbossweb" - }, - "JC-HTTPD":{ - "cats":[ - 22 - ], - "excludes":"Apache", - "headers":{ - "Server":"JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "icon":"JC-HTTPD.png", - "implies":[ - "Canon" - ], - "website":"canon.com" - }, - "JS Charts":{ - "cats":[ - 25 - ], - "env":"^JSChart$", - "icon":"JS Charts.png", - "script":"jscharts.*\\.js", - "website":"www.jscharts.com" - }, - "JTL Shop":{ - "cats":[ - 6 - ], - "headers":{ - "Set-Cookie":"JTLSHOP=" - }, - "html":"(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "icon":"Joomla.png", - "implies":"PHP", - "meta":{ - "generator":"Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url":"option=com_", - "website":"joomla.org" - }, - "K2":{ - "cats":[ - 19 - ], - "env":"^K2RatingURL$", - "html":"", - "icon":"Lightspeed.svg", - "script":"http://assets.webshopapp.com", - "url":"seoshop.webshopapp.com", - "website":"www.lightspeedhq.com/products/ecommerce/" - }, - "Lighty":{ - "cats":[ - 18 - ], - "headers":{ - "Set-Cookie":"lighty_version" - }, - "icon":"Lighty.png", - "implies":"PHP", - "website":"gitlab.com/lighty/framework" - }, - "LimeSurvey":{ - "cats":[ - 19 - ], - "headers":{ - "generator":"LimeSurvey" - }, - "icon":"LimeSurvey.png", - "website":"limesurvey.org/" - }, - "LinkSmart":{ - "cats":[ - 36 - ], - "env":"^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", - "icon":"LinkSmart.png", - "script":"^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", - "website":"linksmart.com" - }, - "Linkedin":{ - "cats":[ - 5 - ], - "icon":"Linkedin.svg", - "script":"//platform\\.linkedin\\.com/in\\.js", - "website":"linkedin.com" - }, - "List.js":{ - "cats":[ - 12 - ], - "env":"^List$", - "icon":"List.js.png", - "script":"^list\\.(?:min\\.)?js$", - "website":"www.listjs.com" - }, - "LiteSpeed":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"^LiteSpeed$" - }, - "icon":"LiteSpeed.png", - "website":"litespeedtech.com" - }, - "Lithium":{ - "cats":[ - 1 - ], - "env":[ - "^LITHIUM$" - ], - "headers":{ - "Set-Cookie":"LithiumVisitor=" - }, - "html":" ]+Powered by Lithium", - "icon":"Lithium.png", - "implies":"PHP", - "website":"www.lithium.com" - }, - "LiveAgent":{ - "cats":[ - 52 - ], - "env":"^LiveAgent$", - "icon":"LiveAgent.png", - "website":"www.ladesk.com" - }, - "LiveChat":{ - "cats":[ - 52 - ], - "icon":"LiveChat.png", - "script":"cdn\\.livechatinc\\.com/.*tracking\\.js", - "website":"livechatinc.com" - }, - "LiveJournal":{ - "cats":[ - 11 - ], - "icon":"LiveJournal.png", - "url":"\\.livejournal\\.com", - "website":"www.livejournal.com" - }, - "LiveStreet CMS":{ - "cats":[ - 1 - ], - "env":"^LIVESTREET", - "headers":{ - "X-Powered-By":"LiveStreet CMS" - }, - "icon":"LiveStreet CMS.png", - "website":"livestreetcms.com" - }, - "Livefyre":{ - "cats":[ - 15 - ], - "env":[ - "^fyre$", - "^FyreLoader$" - ], - "html":"<[^>]+(?:id|class)=\"livefyre", - "icon":"Livefyre.png", - "script":"livefyre_init\\.js", - "website":"livefyre.com" - }, - "Liveinternet":{ - "cats":[ - 10 - ], - "html":[ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", - "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "icon":"Locomotive.png", - "implies":[ - "Ruby on Rails", - "MongoDB" - ], - "website":"www.locomotivecms.com" - }, - "Logitech Media Server":{ - "cats":[ - 22, - 38 - ], - "headers":{ - "Server":"Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "icon":"Logitech Media Server.png", - "website":"www.mysqueezebox.com" - }, - "Lotus Domino":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"Lotus-Domino" - }, - "icon":"Lotus Domino.png", - "website":"www-01.ibm.com/software/lotus/products/domino" - }, - "Lua":{ - "cats":[ - 27 - ], - "headers":{ - "X-Powered-By":"\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "icon":"Lua.png", - "website":"www.lua.org" - }, - "Lucene":{ - "cats":[ - 34 - ], - "icon":"Lucene.png", - "website":"lucene.apache.org/core/" - }, - "M.R. Inc BoxyOS":{ - "cats":[ - 28 - ], - "icon":"M.R. Inc BoxyOS.png", - "website":"mrincworld.com" - }, - "M.R. Inc SiteFrame":{ - "cats":[ - 18 - ], - "headers":{ - "Powered-By":"M\\.R\\. Inc SiteFrame" - }, - "icon":"M.R. Inc SiteFrame.png", - "website":"mrincworld.com" - }, - "M.R. Inc Webserver":{ - "cats":[ - 22 - ], - "headers":{ - "Server":"M\\.R\\. Inc Webserver" - }, - "icon":"M.R. Inc Webserver.png", - "implies":[ - "M.R. Inc BoxyOS" - ], - "website":"mrincworld.com" - }, - "MOBOTIX":{ - "cats":[ - 39 - ], - "icon":"MOBOTIX.png", - "meta":{ - "author":"MOBOTIX AG\\;confidence:40", - "copyright":"MOBOTIX AG\\;confidence:40", - "publisher":"MOBOTIX AG\\;confidence:40" - }, - "url":"control/userimage\\.html\\;confidence:70", - "website":"mobotix.com" - }, - "MODx":{ - "cats":[ - 1 - ], - "env":"^MODX_MEDIA_PATH$", - "headers":{ - "Set-Cookie":"SN4[a-f\\d]{12}", - "X-Powered-By":"^MODx" - }, - "html":[ - "]+>Powered by MODx", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" - ], - "icon":"MODx.png", - "implies":"PHP", - "website":"modxcms.com" - }, - "MadAdsMedia":{ - "cats":[ - 36 - ], - "env":"^setM(?:Iframe|RefURL)$", - "icon":"MadAdsMedia.png", - "script":"^https?://(?:ads-by|pixel)\\.madadsmedia.com/", - "website":"madadsmedia.com" - }, - "Magento":{ - "cats":[ - 6 - ], - "env":[ - "^(?:Mage|VarienForm)$" - ], - "headers":{ - "Set-Cookie":"frontend=\\;confidence:50" - }, - "html":[ - "", + "icon": "Arc Forum.png", + "website": "arclanguage.org" + }, + "Artifactory": { + "cats": [ + 47 + ], + "env": "^ArtifactoryUpdates$", + "html": [ + "Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" + ], + "icon": "Artifactory.png", + "script": [ + "wicket/resource/org\\.artifactory\\." + ], + "website": "jfrog.com/open-source/#os-arti" + }, + "Artifactory Web Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Artifactory Web Server.png", + "implies": [ + "Artifactory" + ], + "website": "jfrog.com/open-source/#os-arti" + }, + "ArvanCloud": { + "cats": [ + 31 + ], + "env": "^ArvanCloud$", + "headers": { + "AR-PoweredBy": "Arvan Cloud \\(arvancloud.com\\)" + }, + "icon": "ArvanCloud.png", + "website": "www.ArvanCloud.com" + }, + "AsciiDoc": { + "cats": [ + 1, + 20, + 27 + ], + "env": "^asciidoc$", + "icon": "AsciiDoc.png", + "meta": { + "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" + }, + "website": "www.methods.co.nz/asciidoc" + }, + "Asymptix PHP Framework": { + "cats": [ + 18 + ], + "headers": { + "X-Powered-By": "Asymptix PHP Framework(?:.*)" + }, + "html": [ + "Powered by Asymptix PHP Framework" + ], + "icon": "Asymptix PHP Framework.png", + "implies": [ + "PHP" + ], + "website": "github.com/Asymptix/Framework" + }, + "Atlassian Bitbucket": { + "cats": [ + 47 + ], + "env": "^bitbucket$", + "icon": "Atlassian Bitbucket.png", + "meta": { + "application-name": "Bitbucket" + }, + "website": "www.atlassian.com/software/bitbucket/overview/" + }, + "Atlassian Confluence": { + "cats": [ + 8 + ], + "headers": { + "X-Confluence-Request-Time": "" + }, + "html": "Powered by ]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence ([\\d.]+))?\\;version:\\1", + "icon": "Atlassian Confluence.png", + "implies": "Java", + "meta": { + "confluence-request-time": "" + }, + "website": "www.atlassian.com/software/confluence/overview/team-collaboration-software" + }, + "Atlassian FishEye": { + "cats": [ + 47 + ], + "headers": { + "Set-cookie": "FESESSIONID" + }, + "html": "(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", + "icon": "Atlassian FishEye.png", + "website": "www.atlassian.com/software/fisheye/overview/" + }, + "Atlassian Jira": { + "cats": [ + 13 + ], + "env": "^jira$", + "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(?:\\.\\d+)?))?\\;version:\\1", + "icon": "Atlassian Jira.png", + "implies": "Java", + "meta": { + "ajs-version-number": "([\\d\\.]+)\\;version:\\1", + "application-name": "JIRA" + }, + "website": "www.atlassian.com/software/jira/overview/" + }, + "Atlassian Jira Issue Collector": { + "cats": [ + 13, + 47 + ], + "icon": "Atlassian Jira Issue Collector.png", + "script": [ + "jira-issue-collector-plugin", + "atlassian\\.jira\\.collector\\.plugin" + ], + "website": "www.atlassian.com/software/jira/overview/" + }, + "Avangate": { + "cats": [ + 6 + ], + "env": "^(?:__)?avng8_", + "html": "]* href=\"^https?://edge\\.avangate\\.net/", + "icon": "Avangate.png", + "script": "^https?://edge\\.avangate\\.net/", + "website": "avangate.com" + }, + "BEM": { + "cats": [ + 12 + ], + "html": "<[^>]+data-bem", + "icon": "BEM.png", + "website": "en.bem.info" + }, + "BIGACE": { + "cats": [ + 1 + ], + "html": "(?:Powered by ]+BIGACE|", + "icon": "Business Catalyst.png", + "script": "CatalystScripts", + "website": "businesscatalyst.com" + }, + "BuySellAds": { + "cats": [ + 36 + ], + "env": "^_bsa", + "html": "]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", + "icon": "BuySellAds.png", + "script": "^https?://s\\d\\.buysellads\\.com/", + "website": "buysellads.com" + }, + "C++": { + "cats": [ + 27 + ], + "icon": "C++.png", + "website": "isocpp.org" + }, + "CFML": { + "cats": [ + 27 + ], + "icon": "CFML.png", + "website": "adobe.com/products/coldfusion-family.html" + }, + "CKEditor": { + "cats": [ + 24 + ], + "env": "^CKEDITOR$", + "icon": "CKEditor.png", + "website": "ckeditor.com" + }, + "CMS Made Simple": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "^CMSSESSID" + }, + "icon": "CMS Made Simple.png", + "implies": "PHP", + "meta": { + "generator": "CMS Made Simple" + }, + "website": "cmsmadesimple.org" + }, + "CMSimple": { + "cats": [ + 1 + ], + "icon": "default.png", + "implies": "PHP", + "meta": { + "generator": "CMSimple( [\\d.]+)?\\;version:\\1" + }, + "website": "www.cmsimple.org/en" + }, + "CO2Stats": { + "cats": [ + 10 + ], + "html": "src=[^>]+co2stats\\.com/propres\\.php", + "icon": "CO2Stats.png", + "website": "co2stats.com" + }, + "CPG Dragonfly": { + "cats": [ + 1 + ], + "headers": { + "X-Powered-By": "Dragonfly CMS" + }, + "icon": "CPG Dragonfly.png", + "implies": "PHP", + "meta": { + "generator": "CPG Dragonfly" + }, + "website": "dragonflycms.org" + }, + "CS Cart": { + "cats": [ + 6 + ], + "env": "^fn_compare_strings$", + "html": [ + " Powered by (?:]+cs-cart\\.com|CS-Cart)", + ".cm-noscript[^>]+" + ], + "icon": "CS Cart.png", + "implies": "PHP", + "website": "www.cs-cart.com" + }, + "CacheFly": { + "cats": [ + 31 + ], + "headers": { + "Server": "^CFS ", + "X-CF1": "", + "X-CF2": "" + }, + "icon": "CacheFly.png", + "website": "www.cachefly.com" + }, + "Caddy": { + "cats": [ + 22 + ], + "headers": { + "Server": "^Caddy$" + }, + "icon": "caddy.svg", + "website": "caddyserver.com" + }, + "CakePHP": { + "cats": [ + 18 + ], + "headers": { + "Set-Cookie": "cakephp=" + }, + "icon": "CakePHP.png", + "implies": "PHP", + "meta": { + "application-name": "CakePHP" + }, + "website": "cakephp.org" + }, + "Canon": { + "cats": [ + 40 + ], + "icon": "Canon.png", + "website": "www.canon.com" + }, + "Canon HTTP Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "Canon HTTP Server.png", + "implies": [ + "Canon" + ], + "website": "www.canon.com" + }, + "Captch Me": { + "cats": [ + 16, + 36 + ], + "env": "^Captchme", + "icon": "Captch Me.svg", + "script": "^https?://api\\.captchme\\.net/", + "website": "captchme.com" + }, + "Carbon Ads": { + "cats": [ + 36 + ], + "env": "^_carbonads", + "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", + "icon": "Carbon Ads.png", + "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", + "website": "carbonads.net" + }, + "Cargo": { + "cats": [ + 1 + ], + "html": "]+Cargo feed", + "icon": "Cargo.png", + "implies": "PHP", + "meta": { + "cargo_title": "" + }, + "script": "/cargo\\.", + "website": "cargocollective.com" + }, + "Catberry.js": { + "cats": [ + 12, + 18 + ], + "env": "^catberry$", + "headers": { + "X-Powered-By": "Catberry" + }, + "icon": "Catberry.js.png", + "implies": "Node.js", + "website": "catberry.org" + }, + "Catwalk": { + "cats": [ + 22 + ], + "headers": { + "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "Catwalk.png", + "implies": "Canon", + "website": "www.canon.com" + }, + "CentOS": { + "cats": [ + 28 + ], + "headers": { + "Server": "CentOS", + "X-Powered-By": "CentOS" + }, + "icon": "CentOS.png", + "website": "centos.org" + }, + "CenteHTTPd": { + "cats": [ + 22 + ], + "headers": { + "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "CenteHTTPd.png", + "website": "cente.jp/cente/app/HTTPdc.html" + }, + "Chameleon": { + "cats": [ + 1 + ], + "icon": "Chameleon.png", + "implies": [ + "Apache", + "PHP" + ], + "meta": { + "generator": "chameleon-cms" + }, + "website": "chameleon-system.de" + }, + "Chamilo": { + "cats": [ + 21 + ], + "headers": { + "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" + }, + "html": "\">Chamilo ([\\d.]+)\\;version:\\1", + "icon": "Chamilo.png", + "implies": "PHP", + "meta": { + "generator": "Chamilo ([\\d.]+)\\;version:\\1" + }, + "website": "www.chamilo.org" + }, + "Chartbeat": { + "cats": [ + 10 + ], + "env": "^_sf_(?:endpt|async_config)$", + "icon": "Chartbeat.png", + "script": "chartbeat\\.js", + "website": "chartbeat.com" + }, + "Cherokee": { + "cats": [ + 22 + ], + "headers": { + "Server": "Cherokee/([\\d.]+)\\;version:\\1" + }, + "icon": "Cherokee.png", + "website": "www.cherokee-project.com" + }, + "CherryPy": { + "cats": [ + 18, + 22 + ], + "headers": { + "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "CherryPy.png", + "implies": "Python", + "website": "www.cherrypy.org" + }, + "Chitika": { + "cats": [ + 36 + ], + "env": "ch_c(?:lient|olor_site_link)", + "icon": "Chitika.png", + "script": "scripts\\.chitika\\.net/", + "website": "chitika.com" + }, + "Ckan": { + "cats": [ + 1 + ], + "headers": { + "Access-Control-Allow-Headers": "X-CKAN-API-KEY", + "Link": "; rel=shortlink" + }, + "icon": "Ckan.png", + "implies": [ + "Python", + "Solr", + "Java", + "PostgreSQL\\;confidence:80" + ], + "website": "ckan.org/" + }, + "ClickHeat": { + "cats": [ + 10 + ], + "env": "^clickHeat", + "icon": "ClickHeat.png", + "implies": "PHP", + "script": "clickheat.*\\.js", + "website": "www.labsmedia.com/clickheat/index.html" + }, + "ClickTale": { + "cats": [ + 10 + ], + "env": "^ClickTale", + "icon": "ClickTale.png", + "website": "www.clicktale.com" + }, + "Clicky": { + "cats": [ + 10 + ], + "env": "^clicky$", + "icon": "Clicky.png", + "script": "static\\.getclicky\\.com", + "website": "getclicky.com" + }, + "Clientexec": { + "cats": [ + 6 + ], + "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", + "icon": "Clientexec.png", + "website": "www.clientexec.com" + }, + "CloudFlare": { + "cats": [ + 31 + ], + "env": "^CloudFlare$", + "headers": { + "Server": "cloudflare" + }, + "icon": "CloudFlare.svg", + "website": "www.cloudflare.com" + }, + "Cloudera": { + "cats": [ + 34 + ], + "headers": { + "Server": "cloudera" + }, + "icon": "Cloudera.png", + "website": "www.cloudera.com" + }, + "CodeIgniter": { + "cats": [ + 18 + ], + "headers": { + "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" + }, + "html": "]+name=\"ci_csrf_token\"\\;version:2+", + "icon": "CodeIgniter.png", + "implies": "PHP", + "website": "codeigniter.com" + }, + "CodeMirror": { + "cats": [ + 19 + ], + "env": "^CodeMirror$", + "icon": "CodeMirror.png", + "website": "codemirror.net" + }, + "Commerce Server": { + "cats": [ + 6 + ], + "headers": { + "COMMERCE-SERVER-SOFTWARE": "" + }, + "icon": "Commerce Server.png", + "implies": "Microsoft ASP.NET", + "website": "commerceserver.net" + }, + "CompaqHTTPServer": { + "cats": [ + 22 + ], + "headers": { + "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" + }, + "icon": "HP.svg", + "website": "www.hp.com" + }, + "Concrete5": { + "cats": [ + 1 + ], + "env": "^CCM_IMAGE_PATH$", + "icon": "Concrete5.png", + "implies": "PHP", + "meta": { + "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" + }, + "script": "concrete/js/", + "website": "concrete5.org" + }, + "Connect": { + "cats": [ + 18 + ], + "headers": { + "X-Powered-By": "^Connect$" + }, + "icon": "Connect.png", + "implies": "Node.js", + "website": "www.senchalabs.org/connect" + }, + "Contao": { + "cats": [ + 1 + ], + "html": [ + "", + "]+(?:typolight|contao)\\.css" + ], + "icon": "Contao.png", + "implies": "PHP", + "meta": { + "generator": "^Contao Open Source CMS$" + }, + "website": "contao.org" + }, + "Contenido": { + "cats": [ + 1 + ], + "icon": "Contenido.png", + "implies": "PHP", + "meta": { + "generator": "Contenido ([\\d.]+)\\;version:\\1" + }, + "website": "contenido.org/en" + }, + "Contens": { + "cats": [ + 1 + ], + "icon": "Contens.png", + "implies": [ + "Java", + "CFML" + ], + "meta": { + "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" + }, + "website": "www.contens.com/en/pub/index.cfm" + }, + "ContentBox": { + "cats": [ + 1, + 11 + ], + "icon": "ContentBox.png", + "implies": "Adobe ColdFusion", + "meta": { + "generator": "ContentBox powered by ColdBox" + }, + "website": "www.gocontentbox.org" + }, + "ConversionLab": { + "cats": [ + 10 + ], + "icon": "ConversionLab.png", + "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", + "website": "www.trackset.it/conversionlab" + }, + "Coppermine": { + "cats": [ + 7 + ], + "html": "|", + "icon": "InProces.png", + "script": "brein/inproces/website/websitefuncties\\.js", + "website": "www.brein.nl/oplossing/product/website" + }, + "Incapsula": { + "cats": [ + 31 + ], + "headers": { + "X-CDN": "Incapsula" + }, + "icon": "Incapsula.png", + "website": "www.incapsula.com" + }, + "Indexhibit": { + "cats": [ + 1 + ], + "html": "<(?:link|a href) [^>]+ndxz-studio", + "icon": "default.png", + "implies": [ + "PHP", + "Apache", + "Exhibit" + ], + "meta": { + "generator": "Indexhibit" + }, + "website": "www.indexhibit.org" + }, + "Indico": { + "cats": [ + 1 + ], + "headers": { + "Set-cookie": "MAKACSESSION" + }, + "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", + "icon": "Indico.png", + "website": "indico-software.org" + }, + "Indy": { + "cats": [ + 22 + ], + "headers": { + "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "default.png", + "website": "indyproject.org" + }, + "Ink": { + "cats": [ + 18 + ], + "html": "]*href=\"[^\"]+ink(?:\\.min)?\\.css", + "icon": "Ink.png", + "script": "ink.*\\.js", + "website": "ink.sapo.pt" + }, + "InstantCMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "InstantCMS\\[logdate\\]=" + }, + "icon": "InstantCMS.png", + "meta": { + "generator": "InstantCMS" + }, + "website": "www.instantcms.ru" + }, + "Intel Active Management Technology": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Intel Active Management Technology.png", + "website": "intel.com" + }, + "IntenseDebate": { + "cats": [ + 15 + ], + "icon": "IntenseDebate.png", + "script": "intensedebate\\.com", + "website": "intensedebate.com" + }, + "Intercom": { + "cats": [ + 10 + ], + "env": "^Intercom$", + "icon": "Intercom.png", + "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", + "website": "intercom.io" + }, + "Intershop": { + "cats": [ + 6 + ], + "icon": "Intershop.png", + "script": "(?:is-bin|INTERSHOP)", + "website": "intershop.com" + }, + "Invenio": { + "cats": [ + 50 + ], + "headers": { + "Set-cookie": "INVENIOSESSION" + }, + "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", + "icon": "Invenio.png", + "website": "invenio-software.org" + }, + "Ionicons": { + "cats": [ + 17 + ], + "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", + "icon": "Ionicons.png", + "website": "ionicons.com" + }, + "JAlbum": { + "cats": [ + 7 + ], + "icon": "JAlbum.png", + "implies": "Java", + "meta": { + "generator": "JAlbum( [\\d.]+)?\\;version:\\1" + }, + "website": "jalbum.net/en" + }, + "JBoss Application Server": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Application Server.png", + "website": "jboss.org/jbossas.html" + }, + "JBoss Web": { + "cats": [ + 22 + ], + "excludes": "Apache Tomcat", + "headers": { + "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" + }, + "icon": "JBoss Web.png", + "implies": "JBoss Application Server", + "website": "jboss.org/jbossweb" + }, + "JC-HTTPD": { + "cats": [ + 22 + ], + "excludes": "Apache", + "headers": { + "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" + }, + "icon": "JC-HTTPD.png", + "implies": [ + "Canon" + ], + "website": "canon.com" + }, + "JS Charts": { + "cats": [ + 25 + ], + "env": "^JSChart$", + "icon": "JS Charts.png", + "script": "jscharts.*\\.js", + "website": "www.jscharts.com" + }, + "JTL Shop": { + "cats": [ + 6 + ], + "headers": { + "Set-Cookie": "JTLSHOP=" + }, + "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", + "icon": "Joomla.png", + "implies": "PHP", + "meta": { + "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" + }, + "url": "option=com_", + "website": "joomla.org" + }, + "K2": { + "cats": [ + 19 + ], + "env": "^K2RatingURL$", + "html": "", + "icon": "Lightspeed.svg", + "script": "http://assets.webshopapp.com", + "url": "seoshop.webshopapp.com", + "website": "www.lightspeedhq.com/products/ecommerce/" + }, + "Lighty": { + "cats": [ + 18 + ], + "headers": { + "Set-Cookie": "lighty_version" + }, + "icon": "Lighty.png", + "implies": "PHP", + "website": "gitlab.com/lighty/framework" + }, + "LimeSurvey": { + "cats": [ + 19 + ], + "headers": { + "generator": "LimeSurvey" + }, + "icon": "LimeSurvey.png", + "website": "limesurvey.org/" + }, + "LinkSmart": { + "cats": [ + 36 + ], + "env": "^(?:_mb_site_guid$|LS_JSON|LinkSmart(?:_|$))", + "icon": "LinkSmart.png", + "script": "^https?://cdn\\.linksmart\\.com/linksmart_([\\d.]+?)(?:\\.min)?\\.js\\;version:\\1", + "website": "linksmart.com" + }, + "Linkedin": { + "cats": [ + 5 + ], + "icon": "Linkedin.svg", + "script": "//platform\\.linkedin\\.com/in\\.js", + "website": "linkedin.com" + }, + "List.js": { + "cats": [ + 12 + ], + "env": "^List$", + "icon": "List.js.png", + "script": "^list\\.(?:min\\.)?js$", + "website": "www.listjs.com" + }, + "LiteSpeed": { + "cats": [ + 22 + ], + "headers": { + "Server": "^LiteSpeed$" + }, + "icon": "LiteSpeed.png", + "website": "litespeedtech.com" + }, + "Lithium": { + "cats": [ + 1 + ], + "env": [ + "^LITHIUM$" + ], + "headers": { + "Set-Cookie": "LithiumVisitor=" + }, + "html": " ]+Powered by Lithium", + "icon": "Lithium.png", + "implies": "PHP", + "website": "www.lithium.com" + }, + "LiveAgent": { + "cats": [ + 52 + ], + "env": "^LiveAgent$", + "icon": "LiveAgent.png", + "website": "www.ladesk.com" + }, + "LiveChat": { + "cats": [ + 52 + ], + "icon": "LiveChat.png", + "script": "cdn\\.livechatinc\\.com/.*tracking\\.js", + "website": "livechatinc.com" + }, + "LiveJournal": { + "cats": [ + 11 + ], + "icon": "LiveJournal.png", + "url": "\\.livejournal\\.com", + "website": "www.livejournal.com" + }, + "LiveStreet CMS": { + "cats": [ + 1 + ], + "env": "^LIVESTREET", + "headers": { + "X-Powered-By": "LiveStreet CMS" + }, + "icon": "LiveStreet CMS.png", + "website": "livestreetcms.com" + }, + "Livefyre": { + "cats": [ + 15 + ], + "env": [ + "^fyre$", + "^FyreLoader$" + ], + "html": "<[^>]+(?:id|class)=\"livefyre", + "icon": "Livefyre.png", + "script": "livefyre_init\\.js", + "website": "livefyre.com" + }, + "Liveinternet": { + "cats": [ + 10 + ], + "html": [ + "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", + "", + "", + "]*/sites/[a-z\\d]{24}/theme/stylesheets", + "icon": "Locomotive.png", + "implies": [ + "Ruby on Rails", + "MongoDB" + ], + "website": "www.locomotivecms.com" + }, + "Logitech Media Server": { + "cats": [ + 22, + 38 + ], + "headers": { + "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" + }, + "icon": "Logitech Media Server.png", + "website": "www.mysqueezebox.com" + }, + "Lotus Domino": { + "cats": [ + 22 + ], + "headers": { + "Server": "Lotus-Domino" + }, + "icon": "Lotus Domino.png", + "website": "www-01.ibm.com/software/lotus/products/domino" + }, + "Lua": { + "cats": [ + 27 + ], + "headers": { + "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" + }, + "icon": "Lua.png", + "website": "www.lua.org" + }, + "Lucene": { + "cats": [ + 34 + ], + "icon": "Lucene.png", + "website": "lucene.apache.org/core/" + }, + "M.R. Inc BoxyOS": { + "cats": [ + 28 + ], + "icon": "M.R. Inc BoxyOS.png", + "website": "mrincworld.com" + }, + "M.R. Inc SiteFrame": { + "cats": [ + 18 + ], + "headers": { + "Powered-By": "M\\.R\\. Inc SiteFrame" + }, + "icon": "M.R. Inc SiteFrame.png", + "website": "mrincworld.com" + }, + "M.R. Inc Webserver": { + "cats": [ + 22 + ], + "headers": { + "Server": "M\\.R\\. Inc Webserver" + }, + "icon": "M.R. Inc Webserver.png", + "implies": [ + "M.R. Inc BoxyOS" + ], + "website": "mrincworld.com" + }, + "MOBOTIX": { + "cats": [ + 39 + ], + "icon": "MOBOTIX.png", + "meta": { + "author": "MOBOTIX AG\\;confidence:40", + "copyright": "MOBOTIX AG\\;confidence:40", + "publisher": "MOBOTIX AG\\;confidence:40" + }, + "url": "control/userimage\\.html\\;confidence:70", + "website": "mobotix.com" + }, + "MODx": { + "cats": [ + 1 + ], + "env": "^MODX_MEDIA_PATH$", + "headers": { + "Set-Cookie": "SN4[a-f\\d]{12}", + "X-Powered-By": "^MODx" + }, + "html": [ + "]+>Powered by MODx", + "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" + ], + "icon": "MODx.png", + "implies": "PHP", + "website": "modxcms.com" + }, + "MadAdsMedia": { + "cats": [ + 36 + ], + "env": "^setM(?:Iframe|RefURL)$", + "icon": "MadAdsMedia.png", + "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", + "website": "madadsmedia.com" + }, + "Magento": { + "cats": [ + 6 + ], + "env": [ + "^(?:Mage|VarienForm)$" + ], + "headers": { + "Set-Cookie": "frontend=\\;confidence:50" + }, + "html": [ + " - - - - - -
- - diff --git a/src/drivers/html/js/driver.js b/src/drivers/html/js/driver.js deleted file mode 100644 index 0e14f59af..000000000 --- a/src/drivers/html/js/driver.js +++ /dev/null @@ -1,67 +0,0 @@ -(function() { - if ( wappalyzer == null ) { return }; - - var w = wappalyzer; - - w.driver = { - /** - * Log messages to console - */ - log: function(args) { - if ( console != null ) { console[args.type](args.message) }; - }, - - /** - * Initialize - */ - init: function() { - // Load apps.json - var xhr = new XMLHttpRequest(); - - xhr.open('GET', 'apps.json', true); - - xhr.overrideMimeType('application/json'); - - xhr.onload = function() { - var json = JSON.parse(xhr.responseText); - - w.categories = json.categories; - w.apps = json.apps; - - window.document.addEventListener('DOMContentLoaded', function() { - w.analyze('google.com', 'http://google.com', { - html: ' - - - - - - - - - -
-
-
-
-
-

Preso Engines

- "Presentation Engines" -
-
- -
-
By | CodeLanka
-
-
-
-

-
-
-
-
-
- - {{presentation.name}} - - - - {{presentation.website}} - - - - {{presentation.description}} - -
-
- -

{{presentation.stargazers_count}}

-
-
- -

{{presentation.watchers_count}}

-
-
- -

{{presentation.open_issues_count}}

-
- -
-
-

Github - - {{presentation.github}} -

-

Demo - - {{presentation.demo}} -

- -

License - {{presentation.license}}

- -

Language - {{presentation.language}}

-
-
-
-
-
-
-
-
-
- - - - - - - \ No newline at end of file diff --git a/src/drivers/npm/test/test.js b/src/drivers/npm/test/test.js deleted file mode 100644 index 8e994d1cc..000000000 --- a/src/drivers/npm/test/test.js +++ /dev/null @@ -1,65 +0,0 @@ -var assert = require("assert") -var fs = require('fs') - -describe('wappalyzer', function(){ - describe('detectFromUrl', function(){ - it('should have the expected apps detected', function(done){ - - var wappalyzer = require("../index"); - - var expect = ['AngularJS','Font Awesome','Google Font API','Twitter Bootstrap','jQuery']; - - var options={ - url : "http://codelanka.github.io/Presentation-Engines", - hostname:"codelanka.github.io", - debug:false - } - - wappalyzer.detectFromUrl(options,function (err,apps) { - assert.equal(expect[0], apps[0]); - assert.equal(expect[1], apps[1]); - assert.equal(expect[2], apps[2]); - assert.equal(expect[3], apps[3]); - done(); - }) - - }) - }) - describe('detectFromHTML', function(){ - it('should have the expected apps detected when passed raw info', function(done){ - - var wappalyzer = require("../index"); - - var expect = ['AngularJS','Font Awesome','Google Font API','Twitter Bootstrap','jQuery']; - - var options={ - url : "http://codelanka.github.io/Presentation-Engines", - hostname:"codelanka.github.io", - debug:false - } - - var data = { - - url: options.url, - headers: require('./sample.headers.json'), - html: fs.readFileSync('./test/sample.html').toString(), - headers: { - - headers: {} - - } - - }; - - wappalyzer.detectFromHTML(options, data, function (err,apps) { - - assert.equal(expect[0], apps[0]); - assert.equal(expect[1], apps[1]); - assert.equal(expect[2], apps[2]); - assert.equal(expect[3], apps[3]); - done(); - }) - - }) - }) -}) diff --git a/src/drivers/phantomjs/Dockerfile b/src/drivers/phantomjs/Dockerfile index 52a75669e..95e46592d 100644 --- a/src/drivers/phantomjs/Dockerfile +++ b/src/drivers/phantomjs/Dockerfile @@ -1,30 +1,31 @@ -FROM phusion/baseimage +FROM ubuntu:latest MAINTAINER Elbert Alias ENV DEBIAN_FRONTEND noninteractive +RUN sed -i 's/archive\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list + RUN \ apt-get update && apt-get install -y \ - bzip2 \ libfreetype6 \ libfontconfig \ + nodejs \ + npm \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* -WORKDIR /usr/local +RUN ln -s $(which nodejs) /usr/bin/node -# PhantomJS -RUN \ - mkdir phantomjs && \ - curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2 | tar xvjC phantomjs --strip 1 +RUN mkdir /usr/local/wappalyzer -# Wappalyzer -RUN \ - mkdir wappalyzer && \ - curl -sSL https://github.com/AliasIO/Wappalyzer/archive/master.tar.gz | tar xzC wappalyzer --strip 1 +WORKDIR /usr/local/wappalyzer -RUN wappalyzer/bin/wappalyzer-links wappalyzer +ADD apps.json . +ADD driver.js . +ADD index.js . +ADD package.json . +ADD wappalyzer.js . -WORKDIR wappalyzer/src/drivers/phantomjs +RUN npm i -ENTRYPOINT ["/usr/local/phantomjs/bin/phantomjs", "--load-images=false", "--ignore-ssl-errors=yes", "--ssl-protocol=any", "driver.js"] +ENTRYPOINT ["node", "index.js"] diff --git a/src/drivers/phantomjs/README.md b/src/drivers/phantomjs/README.md new file mode 100644 index 000000000..7e1dd105c --- /dev/null +++ b/src/drivers/phantomjs/README.md @@ -0,0 +1,57 @@ +# Wappalyzer + +[Wappalyzer](https://wappalyzer.com/) is a +[cross-platform](https://github.com/AliasIO/Wappalyzer/wiki/Drivers) utility that uncovers the +technologies used on websites. It detects +[content management systems](https://wappalyzer.com/categories/cms), +[eCommerce platforms](https://wappalyzer.com/categories/ecommerce), +[web servers](https://wappalyzer.com/categories/web-servers), +[JavaScript frameworks](https://wappalyzer.com/categories/javascript-frameworks), +[analytics tools](https://wappalyzer.com/categories/analytics) and +[many more](https://wappalyzer.com/applications). + + +## Installation + +```shell +$ npm i wappalyzer +``` + + +## Run from the command line + +```shell +$ node index.js https://wappalyzer.com --quiet +``` + + +## Run from a script + +```javascript +const wappalyzer = require('@wappalyzer/wappalyzer'); + +wappalyzer.run(['https://wappalyzer.com', '--quiet'], function(stdout, stderr) { + if ( stdout ) { + process.stdout.write(stdout); + } + + if ( stderr ) { + process.stderr.write(stderr); + } +}); +``` + + +## Arguments + +**-v, --verbose** + +Display debug output. + +**-q, --quiet** + +Suppress errors. + +**--resource-timeout=ms** + +Abort the connection after 'ms' milliseconds. diff --git a/src/drivers/phantomjs/driver.js b/src/drivers/phantomjs/driver.js index db7f2e52f..a11c07da8 100644 --- a/src/drivers/phantomjs/driver.js +++ b/src/drivers/phantomjs/driver.js @@ -163,6 +163,10 @@ } }; + page.onResourceError = function(resourceError) { + wappalyzer.log(resourceError.errorString, 'error'); + }; + page.open(url, function(status) { var html, environmentVars; diff --git a/src/drivers/phantomjs/index.js b/src/drivers/phantomjs/index.js new file mode 100644 index 000000000..3b090b191 --- /dev/null +++ b/src/drivers/phantomjs/index.js @@ -0,0 +1,32 @@ +'use strict'; + +const + path = require('path'), + spawn = require('child_process').spawn, + phantomjs = require('phantomjs-prebuilt'); + +exports.run = function(args, callback) { + args.push.apply(['--web-security=no', '--load-images=false', '--ignore-ssl-errors=yes', '--ssl-protocol=any']); + + var driver = phantomjs.exec('driver.js', args); + + driver.stdout.on('data', (data) => { + callback(`${data}`, null); + }); + + driver.stderr.on('data', (data) => { + callback(null, `${data}`); + }); +} + +if ( !module.parent ) { + exports.run(process.argv.slice(2), function(stdout, stderr) { + if ( stdout ) { + process.stdout.write(stdout); + } + + if ( stderr ) { + process.stderr.write(stderr); + } + }); +} diff --git a/src/drivers/phantomjs/package.json b/src/drivers/phantomjs/package.json new file mode 100644 index 000000000..5544576af --- /dev/null +++ b/src/drivers/phantomjs/package.json @@ -0,0 +1,21 @@ +{ + "name": "wappalyzer", + "description": "Uncovers the technologies used on websites", + "homepage": "https://github.com/AliasIO/Wappalyzer", + "version": "3.0.3", + "author": "Elbert Alias", + "license": "GPL-3.0", + "repository": { + "type": "git", + "url": "https://github.com/AliasIO/Wappalyzer" + }, + "main": "index.js", + "files": [ + "apps.json", + "driver.js", + "wappalyzer.js" + ], + "dependencies": { + "phantomjs-prebuilt": "*" + } +} diff --git a/src/drivers/php/.gitignore b/src/drivers/php/.gitignore deleted file mode 100644 index 2d6f40c2f..000000000 --- a/src/drivers/php/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -js/wappalyzer.js -apps.json diff --git a/src/drivers/php/Wappalyzer.php b/src/drivers/php/Wappalyzer.php deleted file mode 100644 index 2fcdd93d3..000000000 --- a/src/drivers/php/Wappalyzer.php +++ /dev/null @@ -1,193 +0,0 @@ -v8 = new V8Js(); - - $this->url = $url; - - $json = json_decode(file_get_contents('apps.json')); - - $this->apps = $json->apps; - $this->categories = $json->categories; - } - - /** - * Analyze a website - * @param string $url - */ - public function analyze() - { - try { - $this->load(array('wappalyzer.js', 'driver.js')); - - $result = $this->curl($this->url); - - //$env = $this->executeScripts($result); - - $json = json_encode(array( - 'host' => $result->host, - 'url' => $result->url, - 'html' => $result->html, - 'headers' => $result->headers, - //'env' => $env - )); - - $result = $this->v8->executeString(' - w.apps = ' . json_encode($this->apps) . '; - w.categories = ' . json_encode($this->categories) . '; - w.driver.debug = ' . ( $this->debug ? 'true' : 'false' ) . '; - w.driver.data = ' . $json . '; - - w.driver.init(); - '); - - return json_decode($result); - } catch ( V8JsException $e ) { - throw new WappalyzerException('JavaScript error: ' . $e->getMessage()); - } - } - - /** - * Load and execute one or more JavaScript files - * @param mixed $files - */ - protected function load($files) - { - if ( !is_array($files) ) { - $files = array($files); - } - - foreach ( $files as $file ) { - $this->v8->executeString(file_get_contents('js/' . $file), $file); - } - } - - /** - * Perform a cURL request - * @param string $url - */ - protected function curl($url) - { - if ( $this->debug ) { - echo 'cURL request: ' . $url . "\n"; - } - - $ch = curl_init($url); - - curl_setopt_array($ch, array( - CURLOPT_SSL_VERIFYPEER => false, - CURLOPT_HEADER => true, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_FOLLOWLOCATION => $this->curlFollowLocation, - CURLOPT_MAXREDIRS => $this->curlMaxRedirects, - CURLOPT_TIMEOUT => $this->curlTimeout, - CURLOPT_USERAGENT => $this->curlUserAgent - )); - - $response = curl_exec($ch); - - if ( curl_errno($ch) !== 0 ) { - throw new WappalyzerException('cURL error: ' . curl_error($ch)); - } - - $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - - if ( $httpCode != 200 ) { - throw new WappalyzerException('cURL request returned HTTP code ' . $httpCode); - } - - $result = new stdClass(); - - $result->url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - - $result->host = parse_url($result->url, PHP_URL_HOST); - - $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); - - $result->html = substr($response, $headerSize); - - $result->html = mb_check_encoding($result->html, 'UTF-8') ? $result->html : utf8_encode($result->html); - - $headers = trim(substr($response, 0, $headerSize)); - $headers = preg_split('/^\s*$/m', $headers); - $headers = end($headers); - $lines = array_slice(explode("\n", $headers), 1); - - foreach ( $lines as $line ) { - if ( strpos(trim($line), ': ') !== false ) { - list($key, $value) = explode(': ', trim($line, "\r")); - - $result->headers[strtolower($key)] = $value; - } - } - - return $result; - } - - /** - * - */ - protected function executeScripts($page) - { - preg_match_all('/]+src=("|\')(.+?)\1/i', $page->html, $matches); - - if ( $urls = $matches[2] ) { - foreach ( $urls as $url ) { - if ( !preg_match('/^https?:\/\//', $url) ) { - $url = $page->url . '/' . $url; - } - - try { - $result = $this->curl($url); - } catch ( WappalyzerException $e ) { - if ( $this->debug ) echo $e->getMessage() . "\n"; - - continue; - } - - $v8 = new V8Js(); - - try { - $v8->executeString(' - var - document = {}, - window = { document: document } - ; - '); - - $v8->executeString($result->html, $url); - - $result = $v8->executeString('Object.keys(window);'); - - var_dump($result); - } catch ( V8JsException $e ) { - if ( $this->debug ) echo "\n", print_r($e->getJsTrace()), "\n\n"; - - continue; - } - } - } - } -} diff --git a/src/drivers/php/WappalyzerException.php b/src/drivers/php/WappalyzerException.php deleted file mode 100644 index 89b6a71bc..000000000 --- a/src/drivers/php/WappalyzerException.php +++ /dev/null @@ -1,4 +0,0 @@ -\n"; - - exit(0); - } - - $wappalyzer = new Wappalyzer($url); - - $detectedApps = $wappalyzer->analyze(); - - if ( $detectedApps ) { - foreach ( $detectedApps as $detectedApp => $data ) { - echo $detectedApp . ', ' . $data->version . ', ', $data->confidence . '%, ', implode(', ', $data->categories) . "\n"; - } - } else { - echo "No applications detected\n"; - } - - exit(0); -} catch ( Exception $e ) { - echo $e->getMessage() . "\n"; - - exit(1); -} diff --git a/src/drivers/php/js/driver.js b/src/drivers/php/js/driver.js deleted file mode 100644 index f6e6994bd..000000000 --- a/src/drivers/php/js/driver.js +++ /dev/null @@ -1,46 +0,0 @@ -var w = wappalyzer; - -w.driver = { - debug: false, - data: {}, - timeout: 5000, - - /** - * Log messages to console - */ - log: function(args) { - if ( w.driver.debug ) { print(args.type + ': ' + args.message + "\n"); } - }, - - /** - * Initialize - */ - init: function() { - var app, apps = {}; - - w.analyze(w.driver.data.host, w.driver.data.url, { - html: w.driver.data.html, - headers: w.driver.data.headers - }); - - for ( app in w.detected[w.driver.data.url] ) { - apps[app] = { - categories: [], - confidence: w.detected[w.driver.data.url][app].confidenceTotal, - version: w.detected[w.driver.data.url][app].version - }; - - w.apps[app].cats.forEach(function(cat) { - apps[app].categories.push(w.categories[cat]); - }); - }; - - return JSON.stringify(apps); - }, - - /** - * Dummy - */ - displayApps: function() { - } -}; diff --git a/src/drivers/python/.gitignore b/src/drivers/python/.gitignore deleted file mode 100644 index 2d6f40c2f..000000000 --- a/src/drivers/python/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -js/wappalyzer.js -apps.json diff --git a/src/drivers/python/js/.gitkeep b/src/drivers/python/js/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/drivers/python/wappalyzer.py b/src/drivers/python/wappalyzer.py deleted file mode 100755 index a70f75f7f..000000000 --- a/src/drivers/python/wappalyzer.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os -import sys -import PyV8 -import requests - -from requests.packages.urllib3.exceptions import InsecureRequestWarning -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) - -from urlparse import urlparse - -try: - import json -except ImportError: - import simplejson as json - - -class Wappalyzer(object): - - def __init__(self, url): - self.file_dir = os.path.dirname(__file__) - - f = open(os.path.join(self.file_dir, 'apps.json')) - data = json.loads(f.read()) - f.close() - - self.categories = data['categories'] - self.apps = data['apps'] - self.url = url - - def analyze(self): - ctxt = PyV8.JSContext() - ctxt.enter() - - f1 = open(os.path.join(self.file_dir, 'js/wappalyzer.js')) - f2 = open(os.path.join(self.file_dir, '../php/js/driver.js')) - ctxt.eval(f1.read()) - ctxt.eval(f2.read()) - f1.close() - f2.close() - - host = urlparse(self.url).hostname - response = requests.get(self.url, verify=False) - html = response.text - headers = dict(response.headers) - - data = {'host': host, 'url': self.url, 'html': html, 'headers': headers} - apps = json.dumps(self.apps) - categories = json.dumps(self.categories) - return ctxt.eval("w.apps = %s; w.categories = %s; w.driver.data = %s; w.driver.init();" % (apps, categories, json.dumps(data))) - -if __name__ == '__main__': - try: - w = Wappalyzer(sys.argv[1]) - print w.analyze() - except IndexError: - print ('Usage: python %s ' % sys.argv[0]) diff --git a/src/drivers/ruby/.gitignore b/src/drivers/ruby/.gitignore deleted file mode 100644 index 2d6f40c2f..000000000 --- a/src/drivers/ruby/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -js/wappalyzer.js -apps.json diff --git a/src/drivers/ruby/js/driver.js b/src/drivers/ruby/js/driver.js deleted file mode 100644 index f6e6994bd..000000000 --- a/src/drivers/ruby/js/driver.js +++ /dev/null @@ -1,46 +0,0 @@ -var w = wappalyzer; - -w.driver = { - debug: false, - data: {}, - timeout: 5000, - - /** - * Log messages to console - */ - log: function(args) { - if ( w.driver.debug ) { print(args.type + ': ' + args.message + "\n"); } - }, - - /** - * Initialize - */ - init: function() { - var app, apps = {}; - - w.analyze(w.driver.data.host, w.driver.data.url, { - html: w.driver.data.html, - headers: w.driver.data.headers - }); - - for ( app in w.detected[w.driver.data.url] ) { - apps[app] = { - categories: [], - confidence: w.detected[w.driver.data.url][app].confidenceTotal, - version: w.detected[w.driver.data.url][app].version - }; - - w.apps[app].cats.forEach(function(cat) { - apps[app].categories.push(w.categories[cat]); - }); - }; - - return JSON.stringify(apps); - }, - - /** - * Dummy - */ - displayApps: function() { - } -}; diff --git a/src/drivers/ruby/wappalyzer.rb b/src/drivers/ruby/wappalyzer.rb deleted file mode 100755 index 130c21006..000000000 --- a/src/drivers/ruby/wappalyzer.rb +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env ruby - -require 'net/http' -require 'v8' -require 'json' -require 'openssl' - -OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE -Encoding.default_external = Encoding::UTF_8 - -class Wappalyzer - def initialize - @realdir = File.dirname(File.realpath(__FILE__)) - file = File.join(@realdir, 'apps.json') - @json = JSON.parse(IO.read(file)) - @categories, @apps = @json['categories'], @json['apps'] - end - - def analyze(url) - uri, body, headers = URI(url), nil, {} - Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :open_timeout => 5) do |http| - resp = http.get(uri.request_uri) - resp.each_header{|k,v| headers[k.downcase] = v} - body = resp.body.encode('UTF-8', :invalid => :replace, :undef => :replace) - end - - cxt = V8::Context.new - cxt.load File.join(@realdir, 'js', 'wappalyzer.js') - cxt.load File.join(@realdir, 'js', 'driver.js') - data = {'host' => uri.hostname, 'url' => url, 'html' => body, 'headers' => headers} - output = cxt.eval("w.apps = #{@apps.to_json}; w.categories = #{@categories.to_json}; w.driver.data = #{data.to_json}; w.driver.init();") - JSON.load(output) - end -end - -if $0 == __FILE__ - url = ARGV[0] - if url - puts JSON.pretty_generate(Wappalyzer.new.analyze(ARGV[0])) - else - puts "Usage: #{__FILE__} http://example.com" - end -end From 3b20a88d653e97602a809a7760157f6e7ec44769 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sun, 18 Dec 2016 16:52:36 +1100 Subject: [PATCH 077/236] Removed deleted drivers from wappalyzer links script --- bin/wappalyzer-links | 23 +++-------------------- src/drivers/phantomjs/README.md | 2 +- src/drivers/phantomjs/package.json | 2 +- 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/bin/wappalyzer-links b/bin/wappalyzer-links index b3184ebe9..78425cd9d 100755 --- a/bin/wappalyzer-links +++ b/bin/wappalyzer-links @@ -27,6 +27,9 @@ path="$path/src" echo "Creating hard links..." +ln -f $path/wappalyzer.js $path/drivers/phantomjs +ln -f $path/apps.json $path/drivers/phantomjs + ln -f $path/wappalyzer.js $path/drivers/firefox/lib ln -f $path/apps.json $path/drivers/firefox/data ln -f $path/icons/*.png $path/drivers/firefox/data/images/icons @@ -47,26 +50,6 @@ ln -f $path/wappalyzer.js $path/drivers/bookmarklet/js ln -f $path/icons/*.png $path/drivers/bookmarklet/images/icons ln -f $path/icons/*.svg $path/drivers/bookmarklet/images/icons -ln -f $path/wappalyzer.js $path/drivers/html/js -ln -f $path/apps.json $path/drivers/html -ln -f $path/icons/*.png $path/drivers/html/images/icons -ln -f $path/icons/*.svg $path/drivers/html/images/icons - -ln -f $path/wappalyzer.js $path/drivers/php/js -ln -f $path/apps.json $path/drivers/php - -ln -f $path/wappalyzer.js $path/drivers/python/js -ln -f $path/apps.json $path/drivers/python - -ln -f $path/wappalyzer.js $path/drivers/phantomjs -ln -f $path/apps.json $path/drivers/phantomjs - -ln -f $path/wappalyzer.js $path/drivers/ruby/js -ln -f $path/apps.json $path/drivers/ruby - -ln -f $path/wappalyzer.js $path/drivers/npm -ln -f $path/apps.json $path/drivers/npm - echo "OK" exit 0 diff --git a/src/drivers/phantomjs/README.md b/src/drivers/phantomjs/README.md index 7e1dd105c..5dc340538 100644 --- a/src/drivers/phantomjs/README.md +++ b/src/drivers/phantomjs/README.md @@ -28,7 +28,7 @@ $ node index.js https://wappalyzer.com --quiet ## Run from a script ```javascript -const wappalyzer = require('@wappalyzer/wappalyzer'); +const wappalyzer = require('wappalyzer'); wappalyzer.run(['https://wappalyzer.com', '--quiet'], function(stdout, stderr) { if ( stdout ) { diff --git a/src/drivers/phantomjs/package.json b/src/drivers/phantomjs/package.json index 5544576af..990bcf4bf 100644 --- a/src/drivers/phantomjs/package.json +++ b/src/drivers/phantomjs/package.json @@ -2,7 +2,7 @@ "name": "wappalyzer", "description": "Uncovers the technologies used on websites", "homepage": "https://github.com/AliasIO/Wappalyzer", - "version": "3.0.3", + "version": "3.0.5", "author": "Elbert Alias", "license": "GPL-3.0", "repository": { From 560e4e7693e16af7e1f1f9f2abe2daac7bf6480c Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Sun, 18 Dec 2016 17:05:29 +1100 Subject: [PATCH 078/236] Correctly pass arguments in PhantomJS driver --- src/drivers/phantomjs/index.js | 4 ++-- src/drivers/phantomjs/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/drivers/phantomjs/index.js b/src/drivers/phantomjs/index.js index 3b090b191..823a33fad 100644 --- a/src/drivers/phantomjs/index.js +++ b/src/drivers/phantomjs/index.js @@ -6,9 +6,9 @@ const phantomjs = require('phantomjs-prebuilt'); exports.run = function(args, callback) { - args.push.apply(['--web-security=no', '--load-images=false', '--ignore-ssl-errors=yes', '--ssl-protocol=any']); + args.unshift.apply(args, ['driver.js', '--web-security=false', '--load-images=false', '--ignore-ssl-errors=yes', '--ssl-protocol=any']); - var driver = phantomjs.exec('driver.js', args); + var driver = phantomjs.exec.apply(this, args); driver.stdout.on('data', (data) => { callback(`${data}`, null); diff --git a/src/drivers/phantomjs/package.json b/src/drivers/phantomjs/package.json index 990bcf4bf..d3201b69f 100644 --- a/src/drivers/phantomjs/package.json +++ b/src/drivers/phantomjs/package.json @@ -2,7 +2,7 @@ "name": "wappalyzer", "description": "Uncovers the technologies used on websites", "homepage": "https://github.com/AliasIO/Wappalyzer", - "version": "3.0.5", + "version": "3.0.6", "author": "Elbert Alias", "license": "GPL-3.0", "repository": { From 17154b49c813d60c7e53f4d715a31f2380258a06 Mon Sep 17 00:00:00 2001 From: Marat Dyatko Date: Tue, 20 Dec 2016 10:56:00 +0100 Subject: [PATCH 079/236] Klarna Checkout --- src/apps.json | 11 ++++++++++- src/icons/Klarna.svg | 12 ++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/icons/Klarna.svg diff --git a/src/apps.json b/src/apps.json index 38d624593..d973655aa 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3753,6 +3753,15 @@ "script": "kinetic(?:-v?([\\d.]+))?(?:\\.min)?\\.js\\;version:\\1", "website": "kineticjs.com" }, + "Klarna Checkout": { + "cats": [ + 5, + 6 + ], + "env": "^_klarnaCheckout$", + "icon": "Klarna.svg", + "website": "klarna.com" + }, "Knockout.js": { "cats": [ 12 @@ -9454,4 +9463,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} \ No newline at end of file +} diff --git a/src/icons/Klarna.svg b/src/icons/Klarna.svg new file mode 100644 index 000000000..e611627af --- /dev/null +++ b/src/icons/Klarna.svg @@ -0,0 +1,12 @@ + + + + klarna + Created with Sketch. + + + + + + + \ No newline at end of file From f31f08243771cbf9be250be24ba4940c8e06bf20 Mon Sep 17 00:00:00 2001 From: Marat Dyatko Date: Tue, 20 Dec 2016 10:59:34 +0100 Subject: [PATCH 080/236] Klarna Checkout category priorities --- src/apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps.json b/src/apps.json index d973655aa..ac1391525 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3755,8 +3755,8 @@ }, "Klarna Checkout": { "cats": [ - 5, - 6 + 6, + 5 ], "env": "^_klarnaCheckout$", "icon": "Klarna.svg", From 0a67722f134510ccd3a1d98cc40e4ee92ff9df4e Mon Sep 17 00:00:00 2001 From: Marat Dyatko Date: Tue, 20 Dec 2016 11:06:02 +0100 Subject: [PATCH 081/236] Klarna Checkout payment processor category --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index ac1391525..50a836912 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3755,6 +3755,7 @@ }, "Klarna Checkout": { "cats": [ + 41, 6, 5 ], From b69492ac92cdffec7a81865039247cfb8fa56674 Mon Sep 17 00:00:00 2001 From: Elbert Alias Date: Thu, 29 Dec 2016 09:58:39 +1100 Subject: [PATCH 082/236] Fix Angular Material detection --- src/apps.json | 3 +-- src/drivers/phantomjs/Dockerfile | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/apps.json b/src/apps.json index 38d624593..9f7c37288 100755 --- a/src/apps.json +++ b/src/apps.json @@ -458,7 +458,6 @@ "cats": [ 18 ], - "env": "^angular$", "icon": "Angular.svg", "implies": [ "AngularJS" @@ -9454,4 +9453,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} \ No newline at end of file +} diff --git a/src/drivers/phantomjs/Dockerfile b/src/drivers/phantomjs/Dockerfile index 95e46592d..deb9d1653 100644 --- a/src/drivers/phantomjs/Dockerfile +++ b/src/drivers/phantomjs/Dockerfile @@ -4,6 +4,8 @@ MAINTAINER Elbert Alias ENV DEBIAN_FRONTEND noninteractive +ENV WAPPALYZER_ROOT /usr/local/wappalyzer + RUN sed -i 's/archive\.ubuntu\.com/au.archive.ubuntu.com/g' /etc/apt/sources.list RUN \ @@ -16,9 +18,9 @@ RUN \ RUN ln -s $(which nodejs) /usr/bin/node -RUN mkdir /usr/local/wappalyzer +RUN mkdir "$WAPPALYZER_ROOT" -WORKDIR /usr/local/wappalyzer +WORKDIR "$WAPPALYZER_ROOT" ADD apps.json . ADD driver.js . From 64e3f7e8998f298e50dedc05e413e2d1f6b2565b Mon Sep 17 00:00:00 2001 From: manuwell Date: Tue, 27 Dec 2016 10:41:29 -0200 Subject: [PATCH 083/236] Adds new application Rakuten DBCore to apps. --- src/apps.json | 11 +++++++++++ src/icons/Rakuten DBCore.png | Bin 0 -> 543 bytes 2 files changed, 11 insertions(+) create mode 100644 src/icons/Rakuten DBCore.png diff --git a/src/apps.json b/src/apps.json index 50a836912..bc17a7412 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5893,6 +5893,17 @@ "icon": "default.png", "website": "???" }, + "Rakuten DBCore": { + "cats": [ + 6 + ], + "meta": { + "generator": "Rakuten DBCore", + "generator:site": "http://ecservice.rakuten.com.br" + }, + "icon": "Rakuten DBCore.png", + "website": "ecservice.rakuten.com.br" + }, "RBS Change": { "cats": [ 1, diff --git a/src/icons/Rakuten DBCore.png b/src/icons/Rakuten DBCore.png new file mode 100644 index 0000000000000000000000000000000000000000..e048710d9feb07f0dd1ca8ff71bebc965a401091 GIT binary patch literal 543 zcmV+)0^t3LP)@w>JNx+cJ@PCGwW)Tl{mE- zvF%J3lQr+&H&3nRt)6qzCKAsZ~**xtJlf7-Hw4s@&HsJ0El6sfEu3v z%?}`f24MH>dDHElnJ&kz-;aR^E(2tZ0)S?HFppj;g#pMe11O>ZgM5CG8{~2r00r^? z@c^IA<|6l$NZ|Vb05qcj*B%dfE*4jEH(oCWK+_F?iPvfsYV-l9W&pf58sx&^Ku<^l zO~{XzQVC@aQcM|!Jy~9P{t$^kjlN+R5E%t*3ZBQerjeGFWsp=v( zZnw9s2`XOev_rW0fnN0rrp4bgzw( Date: Thu, 5 Jan 2017 06:41:58 -0300 Subject: [PATCH 084/236] Aurelia JS framework detection --- src/apps.json | 15 ++++++++++ src/icons/Aurelia.svg | 64 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 src/icons/Aurelia.svg diff --git a/src/apps.json b/src/apps.json index 4b06a262f..2136356d2 100755 --- a/src/apps.json +++ b/src/apps.json @@ -709,6 +709,21 @@ ], "website": "www.atlassian.com/software/jira/overview/" }, + "Aurelia": { + "cats": [ + 12 + ], + "icon": "Aurelia.svg", + "html": [ + "aurelia-app=[^>]", + "data-main=[^>]aurelia-bootstrapper", + "au-target-id=[^>]\\d" + ], + "script": [ + "aurelia(?:\\.min)?\\.js" + ], + "website": "aurelia.io" + }, "Avangate": { "cats": [ 6 diff --git a/src/icons/Aurelia.svg b/src/icons/Aurelia.svg new file mode 100644 index 000000000..3bf9ad8fd --- /dev/null +++ b/src/icons/Aurelia.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From afb48e3160b02626aaf7a659005fa0a8dff80f42 Mon Sep 17 00:00:00 2001 From: Gerard Nguyen Date: Mon, 9 Jan 2017 23:14:23 +0800 Subject: [PATCH 085/236] Add Neto detection --- src/icons/Neto.svg | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/icons/Neto.svg diff --git a/src/icons/Neto.svg b/src/icons/Neto.svg new file mode 100644 index 000000000..a4fabcbe3 --- /dev/null +++ b/src/icons/Neto.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + From 578267d0a61f03d714181a569e95c57fd065dfeb Mon Sep 17 00:00:00 2001 From: Gerard Nguyen Date: Tue, 10 Jan 2017 09:22:07 +0800 Subject: [PATCH 086/236] fix indentation from space to tab --- src/apps.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..2558b5ad4 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4961,6 +4961,15 @@ "script": "netmonitor\\.fi/nmtracker\\.js", "website": "netmonitor.fi/en" }, + "Neto": { + "cats": [ + 6 + ], + "env": "^NETO$", + "script": "jquery\\.neto.*\\.js", + "icon": "Neto.svg", + "website": "www.neto.com.au" + }, "Netsuite": { "cats": [ 6 From 5c45e0858ec4f7b373da3eb6971aa9b0da66fa7d Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 13 Jan 2017 13:27:26 +0100 Subject: [PATCH 087/236] Improve a bit prestashop detection --- src/apps.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..976560b3f 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5738,7 +5738,10 @@ "^priceDisplayMethod$\\;confidence:25", "^priceDisplayPrecision$\\;confidence:25" ], - "html": "Powered by ]+>PrestaShop", + "html": [ + "Powered by ]+>PrestaShop", + "" + ], "icon": "PrestaShop.png", "implies": "PHP", "meta": { From a45b4245937262bbede54035e37b712af0c90cc2 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sat, 14 Jan 2017 14:49:19 +0100 Subject: [PATCH 088/236] Add ikiwiki detection --- src/apps.json | 11 +++++++++++ src/icons/ikiwiki.png | Bin 0 -> 986 bytes 2 files changed, 11 insertions(+) create mode 100644 src/icons/ikiwiki.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..1fc3e473c 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3265,6 +3265,17 @@ "implies": "Windows Server", "website": "www.iis.net" }, + "ikiwiki": { + "cats": [ + 8 + ], + "html": [ + "4P)^&N=`8IhSjY zTqc+Gt%uZglyS2@b~-`PX-%!m8OgO6u%@uCD7sxRfD!D*=9s^L)3{tQ6eGABTd|Hg zoXq44v1Axy7{wwk;dczAp}ZH*v%Z9fb zTzbIv6>i!}BcT{zbw2UQa%A}+_FyFrSi)Q;Z&Y*73-v28Pi~;rU}5ouxt-@M?@1HB zJ#VErYGy4lGZ3hlEcg(|-(OmXfCZCO%cl5@JMsxo?Rhck}IF*yCEIaTv-pyq@N=T}T zl8y$fM)rRfY}S->;r2fw4+gOdj|86AyFj-UC719ECR&TpDZGWr78st4m>&!Mu9*L; zL|nBVP%#xu`5yx=;;T%4w#4&ECSS#wTy`iJ@0sBJk%(<%d1aZ$L?-{O)#`yD2<=!g zlTU{y-iTtdH#mNOiH564t$9z{Ci#|nV841)!CvKRlBX3H7ZHwIBm1B3u~_xg5zUte znY_ql^?=?!JR7}(fZtT9B#&%_0qx*)7hVqny1Avud=L;jfcrPXfOfJe`i0$B$&Fcj zfkP3F`F=uB6}x}O*Oaq(2M2?SH}%`#rd@iyI&KN9m;1%9@p&enDRnr>Mj22(Xj{B= zA9e;)euOXa=k-8A+J=~(jLVy^Ka$ChcPU==mWOoIx8}f5$<^%)8t%qyrE_Xk^l7x< z^_ZM2bv@0_XS@W>iKrKCxxMtti566J)TekU+);~6FZYEPaIi!$(=BDXwYrU#_DxmM zC!KyOk!13sgTDN~_kZhZ!KRH)=cHYVO%+|y=NbL{e{8(`1A8a}?3zJX8UO$Q07*qo IM6N<$f-T$40{{R3 literal 0 HcmV?d00001 From 52ab9bffb70e4482df445d4a695ac892f21d2711 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 16 Jan 2017 12:51:25 +0100 Subject: [PATCH 089/236] Add adminer detection --- src/apps.json | 11 +++++++++++ src/icons/adminer.png | Bin 0 -> 1127 bytes 2 files changed, 11 insertions(+) create mode 100644 src/icons/adminer.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..aa75f8eda 100755 --- a/src/apps.json +++ b/src/apps.json @@ -78,6 +78,17 @@ "icon": "ebis.png", "website": "www.ebis.ne.jp" }, + "Adminer": { + "cats": [ + 3 + ], + "html": [ + "Adminer ([\\d.]+)\\;version:\\1", + "onclick=\"bodyClick\\(event\\);\" onload=\"verifyVersion\\('([\\d.]+)'\\);\">\\;version:\\1" + ], + "icon": "adminer.png", + "website": "www.adminer.org" + }, "AMPcms": { "cats": [ 1 diff --git a/src/icons/adminer.png b/src/icons/adminer.png new file mode 100644 index 0000000000000000000000000000000000000000..231efe4d6a36e0fac125f5aa998c65a376eda728 GIT binary patch literal 1127 zcmeHE?@JQ_7`|odnp%>jQD~uARAeQJfud!nn{A53kknx^u32_S*|A_9{ur0pI!4TM z!8$J(htj%?#wjJoKIpk(9wy@u(^E>9L@kjtr8uJVujorJJnyd$@B2LO`=Gi?o21#V z0RSMWLI++_;-M|5V-ye4jvxTU0M!O#SzZka*%@XuB0F%*%cCwv-nO0g^Trk;@->RN z8EGLx^b1HAErcbLjiyH=)WaLhI5!!^JUr}RxS)vp1jNP3<)Fz*5Izz2@}yrxoGj|% zU^~r*q8P9$w#A$2~0B&mj($53kb! z38#430+E9v>gJ#}(%4F3Zcd&Q5C@G?g294gl){1ILQ%xco2)c3DB}GBIV_=07Vct< z%>-!1*@^9rbom3QxjRf-o)7BN5aiaN#KIV7ZVYN<>_| zTw^p@N!%-tehG1MsEdc~3{J6-jb;K7gEGGXH?@*@zam6}yI46lPyQp5K8~MO_(xrxGajj^EQ|l7N>0elD%qUAsIaD*9q-bw=mBcc z4-~CNA19<{d};13EiW&0ZeB>7{ZMH2ne{;aMDqLCr#T6+mAzEpdSm;V3rIMAXENha zT1N4~t9>`-4_L#!#XGBNKb`@yp|G}5E#?Dl^}o{WFV(u`#kZ@wI%a8~C2p$NR=Lz( zu$D8k0Z#vDshu&MYU-Fe2I(_( Date: Wed, 18 Jan 2017 14:29:09 +0100 Subject: [PATCH 090/236] Spip implies PHP --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..f0d094f2e 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6296,6 +6296,7 @@ "X-Spip-Cache": "" }, "icon": "SPIP.png", + "implies": "PHP", "meta": { "generator": "(?:^|\\s)SPIP(?:\\s([\\d.]+(?:\\s\\[\\d+\\])?))?\\;version:\\1" }, From 3267f1a42bf061cf9f2d1c9c1770f7f5285e7843 Mon Sep 17 00:00:00 2001 From: Jonas Felix Date: Wed, 18 Jan 2017 22:17:44 +0100 Subject: [PATCH 091/236] detection for new wix.com behavior --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..6971af835 100755 --- a/src/apps.json +++ b/src/apps.json @@ -8065,6 +8065,7 @@ "Set-Cookie": "Domain=\\.wix\\.com", "X-Wix-Dispatcher-Cache-Hit": "" }, + "html": "X-Wix-Renderer-Server", "icon": "Wix.png", "script": "static\\.wixstatic\\.com", "website": "wix.com" From 99b6bc0e8a69842ee8d1a9819cd02e1aa7ed9631 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 19 Jan 2017 10:39:21 +0100 Subject: [PATCH 092/236] Relax a bit a regexp --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 976560b3f..424d73e5c 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5740,7 +5740,7 @@ ], "html": [ "Powered by ]+>PrestaShop", - "" + "" ], "icon": "PrestaShop.png", "implies": "PHP", From de3b0a60b73aef454562d5c2702b39d05a732cde Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 23 Jan 2017 12:58:58 +0100 Subject: [PATCH 093/236] aircall add --- src/apps.json | 8 ++++++++ src/icons/Aircall.png | Bin 0 -> 1463 bytes 2 files changed, 8 insertions(+) create mode 100644 src/icons/Aircall.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..24b6ed7c7 100755 --- a/src/apps.json +++ b/src/apps.json @@ -344,6 +344,14 @@ "script": "shop-static\\.afterbuy\\.de", "website": "www.afterbuy.de" }, + "Aircall": { + "cats": [ + 52 + ], + "icon": "aircall.png", + "script": "^https?://cdn\\.aircall\\.io/", + "website": "aircall.io" + }, "Airee": { "cats": [ 31 diff --git a/src/icons/Aircall.png b/src/icons/Aircall.png new file mode 100644 index 0000000000000000000000000000000000000000..de76b397ac7321520408e261b80698aa0f628d6c GIT binary patch literal 1463 zcmV;o1xWgdP)6m(tULw-L~7pmO_zAeNl-d#s`6@M9gu{Wecfp%hE2Bob2w|nKN_d z%zQILBuadrB~|n@BCIAU#0KOre-jppt?Skx>y^UX9?nJ4L^6qWQ<;L7ZjuN1zimSz zvPDFs3<}eVf0z6D>#+1a+mOES{vUiFy_@lnOBbY^570XlI8Yt7A|)&!F~A(sUw^H$W2Ij(AFBz)sO#zkfj^Ca41S}q3JVQpAK zb=Mr1RzIJcHK#zv@r*1sL|v&Hb%6W$14NQY9T5+0{LX=x7IHjYPMh76T14{HPdHKG zfwgZDNv6t{rv+Pjmz1ZUYmc7;I6vXtH zcf}Jd-cx9=ow6fGR6(qp{HkF8nv{9tii_Ioh{{L^(y!b@{u2 zm*#q@T?7;mKZZ=Yhg=hn8I(q*iw^b#)n#m5a5i|&-&j%z~S4 zR)Iqkk!&`V{<;%b6`4#$TZ4aRLMm`lif+R(J=M<*Ci<)4km@L_qkV_X3^XO3wB zY1JGtPzh*=#1MOe0OmJw^T7J3XYX53n#&H?eeXc>5I+VfB=9~ zV}KC>PLG$Gh=$gESx^)29MJWGrUM)MGQplEW$la=aW2beL;_TOMQO%O26#=$I@oKV~1odM9_4V4#>t|}v8I8~7f0dW(zUdAsfmL-Je9BL!tmmK@V zO=-;)?Z%UD7njF1-b?LwKs}+ljW6Dda#v-x3fQbcER-~_&wHT8)lcVv%Xfk?hX5x& z75bP4=@OqAkGJIL`Vu>&vu#+oUe;ckKI2cS&CpOk=|m8rUg9B<7^KhEUeJ)Kwd%R} z80|NAZTYDVt=m`dezKL9eo%a5%hX2b1K1<8GClfw_EK=+W$X!U#CkAU%C(4itp2hS zS=x` z8Uw^>aQc;VQ#)ywX%Uf3f)q7^F}vYiJ8)AOGXj_MDOhb#*cu^-D<0&`e*v{t)o-j= R2GIZj002ovPDHLkV1nPfxTgRB literal 0 HcmV?d00001 From bde6b2161b1094014f5ab8b04bae5dc3bdd5dacc Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 23 Jan 2017 13:00:10 +0100 Subject: [PATCH 094/236] aircall add ico --- src/icons/{Aircall.png => aircall.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename src/icons/{Aircall.png => aircall.png} (100%) diff --git a/src/icons/Aircall.png b/src/icons/aircall.png similarity index 100% rename from src/icons/Aircall.png rename to src/icons/aircall.png From 3b7e7f11ac543e98f09c7fee0c07cd7b3ae98ae6 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 23 Jan 2017 13:52:57 +0100 Subject: [PATCH 095/236] Zendesk Chat --- src/apps.json | 8 ++++++++ src/icons/Zendesk Chat.png | Bin 0 -> 429 bytes 2 files changed, 8 insertions(+) create mode 100644 src/icons/Zendesk Chat.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..ed05e0312 100755 --- a/src/apps.json +++ b/src/apps.json @@ -8476,6 +8476,14 @@ "icon": "Zend.png", "website": "zend.com" }, + "Zendesk Chat": { + "cats": [ + 52 + ], + "script": "v2\\.zopim\\.com", + "icon": "Zendesk Chat.png", + "website": "zopim.com" + }, "Zepto": { "cats": [ 12 diff --git a/src/icons/Zendesk Chat.png b/src/icons/Zendesk Chat.png new file mode 100644 index 0000000000000000000000000000000000000000..37773ca313c481e989fc16bafac28f8c75984d99 GIT binary patch literal 429 zcmV;e0aE^nP)P<9~UW9Wk*OR+FuE5U%6!?Wm}5JkhxfPxY~=kO8qs>G>nWYx0O( zf&p`0h+;%u^91+{x)Cdm0p%1}^&|R)dQw4|5o^qVjdV15#JYi>rmM*#O6VqNx9i+5 XMHmh#INJw500000NkvXXu0mjfwav9t literal 0 HcmV?d00001 From 1055e2ca0034f3a4c46ccd37c5da7360a74f249b Mon Sep 17 00:00:00 2001 From: Dmitry Krekota Date: Tue, 24 Jan 2017 22:54:02 +0200 Subject: [PATCH 096/236] Added environment for Angular Material --- src/apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..fbe7201e2 100755 --- a/src/apps.json +++ b/src/apps.json @@ -458,6 +458,7 @@ "cats": [ 18 ], + "env": "^ngMaterial$", "icon": "Angular.svg", "implies": [ "AngularJS" From afe7277946bb4b6b68427848e4a68575b42b9dfe Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 25 Jan 2017 12:53:44 +0100 Subject: [PATCH 097/236] Add phabricator detection This can be tested on [freebsd's bugtracker](https://reviews.freebsd.org/) --- src/apps.json | 16 ++++++++++++++++ src/icons/Phabricator.png | Bin 0 -> 939 bytes 2 files changed, 16 insertions(+) create mode 100644 src/icons/Phabricator.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..0033143d6 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5538,6 +5538,22 @@ ], "website": "petrojs.thepetronics.com" }, + "Phabricator": { + "cats": [ + 13, + 47 + ], + "headers": { + "Set-Cookie": "phsid=" + }, + "implies": [ + "PHP" + ], + "script": "/phabricator/[a-f0-9]{8}/rsrc/js/phui/[a-z-]+\\.js$", + "html": "<[^>]+(?:class|id)=\"phabricator-", + "icon": "Phabricator.png", + "website": "phacility.com" + }, "Phaser": { "cats": [ 12 diff --git a/src/icons/Phabricator.png b/src/icons/Phabricator.png new file mode 100644 index 0000000000000000000000000000000000000000..2d72ad4d2d8fa86bdd29b27ba1db2563fd945192 GIT binary patch literal 939 zcmV;c162HpP)8|&YduVBJxpvpO>90(Yd%bDK22;sO>I6-Z9h(HKTd5wPHsO= zZ$D3NKu&EyPi{a^Zb46OK~Qc%P;Wv}Z$eRULQ!!-QgA|2aYIsYLsD@>Q*lL9az<2g zM^$r4RdPvHb4yrsOIdYGT6IiXc1>AzOX@Oj5gIsBYVQhwCZH8%ejB0j`Yj%!ncaCj&j&6C5Z+eb!dyjE? zk8yjDbA6L@ev@>6ly-oWc7c_4ftGiImUx7id4!pIgO_@PnR!p@fa0hmfL;mZ*=IsgRkgk(#TRp|F~xvzw!`p{ci~uDhqNyr{3dsjs}L zuf43azpk^vu(!gox5Bo(#kju5y~E4C!_2?L&B)Bu%+c7=)!fq7-P6|H)YskA*WT9J z-`LyX*xcaR-QwZn=jZ9`=jrU{>Fwz1?&<37>FVz3>+bCC@a^vK@A2~R@$&Zf_x$|) z{r>&_{{H{}{{R2~V8Q740005DNkl2h@W^J=~vjz{%L=Fu?B%vWp zDLGC=az3BJ4s>^=mOHjO zu(op)0A6-9RssBdq)NUw&Y>Z&I6`z23jTUKIM5AR!eGynLaZIL@oj6jgLPH6o3;p^Z@vN<>pV| zZpfYlC`RRYR{>~?X~mNw`@>7G!?SwD+5oubl>y=VMYdRTn&Q3MGCl__TS? zSKxLy7(ukOWY*Zu+(gjCw;vhLWJ^m1&zwq1iS-`=CO0-n$tj@6pABkgHmLXqobbI9)h&@iuG}5D%CgGpmaN&7fx?-Z1;X?K`QdbP z^N~k+;F$eGx%RPn<=*V|t4O=9<3(^ida!XZ?U$vxx>J$GwEu5^^EZ7B*ps-Nu~`5B N002ovPDHLkV1oMD;H>}v literal 0 HcmV?d00001 From d1714a15ec93ecf3dd0155e7165350050624ce57 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 25 Jan 2017 16:02:56 +0100 Subject: [PATCH 098/236] Add Revel detection This can be tested on the [official website](https://revel.github.io/index.html) --- src/apps.json | 11 +++++++++++ src/icons/Revel.png | Bin 0 -> 1506 bytes 2 files changed, 11 insertions(+) create mode 100644 src/icons/Revel.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..9eccd838a 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6076,6 +6076,17 @@ "script": "reveal(?:\\.min)?\\.js", "website": "lab.hakim.se/reveal-js" }, + "Revel": { + "cats": [ + 18 + ], + "headers": { + "Set-Cookie": "^REVEL_(?:FLASH|SESSION)=" + }, + "implies": "Go", + "icon": "Revel.png", + "website": "revel.github.io" + }, "Rickshaw": { "cats": [ 25 diff --git a/src/icons/Revel.png b/src/icons/Revel.png new file mode 100644 index 0000000000000000000000000000000000000000..f8e9b6ef5790e99bd54368208f02eab3cca52dcc GIT binary patch literal 1506 zcmV<81s(c{P)&LVq%O7U25Wr_ZPT(?0q{o{tGT$ z8eN)52=derqe;;a2|t4TsL+-U4KQWe(wVvUZG@oK@7ka|Sr)NTpIx6a}1f zEH5w1s;W{T5P%Ru5D^`;0Oq<{6CRI;?<<%wp{gp4kB?(?bW|)aFC(2!lcs6#csvJ6oJyr&+cxAtAV5B! zk3M(kR;yLs+}x}%_N}CFH_c zy3RwP5cB)}AR^@Rd6Y^e96x>>Gcz-wR4OH=r>7mC&nM^ec^-*GC?1bP*L7N3TjPGe zpY4`*b8}Nvt5pO7ftr-(^Lf$G&_I5_e`l>!DhbQ7crX~0KC|WmkRp+YBYQj^T)cQu zip638z--&bXKN4-A3kJ42yy4m9onYYwr$ri43(+#5G; zNK;c&uBK^hTdMD2W@bjjpCu7x>V1Y>K543(<5BhWj#GT0Kfo1Rul!{a2S5S zUos2>!C+9*Gz|b?Sr$}PMMp;ml}e?Z>)O}XS2MwxGiQ*=WVohjHBD)KeO>vw0R{lw z-Q9HJ#0ex434}r+IF17Va9tMwP_0%40HLZX%H=Zd-@otFbTwHKfir2h1ct) zXf!I`zkg4iot^M{y-26iJe$p;x3`zoa@Bnm@bu|Zbar;`SZRNMKfiYE8Wjo!K}784 z&6{p87?ie+$F^-OEG!6FmT7f$)$Z->RrZ`OwHAdCc=6&T-oAZ{cs$N#XJ@%(S-5xa z9y}fob$55OL?VH$tu1M{>nVx?S(Y(3HwW9c_ciKk7C=O3Ytwiv_L~5J3l}ah$8mTx z8fCX`-Qq1RE%5n#ZgX?lsD5uCrV&S2xHsO|iJRC@jm`Sv!6DG%jDhEDj~XZX7#y46CcFqEsqa=vnYJ-n@B(a5yYlTU$v{6fnl%x-P2KDwdX(-E20?{`lh(DT=c1uIQkj(@Z9V zrlux5e?EdhAiz(aJSn=m;t~#vgF2jPn(pA>p!iv!U;RD*7pP45FLs(q=Kufz07*qo IM6N<$f~WYyv;Y7A literal 0 HcmV?d00001 From cb44a705c044e102efdc202faac2bfd7faf16433 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 25 Jan 2017 16:06:35 +0100 Subject: [PATCH 099/236] Fix the indentation --- src/apps.json | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/apps.json b/src/apps.json index 9eccd838a..e4a22fe61 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6076,17 +6076,18 @@ "script": "reveal(?:\\.min)?\\.js", "website": "lab.hakim.se/reveal-js" }, - "Revel": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "^REVEL_(?:FLASH|SESSION)=" - }, - "implies": "Go", - "icon": "Revel.png", - "website": "revel.github.io" - }, + "Revel": { + "cats": [ + 18 + ], + "icon": "Revel.png", + "headers": { + "Set-Cookie": "^REVEL_(?:FLASH|SESSION)=" + }, + "implies": "Go", + "website": "revel.github.io", + "icon": "Revel.png" + }, "Rickshaw": { "cats": [ 25 From 87892f86cdeaf45e3d4753c757a22f14bb157da4 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 26 Jan 2017 11:29:59 +0100 Subject: [PATCH 100/236] Add Pygments detection This can be tested on the [official website](http://pygments.org/) or on [this blog]( https://dustri.org/b/ ) --- src/apps.json | 8 ++++++++ src/icons/pygments.png | Bin 0 -> 1931 bytes 2 files changed, 8 insertions(+) create mode 100644 src/icons/pygments.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..f69378ad9 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5811,6 +5811,14 @@ "icon": "Pure CSS.png", "website": "purecss.io" }, + "Pygments": { + "cats": [ + 19 + ], + "html": "]+pygments.css[\"']", + "icon": "pygments.png", + "website": "pygments.org" + }, "PyroCMS": { "cats": [ 1 diff --git a/src/icons/pygments.png b/src/icons/pygments.png new file mode 100644 index 0000000000000000000000000000000000000000..222c8951c2611b443816daeedd63a137f3735f39 GIT binary patch literal 1931 zcmV;62Xy#}P)5zm84j;Nt_tdXi#HQ!&qY` zlQ!emr0O)1%t#DiEt=G}k%=Y-Gh(E+q9_DJk}8U5U}5>%1$Xb>d(P>Pg;r*efc)u? zo?rK#^Pcy8&VAnZx$gn~KYn0*zVh?`JPRR+5P|@}fz@C3v&%d<7XVP(S{>9kH*0SU zgb;)JCqo7DN!DLi_)Pu*)8rz1ievS>jZ@nD)=C>nF)el)es%2C)jogwrcjku+Em+| zjgRm0{E%Ndl;DS-`O7ot(%%(66WrjLuDZ6L-nu?5b{d2bv|IPAB!q<+W>>l}n?9Ud zoJ{~A_vHLL2T(faz(l!A-zNK6u*?C<1QRA_1No9DXA)shC}o z4G+Mj7m5J@r!xx1C|$naN*+By;Q}(}P#7!GY--7^_PJ+sK?pH_qz3&-CFV_q_@NR% z4CCrM%(yrU0IC|^9U6f8iMw%6{ybb+UK|!I)Afp5|A}gHs3wCIsIi48+n>#w>fiwM8YdFY{1Oe* z^A)4~Mkc-CUagu8s>z@+(HtzWb^iX$G5}ay)Sp+a*VEfG4lW9kjI&nBCoEKlf-c(K z{r9f`ApOA;w+GNRw-8!N6oe2&^7<#Mx<6krOlSs!m2(!Vko=j)mh8J7mm8<jp6CzYEPyfi z1KJi8hDs7EB3?aO<|Y(oLZdhp92d5Z5Q6KkmmqE5{6VYcwb|d}NJSc+dg!00?3U;p zE774+KU88+h|cxjRNu33T=G%W)lKOyL@lXXHTcZm@lO495E{TH%a^3M@E05>SCqAF zD1m*`>>(@Yx!T8(cK_Endp_br&Rj1N(ie<+!a|>%l9Y6~`a<>Cz+C&BJiWaZ+=-~_wRa@tLI}CC(srEl?({ysDY1NOu}ym9-lXGh;>y?r z;Wh4KE#0*+Sm5N8`st|PJ&_mQdZiYTxF0Pe`k!2DcrLWF{nJLlJ)r^K38#{+^nq0O zOv;+tDev^`fZ+pR0>t3NB928~c6CZ!xsq{0Q>;_Jw#!L0igBK97qn^hyWxdpTIwk0v0X#qD-yjz1al`L?ObA zrNkx)5-gp9FaQ{U&~3cO^J?3?O)-ws+rXRJM+Csx@De6H0T?&SUnZ=3veXNJ0A5v# zDWi_+9YTt;uSbYd2f+XcfSJkWH}&~FU!1Yh(cy4ST6agm8*35~6`O}^wGU4xtaBHI z00AI@8j9>Fh`+D0lmGy$Z$#UIZFljGo_d%}1q46{BbvN7>dKyFBl!Z?YsZf=e0ARo z;kWj-CJaP7oS3H12LS4t@dl)Xu}~+EYm#FlG6T}Y0l_3;8Vg%evo`?10J-#fcMX3ux6#BWkR+J-CW5#x_1I1K!-#cs6Av&WYzBC;R0x? z4Bf|>doc%Sz#DZ3jau}WBeCdWKPk3mrQ>~-f(Xi;l%v;OBvddI;M0T#;x zB!Ww}Ls6-o1;gqIBWpf7FWEz~i6Q|)0GtDyzuYn|>(>L>Yf)<<+6pP}JX9!w$Mn`Z zC=G51i+=ML!|DlLvjZ{IM^cVJA!`E4As`ID%6&IiIUjiX$y@FHR~7*PybUYfBSKFj z5QG4rL}pYD&#*-2^mJWbFmwPBCBH}O#Fr4Z`!!QeylX!RweA7wtqRWK;PocoYOls0 z2=GZnIslCTAVh(r#b;TA;u`@VEb-IfwdIa8dFWiR74|Q8xFF1JM3IgKWQ^+2RQJGz zkEXt)B1HWS(QkZaN&Fh#>+42-GiuFPo(!+|c__4AO1k@#@V%S6`__!cRZzz6f?hj* zEa#qVA$YwM@>sqW|FO|j2#j7j!uz3TYeB#FuI$YN+UZyON75Tt{qJ9X{|){f1KbgF RWQ70#002ovPDHLkV1gBLm8$>% literal 0 HcmV?d00001 From 6aecd3c125e67a52b0792e3b79142a0b1559e4bf Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 26 Jan 2017 11:56:35 +0100 Subject: [PATCH 101/236] Improve gitlab fingerpring This can be tested on [this repo](https://0xacab.org/mat/) --- src/apps.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..d08eed5b7 100755 --- a/src/apps.json +++ b/src/apps.json @@ -2645,6 +2645,10 @@ "headers": { "Set-cookie": "_gitlab_session" }, + "html": [ + "", + " Date: Thu, 26 Jan 2017 11:58:11 +0100 Subject: [PATCH 102/236] Fix indentation --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index d08eed5b7..516f656ad 100755 --- a/src/apps.json +++ b/src/apps.json @@ -2647,7 +2647,7 @@ }, "html": [ "", - " Date: Thu, 26 Jan 2017 14:25:03 +0100 Subject: [PATCH 103/236] Add detection of Kibana This can be tested on the [demo](demo.elastic.co/packetbeat) page of Kibana --- src/apps.json | 15 +++++++++++++++ src/icons/kibana.svg | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/icons/kibana.svg diff --git a/src/apps.json b/src/apps.json index 4b06a262f..a38548846 100755 --- a/src/apps.json +++ b/src/apps.json @@ -3743,6 +3743,21 @@ }, "website": "www.kentico.com" }, + "Kibana": { + "cats": [ + 29, + 25 + ], + "html": "Kibana", + "url": "kibana#/dashboard/", + "implies": "Node.js", + "headers": { + "kbn-name": "kibana", + "kbn-version": "^([\\d.]+)$\\;version:\\1" + }, + "icon": "kibana.svg", + "website": "www.elastic.co/products/kibana" + }, "KineticJS": { "cats": [ 25 diff --git a/src/icons/kibana.svg b/src/icons/kibana.svg new file mode 100644 index 000000000..419dcbd87 --- /dev/null +++ b/src/icons/kibana.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + From dd8554525759f364c82c6e0ff240315b59593420 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 27 Jan 2017 14:38:51 +0100 Subject: [PATCH 104/236] Add even more detection --- src/apps.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 424d73e5c..ebcbd7678 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5740,7 +5740,8 @@ ], "html": [ "Powered by ]+>PrestaShop", - "" + "", + "" ], "icon": "PrestaShop.png", "implies": "PHP", From 519305290a2ffb04b647c5362e8768e347e6baa2 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 27 Jan 2017 14:47:06 +0100 Subject: [PATCH 105/236] Fox the previous commit --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index ebcbd7678..455f9ed5e 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5740,7 +5740,7 @@ ], "html": [ "Powered by ]+>PrestaShop", - "", + "", "" ], "icon": "PrestaShop.png", From 9f53bd69c5fb95a1ece574c0049f6e5909dc8a24 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 27 Jan 2017 15:04:34 +0100 Subject: [PATCH 106/236] Add detection for Melis CMS v2 This can be tested on the [official website](http://www.melistechnology.com/), or on any [customer ones](http://www.melistechnology.com/melistechnology/customers/id/6#websites), and [this one](https://www.bargento2016.fr) too --- src/apps.json | 12 ++++++++++++ src/icons/meliscmsv2.png | Bin 0 -> 4635 bytes 2 files changed, 12 insertions(+) create mode 100644 src/icons/meliscmsv2.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..42fc668c2 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4457,6 +4457,18 @@ "icon": "Meebo.png", "website": "www.meebo.com" }, + "Melis CMS V2": { + "cats": [ + 1, + 6 + ], + "html": "", + "Powered by Qc_aP%*-e#D5ImJfPjDt3k(1M|LpASI(VZt00001 zVoOIv0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^Rc0UZ(@Bg}TL1poj6 z!AV3xR5;6Hc!w7-42X1{@#H$3(v=cQ3A{RX*ri`a`M^i<-%Y6X}q(?4YCX{jK+PZdBWgQfkE zlY_K_4+FG6gjm#WmP!Fw(q4c$hUW|-31!-4_W%rYK8>O=f}W-0W$f9 z9ZFi8pu}+JUld3ZEXy$uH7Ppea>bQ^LlS5(!Q!hO1$~IVjnKqmmq0Jyrsia zKfKZw_{$bQywXqe@Jd(VFSs1=O1~e3W$J)SKOMII1^~O#cM1?fDi#0$002ovPDHLk FV1hkX3~T@Z literal 0 HcmV?d00001 From 2cf174ae450d04dfdcbd4edcad51ed776f481c29 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sun, 29 Jan 2017 20:01:42 +0100 Subject: [PATCH 116/236] Fix the url --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index cf0193b10..0e149727d 100755 --- a/src/apps.json +++ b/src/apps.json @@ -9141,7 +9141,7 @@ "PHP", "SQLite" ], - "website": "https://www.phpliteadmin.org/" + "website": "www.phpliteadmin.org/" }, "phpMyAdmin": { "cats": [ From da237e38295823c13bd4b1b13cf9f785152bc20f Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 31 Jan 2017 16:31:00 +0100 Subject: [PATCH 117/236] Add octopress detection This can be tested [here](http://gamedataeditor.com/cn/), or [here](http://octopress.org/) or even [here](https://benmmurphy.github.io/). --- src/apps.json | 8 ++++++++ src/icons/octopress.png | Bin 0 -> 400 bytes 2 files changed, 8 insertions(+) create mode 100644 src/icons/octopress.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..0fd7d5837 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5038,6 +5038,14 @@ "implies": "Laravel", "website": "octobercms.com" }, + "Octopress": { + "cats": [ + 11 + ], + "html": "Powered by Octopress", + "icon": "octopress.png", + "website": "octopress.org" + }, "Odoo": { "cats": [ 1, diff --git a/src/icons/octopress.png b/src/icons/octopress.png new file mode 100644 index 0000000000000000000000000000000000000000..0f25067305947ef363e54c54e41f8db853be0a1e GIT binary patch literal 400 zcmV;B0dM|^P)U;+psTB)v6N@D^%&#R|~kY=he z0hE5F>?!S~q?7^}`&m0MHdxCT191Ks^NsT@A35g$-}hT%;@FrL6A(p_DBh?Ln1CP% uW}(wmiy0H}L}JadRU8X&KXpC-7hnLdE(<&}JL)3<0000 Date: Tue, 31 Jan 2017 22:35:41 +0100 Subject: [PATCH 118/236] Add even more detection methods --- src/apps.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/apps.json b/src/apps.json index 516f656ad..ac71f1ddb 100755 --- a/src/apps.json +++ b/src/apps.json @@ -2645,10 +2645,14 @@ "headers": { "Set-cookie": "_gitlab_session" }, + "meta": { + "description": "^GitLab" + }, "html": [ "", " Date: Wed, 1 Feb 2017 05:08:10 -0300 Subject: [PATCH 119/236] Regex fix --- src/apps.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/apps.json b/src/apps.json index 2136356d2..3949504dc 100755 --- a/src/apps.json +++ b/src/apps.json @@ -715,9 +715,9 @@ ], "icon": "Aurelia.svg", "html": [ - "aurelia-app=[^>]", - "data-main=[^>]aurelia-bootstrapper", - "au-target-id=[^>]\\d" + "<[^>]+aurelia-app=[^>]", + "<[^>]+data-main=[^>]aurelia-bootstrapper", + "<[^>]+au-target-id=[^>]\\d" ], "script": [ "aurelia(?:\\.min)?\\.js" From f93d8158cf626b41ba03fd3a38bd652325c02015 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 1 Feb 2017 10:54:03 +0100 Subject: [PATCH 120/236] Improve a bit the Octopress thingy - Octopress implies Jekyll - Octopress can have a `meta` named "generator" - The `html` section is now moregeneric --- src/apps.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 0fd7d5837..3fbbda592 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5040,9 +5040,14 @@ }, "Octopress": { "cats": [ + 1, 11 ], - "html": "Powered by Octopress", + "html": "Powered by ", + "implies": "Jekyll", + "meta": { + "generator": "Octopress" + }, "icon": "octopress.png", "website": "octopress.org" }, From b1f6213c58d8c4db73abefb2f4bd9c4f1a3a89ba Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 2 Feb 2017 11:28:22 +0100 Subject: [PATCH 121/236] Use `property` as `meta` key too Currently, only `name` is considered as a valid key for , but more and more website, trying to be mobile-friendly, are using tags without `name`, but with a `property` instead. This commit changes this behaviour. This idea emerged from [this MR](https://github.com/AliasIO/Wappalyzer/pull/1321) --- src/wappalyzer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 565db1af4..e763eb5b0 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -329,7 +329,7 @@ var wappalyzer = (function() { for ( meta in w.apps[app][type] ) { profiler.checkPoint(app, type, regexMeta); - if ( new RegExp('name=["\']' + meta + '["\']', 'i').test(match) ) { + if ( new RegExp('(name|property)=["\']' + meta + '["\']', 'i').test(match) ) { content = match.toString().match(/content=("|')([^"']+)("|')/i); parse(w.apps[app].meta[meta]).forEach(function(pattern) { From e557e870205e6600c0bacc651bc44092e6e14274 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 2 Feb 2017 16:11:42 +0100 Subject: [PATCH 122/236] Add YouTrack detection This can be tested on the [official instance](https://youtrack.jetbrains.com/issues), or on the [cisco one](https://trex-tgn.cisco.com/youtrack/dashboard) --- src/apps.json | 12 ++++++++++++ src/icons/youtrack.png | Bin 0 -> 1674 bytes 2 files changed, 12 insertions(+) create mode 100644 src/icons/youtrack.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..d13a298e5 100755 --- a/src/apps.json +++ b/src/apps.json @@ -8403,6 +8403,18 @@ "icon": "Yoast SEO.png", "website": "yoast.com" }, + "YouTrack": { + "cats": [ + 13 + ], + "html": [ + "no-title=\"YouTrack\">", + "data-reactid=\"[^\"]+\">youTrack ([0-9.]+)<\\;version\\1", + "type=\"application/opensearchdescription\\+xml\" title=\"YouTrack\"/>" + ], + "icon": "YouTrack.png", + "website": "www.jetbrains.com/youtrack/" + }, "YouTube": { "cats": [ 14 diff --git a/src/icons/youtrack.png b/src/icons/youtrack.png new file mode 100644 index 0000000000000000000000000000000000000000..4a00a51d48b4f728c41adbbbf3f64e1b9051527d GIT binary patch literal 1674 zcmV;526g#~P)Wv)Mp*XU!Ujue0!y|P#UU)J)B#!5H!RR z#G9iu#1dZxb^>*P5A*}SjyFf!a%*Iyu??UCcpbQ|$eI5HHUWAy5qadtfh|Rry$h@Z zE=o26ZvoM(IM!Fy)w*_M^8u><_CQf`zyPlSH(ces_u|dbY8h#4`yOy;L9xXcfa>Vai`{LJc&RHAJ>L=2#UHo^p(B?uFO-&ZEOv*@O z+qu~xTO>ZWUpUPBF1IO^q5_J52$L=~k#gw?RMk{0t46h`o3eN*m3w1_M2uUYXSM(V z-glFXxykv$R|b?Jg8N|XD#-&x3Yoes&<=dLkTnvCP+wn9Cdklr;#K^Tl90KqjEx&N zlAN4mcxZ^|s#SBn7NNhdkFl|N#kJ?I;S0bW)2@k6||J7t=8=aVArgsj=FFL5o}Y?0N1L)&H*Ce(&##PZKA;ngPiTEjt**I#wbn#e z>7#A?RaLe9vBz|DbW~MUH?7~GYp!2C{d{a$m8z<~F)*OleSF0gwoldGs5ia%o;Ji1 z+7L^e$?F?oedO9}RafgV2_h9K>&J6NV~pXz{{0LM4Y70AE-EW4`N`hBjE|3V4LBQb zj;_zO>uCY`NS4S4m9Kp3rb{k4T|K3xrL^q$E&zjrgFN}G$C1KST?`6x0r+%2c|ifW z78|I`h=jKFTL?|yWFG!wqvb?-}4tXw{ z!MTg48e)mfMFs5K^@rWY>2u;7;uMq*7okI44Y9=M<_P$H%dzc7^`KG3D2Q`>gy?99 zC8pcH*|Xz!mB#5)Mip^NC}PI_iHQl4$z;JN2!d-B@j^o^aTkC!PJfI6b&4^d8m2%1 z=NzvO^mF<0<+;O|=dt%k57F7tajhbrYltP@wMN~SP=l%iHK-GE!-a@&aQ~yE)9JY> zHNrrD|NongeO8n;qKa{XN;do&7NLmn%#kA>Wj$=PKwzAD>V*ZU*;?>R7K4PBLCCul zdA|WFGoxCr)brnSyJYcFii~U*EYJsRFiz2M{3J+Ea_i@RO5hm+V{l&n#0bta zNZ>G@3G2owo>SC?>%=)k2>0TlkOI2118_I+r+9Ppd_yb|_NNE8J%1bUQZBE7F*qXx zCiiX#jNq&x9VsEOmcSZZi6!tn0_%|}v1B|?GrrfIvbHC%rZ+IACu8V2`L&wl?Ej8e zHpo!K7l1zlS@Id;AnSG7w*=NBu%0^K_6EM~4Xo)6tnCd%dXMd{pB|HLJ^ThQfAfeM&I@6x_ufUqq&Uigfx7{{PbkEOT<>(J@zUF)QUn%_0 U-AdXs=Kufz07*qoM6N<$f||cH7ytkO literal 0 HcmV?d00001 From c459fce1649f0553019ca15d27d93bc401f55b31 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 2 Feb 2017 17:22:47 +0100 Subject: [PATCH 123/236] Fix the regexp --- src/apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index d13a298e5..adf913af0 100755 --- a/src/apps.json +++ b/src/apps.json @@ -8409,7 +8409,7 @@ ], "html": [ "no-title=\"YouTrack\">", - "data-reactid=\"[^\"]+\">youTrack ([0-9.]+)<\\;version\\1", + "data-reactid=\"[^\"]+\">youTrack ([0-9.]+)<\\;version:\\1", "type=\"application/opensearchdescription\\+xml\" title=\"YouTrack\"/>" ], "icon": "YouTrack.png", From f71c187df8681253d744ef8b79d59eac77c8f58d Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 2 Feb 2017 17:33:33 +0100 Subject: [PATCH 124/236] rename the icon --- src/icons/{youtrack.png => YouTrack.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename src/icons/{youtrack.png => YouTrack.png} (100%) diff --git a/src/icons/youtrack.png b/src/icons/YouTrack.png similarity index 100% rename from src/icons/youtrack.png rename to src/icons/YouTrack.png From 2e1541534c7178f51b2bcf2e6c0117f8f3c763f8 Mon Sep 17 00:00:00 2001 From: Andre Fortin Date: Thu, 2 Feb 2017 21:20:19 -0500 Subject: [PATCH 125/236] Fix #1325 - BigCommerce is wrongly detected Remove the "env" property that could incorrectly match a function in the global scope. Removed the trailing 'v' from the "script" and "html" entries that looks for the BigCommerce CDN paths since they can begin with letters other than 'v' like 's' in the to examples below. Check against the following URLs : https://shopmonarch.averydennison.com/ http://shop.panthers.com/ --- src/apps.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/apps.json b/src/apps.json index 0a2c7d0d0..36316d2fd 100755 --- a/src/apps.json +++ b/src/apps.json @@ -822,10 +822,9 @@ "cats": [ 6 ], - "env": "^compareProducts$", - "html": "]+cdn\\d+\\.bigcommerce\\.com/v", + "html": "]+cdn\\d+\\.bigcommerce\\.com/", "icon": "Bigcommerce.png", - "script": "cdn\\d+\\.bigcommerce\\.com/v", + "script": "cdn\\d+\\.bigcommerce\\.com/", "url": "mybigcommerce\\.com", "website": "www.bigcommerce.com" }, @@ -9601,4 +9600,4 @@ "51": "Landing Page Builders", "52": "Live Chat" } -} \ No newline at end of file +} From 0af55bfa52054096b4c7b2e1721c5fed49e291c4 Mon Sep 17 00:00:00 2001 From: pd4d10 Date: Fri, 3 Feb 2017 18:26:53 +0800 Subject: [PATCH 126/236] Fix anonymous reports option --- src/drivers/chrome/js/driver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/chrome/js/driver.js b/src/drivers/chrome/js/driver.js index 08948419f..4e539d3c2 100644 --- a/src/drivers/chrome/js/driver.js +++ b/src/drivers/chrome/js/driver.js @@ -217,7 +217,7 @@ * Anonymously track detected applications for research purposes */ ping: function() { - if ( Object.keys(w.ping.hostnames).length && localStorage['tracking'] ) { + if ( Object.keys(w.ping.hostnames).length && parseInt(localStorage['tracking'], 10) ) { w.driver.post('http://ping.wappalyzer.com/ping/v2/', w.ping); w.log('w.driver.ping: ' + JSON.stringify(w.ping)); From 27450f2fa0b408c46e32af064f2f1867459cc523 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 3 Feb 2017 13:11:32 +0100 Subject: [PATCH 127/236] Improve a bit maxCDN detection - Speed up a regexp by adding `^` - Add a header This can be tested [here](http://www.lequipe.fr/) --- src/apps.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..736ca214a 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4389,7 +4389,8 @@ 31 ], "headers": { - "Server": "NetDNA" + "Server": "^NetDNA", + "X-CDN-Forward": "^maxcdn$" }, "icon": "MaxCDN.png", "website": "www.maxcdn.com" From f78ffae26d57bbb098a836dd8b28b48fb980c33f Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 3 Feb 2017 16:54:02 +0100 Subject: [PATCH 128/236] Confidence of 99% or 90% can be considered as sure. Especially given how precise the matching rules are. --- src/apps.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..dbb5161bb 100755 --- a/src/apps.json +++ b/src/apps.json @@ -4470,7 +4470,7 @@ "cats": [ 1 ], - "env": "^eidosBase$\\;confidence:99", + "env": "^eidosBase$", "html": "", "icon": "Methode.png", "meta": { @@ -6590,7 +6590,7 @@ "cats": [ 6 ], - "html": "Shopware ([\\d\\.]+) [^<]+\\;version:\\1\\;confidence:90", + "html": "<title>Shopware ([\\d\\.]+) [^<]+\\;version:\\1", "icon": "Shopware.png", "implies": [ "PHP", @@ -8171,7 +8171,7 @@ "cats": [ 22 ], - "html": "<title>XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1\\;confidence:90", + "html": "XAMPP(?: Version ([\\d\\.]+))?\\;version:\\1", "icon": "XAMPP.png", "implies": [ "Apache", From a7b96adc84449307d51c3f25beed5e9da0df37b5 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 3 Feb 2017 15:34:20 +0100 Subject: [PATCH 129/236] Add Plotly detection This can be tested [here](https://plot.ly/javascript/) Thanks to @gadcam for the review. --- src/apps.json | 10 ++++++++++ src/icons/Plotly.png | Bin 0 -> 713 bytes 2 files changed, 10 insertions(+) create mode 100644 src/icons/Plotly.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..60726e275 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5665,6 +5665,16 @@ }, "website": "plone.org" }, + "Plotly": { + "cats": [ + 25 + ], + "icon": "Plotly.png", + "implies": "D3", + "env": "Plotly", + "script": "https?://cdn\\.plot\\.ly/plotly", + "website": "plot.ly/javascript/" + }, "Plura": { "cats": [ 19 diff --git a/src/icons/Plotly.png b/src/icons/Plotly.png new file mode 100644 index 0000000000000000000000000000000000000000..20f7b24d82a7b723e9de858cd93c02b5a63fadf7 GIT binary patch literal 713 zcmV;)0yh1LP)?yH010qNS#tmY3ljhU3ljkVnw%H_000McNliru;Q|8=As=$Es}%qM0#->x zK~z}7?Uy}h6hRn;js?zsD87JzzFxN)Yya3Rw@fY=JJKa@}k$~DK;lY^<1U|j%8K@@0E zAObo?=Xhydv{<&h`BcW!3V>sKdhw0w9>C1ECO0R((wo(Yz~sGA{K#|$V66_&8u}wc zl+_?f**aDNP2z>+ss*4gG;Q~DTL8VG;r_EZp1)lLVEk}D7mp8g*Mv%~%Di5=(>I~| zee?dkv*3>hSZm0ywdZvTz%z=;_sc9SS*#QGjfCvpp6woh?5kXese5q=wHiTv@tq!wRuufJ1#t-FLs#+Sc zFkHwmm~&hi8^AM)p}dFDaQ^6~7F=IwIJhe!@DqLZ?g;4%4VO*~knxf|qv6zn9Q#Ki vVk?Yp4Tu8G<+0>UE==;G`u}hE&jb7b+Xmg{d!Pci00000NkvXXu0mjf_{cyk literal 0 HcmV?d00001 From ce055d8be7de579b5408073595fd47f35c842358 Mon Sep 17 00:00:00 2001 From: Michal Landsman Date: Sun, 5 Feb 2017 03:56:31 +0100 Subject: [PATCH 130/236] Improved Nette Framework detection --- src/apps.json | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/apps.json b/src/apps.json index 0a2c7d0d0..523bd8650 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5034,15 +5034,22 @@ "website": "netsuite.com" }, "Nette Framework": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "Nette Framework" - }, - "icon": "Nette Framework.png", - "implies": "PHP", - "website": "nette.org" + "cats": [ + 18 + ], + "headers": { + "X-Powered-By": "Nette Framework", + "Set-Cookie": "nette-browser=" + }, + "env": "Nette", + "html": [ + "<(input|select|textarea)[^>]+data-nette-rules", + "<(div|article|main|footer|span|input|title|a)[^>]+id=\"snippet--", + "<(form|input|select|label)[^>]+id=\"frm-" + ], + "icon": "Nette Framework.png", + "implies": "PHP", + "website": "nette.org" }, "New Relic": { "cats": [ From e67245b86b1bfceb7e998cba465ca16a4e66b7fe Mon Sep 17 00:00:00 2001 From: Michal Landsman Date: Sun, 5 Feb 2017 04:08:46 +0100 Subject: [PATCH 131/236] Improved Nette Framework detection - fixed for test rules --- src/apps.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/apps.json b/src/apps.json index 523bd8650..986719d88 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5043,9 +5043,9 @@ }, "env": "Nette", "html": [ - "<(input|select|textarea)[^>]+data-nette-rules", - "<(div|article|main|footer|span|input|title|a)[^>]+id=\"snippet--", - "<(form|input|select|label)[^>]+id=\"frm-" + "<(input|textarea)[^>]+data-nette-rules", + "<[A-z][^>]+id=\"snippet--", + "<(form|input)[^>]+id=\"frm-" ], "icon": "Nette Framework.png", "implies": "PHP", From 3234a0ce6ea0111af021d51169ae672892e8e65b Mon Sep 17 00:00:00 2001 From: Michal Landsman Date: Sun, 5 Feb 2017 04:14:12 +0100 Subject: [PATCH 132/236] Improved Nette Framework detection - fixed for test rules finally --- src/apps.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/apps.json b/src/apps.json index 986719d88..21c676e3e 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5043,9 +5043,9 @@ }, "env": "Nette", "html": [ - "<(input|textarea)[^>]+data-nette-rules", - "<[A-z][^>]+id=\"snippet--", - "<(form|input)[^>]+id=\"frm-" + "]+data-nette-rules", + "]+id=\"snippet--", + "]+id=\"frm-" ], "icon": "Nette Framework.png", "implies": "PHP", From d9d7fa2ddedcedee45da5479ff0eb1a85df8c058 Mon Sep 17 00:00:00 2001 From: Michal Landsman Date: Sun, 5 Feb 2017 11:06:23 +0100 Subject: [PATCH 133/236] Fixed indentation, improved snippet of components --- src/apps.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/apps.json b/src/apps.json index 21c676e3e..f416a680d 100755 --- a/src/apps.json +++ b/src/apps.json @@ -5034,22 +5034,22 @@ "website": "netsuite.com" }, "Nette Framework": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "Nette Framework", - "Set-Cookie": "nette-browser=" - }, - "env": "Nette", - "html": [ - "]+data-nette-rules", - "]+id=\"snippet--", - "]+id=\"frm-" - ], - "icon": "Nette Framework.png", - "implies": "PHP", - "website": "nette.org" + "cats": [ + 18 + ], + "headers": { + "X-Powered-By": "Nette Framework", + "Set-Cookie": "nette-browser=" + }, + "env": "Nette", + "html": [ + "]+data-nette-rules", + "]+id=\"snippet-", + "]+id=\"frm-" + ], + "icon": "Nette Framework.png", + "implies": "PHP", + "website": "nette.org" }, "New Relic": { "cats": [ From 1cb5d127934ded71dbd307e6b0c9fd1184405475 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 7 Feb 2017 15:22:48 +0100 Subject: [PATCH 134/236] Add ShellInABox detection This can be tested [here](https://code.google.com/archive/p/shellinabox/) --- src/apps.json | 12 ++++++++++++ src/icons/ShellInABox.png | Bin 0 -> 368 bytes 2 files changed, 12 insertions(+) create mode 100644 src/icons/ShellInABox.png diff --git a/src/apps.json b/src/apps.json index 4b06a262f..c3d77b170 100755 --- a/src/apps.json +++ b/src/apps.json @@ -6511,6 +6511,18 @@ "script": "w\\.sharethis\\.com/", "website": "sharethis.com" }, + "ShellInABox": { + "cats": [ + 46 + ], + "html": [ + "Shell In A Box", + "must be enabled for ShellInABox" + ], + "env": "^ShellInABox$", + "icon": "ShellInABox.png", + "website": "shellinabox.com" + }, "ShinyStat": { "cats": [ 10 diff --git a/src/icons/ShellInABox.png b/src/icons/ShellInABox.png new file mode 100644 index 0000000000000000000000000000000000000000..036151609ec0516ff81d869e2f3224ac8fc14b07 GIT binary patch literal 368 zcmV-$0gwKPP)st_ei^_XHw?plDNR!VxJ)AZv2h$*5+aV{I1B@0%ouac8z3TM zj1W@S^&QhRjn*2UHc(1gl-4>7!)@D&qUgHLE-Iy-lw8ZQDy;0+J*l zgcxIPx0}V3W!d*VrPTAhLpU+U&Qdud0)X8H073{#sSpAYr)fHP=XpNQ^C<@1N4=CX z2m;^t2_fsce)X18o((O&7lG0bp67W{6m8qK_ZC6`z^OF+1UT&EoZG}cIGh52l+tZ2 zy0-E>mgoiePO12bAI|Frzm^AoKGB@_MgJfVoJ-`qH+3DR^ujjup}hfEI{rpVoBO-~ O0000 Date: Tue, 7 Feb 2017 18:34:29 +0100 Subject: [PATCH 135/236] Improve a bit Synology detection - the "description" meta is now used - some html too - some script src --- src/apps.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/apps.json b/src/apps.json index 4b06a262f..1672da835 100755 --- a/src/apps.json +++ b/src/apps.json @@ -7117,9 +7117,12 @@ 48 ], "icon": "Synology DiskStation.png", + "html": "