Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/1.4.0 #113

Open
wants to merge 135 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
b1fe96f
add branch to ci
lakhoune Jul 6, 2023
867914d
update docker-compose
lakhoune Jul 6, 2023
0dd5070
adds option to specify the base href in docker container
lakhoune Jul 6, 2023
4899bb5
use my image
lakhoune Jul 6, 2023
1ce6d47
set base href before bundle
lakhoune Jul 6, 2023
bce2dab
debug
lakhoune Jul 6, 2023
a004b25
fix bas_href
lakhoune Jul 6, 2023
ac947ee
Merge branch 'lakhoune/issue98' into ma-lakhoune
lakhoune Jul 7, 2023
0592fde
Merge branch 'master' into ma-lakhoune
lakhoune Jul 8, 2023
73efcb1
update image
lakhoune Jul 30, 2023
65a9d00
update submit model
lakhoune Aug 13, 2023
982b2f0
Merge branch 'lakhoune/issue102' into ma-lakhoune
lakhoune Aug 19, 2023
42200bd
styling
lakhoune Aug 19, 2023
5343c76
sort backups
lakhoune Aug 30, 2023
07491ad
adds env
lakhoune Sep 10, 2023
aaed051
create a usage toggle to show trigger the overlay
lakhoune Sep 10, 2023
8009713
dev
lakhoune Sep 11, 2023
88d56db
try cors fix
lakhoune Sep 11, 2023
a115f9a
set entrypoint
lakhoune Sep 11, 2023
0c2ea3f
test log
lakhoune Sep 11, 2023
e6cb361
debug
lakhoune Sep 11, 2023
969e355
.
lakhoune Sep 11, 2023
f305c5f
fixes cors issues
lakhoune Sep 11, 2023
ec81c52
update docker compose to include pm4bots
lakhoune Sep 16, 2023
84a4d41
pm4js
lakhoune Sep 16, 2023
5bf6765
adds bot analytics tab
lakhoune Sep 16, 2023
1c49569
wip
lakhoune Sep 16, 2023
ab3c7e3
adds draggable petri net view
lakhoune Sep 17, 2023
d2b85b0
cors
lakhoune Sep 18, 2023
c063d8d
Merge remote-tracking branch 'origin/sequentialprocess' into test-seq…
lakhoune Sep 23, 2023
43a32a1
add env
lakhoune Oct 2, 2023
97aaa8a
wip
lakhoune Oct 2, 2023
8275021
Merge branch 'test-seq-proc' into ma-lakhoune
lakhoune Oct 2, 2023
85512b3
wip
lakhoune Oct 2, 2023
c277bd1
measure list
lakhoune Oct 2, 2023
f86b1af
wip
lakhoune Oct 2, 2023
19547a8
wip
lakhoune Oct 2, 2023
3123cbe
add a configuration pane for pm4bots using yjs
lakhoune Oct 6, 2023
f1baaad
dynamic form for config
lakhoune Oct 7, 2023
1204c3c
search measures
lakhoune Oct 7, 2023
a1f32d8
fetch measure catalog as well
lakhoune Oct 7, 2023
10cfef7
wip
lakhoune Oct 8, 2023
370eda2
fix loading indicator
lakhoune Oct 9, 2023
cc5c9bb
add option to configure defaults
lakhoune Oct 9, 2023
27c47d5
draw missing edges and nodes
lakhoune Oct 11, 2023
9a6fe81
toggle overlay fixed
lakhoune Oct 11, 2023
88d1bd5
fix bug calling print
lakhoune Oct 11, 2023
eb37fef
styling
lakhoune Oct 11, 2023
183c064
color and scale edges
lakhoune Oct 11, 2023
f6df578
increase timeout
lakhoune Oct 11, 2023
c1e3d79
sourcemap only in dev
lakhoune Oct 18, 2023
607262f
bump version of syncmeta
lakhoune Oct 20, 2023
f9f674a
use syncmeta function to export the model
lakhoune Oct 20, 2023
ea8e8f4
Merge commit 'f9f674a30c9aa3313376d85c9f059f99d97b72b5' into ma-lakhoune
lakhoune Oct 20, 2023
6b341e8
version bump
lakhoune Oct 20, 2023
d465a56
remove env
lakhoune Oct 21, 2023
179568b
adjust api to use config options
lakhoune Oct 21, 2023
5fd4ce2
set location hash when switching tab panes
lakhoune Oct 22, 2023
6e09447
add param
lakhoune Oct 22, 2023
3ebe413
alertmessage
lakhoune Oct 22, 2023
8c9510e
add stats
lakhoune Oct 23, 2023
9591305
styling
lakhoune Oct 23, 2023
6f80808
fix modal
lakhoune Oct 30, 2023
8856212
added some chart types
lakhoune Oct 30, 2023
82613c9
update modal to show visualization types value and chart
lakhoune Oct 30, 2023
6aa670b
wip
lakhoune Oct 30, 2023
ca6dbb6
loading indicator
lakhoune Oct 30, 2023
053989e
add id
lakhoune Oct 30, 2023
ca82b51
only load canvas overlay when button is clicked
lakhoune Oct 30, 2023
dfb0dbb
wip for edge coloring
lakhoune Oct 30, 2023
e775c05
reduce max size of overlay edges
lakhoune Oct 30, 2023
86bb6e5
refactoring
lakhoune Nov 1, 2023
869b412
center label on edge
lakhoune Nov 1, 2023
a103283
prepare openai
lakhoune Nov 6, 2023
36365a3
offcanvas chatgpt recommendations
lakhoune Nov 6, 2023
4bd6783
hide button if no token available
lakhoune Nov 6, 2023
dc03021
modularize
lakhoune Nov 6, 2023
546bddf
modularize
lakhoune Nov 6, 2023
1cfea5b
adds custom prompts
lakhoune Nov 6, 2023
543712b
bot stats
lakhoune Nov 10, 2023
5be5186
move to lib
lakhoune Nov 12, 2023
64597dc
move to lib
lakhoune Nov 12, 2023
90f24aa
show error messages
lakhoune Nov 12, 2023
78b5cdb
remove console logs
lakhoune Nov 12, 2023
40ac0f6
wip
lakhoune Nov 12, 2023
b070dcf
show/hide example menu
lakhoune Nov 12, 2023
3686101
add overlay class
lakhoune Nov 12, 2023
7ff6784
fix bug where setting openaitoken would not show recommender button
lakhoune Nov 13, 2023
2879425
adds deviating converstaions as measure
lakhoune Nov 13, 2023
05a7917
controllers
lakhoune Nov 13, 2023
3ee9c3e
wip
lakhoune Nov 13, 2023
78dbbe4
fix coloring between frequency and duration
lakhoune Nov 15, 2023
f7d95d3
fix redraw if stats not loaded yet
lakhoune Nov 17, 2023
8f9bafa
increase timeouts
lakhoune Nov 17, 2023
2b2254e
bot recommendations on each tabl
lakhoune Nov 17, 2023
67f5b6c
add model
lakhoune Nov 18, 2023
c18981c
margins
lakhoune Nov 18, 2023
6ba2309
add bpmn view
lakhoune Nov 18, 2023
b361eb4
max width
lakhoune Nov 19, 2023
b414bf8
hide buttons on default
lakhoune Nov 25, 2023
bbb31aa
use vls from assets
lakhoune Nov 25, 2023
c946ba2
updates the vls to have a Name attribute for the state
lakhoune Nov 25, 2023
358dab8
try fix for inserting into quill
lakhoune Nov 26, 2023
5605d9a
use openai key from env
lakhoune Nov 27, 2023
63c3e67
smarter insertUsagebtn
lakhoune Nov 27, 2023
7e2cbbb
fix observer
lakhoune Nov 27, 2023
b1d18c4
fix usage button insert
lakhoune Nov 27, 2023
17591f2
disable storing openai token in localstorage for evaluation
lakhoune Nov 27, 2023
853cd0a
static token for evaluation
lakhoune Nov 27, 2023
fd72bdf
Revert "disable storing openai token in localstorage for evaluation"
lakhoune Nov 27, 2023
ef5bd3a
Revert "use openai key from env"
lakhoune Nov 27, 2023
e0863e9
make sure that the label is visible using white background
lakhoune Nov 30, 2023
bda7af6
fix cases where strokewidth would be negative
lakhoune Nov 30, 2023
e91b4fe
displace label for existing edges so that it does not overlap with ex…
lakhoune Nov 30, 2023
590c876
for evaluation disable empty intents
lakhoune Nov 30, 2023
9c6edae
fix copy to clipboard
lakhoune Nov 30, 2023
ad68566
fix copy to clipboard
lakhoune Nov 30, 2023
7356c44
fix btn id
lakhoune Dec 1, 2023
a0f3353
add ci
lakhoune Dec 10, 2023
b83d828
integrates check necessary because api returns 200
lakhoune Dec 10, 2023
ee486ce
hotfix
lakhoune Dec 10, 2023
8f42e14
try fix for value not updated on selectedmeasure
lakhoune Dec 10, 2023
62cc9cd
sticky offcanvas without backdrop
lakhoune Dec 10, 2023
19e1018
bot stats
lakhoune Jan 5, 2024
ace2e3d
newline
lakhoune Jan 5, 2024
4bd4771
adds option to enhance the model, default is without
lakhoune Jan 30, 2024
cfc20e1
hide missingNodes for now
lakhoune Jan 30, 2024
5ee3d8b
use post
lakhoune Feb 4, 2024
6e07a5f
fix for new version
lakhoune Feb 8, 2024
0c915c0
Merge branch 'evaluation' into release/1.4.0
lakhoune Feb 26, 2024
e699715
update env
lakhoune Feb 27, 2024
682b4f6
improve dropdowns
lakhoune Mar 3, 2024
f9afb51
Merge branch 'storeResourceIds' into evaluation
lakhoune Mar 3, 2024
397817d
Merge branch 'evaluation' into release/1.4.0
lakhoune Mar 4, 2024
81504a7
bump version
lakhoune Mar 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Docker Build and Push

