diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/SoftwareIcon.tsx b/src/FilterLists.Web.V2/src/components/softwareIcon/SoftwareIcon.tsx
new file mode 100644
index 000000000..b0e799f4b
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/SoftwareIcon.tsx
@@ -0,0 +1,90 @@
+import * as React from 'react';
+
+import {
+ img01,
+ img02,
+ img03,
+ img04,
+ img05,
+ img06,
+ img07,
+ img08,
+ img10,
+ img11,
+ img12,
+ img13,
+ img14,
+ img15,
+ img16,
+ img17,
+ img18,
+ img19,
+ img20,
+ img21,
+ img22,
+ img23,
+ img24,
+ img25,
+ img26,
+ img27,
+ img28,
+ img29,
+ img30,
+ img31,
+ img32,
+ img33,
+ img34
+} from './imgs';
+
+interface Props {
+ id: number;
+};
+
+export const SoftwareIcon = (props: Props) =>
+ icons[props.id]
+ ?
+ : null;
+
+interface Icon {
+ image: any;
+ imageTitle: string;
+};
+
+const icons: { [id: number]: Icon; } = {
+ 1: { image: img01, imageTitle: "uBlock Origin" },
+ 2: { image: img02, imageTitle: "Adblock Plus" },
+ 3: { image: img03, imageTitle: "AdGuard" },
+ 4: { image: img04, imageTitle: "DNS66" },
+ 5: { image: img05, imageTitle: "Nano Adblocker" },
+ 6: { image: img06, imageTitle: "AdBlock" },
+ 7: { image: img07, imageTitle: "AdAway" },
+ 8: { image: img08, imageTitle: "Personal Blocklist" },
+ 10: { image: img10, imageTitle: "Redirector" },
+ 11: { image: img11, imageTitle: "Hosts File Editor" },
+ 12: { image: img12, imageTitle: "Gas Mask" },
+ 13: { image: img13, imageTitle: "MinerBlock" },
+ 14: { image: img14, imageTitle: "Pi-hole" },
+ 15: { image: img15, imageTitle: "uBlock" },
+ 16: { image: img16, imageTitle: "Internet Explorer (TPL)" },
+ 17: { image: img17, imageTitle: "Google Hit Hider by Domain" },
+ 18: { image: img18, imageTitle: "FireHOL" },
+ 19: { image: img19, imageTitle: "Samsung Knox" },
+ 20: { image: img20, imageTitle: "Little Snitch" },
+ 21: { image: img21, imageTitle: "Privoxy" },
+ 22: { image: img22, imageTitle: "Diversion" },
+ 23: { image: img23, imageTitle: "dnsmasq" },
+ 24: { image: img24, imageTitle: "Slimjet" },
+ 25: { image: img25, imageTitle: "uMatrix" },
+ 26: { image: img26, imageTitle: "Blokada" },
+ 27: { image: img27, imageTitle: "hostsmgr" },
+ 28: { image: img28, imageTitle: "personalDNSfilter" },
+ 29: { image: img29, imageTitle: "Unbound" },
+ 30: { image: img30, imageTitle: "BIND" },
+ 31: { image: img31, imageTitle: "AdGuard Home" },
+ 32: { image: img32, imageTitle: "AdNauseam" },
+ 33: { image: img33, imageTitle: "Legacy Unix derivatives" },
+ 34: { image: img34, imageTitle: "Windows command line" },
+};
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/01-uBlock-Origin.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/01-uBlock-Origin.svg
new file mode 100644
index 000000000..03e7a9ebb
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/01-uBlock-Origin.svg
@@ -0,0 +1 @@
+
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/02-Adblock-Plus.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/02-Adblock-Plus.svg
new file mode 100644
index 000000000..71ab1252f
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/02-Adblock-Plus.svg
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/03-AdGuard.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/03-AdGuard.svg
new file mode 100644
index 000000000..b9cb8ebd4
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/03-AdGuard.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/04-DNS66.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/04-DNS66.png
new file mode 100644
index 000000000..a32dc2c2f
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/04-DNS66.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/05-Nano-Adblocker.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/05-Nano-Adblocker.png
new file mode 100644
index 000000000..cd2b2a06d
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/05-Nano-Adblocker.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/06-AdBlock.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/06-AdBlock.png
new file mode 100644
index 000000000..84b1d1195
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/06-AdBlock.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/07-AdAway.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/07-AdAway.png
new file mode 100644
index 000000000..0826b7478
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/07-AdAway.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/08-Personal-Blocklist.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/08-Personal-Blocklist.png
new file mode 100644
index 000000000..9b6888a1b
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/08-Personal-Blocklist.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/10-Redirector.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/10-Redirector.png
new file mode 100644
index 000000000..33fa33b01
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/10-Redirector.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/11-Hosts-File-Editor.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/11-Hosts-File-Editor.png
new file mode 100644
index 000000000..e758cf5da
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/11-Hosts-File-Editor.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/12-Gas-Mask.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/12-Gas-Mask.png
new file mode 100644
index 000000000..062dcbd76
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/12-Gas-Mask.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/13-MinerBlock.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/13-MinerBlock.svg
new file mode 100644
index 000000000..a2c2b0064
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/13-MinerBlock.svg
@@ -0,0 +1,34 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/14-Pi-hole.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/14-Pi-hole.svg
new file mode 100644
index 000000000..3d3bd57f7
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/14-Pi-hole.svg
@@ -0,0 +1 @@
+
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/15-uBlock.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/15-uBlock.svg
new file mode 100644
index 000000000..6488ebb04
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/15-uBlock.svg
@@ -0,0 +1,18 @@
+
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg
new file mode 100644
index 000000000..69780795f
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/16-Internet-Explorer-TPL.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png
new file mode 100644
index 000000000..ca830def3
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/17-Google-Hit-Hider-by-Domain.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/18-FireHOL.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/18-FireHOL.png
new file mode 100644
index 000000000..5db30bb01
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/18-FireHOL.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/19-Samsung-Knox.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/19-Samsung-Knox.png
new file mode 100644
index 000000000..bdb2f96a1
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/19-Samsung-Knox.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/20-Little-Snitch.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/20-Little-Snitch.png
new file mode 100644
index 000000000..1562eec0a
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/20-Little-Snitch.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/21-Privoxy.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/21-Privoxy.png
new file mode 100644
index 000000000..0ba2b59a1
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/21-Privoxy.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/22-Diversion.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/22-Diversion.png
new file mode 100644
index 000000000..511c8c8cd
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/22-Diversion.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/23-dnsmasq.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/23-dnsmasq.png
new file mode 100644
index 000000000..99e986ba9
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/23-dnsmasq.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/24-Slimjet.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/24-Slimjet.png
new file mode 100644
index 000000000..00f899268
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/24-Slimjet.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/25-uMatrix.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/25-uMatrix.png
new file mode 100644
index 000000000..82663fc9e
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/25-uMatrix.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/26-Blokada.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/26-Blokada.png
new file mode 100644
index 000000000..cfd376114
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/26-Blokada.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/27-hostsmgr.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/27-hostsmgr.png
new file mode 100644
index 000000000..349d5b17e
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/27-hostsmgr.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/28-personalDNSfilter.svg b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/28-personalDNSfilter.svg
new file mode 100644
index 000000000..90fd8f734
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/28-personalDNSfilter.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/29-Unbound.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/29-Unbound.png
new file mode 100644
index 000000000..e6100dd8a
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/29-Unbound.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/30-BIND.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/30-BIND.png
new file mode 100644
index 000000000..74723afaf
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/30-BIND.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/31-AdGuard-Home.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/31-AdGuard-Home.png
new file mode 100644
index 000000000..e217b6879
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/31-AdGuard-Home.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/32-AdNauseam.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/32-AdNauseam.png
new file mode 100644
index 000000000..773f3c556
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/32-AdNauseam.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/33-Legacy-Unix-Derivatives.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/33-Legacy-Unix-Derivatives.png
new file mode 100644
index 000000000..617ecf5bd
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/33-Legacy-Unix-Derivatives.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/34-Windows-command-line.png b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/34-Windows-command-line.png
new file mode 100644
index 000000000..0741aa5b9
Binary files /dev/null and b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/34-Windows-command-line.png differ
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/imgs.d.ts b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/imgs.d.ts
new file mode 100644
index 000000000..1090848f7
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/imgs.d.ts
@@ -0,0 +1,9 @@
+declare module "*.svg" {
+ const content: any;
+ export default content;
+}
+
+declare module "*.png" {
+ const content: any;
+ export default content;
+}
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/index.ts b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/index.ts
new file mode 100644
index 000000000..ecb632bbf
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/imgs/index.ts
@@ -0,0 +1,69 @@
+import img01 from './01-uBlock-Origin.svg';
+import img02 from './02-Adblock-Plus.svg';
+import img03 from './03-AdGuard.svg';
+import img04 from './04-DNS66.png';
+import img05 from './05-Nano-Adblocker.png';
+import img06 from './06-AdBlock.png';
+import img07 from './07-AdAway.png';
+import img08 from './08-Personal-Blocklist.png';
+import img10 from './10-Redirector.png';
+import img11 from './11-Hosts-File-Editor.png';
+import img12 from './12-Gas-Mask.png';
+import img13 from './13-MinerBlock.svg';
+import img14 from './14-Pi-hole.svg';
+import img15 from './15-uBlock.svg';
+import img16 from './16-Internet-Explorer-TPL.svg';
+import img17 from './17-Google-Hit-Hider-by-Domain.png';
+import img18 from './18-FireHOL.png';
+import img19 from './19-Samsung-Knox.png';
+import img20 from './20-Little-Snitch.png';
+import img21 from './21-Privoxy.png';
+import img22 from './22-Diversion.png';
+import img23 from './23-dnsmasq.png';
+import img24 from './24-Slimjet.png';
+import img25 from './25-uMatrix.png';
+import img26 from './26-Blokada.png';
+import img27 from './27-hostsmgr.png';
+import img28 from './28-personalDNSfilter.svg';
+import img29 from './29-Unbound.png';
+import img30 from './30-BIND.png';
+import img31 from './31-AdGuard-Home.png';
+import img32 from './32-AdNauseam.png';
+import img33 from './33-Legacy-Unix-Derivatives.png';
+import img34 from './34-Windows-command-line.png';
+
+export {
+ img01,
+ img02,
+ img03,
+ img04,
+ img05,
+ img06,
+ img07,
+ img08,
+ img10,
+ img11,
+ img12,
+ img13,
+ img14,
+ img15,
+ img16,
+ img17,
+ img18,
+ img19,
+ img20,
+ img21,
+ img22,
+ img23,
+ img24,
+ img25,
+ img26,
+ img27,
+ img28,
+ img29,
+ img30,
+ img31,
+ img32,
+ img33,
+ img34
+};
\ No newline at end of file
diff --git a/src/FilterLists.Web.V2/src/components/softwareIcon/index.ts b/src/FilterLists.Web.V2/src/components/softwareIcon/index.ts
new file mode 100644
index 000000000..1947f1089
--- /dev/null
+++ b/src/FilterLists.Web.V2/src/components/softwareIcon/index.ts
@@ -0,0 +1,3 @@
+import { SoftwareIcon } from './SoftwareIcon';
+
+export { SoftwareIcon };
\ No newline at end of file