on:
push:
branches: [ master, develop, cleaning]
branches: [ master, develop, ma-lakhoune,evaluation]

jobs:
build:
Expand Down
151 changes: 73 additions & 78 deletions assets/SyncMeta Models/vls.json
Original file line number Diff line number Diff line change
Expand Up @@ -2190,89 +2190,83 @@
"name": "Attributes",
"type": "KeySelectionValueListAttribute",
"list": {
"869849f65db9be737e99bd24": {
"id": "869849f65db9be737e99bd24",
"name": "869849f65db9be737e99bd24",
"key": {
"id": "869849f65db9be737e99bd24[key]",
"name": "",
"value": "Intent Keyword"
},
"value": {
"id": "869849f65db9be737e99bd24[value]",
"name": "",
"value": "string"
}
"e7d374a1e2d32c5e67bc68cc": {
"id": "e7d374a1e2d32c5e67bc68cc",
"name": "e7d374a1e2d32c5e67bc68cc",
"key": {
"id": "e7d374a1e2d32c5e67bc68cc[key]",
"name": "",
"value": "Name"
},
"e7d374a1e2d32c5e67bc68cc": {
"id": "e7d374a1e2d32c5e67bc68cc",
"name": "e7d374a1e2d32c5e67bc68cc",
"key": {
"id": "e7d374a1e2d32c5e67bc68cc[key]",
"name": "",
"value": "Intent Label"
},
"value": {
"id": "e7d374a1e2d32c5e67bc68cc[value]",
"name": "",
"value": "string"
}
"value": {
"id": "e7d374a1e2d32c5e67bc68cc[value]",
"name": "",
"value": "string"
}
},
"869849f65db9be737e99bd24": {
"id": "869849f65db9be737e99bd24",
"name": "869849f65db9be737e99bd24",
"key": {
"id": "869849f65db9be737e99bd24[key]",
"name": "",
"value": "Intent Keyword"
},
"3e8bfec67da28c354a969b46": {
"id": "3e8bfec67da28c354a969b46",
"name": "3e8bfec67da28c354a969b46",
"key": {
"id": "3e8bfec67da28c354a969b46[key]",
"name": "",
"value": "NLU ID"
},
"value": {
"id": "3e8bfec67da28c354a969b46[value]",
"name": "",
"value": "string"
}
"value": {
"id": "869849f65db9be737e99bd24[value]",
"name": "",
"value": "string"
}
},
"3e8bfec67da28c354a969b46": {
"id": "3e8bfec67da28c354a969b46",
"name": "3e8bfec67da28c354a969b46",
"key": {
"id": "3e8bfec67da28c354a969b46[key]",
"name": "",
"value": "NLU ID"
},
"8f8bee572ff26bedbfb46783": {
"id": "8f8bee572ff26bedbfb46783",
"name": "8f8bee572ff26bedbfb46783",
"key": {
"id": "8f8bee572ff26bedbfb46783[key]",
"name": "",
"value": "IsFile"
},
"value": {
"id": "8f8bee572ff26bedbfb46783[value]",
"name": "",
"value": "boolean"
}
"value": {
"id": "3e8bfec67da28c354a969b46[value]",
"name": "",
"value": "string"
}
},
"8f8bee572ff26bedbfb46783": {
"id": "8f8bee572ff26bedbfb46783",
"name": "8f8bee572ff26bedbfb46783",
"key": {
"id": "8f8bee572ff26bedbfb46783[key]",
"name": "",
"value": "IsFile"
},
"1ae4674949cfead101f6e8d8": {
"id": "1ae4674949cfead101f6e8d8",
"name": "1ae4674949cfead101f6e8d8",
"key": {
"id": "1ae4674949cfead101f6e8d8[key]",
"name": "",
"value": "FileURL"
},
"value": {
"id": "1ae4674949cfead101f6e8d8[value]",
"name": "",
"value": "string"
}
"value": {
"id": "8f8bee572ff26bedbfb46783[value]",
"name": "",
"value": "boolean"
}
},
"1ae4674949cfead101f6e8d8": {
"id": "1ae4674949cfead101f6e8d8",
"name": "1ae4674949cfead101f6e8d8",
"key": {
"id": "1ae4674949cfead101f6e8d8[key]",
"name": "",
"value": "FileURL"
},
"1b9710d3ac9dbdfd3b46110a": {
"id": "1b9710d3ac9dbdfd3b46110a",
"name": "1b9710d3ac9dbdfd3b46110a",
"key": {
"id": "1b9710d3ac9dbdfd3b46110a[key]",
"name": "",
"value": "ErrorMessage"
},
"value": {
"id": "1b9710d3ac9dbdfd3b46110a[value]",
"name": "",
"value": "string"
}
"value": {
"id": "1ae4674949cfead101f6e8d8[value]",
"name": "",
"value": "string"
}
},
"1b9710d3ac9dbdfd3b46110a": {
"id": "1b9710d3ac9dbdfd3b46110a",
"name": "1b9710d3ac9dbdfd3b46110a",
"key": {
"id": "1b9710d3ac9dbdfd3b46110a[key]",
"name": "",
"value": "ErrorMessage"
},
"90cd8b63ad44500486ddbb02": {
"id": "90cd8b63ad44500486ddbb02",
Expand Down Expand Up @@ -2316,6 +2310,7 @@
"value": "boolean"
}
}
}
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion config.json.sample
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"yjs_resource_path": "<YJS_RESOURCE_PATH>",
"contact_service_url": "<CONTACT_SERVICE_URL>",
"sbfManagerHost": "<SBF_MANAGER_HOST>",
"rasaEndpoint": "<RASA_NLU>"
"rasaEndpoint": "<RASA_NLU>",
"pm4botsEndpoint": "<PM4BOTS_ENDPOINT>"
}
96 changes: 65 additions & 31 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,33 @@ version: '3'

services:
mobsos-data-processing:
image: registry.tech4comp.dbis.rwth-aachen.de/rwthacis/mobsos-data-processing:master
image: ${MOBSOS_DATA_PROCESSING_IMAGE:-registry.tech4comp.dbis.rwth-aachen.de/rwthacis/mobsos-data-processing:master}
environment:
MYSQL_HOST: db
MYSQL_PORT: ${DATABASE_PORT:-3306}
MYSQL_USER: ${DATABASE_USER:-root}
MYSQL_PASSWORD: ${DATABASE_PASSWORD:-root}
MYSQL_PORT: 3306
MYSQL_USER: root
MYSQL_PASSWORD: root
LAS2PEER_PORT: 9013
BOOTSTRAP: social-bot-manager:9011
ports:
- "9013:9013"
depends_on:
- social-bot-manager
social-bot-manager:
image: registry.tech4comp.dbis.rwth-aachen.de/rwthacis/social-bot-manager:master
image: ${SOCIAL_BOT_MANAGER_IMAGE:-registry.tech4comp.dbis.rwth-aachen.de/rwthacis/social-bot-manager:master}
environment:
DATABASE_NAME: ${DATABASE_NAME:-SBF}
DATABASE_NAME: SBF
DATABASE_HOST: db
DATABASE_PORT: ${DATABASE_PORT:-3306}
DATABASE_USER: ${DATABASE_USER:-root}
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-root}
ADDRESS: ${ADDRESS:-127.0.0.1:8080}
MONGO_HOST: ${MONGO_HOST:-mongo:8080}
MONGO_DB: ${MONGO_DB:-sbf}
MONGO_USER: ${MONGO_USER:-admin}
MONGO_PASSWORD: ${MONGO_PASSWORD:-password}
MONGO_AUTH: ${MONGO_AUTH:-auth}
LRS_URL: ${LRL_URL:-127.0.0.1:8080}
DATABASE_PORT: 3306
DATABASE_USER: root
DATABASE_PASSWORD: root
WEBCONNECTOR_URL: http://127.0.0.1:8080
MONGO_HOST: mongo:8083
MONGO_DB: sbf
MONGO_USER: admin
MONGO_PASSWORD: password
MONGO_AUTH: auth
LRS_URL: ${LRL_URL:-http://127.0.0.1:8084}
LRS_AUTH_TOKEN: ${LRL_AUTH_TOKEN:-token}
ports:
- "8080:8080"
Expand All @@ -44,29 +44,34 @@ services:
rasa:
image: ${RASA_IMAGE:-rasa/rasa:3.3.10-full}
command: run --enable-api -m models --cors "*" --debug
ports:
- "5005:5005"
db:
image: mysql:8
platform: ${TARGETPLATFORM:-linux/amd64}
platform: ${MYSQL_TARGETPLATFORM:-linux/amd64}
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD:-root}
MYSQL_DATABASE: ${DATABASE_NAME:-SBF}
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: SBF
MYSQL_INITDB_SQL: /docker-entrypoint-initdb.d/init.sql
volumes:
- ./assets/SBF.sql:/docker-entrypoint-initdb.d/init.sql
- ./assets/mysql-init-scripts:/docker-entrypoint-initdb.d/init.sql
ports:
- "8085:3306"
restart: always

frontend:
build: . # or use image: <your image>
# image: socialbotframework:latest
frontend:
# build: .
image: ${SBF_IMAGE:-registry.tech4comp.dbis.rwth-aachen.de/rwthacis/sbf-utils:master}
environment:
YJS: ${YJS:-localhost:1234}
PORT: ${PORT:-8082}
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-localtestclient}
YJS: localhost:1234
PORT: 8082
OIDC_CLIENT_ID: localtestclient
YJS_RESOURCE_PATH: ${YJS_RESOURCE_PATH:-/socket.io}
RASA_NLU: ${RASA_NLU:-http://rasa:5005}
SBF_MANAGER: ${SBF_MANAGER:-http://localhost:8080/SBFmanager}
RASA_NLU: http://rasa:5005
SBF_MANAGER: http://localhost:8080/SBFmanager
CONTACT_SERVICE_URL: ${CONTACT_SERVICE_URL:-http://localhost:8080/contactservice}
YJS_PROTOCOL: ${YJS_PROTOCOL:-ws}
YJS_PROTOCOL: ws
depends_on:
- yjs
- rasa
Expand All @@ -78,5 +83,34 @@ services:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER:-admin}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-password}
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password

event-log-generator:
image: ${EVENT_LOG_GENERATOR_IMAGE:-registry.tech4comp.dbis.rwth-aachen.de/rwthacis/event-log-generator:master}
environment:
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_HOST: db
MYSQL_PORT: 3306
MYSQL_DATABASE: LAS2PEERMON
ports:
- "8087:8087"
depends_on:
- db

pm4bots:
image: ${PM4BOTS_IMAGE:-registry.tech4comp.dbis.rwth-aachen.de/rwthacis/pm4bots:main}
environment:
- MYSQL_USER=root
- MYSQL_PASSWORD=root
- MYSQL_HOST=db
- MYSQL_PORT=3306
- MYSQL_EVENTS_DB=LAS2PEERMON
- CORS_ORIGIN=http://localhost:8082 # Needed to prevent CORS errors
- DEFAULT_BOT_PASSWORD = actingAgent
- DEVELOPMENT_MODE = true
ports:
- "8088:8088"
depends_on:
- db
16 changes: 16 additions & 0 deletions docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ check_if_exists "$YJS_RESOURCE_PATH" "YJS_RESOURCE_PATH"
check_if_exists "$RASA_NLU" "RASA_NLU"
check_if_exists "$SBF_MANAGER" "SBF_MANAGER"
check_if_exists "$CONTACT_SERVICE_URL" "CONTACT_SERVICE_URL"
check_if_exists "$PM4BOTS_ENDPOINT" "PM4BOTS_ENDPOINT"

#### Set default values ####
export YJS_HOST=${YJS_HOST:-localhost}
Expand All @@ -28,6 +29,7 @@ export OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-localtestclient}
export RASA_NLU=${RASA_NLU:-http://localhost:5005}
export SBF_MANAGER=${SBF_MANAGER:-http://localhost:8080}
export CONTACT_SERVICE_URL=${CONTACT_SERVICE_URL:-http://localhost:8080}
export PM4BOTS_ENDPOINT=${PM4BOTS_ENDPOINT:-http://localhost:8088}

cp config.json.sample config.json

Expand All @@ -39,6 +41,20 @@ sed -i "s=<YJS_RESOURCE_PATH>=$YJS_RESOURCE_PATH=g" config.json
sed -i "s=<CONTACT_SERVICE_URL>=$CONTACT_SERVICE_URL=g" config.json
sed -i "s=<RASA_NLU>=$RASA_NLU=g" config.json
sed -i "s=<SBF_MANAGER_HOST>=$SBF_MANAGER=g" config.json
sed -i "s=<PM4BOTS_ENDPOINT>=$PM4BOTS_ENDPOINT=g" config.json





# if BASE_HREF then append it to the index.html head tag
if [ -n "$BASE_HREF" ]; then
file="index.html"
tag="head"
line_to_add="<base href=\"/$BASE_HREF/\">"
sed -i "/<$tag>/a $line_to_add" "$file"
fi


npm run build:prod
npm run node:prod
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
name="description"
content="An intuitive approach to social bot modeling"
/>
<base href="" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
Expand Down
Loading