├── .gitignore ├── README.md ├── assets ├── ce.png ├── clear_keywords_bar.png ├── keywords_bar.png ├── neurips2021.db ├── oral_url_list_2021-11-13-01-38-UTC.txt ├── poster_url_list_2021-11-13-01-43-UTC.txt ├── spotlight_url_list_2021-11-13-01-38-UTC.txt └── stats_bar.png ├── database.py ├── neurips2021_consistency_experiments.html ├── neurips2021_consistency_experiments_template.html ├── neurips2021_statistics.html ├── neurips2021_submissions.html ├── neurips2021_submissions_template.html ├── parse_data.ipynb ├── plot.ipynb └── web_src ├── fontawesome-5.15.4 ├── css │ ├── all.css │ ├── all.min.css │ ├── brands.css │ ├── brands.min.css │ ├── fontawesome.css │ ├── fontawesome.min.css │ ├── regular.css │ ├── regular.min.css │ ├── solid.css │ ├── solid.min.css │ ├── svg-with-js.css │ ├── svg-with-js.min.css │ ├── v4-shims.css │ └── v4-shims.min.css └── webfonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ └── fa-solid-900.woff2 ├── noto_sans.css ├── stats.js ├── style.css └── tablesort.min.js /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .ipynb_checkpoints/ 3 | chromedriver_win32/ 4 | *.zip 5 | !/assets/data.zip 6 | __pycache__/ 7 | /assets/data/ 8 | .DS_Store 9 | external/ 10 | assets/back_neurips2021.db 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NeurIPS2021 Statistics 2 | 3 | - __More detailed data is available [online](https://guoqiangwei.xyz/neurips2021_stats/neurips2021_submissions.html).__ 4 | - ICLR 2022 [statistics](https://github.com/weigq/iclr2022_stats). 5 | 6 | ## __Note__ 7 | 8 | - The statistics are collected __only from finally accepted submissions in main conference__. 9 | - __Finally rejected submissions are excluded__, most of these are not available in public. 10 | - __Workshop and Track submissions are excluded__. 11 | 12 | ### All submissions 13 | 14 | - `2334` submissions are finally accepted. 15 | - `298(13%)` submissions received two set of reviews. 16 | - `2632(=2334+298)` set of reviews in total. 17 | - `6.36` average rating of all `2632` ratings. 18 | - 19 | |Decision|#|rating avg.|rating max|rating min| 20 | |---|---|---|---|---| 21 | |Oral|56|7.56|8.75|6.33| 22 | |Spotlight|282|7.01|8.33|5.50| 23 | |Poster|2095|6.36|8.00|4.67| 24 | |Reject|199|5.19|7.33|3.75| 25 | |Total|2632|6.36|8.75|3.75| 26 | - Ratings distribution 27 | ![](assets/stats_bar.png) 28 | - Top `40` original keywords 29 | ![](assets/keywords_bar.png) 30 | - Top `30` keywords after merging some redundancies 31 | ![](assets/clear_keywords_bar.png) 32 | 33 | ### Consistency experiment 34 | 35 | - `298` submissions received two set of reviews. 36 | - `221(74%)` submissions received two disagreed decisions. 37 | - `77(26%)` submissions received two agreed decisions. 38 | - `199(67%)` submissions received one `Reject` decision. 39 | - [Details](https://guoqiangwei.xyz/neurips2021_stats/neurips2021_consistency_experiments.html) (the two decisions are ordered.) 40 | 41 | ![](assets/ce.png) 42 | 43 | ## Acknowledgement 44 | 45 | Some code is motivated by [ICLR2019-OpenReviewData](https://github.com/shaohua0116/ICLR2019-OpenReviewData) and [iclr2022_stats](https://github.com/weigq/iclr2022_stats). 46 | -------------------------------------------------------------------------------- /assets/ce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/ce.png -------------------------------------------------------------------------------- /assets/clear_keywords_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/clear_keywords_bar.png -------------------------------------------------------------------------------- /assets/keywords_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/keywords_bar.png -------------------------------------------------------------------------------- /assets/neurips2021.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/neurips2021.db -------------------------------------------------------------------------------- /assets/oral_url_list_2021-11-13-01-38-UTC.txt: -------------------------------------------------------------------------------- 1 | https://openreview.net/forum?id=IVV1putQ90 2 | https://openreview.net/forum?id=an8FSGbuCw 3 | https://openreview.net/forum?id=AzmEMstdf3o 4 | https://openreview.net/forum?id=GlEWs-V9boR 5 | https://openreview.net/forum?id=kwN2xvZ2XZ9 6 | https://openreview.net/forum?id=5JvnsAdf6Vz 7 | https://openreview.net/forum?id=Tqx7nJp7PR 8 | https://openreview.net/forum?id=9DlCh34E1bN 9 | https://openreview.net/forum?id=uqv8-U4lKBe 10 | https://openreview.net/forum?id=S9ZyhWC17wJ 11 | https://openreview.net/forum?id=z71OSKqTFh7 12 | https://openreview.net/forum?id=o-RYNVOlxA8 13 | https://openreview.net/forum?id=-oUhJJILWHb 14 | https://openreview.net/forum?id=z5-chidgZU3 15 | https://openreview.net/forum?id=n11B-1GmTJl 16 | https://openreview.net/forum?id=Kvb0482Ysaf 17 | https://openreview.net/forum?id=o6-k168bBD8 18 | https://openreview.net/forum?id=8ygF02Zm51q 19 | https://openreview.net/forum?id=dfyjet3BMKA 20 | https://openreview.net/forum?id=YIyYkoJX2eA 21 | https://openreview.net/forum?id=knKJgksd7kA 22 | https://openreview.net/forum?id=e8WWUBeafM 23 | https://openreview.net/forum?id=9SD2Rb3NiWu 24 | https://openreview.net/forum?id=WnJXcebN7hX 25 | https://openreview.net/forum?id=UVQNdLIELSU 26 | https://openreview.net/forum?id=VXeoK3fJZhW 27 | https://openreview.net/forum?id=XeeTWJvAQl 28 | https://openreview.net/forum?id=kB8eks2Edt8 29 | https://openreview.net/forum?id=3qYgdGj9Svt 30 | https://openreview.net/forum?id=ZBfUo_dr4H 31 | https://openreview.net/forum?id=qGvMv3undNJ 32 | https://openreview.net/forum?id=mjyMGFL8N2 33 | https://openreview.net/forum?id=6vaActvpcp3 34 | https://openreview.net/forum?id=kt_s_ZbYvtP 35 | https://openreview.net/forum?id=wfJCeMS-jH 36 | https://openreview.net/forum?id=lHmhW2zmVN 37 | https://openreview.net/forum?id=WKxmP7bcFvt 38 | https://openreview.net/forum?id=ZRPRjfAF3yd 39 | https://openreview.net/forum?id=yaxePRTOhqk 40 | https://openreview.net/forum?id=N5hQI_RowVA 41 | https://openreview.net/forum?id=et2st4Jqhc 42 | https://openreview.net/forum?id=FyOhThdDBM 43 | https://openreview.net/forum?id=aMZJBOiOOPg 44 | https://openreview.net/forum?id=026hEw26i3- 45 | https://openreview.net/forum?id=uJGObgFU0lU 46 | https://openreview.net/forum?id=gEXbJVhVK5_ 47 | https://openreview.net/forum?id=cVwc7IHWEWi 48 | https://openreview.net/forum?id=napaTaDQ0lY 49 | https://openreview.net/forum?id=0CDKgyYaxC8 50 | https://openreview.net/forum?id=QkljT4mrfs 51 | https://openreview.net/forum?id=mfQxdSMWOF 52 | https://openreview.net/forum?id=QT9ulkiN-LX 53 | https://openreview.net/forum?id=Ecuu521mPpG 54 | https://openreview.net/forum?id=bGfDnD7xo-v 55 | https://openreview.net/forum?id=CRFSrgYtV7m 56 | https://openreview.net/forum?id=vY2HsMWG2b_ 57 | https://openreview.net/forum?id=bYi_2708mKK 58 | https://openreview.net/forum?id=-zALR_-372y 59 | https://openreview.net/forum?id=Owggnutk6lE 60 | https://openreview.net/forum?id=QmxFsofRvW9 -------------------------------------------------------------------------------- /assets/spotlight_url_list_2021-11-13-01-38-UTC.txt: -------------------------------------------------------------------------------- 1 | https://openreview.net/forum?id=2zCRcTafea 2 | https://openreview.net/forum?id=wgeK563QgSw 3 | https://openreview.net/forum?id=68B1ezcffDc 4 | https://openreview.net/forum?id=XL9DWRG7mJn 5 | https://openreview.net/forum?id=tMFTT3BDEK9 6 | https://openreview.net/forum?id=kLJjmSrRB3S 7 | https://openreview.net/forum?id=iX0TSH45eOd 8 | https://openreview.net/forum?id=9rphbXqgmqM 9 | https://openreview.net/forum?id=9BnCwiXB0ty 10 | https://openreview.net/forum?id=Dzy8YEm5dX 11 | https://openreview.net/forum?id=r6cNUjS8cm0 12 | https://openreview.net/forum?id=OItvP2-i9j 13 | https://openreview.net/forum?id=yaksQCYcRs 14 | https://openreview.net/forum?id=lVmIjQiJJSr 15 | https://openreview.net/forum?id=YqYt54gU-XV 16 | https://openreview.net/forum?id=rndqBJsGoKh 17 | https://openreview.net/forum?id=NvXnBQQw0Jb 18 | https://openreview.net/forum?id=DPHsCQ8OpA 19 | https://openreview.net/forum?id=5-GXHFNbq_U 20 | https://openreview.net/forum?id=OkFPq7ZtsQ 21 | https://openreview.net/forum?id=_vypaVMDs51 22 | https://openreview.net/forum?id=jlchsFOLfeF 23 | https://openreview.net/forum?id=sf2BxJNXC3K 24 | https://openreview.net/forum?id=T6m9bNI7C__ 25 | https://openreview.net/forum?id=NtivXxYNhjc 26 | https://openreview.net/forum?id=fpQojkIV5q8 27 | https://openreview.net/forum?id=4h4oqp-ATxb 28 | https://openreview.net/forum?id=fzwx-pzQGxe 29 | https://openreview.net/forum?id=SJHRf5nW93 30 | https://openreview.net/forum?id=XwetFe0U63c 31 | https://openreview.net/forum?id=1bBF5Zq1YHz 32 | https://openreview.net/forum?id=wZrOOO9XBn 33 | https://openreview.net/forum?id=ALvt7nXa2q 34 | https://openreview.net/forum?id=az0BBDjDvwD 35 | https://openreview.net/forum?id=vGjTOxss-Dl 36 | https://openreview.net/forum?id=hzioAx8g9x 37 | https://openreview.net/forum?id=BdKxQp0iBi8 38 | https://openreview.net/forum?id=s-NI4H4e3Rf 39 | https://openreview.net/forum?id=pbfAgoc_l2w 40 | https://openreview.net/forum?id=0vaPiltED1N 41 | https://openreview.net/forum?id=8RnRLP4SHe0 42 | https://openreview.net/forum?id=Jyxmk4wUoQV 43 | https://openreview.net/forum?id=LBhruMnhgIB 44 | https://openreview.net/forum?id=yNzF41lHYV 45 | https://openreview.net/forum?id=6tM849_6RF9 46 | https://openreview.net/forum?id=IaM7U4J-w3c 47 | https://openreview.net/forum?id=8AgtfqiHUhs 48 | https://openreview.net/forum?id=rxud5HYKX55 49 | https://openreview.net/forum?id=3GpcwM1slH8 50 | https://openreview.net/forum?id=bJz3cFePTna 51 | https://openreview.net/forum?id=sNKpWhzEDWS 52 | https://openreview.net/forum?id=usxt30HpW66 53 | https://openreview.net/forum?id=q0h6av9Vi8 54 | https://openreview.net/forum?id=o2mbl-Hmfgd 55 | https://openreview.net/forum?id=MDMV2SxCboX 56 | https://openreview.net/forum?id=rm0I5y2zkG8 57 | https://openreview.net/forum?id=W2rRWbI4CTW 58 | https://openreview.net/forum?id=RQfcckT1M_4 59 | https://openreview.net/forum?id=Aeo-xqtb5p 60 | https://openreview.net/forum?id=_8vCV7AxPZ 61 | https://openreview.net/forum?id=fIn4wLS2XzU 62 | https://openreview.net/forum?id=mPTfR3Upe0o 63 | https://openreview.net/forum?id=aohkNJxjYJX 64 | https://openreview.net/forum?id=9J2wV5E1Aq_ 65 | https://openreview.net/forum?id=L5vbEVIePyb 66 | https://openreview.net/forum?id=aVKRtX-0rdW 67 | https://openreview.net/forum?id=ELndVeVA-TR 68 | https://openreview.net/forum?id=CLCVcl1rSPP 69 | https://openreview.net/forum?id=Wkq4hKpGxWv 70 | https://openreview.net/forum?id=AnJUTpZiiWD 71 | https://openreview.net/forum?id=Gl3ADZLz9ir 72 | https://openreview.net/forum?id=oAxm0Wz7Bv 73 | https://openreview.net/forum?id=NE0YlkgRo9x 74 | https://openreview.net/forum?id=mSuBvrUJFsF 75 | https://openreview.net/forum?id=877bJocr-w 76 | https://openreview.net/forum?id=ZAOrF0mYSYU 77 | https://openreview.net/forum?id=uw4mcO8nz3n 78 | https://openreview.net/forum?id=af_hng9tuNj 79 | https://openreview.net/forum?id=FHQBDiMwvK 80 | https://openreview.net/forum?id=RQUl8gZnN7O 81 | https://openreview.net/forum?id=VJ7u6SbqorK 82 | https://openreview.net/forum?id=GPwmbxtG9Ow 83 | https://openreview.net/forum?id=-S1V_oEOE52 84 | https://openreview.net/forum?id=_1HETTYd7Wr 85 | https://openreview.net/forum?id=wvylaMP20_b 86 | https://openreview.net/forum?id=8V2hZW0d2aS 87 | https://openreview.net/forum?id=4c1EiEvivpx 88 | https://openreview.net/forum?id=QwNLVId9Df 89 | https://openreview.net/forum?id=43fmQ-db-yJ 90 | https://openreview.net/forum?id=o4t543Oon5G 91 | https://openreview.net/forum?id=zAuDbrHC6fq 92 | https://openreview.net/forum?id=YscYPF8bU13 93 | https://openreview.net/forum?id=tjdHCnPqoo 94 | https://openreview.net/forum?id=GEm4o9A6Jfb 95 | https://openreview.net/forum?id=16r0qOLv_2i 96 | https://openreview.net/forum?id=X4_aAfxsOoE 97 | https://openreview.net/forum?id=YFysbLCFdIe 98 | https://openreview.net/forum?id=jNq-i1zd0t9 99 | https://openreview.net/forum?id=bXTxva_xx6r 100 | https://openreview.net/forum?id=wdIDt--oLmV 101 | https://openreview.net/forum?id=JpDlWGTBHB 102 | https://openreview.net/forum?id=TgDTMyA9Nk 103 | https://openreview.net/forum?id=fpvUKdqcPV 104 | https://openreview.net/forum?id=WlkzLjxpYe 105 | https://openreview.net/forum?id=UDe_F-4EeHd 106 | https://openreview.net/forum?id=_MQBBpJzoZd 107 | https://openreview.net/forum?id=Ghk0AJ8XtVx 108 | https://openreview.net/forum?id=cx2q4cOBnne 109 | https://openreview.net/forum?id=SFLSOd_hv-4 110 | https://openreview.net/forum?id=cCQAzuT5q4 111 | https://openreview.net/forum?id=aXbuWbta0V8 112 | https://openreview.net/forum?id=U68DvXABbJ3 113 | https://openreview.net/forum?id=_OPHJ7nkZoC 114 | https://openreview.net/forum?id=SEz-FQltAYN 115 | https://openreview.net/forum?id=sri2nuQC4Y 116 | https://openreview.net/forum?id=oErdeq9ajjX 117 | https://openreview.net/forum?id=zcrC_XDUFd 118 | https://openreview.net/forum?id=RX6PrcpXP- 119 | https://openreview.net/forum?id=Yt89iqqswiM 120 | https://openreview.net/forum?id=fOaks7LY5R 121 | https://openreview.net/forum?id=LAKplpLMbP8 122 | https://openreview.net/forum?id=LzwfcoEiB5O 123 | https://openreview.net/forum?id=l4DQWgjbZg 124 | https://openreview.net/forum?id=hJOLFJIJ_zy 125 | https://openreview.net/forum?id=lZJHxMxUhV_ 126 | https://openreview.net/forum?id=MQQeeDiO5vv 127 | https://openreview.net/forum?id=-t9LPHRYKmi 128 | https://openreview.net/forum?id=e2gqGkFjDHg 129 | https://openreview.net/forum?id=xB4lGVLvXDz 130 | https://openreview.net/forum?id=HbViCqfbd7 131 | https://openreview.net/forum?id=cc_AXK6rWPJ 132 | https://openreview.net/forum?id=rMKTq-ca0qu 133 | https://openreview.net/forum?id=vPVTsuJtGky 134 | https://openreview.net/forum?id=AvVDR8R-kQX 135 | https://openreview.net/forum?id=rxAS126OC-A 136 | https://openreview.net/forum?id=iFadi3f5V5I 137 | https://openreview.net/forum?id=cSVl6MtPIEX 138 | https://openreview.net/forum?id=REXvo_lsQS9 139 | https://openreview.net/forum?id=79zWncwO2p 140 | https://openreview.net/forum?id=1Kof-nkmQB8 141 | https://openreview.net/forum?id=TZPidZS3r_z 142 | https://openreview.net/forum?id=WYrC0Aentah 143 | https://openreview.net/forum?id=D7bPRxNt_AP 144 | https://openreview.net/forum?id=-mGv2KxQ43D 145 | https://openreview.net/forum?id=73OmmrCfSyy 146 | https://openreview.net/forum?id=GEKTIKvslP 147 | https://openreview.net/forum?id=lMgDDWb1ULW 148 | https://openreview.net/forum?id=UoVpP8R2Vn 149 | https://openreview.net/forum?id=B9yXBaZDUxp 150 | https://openreview.net/forum?id=6fmgB38rLI1 151 | https://openreview.net/forum?id=ebIORrYImx 152 | https://openreview.net/forum?id=dkw9OQMn1t 153 | https://openreview.net/forum?id=DTA7Bgrai-Q 154 | https://openreview.net/forum?id=oumDUrf2dAB 155 | https://openreview.net/forum?id=YAv9enSDW-a 156 | https://openreview.net/forum?id=sNw3VBPL7rg 157 | https://openreview.net/forum?id=1yeYYtLqq7K 158 | https://openreview.net/forum?id=WBVbl8POq8v 159 | https://openreview.net/forum?id=10anajdGZm 160 | https://openreview.net/forum?id=iKYO63MOWwi 161 | https://openreview.net/forum?id=Bl0GlLmNGLV 162 | https://openreview.net/forum?id=-JJy-Hw8TFB 163 | https://openreview.net/forum?id=neRSyESg1GU 164 | https://openreview.net/forum?id=7pU_P1IbePx 165 | https://openreview.net/forum?id=5ga5mfbGsRM 166 | https://openreview.net/forum?id=Xhj3PdCf4q9 167 | https://openreview.net/forum?id=Nfbe1usrgx4 168 | https://openreview.net/forum?id=S2-j0ZegyrE 169 | https://openreview.net/forum?id=xwGeq7I4Opv 170 | https://openreview.net/forum?id=we8d1FjibAc 171 | https://openreview.net/forum?id=-1rrzmJCp4 172 | https://openreview.net/forum?id=KRODJAa6pzE 173 | https://openreview.net/forum?id=StbpmmlJbH 174 | https://openreview.net/forum?id=fNKwtwJHjx 175 | https://openreview.net/forum?id=ehzq1YQrucI 176 | https://openreview.net/forum?id=J-pFhOiGVn7 177 | https://openreview.net/forum?id=vrkQ07gp0kq 178 | https://openreview.net/forum?id=t1czgrQOrwW 179 | https://openreview.net/forum?id=INBO6h9gtG 180 | https://openreview.net/forum?id=ST1P270dwOE 181 | https://openreview.net/forum?id=ejmqyWW0MK6 182 | https://openreview.net/forum?id=CU8qQMhB3dh 183 | https://openreview.net/forum?id=U0k2DVAED5 184 | https://openreview.net/forum?id=ekKaTdleJVq 185 | https://openreview.net/forum?id=CEkbBN_-Ja8 186 | https://openreview.net/forum?id=iQICgKcrGpE 187 | https://openreview.net/forum?id=qxKh67NNJ2I 188 | https://openreview.net/forum?id=W9oywyjO8VN 189 | https://openreview.net/forum?id=s6MWPKgL5XB 190 | https://openreview.net/forum?id=OSLVL-tIBei 191 | https://openreview.net/forum?id=e_yvNqkJKAW 192 | https://openreview.net/forum?id=4fLr7H5D_eT 193 | https://openreview.net/forum?id=pZHGKM9mAp 194 | https://openreview.net/forum?id=_RSgXL8gNnx 195 | https://openreview.net/forum?id=LAwuz_L9U9j 196 | https://openreview.net/forum?id=I2pS-Lg7Xl 197 | https://openreview.net/forum?id=ThbM9_6DNU 198 | https://openreview.net/forum?id=prVxS4W_ds 199 | https://openreview.net/forum?id=rC3zu-OqnII 200 | https://openreview.net/forum?id=KpKWDyXq17d 201 | https://openreview.net/forum?id=1H6zA8wIhKk 202 | https://openreview.net/forum?id=j3eGyNMPvh 203 | https://openreview.net/forum?id=c34cJa9uZn 204 | https://openreview.net/forum?id=-16dlERMZkO 205 | https://openreview.net/forum?id=B83B16bWvuI 206 | https://openreview.net/forum?id=kpTMw7ZMJB 207 | https://openreview.net/forum?id=Q32U7dzWXpc 208 | https://openreview.net/forum?id=8kk8a_zvWua 209 | https://openreview.net/forum?id=4bKbEP9b65v 210 | https://openreview.net/forum?id=GSXEx6iYd0 211 | https://openreview.net/forum?id=6p-zJaheTW 212 | https://openreview.net/forum?id=b8Kl8mcK6tb 213 | https://openreview.net/forum?id=QCPY2eMXYs 214 | https://openreview.net/forum?id=YV3uoawS5KK 215 | https://openreview.net/forum?id=UQsbDkuGM0N 216 | https://openreview.net/forum?id=qb0qTdxPWzY 217 | https://openreview.net/forum?id=jar9C-V8GH 218 | https://openreview.net/forum?id=QpRufbD4xdn 219 | https://openreview.net/forum?id=b83ibRX55T 220 | https://openreview.net/forum?id=P9_gOq5w7Eb 221 | https://openreview.net/forum?id=HWshP75OfKR 222 | https://openreview.net/forum?id=l-0rLXvctI 223 | https://openreview.net/forum?id=w6iVxEdh6bi 224 | https://openreview.net/forum?id=LU687itn08w 225 | https://openreview.net/forum?id=vLPqnPf9k0 226 | https://openreview.net/forum?id=hqDb8d65Vfh 227 | https://openreview.net/forum?id=9FREJhzo1q 228 | https://openreview.net/forum?id=85BzB3WP-qj 229 | https://openreview.net/forum?id=7_M2f2DEIEK 230 | https://openreview.net/forum?id=eIdzV1-Jdwv 231 | https://openreview.net/forum?id=yAvCV6NwWQ 232 | https://openreview.net/forum?id=PIcuKeiWvj- 233 | https://openreview.net/forum?id=0lz69oI5iZP 234 | https://openreview.net/forum?id=uSQQH7Fj5U 235 | https://openreview.net/forum?id=HKtsGW-lNbw 236 | https://openreview.net/forum?id=R6nFQy2vwQq 237 | https://openreview.net/forum?id=oE5lMpPRm0 238 | https://openreview.net/forum?id=7rYDxRb1eSa 239 | https://openreview.net/forum?id=EvhsTX6GMyM 240 | https://openreview.net/forum?id=mIki_kyHpLb 241 | https://openreview.net/forum?id=9PBxTCg0F6m 242 | https://openreview.net/forum?id=ake1XpIrDKN 243 | https://openreview.net/forum?id=gKyyBfMM4Y 244 | https://openreview.net/forum?id=9uXILaIam0 245 | https://openreview.net/forum?id=BuoTowxp-9 246 | https://openreview.net/forum?id=ii5mGEbRo93 247 | https://openreview.net/forum?id=C0GmZH2RnVR 248 | https://openreview.net/forum?id=X0ein5pH4YJ 249 | https://openreview.net/forum?id=AklttWFnxS9 250 | https://openreview.net/forum?id=4JHdr4lgpVT 251 | https://openreview.net/forum?id=GvU4RvMwlGo 252 | https://openreview.net/forum?id=f2Llmm_z5Sm 253 | https://openreview.net/forum?id=P84bifNCpFQ 254 | https://openreview.net/forum?id=dsmxf7FKiaY 255 | https://openreview.net/forum?id=wHkKTW2wrmm 256 | https://openreview.net/forum?id=5Re03X8Iigi 257 | https://openreview.net/forum?id=5CGPY2VeEGb 258 | https://openreview.net/forum?id=hg0s8od-jd 259 | https://openreview.net/forum?id=LZDiWaC9CGL 260 | https://openreview.net/forum?id=bXehDYUjjXi 261 | https://openreview.net/forum?id=k-ghaB9VZBw 262 | https://openreview.net/forum?id=8PA2nX9v_r2 263 | https://openreview.net/forum?id=HnLDt9v6Q-j 264 | https://openreview.net/forum?id=5fPBtLSGk21 265 | https://openreview.net/forum?id=27qon5Ut4PSl 266 | https://openreview.net/forum?id=SvrYl-FDq2 267 | https://openreview.net/forum?id=OU98jZWS3x_ 268 | https://openreview.net/forum?id=AAWuCvzaVt 269 | https://openreview.net/forum?id=te8iyHjbPQd 270 | https://openreview.net/forum?id=aUuTEEcyY_ 271 | https://openreview.net/forum?id=Re_VXFOyyO 272 | https://openreview.net/forum?id=MxE7xFzv0N8 273 | https://openreview.net/forum?id=MgsSQPOYNx1 274 | https://openreview.net/forum?id=YA0wIYi-yM3 275 | https://openreview.net/forum?id=_tQns0wUl_3 276 | https://openreview.net/forum?id=vMWHOumNj5 277 | https://openreview.net/forum?id=K5YKjaMjbja 278 | https://openreview.net/forum?id=syIj5ggwCYJ 279 | https://openreview.net/forum?id=l7-DBWawSZH 280 | https://openreview.net/forum?id=bc-f0ZBNker 281 | https://openreview.net/forum?id=9XAxGtK5cdN 282 | https://openreview.net/forum?id=ClwfZc4ooKM 283 | https://openreview.net/forum?id=wtLW-Amuds 284 | https://openreview.net/forum?id=OJLaKwiXSbx 285 | https://openreview.net/forum?id=RcbphT7qjTq -------------------------------------------------------------------------------- /assets/stats_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/stats_bar.png -------------------------------------------------------------------------------- /database.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | import json 6 | import operator 7 | from tqdm import tqdm 8 | import sqlite3 9 | 10 | 11 | class DataBase: 12 | def __init__(self, db_path: str): 13 | self.db_path = db_path 14 | self.database = None 15 | self.cursor = None 16 | 17 | 18 | def initialize(self, create: bool = False): 19 | self.database = sqlite3.connect(self.db_path, check_same_thread=False) 20 | self.cursor = self.database.cursor() 21 | 22 | if create: 23 | _cmd = f"CREATE TABLE submissions " \ 24 | f"(id int, url text, title text, keywords text, authors text, " \ 25 | f"num_decision int, final_decision text, now_decision text, " \ 26 | f"num_rating int, rating_avg float, rating_std float, ratings text)" 27 | self.cursor.execute(_cmd) 28 | 29 | def write_item(self, 30 | _id: int, url: str, title: str, 31 | keywords: list, authors: str, 32 | num_decision: int, final_decision: str, now_decision: str, 33 | ratings: list): 34 | title = title.replace('\\', '').replace("\"", "'") 35 | num_rating = len(ratings) 36 | rating_avg = np.mean(ratings).item() 37 | rating_std = np.std(ratings).item() 38 | ratings = ', '.join(map(str, ratings)) 39 | _cmd = f"insert into submissions values ( " \ 40 | f"'{_id}', \"{url}\", \"{title}\", \"{keywords}\", \"{authors}\", " \ 41 | f"'{num_decision}', \"{final_decision}\", \"{now_decision}\", " \ 42 | f"'{num_rating}', '{rating_avg}', " \ 43 | f"'{rating_std}', '{ratings}'" \ 44 | f" )" 45 | self.cursor.execute(_cmd) 46 | self.database.commit() 47 | 48 | 49 | def close(self): 50 | self.cursor.close() 51 | self.database.close() 52 | -------------------------------------------------------------------------------- /neurips2021_consistency_experiments_template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NeurIPS2021 Statistics 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | NeurIPS 2021 Statistics 14 |
15 | 16 | 17 | Fork me on 18 | 19 | 20 | 21 |
22 | 45 |
46 | 47 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 |
#TitleRatingstdRatings👍👍👍CE
88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /neurips2021_statistics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NeurIPS2021 Statistics 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | NeurIPS 2021 Statistics 14 |
15 | 16 | 17 | Fork me on 18 | 19 | 20 | 21 | 32 | 33 |
34 | 107 |
108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /neurips2021_submissions_template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NeurIPS2021 Statistics 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | NeurIPS 2021 Statistics 14 |
15 | 16 | 17 | Fork me on 18 | 19 | 20 | 21 |
22 | 45 |
46 | 47 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 |
#TitleRatingstdRatings👍👍👍CE
88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /parse_data.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "id": "b15b9499", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "%load_ext autoreload\n", 11 | "%autoreload 2\n", 12 | "\n", 13 | "import re\n", 14 | "import os\n", 15 | "import json\n", 16 | "import time\n", 17 | "import sqlite3\n", 18 | "import datetime\n", 19 | "import operator\n", 20 | "import numpy as np\n", 21 | "from tqdm.notebook import tqdm, trange\n", 22 | "\n", 23 | "from selenium import webdriver\n", 24 | "from selenium.webdriver.chrome.service import Service\n", 25 | "from selenium.webdriver.chrome.options import Options\n", 26 | "from selenium.webdriver.common.by import By\n", 27 | "from selenium.common.exceptions import TimeoutException\n", 28 | "from selenium.webdriver.support.ui import WebDriverWait\n", 29 | "from selenium.webdriver.support import expected_conditions as EC\n", 30 | "\n", 31 | "# from src import DataBase" 32 | ] 33 | }, 34 | { 35 | "cell_type": "markdown", 36 | "id": "d9030e10", 37 | "metadata": {}, 38 | "source": [ 39 | "## Get submission list\n", 40 | "\n", 41 | "Save urls to txt file" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": null, 47 | "id": "5b107c8e", 48 | "metadata": {}, 49 | "outputs": [], 50 | "source": [ 51 | "def get_item_url(panel, url_list, page_id):\n", 52 | " # find all items in current page\n", 53 | " item_list = panel.find_elements(By.CLASS_NAME, \"note\")\n", 54 | " item_list_len = len(item_list)\n", 55 | " for i in trange(item_list_len, desc=f\"->{page_id}\"):\n", 56 | " # the fist is the paper title and url\n", 57 | " item = item_list[i].find_element(By.TAG_NAME, 'a')\n", 58 | " url_list.append(item.get_attribute('href').strip()) \n", 59 | " \n", 60 | " \n", 61 | "def get_url_list_for_tab(panel, tab_name):\n", 62 | " # get totoal page number\n", 63 | " _right_arrow = panel.find_elements(By.CLASS_NAME, 'right-arrow')[-1]\n", 64 | " total_pages = int(_right_arrow.get_attribute('data-page-number'))\n", 65 | " \n", 66 | " # loop all pages\n", 67 | " url_list = []\n", 68 | " for page_id in trange(total_pages, desc=tab_name):\n", 69 | " get_item_url(panel, url_list, page_id)\n", 70 | " \n", 71 | " if page_id == total_pages - 1:\n", 72 | " continue\n", 73 | " \n", 74 | " # the first item\n", 75 | " flag = panel.find_element(By.CLASS_NAME, \"note\").text\n", 76 | " \n", 77 | " time.sleep(1.5)\n", 78 | " \n", 79 | " # click to jump to next page\n", 80 | " next_page_btn = panel.find_element(By.CSS_SELECTOR, \"li[class=' right-arrow']\")\n", 81 | " next_page_btn.find_element(By.TAG_NAME, 'a').click()\n", 82 | " \n", 83 | " # jump to next page\n", 84 | " jumped = False\n", 85 | " num_try = 0\n", 86 | " while not jumped:\n", 87 | " time.sleep(1)\n", 88 | " _flag = panel.find_element(By.CLASS_NAME, \"note\").text\n", 89 | " if _flag != flag:\n", 90 | " jumped = True\n", 91 | " num_try += 1\n", 92 | " if num_try > 1000:\n", 93 | " break\n", 94 | " \n", 95 | " return url_list\n", 96 | " " 97 | ] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": null, 102 | "id": "f4ac0d39", 103 | "metadata": {}, 104 | "outputs": [], 105 | "source": [ 106 | "s = Service('/opt/homebrew/bin/chromedriver')\n", 107 | "op = Options()\n", 108 | "op.add_argument('headless')\n", 109 | "for tab_name in ['oral', 'spotlight', 'poster']:\n", 110 | " # driver = webdriver.Chrome(service=s, options=op)\n", 111 | " driver = webdriver.Chrome(service=s)\n", 112 | " driver.get(f'https://openreview.net/group?id=NeurIPS.cc/2021/Conference#{tab_name}-presentations')\n", 113 | " time.sleep(2)\n", 114 | " tabpanel = driver.find_element(By.ID, f'{tab_name}-presentations')\n", 115 | " url_list = get_url_list_for_tab(tabpanel, tab_name)\n", 116 | " \n", 117 | " # save to file\n", 118 | " save_path = f\"assets/{tab_name}_url_list_\" \\\n", 119 | " f\"{datetime.datetime.now():%Y-%m-%d-%H:%M-UTC}.txt\"\n", 120 | " with open(save_path, 'w') as f:\n", 121 | " f.write('\\n'.join(url_list)) \n", 122 | " \n", 123 | " # quit\n", 124 | " driver.quit()\n" 125 | ] 126 | }, 127 | { 128 | "cell_type": "markdown", 129 | "id": "0d0d75c2", 130 | "metadata": {}, 131 | "source": [ 132 | "## Parse each item" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": null, 138 | "id": "79d3d0c7", 139 | "metadata": {}, 140 | "outputs": [], 141 | "source": [ 142 | "# read url list\n", 143 | "url_dict = {}\n", 144 | "text_files = os.listdir('assets/')\n", 145 | "for text_file in text_files:\n", 146 | " if text_file.endswith('.txt'):\n", 147 | " cat = text_file.split('_')[0]\n", 148 | " with open(os.path.join('assets', text_file), 'r') as f:\n", 149 | " _urls = f.readlines()\n", 150 | " for _url in _urls:\n", 151 | " if len(_url.strip()) > 0:\n", 152 | " url_dict.update({_url: cat})\n", 153 | "num_items = len(url_dict)\n", 154 | "print(f'Total {num_items} items')" 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "execution_count": null, 160 | "id": "751bf949", 161 | "metadata": {}, 162 | "outputs": [], 163 | "source": [ 164 | "class DataBase:\n", 165 | " def __init__(self, db_path: str):\n", 166 | " self.db_path = db_path\n", 167 | " self.database = None\n", 168 | " self.cursor = None\n", 169 | " \n", 170 | "\n", 171 | " def initialize(self, create: bool = False):\n", 172 | " self.database = sqlite3.connect(self.db_path, check_same_thread=False)\n", 173 | " self.cursor = self.database.cursor()\n", 174 | " \n", 175 | " if create:\n", 176 | " _cmd = f\"CREATE TABLE submissions \" \\\n", 177 | " f\"(id int, url text, title text, keywords text, authors text, \" \\\n", 178 | " f\"num_decision int, final_decision text, now_decision text, \" \\\n", 179 | " f\"num_rating int, rating_avg float, rating_std float, ratings text)\"\n", 180 | " self.cursor.execute(_cmd)\n", 181 | " \n", 182 | " def write_item(self, \n", 183 | " _id: int, url: str, title: str, \n", 184 | " keywords: list, authors: str, \n", 185 | " num_decision: int, final_decision: str, now_decision: str, \n", 186 | " ratings: list):\n", 187 | " title = title.replace('\\\\', '').replace(\"\\\"\", \"'\")\n", 188 | " num_rating = len(ratings)\n", 189 | " rating_avg = np.mean(ratings).item()\n", 190 | " rating_std = np.std(ratings).item()\n", 191 | " ratings = ', '.join(map(str, ratings))\n", 192 | " _cmd = f\"insert into submissions values ( \" \\\n", 193 | " f\"'{_id}', \\\"{url}\\\", \\\"{title}\\\", \\\"{keywords}\\\", \\\"{authors}\\\", \" \\\n", 194 | " f\"'{num_decision}', \\\"{final_decision}\\\", \\\"{now_decision}\\\", \" \\\n", 195 | " f\"'{num_rating}', '{rating_avg}', \" \\\n", 196 | " f\"'{rating_std}', '{ratings}'\" \\\n", 197 | " f\" )\"\n", 198 | "# print(_cmd)\n", 199 | " self.cursor.execute(_cmd)\n", 200 | " self.database.commit()\n", 201 | " \n", 202 | "\n", 203 | " def close(self):\n", 204 | " self.cursor.close()\n", 205 | " self.database.close()" 206 | ] 207 | }, 208 | { 209 | "cell_type": "code", 210 | "execution_count": null, 211 | "id": "3a548800", 212 | "metadata": {}, 213 | "outputs": [], 214 | "source": [ 215 | "db = DataBase('assets/neurips2021.db')\n", 216 | "# db.initialize(create=True)\n", 217 | "db.initialize(create=False)" 218 | ] 219 | }, 220 | { 221 | "cell_type": "code", 222 | "execution_count": null, 223 | "id": "b27c541d", 224 | "metadata": {}, 225 | "outputs": [], 226 | "source": [ 227 | "s = Service('/opt/homebrew/bin/chromedriver')\n", 228 | "op = Options()\n", 229 | "op.add_argument('headless')\n", 230 | "driver = webdriver.Chrome(service=s, options=op)" 231 | ] 232 | }, 233 | { 234 | "cell_type": "code", 235 | "execution_count": null, 236 | "id": "fe8651f8", 237 | "metadata": {}, 238 | "outputs": [], 239 | "source": [ 240 | "url_list = list(url_dict.keys())\n", 241 | "for i in trange(num_items):\n", 242 | " url = url_list[i].strip()\n", 243 | " item_id = url.split('id=')[-1]\n", 244 | " cat = url_dict[url_list[i]]\n", 245 | " driver.get(url)\n", 246 | " time.sleep(1)\n", 247 | " loaded = False\n", 248 | " num_try = 0\n", 249 | " while not loaded: \n", 250 | " # comments\n", 251 | " _comments = driver.find_element(By.ID, 'note_children')\n", 252 | " comments = _comments.find_elements(By.XPATH, \"div[@class='note_with_children comment-level-odd']\")\n", 253 | " \n", 254 | " if len(comments) > 0:\n", 255 | " loaded = True\n", 256 | " else:\n", 257 | " time.sleep(.5)\n", 258 | " assert num_try < 10000, f'Failed to load {url} | tried: {num_try}'\n", 259 | " num_try += 1\n", 260 | " \n", 261 | " item = driver.find_element(By.ID, f'note_{item_id}')\n", 262 | "\n", 263 | " # title\n", 264 | " title_el = item.find_element(\n", 265 | " By.CSS_SELECTOR, \"div[class='title_pdf_row clearfix']\"\n", 266 | " ).find_element(By.CLASS_NAME, 'note_content_title').find_element(By.TAG_NAME, 'a')\n", 267 | " item_title = title_el.text.strip()\n", 268 | "\n", 269 | " # authors\n", 270 | " author_el = item.find_element(\n", 271 | " By.CSS_SELECTOR, \"div[class='meta_row']\"\n", 272 | " ).find_element(By.TAG_NAME, 'span').find_elements(By.TAG_NAME, 'a')\n", 273 | " item_authors = \", \".join([a.text for a in author_el])\n", 274 | "\n", 275 | " # keywords\n", 276 | " key_el = item.find_element(By.CLASS_NAME, 'note_contents').find_elements(By.TAG_NAME, 'span')\n", 277 | " assert key_el[0].text == 'Keywords:', f'{url}: Keywords not found!'\n", 278 | " item_keywords = key_el[1].text\n", 279 | " \n", 280 | " # comments\n", 281 | " _comments = driver.find_element(By.ID, 'note_children')\n", 282 | " comments = _comments.find_elements(By.XPATH, \"div[@class='note_with_children comment-level-odd']\")\n", 283 | " \n", 284 | " item_ratings = []\n", 285 | " two_decision = False\n", 286 | " for comment in comments:\n", 287 | " keys = comment.find_elements(By.CLASS_NAME, 'note_content_field')\n", 288 | " values = comment.find_elements(By.CLASS_NAME, 'note_content_value')\n", 289 | " assert len(keys) == len(values), 'key not match with value for {url}'\n", 290 | " \n", 291 | " # paper decision box\n", 292 | " if 'Decision:' in [k.text for k in keys]:\n", 293 | " for _k in range(len(keys)):\n", 294 | " if keys[_k].text == 'Decision:': # decesion\n", 295 | " item_final_decision = values[_k].text\n", 296 | " _item_final_decision = item_final_decision.split(' ')[-1].strip('(').strip(')')\n", 297 | " assert _item_final_decision.lower() == cat, f'final decision not match for {url}'\n", 298 | " if keys[_k].text == 'Consistency Experiment:': # \n", 299 | " two_decision = True\n", 300 | " _value = values[_k].text\n", 301 | " _value_re = re.findall(r'.*This copy’s committee reached the following decision: (.*)', _value)\n", 302 | " if len(_value_re) > 0: \n", 303 | " item_decision = _value_re[0]\n", 304 | " else: # both \n", 305 | " _value_re = re.findall(r'.*Both committees reached the same decision: (.*)', _value)\n", 306 | " item_decision = _value_re[0]\n", 307 | " \n", 308 | " # comemnt box\n", 309 | " elif 'Rating:' in [k.text for k in keys]:\n", 310 | " for _k in range(len(keys)):\n", 311 | " if keys[_k].text == 'Rating:':\n", 312 | " _rating = int(values[_k].text.split(':')[0])\n", 313 | " item_ratings.append(_rating)\n", 314 | " if two_decision:\n", 315 | " num_decision = 2\n", 316 | " else:\n", 317 | " num_decision = 1\n", 318 | " item_decision = item_final_decision\n", 319 | " # print(i, url, item_title, item_keywords, item_authors, item_final_decision, item_decision, item_ratings)\n", 320 | " db.write_item(i, url, item_title, item_keywords, item_authors, num_decision, item_final_decision, item_decision, item_ratings)\n", 321 | "\n", 322 | " " 323 | ] 324 | }, 325 | { 326 | "cell_type": "code", 327 | "execution_count": null, 328 | "id": "93c5e45f", 329 | "metadata": {}, 330 | "outputs": [], 331 | "source": [ 332 | "db.close()" 333 | ] 334 | }, 335 | { 336 | "cell_type": "code", 337 | "execution_count": null, 338 | "id": "08f86ccb", 339 | "metadata": {}, 340 | "outputs": [], 341 | "source": [ 342 | "driver.quit()" 343 | ] 344 | } 345 | ], 346 | "metadata": { 347 | "kernelspec": { 348 | "display_name": "Python 3 (ipykernel)", 349 | "language": "python", 350 | "name": "python3" 351 | }, 352 | "language_info": { 353 | "codemirror_mode": { 354 | "name": "ipython", 355 | "version": 3 356 | }, 357 | "file_extension": ".py", 358 | "mimetype": "text/x-python", 359 | "name": "python", 360 | "nbconvert_exporter": "python", 361 | "pygments_lexer": "ipython3", 362 | "version": "3.8.10" 363 | } 364 | }, 365 | "nbformat": 4, 366 | "nbformat_minor": 5 367 | } 368 | -------------------------------------------------------------------------------- /plot.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "id": "131805a1", 7 | "metadata": { 8 | "id": "131805a1" 9 | }, 10 | "outputs": [], 11 | "source": [ 12 | "%matplotlib inline\n", 13 | "%load_ext autoreload\n", 14 | "%autoreload 2\n", 15 | "\n", 16 | "import os\n", 17 | "from tqdm import trange\n", 18 | "from operator import itemgetter\n", 19 | "import numpy as np\n", 20 | "from pprint import pprint\n", 21 | "\n", 22 | "import matplotlib.pyplot as plt\n", 23 | "from matplotlib import rc\n", 24 | "gridc = (1., 1., 1)\n", 25 | "plt.rcParams['grid.color'] = gridc\n", 26 | "plt.rcParams[\"axes.edgecolor\"] = (0.898, 0.925, 0.965, 1)\n", 27 | "plt.rc('xtick', labelsize=12)\n", 28 | "plt.rc('ytick', labelsize=12)\n", 29 | "\n", 30 | "from database import DataBase" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": null, 36 | "id": "5b328575", 37 | "metadata": { 38 | "id": "5b328575" 39 | }, 40 | "outputs": [], 41 | "source": [ 42 | "db = DataBase('assets/neurips2021.db')\n", 43 | "db.initialize()" 44 | ] 45 | }, 46 | { 47 | "cell_type": "markdown", 48 | "id": "a02d46bb", 49 | "metadata": { 50 | "id": "a02d46bb" 51 | }, 52 | "source": [ 53 | "### key words" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": null, 59 | "id": "b7d7661c", 60 | "metadata": { 61 | "id": "b7d7661c" 62 | }, 63 | "outputs": [], 64 | "source": [ 65 | "# all submissions \n", 66 | "_cmd = \"SELECT keywords FROM submissions;\"\n", 67 | "db.cursor.execute(_cmd)\n", 68 | "data = db.cursor.fetchall()\n", 69 | "keywords = {}\n", 70 | "for i in trange(len(data)):\n", 71 | " _kw = data[i][0].split(', ')\n", 72 | " _kw = [_k.lower().strip() for _k in _kw]\n", 73 | " for _k in _kw:\n", 74 | " if _k in keywords.keys():\n", 75 | " keywords[_k] += 1\n", 76 | " else:\n", 77 | " keywords[_k] = 1\n", 78 | "# sort values\n", 79 | "keywords = {k: v for k, v in sorted(keywords.items(), key=lambda item: item[1])[::-1]}" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": null, 85 | "id": "7fcf1f2a", 86 | "metadata": { 87 | "id": "7fcf1f2a" 88 | }, 89 | "outputs": [], 90 | "source": [ 91 | "# merge some redundant keywords\n", 92 | "clear_keywords = keywords.copy()\n", 93 | "# transformer\n", 94 | "clear_keywords.update({'transformer(s)': 0})\n", 95 | "pops = []\n", 96 | "for k, v in clear_keywords.items():\n", 97 | " if 'transformer' in k and k != 'transformer(s)':\n", 98 | " clear_keywords['transformer(s)'] += v\n", 99 | " pops.append(k)\n", 100 | "# graph NN\n", 101 | "clear_keywords.update({'graph neural network(s)': 0})\n", 102 | "for k, v in keywords.items():\n", 103 | " if 'graph neural network' in k and k != 'graph neural network(s)':\n", 104 | " clear_keywords['graph neural network(s)'] += v\n", 105 | " pops.append(k)\n", 106 | "# RL\n", 107 | "clear_keywords.update({'(deep) reinforcement learning': 0})\n", 108 | "for k, v in keywords.items():\n", 109 | " if 'reinforcement learning' in k and k != '(deep) reinforcement learning':\n", 110 | " clear_keywords['(deep) reinforcement learning'] += v\n", 111 | " pops.append(k)\n", 112 | "# generative model\n", 113 | "clear_keywords.update({'generative model(s)': 0})\n", 114 | "for k, v in keywords.items():\n", 115 | " if 'generative model' in k and k != 'generative model(s)':\n", 116 | " clear_keywords['generative model(s)'] += v\n", 117 | " pops.append(k)\n", 118 | "# representation learning\n", 119 | "clear_keywords.update({'representation learning(s)': 0})\n", 120 | "for k, v in keywords.items():\n", 121 | " if 'representation learning' in k and k != 'representation learning(s)':\n", 122 | " clear_keywords['representation learning(s)'] += v\n", 123 | " pops.append(k)\n", 124 | "# self-supervised\n", 125 | "clear_keywords.update({'self-supervised(s)': 0})\n", 126 | "for k, v in keywords.items():\n", 127 | " if 'self-supervised' in k and k != 'self-supervised(s)':\n", 128 | " clear_keywords['self-supervised(s)'] += v\n", 129 | " pops.append(k)\n", 130 | "# unsupervised\n", 131 | "clear_keywords.update({'unsupervised(s)': 0})\n", 132 | "for k, v in keywords.items():\n", 133 | " if 'unsupervised' in k and k != 'unsupervised(s)':\n", 134 | " clear_keywords['unsupervised(s)'] += v\n", 135 | " pops.append(k)\n", 136 | "# contrastive learning\n", 137 | "clear_keywords.update({'contrastive learning(s)': 0})\n", 138 | "for k, v in keywords.items():\n", 139 | " if 'contrastive learning' in k and k != 'contrastive learning(s)':\n", 140 | " clear_keywords['contrastive learning(s)'] += v\n", 141 | " pops.append(k)\n", 142 | "# deep learning\n", 143 | "clear_keywords.update({'deep learning(s)': 0})\n", 144 | "for k, v in keywords.items():\n", 145 | " if 'deep learning' in k and k != 'deep learning(s)':\n", 146 | " clear_keywords['deep learning(s)'] += v\n", 147 | " pops.append(k)\n", 148 | "# optimization\n", 149 | "clear_keywords.update({'optimization(s)': 0})\n", 150 | "for k, v in keywords.items():\n", 151 | " if 'optimization' in k and k != 'optimization(s)':\n", 152 | " clear_keywords['optimization(s)'] += v\n", 153 | " pops.append(k)\n", 154 | "# adversaial robustness\n", 155 | "clear_keywords.update({'(adversaial) robustness': 0})\n", 156 | "for k, v in keywords.items():\n", 157 | " if 'robustness' in k and k != '(adversaial) robustness':\n", 158 | " clear_keywords['(adversaial) robustness'] += v\n", 159 | " pops.append(k)\n", 160 | "# attention\n", 161 | "clear_keywords.update({'attention(s)': 0})\n", 162 | "for k, v in keywords.items():\n", 163 | " if 'attention' in k and k != 'attention(s)':\n", 164 | " clear_keywords['attention(s)'] += v\n", 165 | " pops.append(k)\n", 166 | "# learning theory\n", 167 | "clear_keywords.update({'learning theory(-ies)': 0})\n", 168 | "for k, v in keywords.items():\n", 169 | " if 'learning theory' in k and k != 'learning theory(-ies)':\n", 170 | " clear_keywords['learning theory(-ies)'] += v\n", 171 | " pops.append(k)\n", 172 | "# generalization\n", 173 | "clear_keywords.update({'generalization(s)': 0})\n", 174 | "for k, v in clear_keywords.items():\n", 175 | " if 'generalization' in k and k != 'generalization(s)':\n", 176 | " clear_keywords['generalization(s)'] += v\n", 177 | " pops.append(k)\n", 178 | "# meta-learning\n", 179 | "clear_keywords.update({'meta-learning(s)': 0})\n", 180 | "for k, v in clear_keywords.items():\n", 181 | " if ('meta-learning' in k or 'meta learning' in k) and k != 'meta-learning(s)':\n", 182 | " clear_keywords['meta-learning(s)'] += v\n", 183 | " pops.append(k)\n", 184 | "# online learning\n", 185 | "clear_keywords.update({'online learning(s)': 0})\n", 186 | "for k, v in keywords.items():\n", 187 | " if 'online learning' in k and k != 'online learning(s)':\n", 188 | " clear_keywords['online learning(s)'] += v\n", 189 | " pops.append(k)\n", 190 | "# differential privacy\n", 191 | "clear_keywords.update({'differential privacy(-ies)': 0})\n", 192 | "for k, v in keywords.items():\n", 193 | " if 'differential privacy' in k and k != 'differential privacy(-ies)':\n", 194 | " clear_keywords['differential privacy(-ies)'] += v\n", 195 | " pops.append(k)\n", 196 | "# computer vision\n", 197 | "clear_keywords.update({'computer vision(s)': 0})\n", 198 | "for k, v in keywords.items():\n", 199 | " if 'computer vision' in k and k != 'computer vision(s)':\n", 200 | " clear_keywords['computer vision(s)'] += v\n", 201 | " pops.append(k)\n", 202 | "# neural networks\n", 203 | "clear_keywords.update({'neural network(s)': 0})\n", 204 | "for k, v in clear_keywords.items():\n", 205 | " if ('neural network' in k and 'graph neural network' not in k) and k != 'neural network(s)':\n", 206 | " clear_keywords['neural network(s)'] += v\n", 207 | " pops.append(k)\n", 208 | "# transfer learning\n", 209 | "clear_keywords.update({'transfer learning(s)': 0})\n", 210 | "for k, v in keywords.items():\n", 211 | " if 'transfer learning' in k and k != 'transfer learning(s)':\n", 212 | " clear_keywords['transfer learning(s)'] += v\n", 213 | " pops.append(k)\n", 214 | "# federated learning\n", 215 | "clear_keywords.update({'federated learning(s)': 0})\n", 216 | "for k, v in keywords.items():\n", 217 | " if 'federated learning' in k and k != 'federated learning(s)':\n", 218 | " clear_keywords['federated learning(s)'] += v\n", 219 | " pops.append(k)\n", 220 | "# variational inference\n", 221 | "clear_keywords.update({'variational inference(s)': 0})\n", 222 | "for k, v in clear_keywords.items():\n", 223 | " if 'variational inference' in k and k != 'variational inference(s)':\n", 224 | " clear_keywords['variational inference(s)'] += v\n", 225 | " pops.append(k)\n", 226 | "# 3d\n", 227 | "clear_keywords.update({'3d(s)': 0})\n", 228 | "for k, v in clear_keywords.items():\n", 229 | " if '3d' in k and k != '3d(s)':\n", 230 | " clear_keywords['3d(s)'] += v\n", 231 | " pops.append(k)\n", 232 | "# language\n", 233 | "clear_keywords.update({'language(s)': 0})\n", 234 | "for k, v in clear_keywords.items():\n", 235 | " if 'language' in k and k != 'language(s)':\n", 236 | " clear_keywords['language(s)'] += v\n", 237 | " pops.append(k)\n", 238 | "# machine learning\n", 239 | "clear_keywords.update({'machine learning(s)': 0})\n", 240 | "for k, v in keywords.items():\n", 241 | " if 'machine learning' in k and k != 'machine learning(s)':\n", 242 | " clear_keywords['machine learning(s)'] += v\n", 243 | " pops.append(k)\n", 244 | "# few-shot learning\n", 245 | "clear_keywords.update({'few-shot learning(s)': 0})\n", 246 | "for k, v in keywords.items():\n", 247 | " if 'few-shot learning' in k and k != 'few-shot learning(s)':\n", 248 | " clear_keywords['few-shot learning(s)'] += v\n", 249 | " pops.append(k)\n", 250 | "# domain adaptation(s)\n", 251 | "clear_keywords.update({'domain adaptation(s)': 0})\n", 252 | "for k, v in clear_keywords.items():\n", 253 | " if 'domain adaptation' in k and k != 'domain adaptation(s)':\n", 254 | " clear_keywords['domain adaptation(s)'] += v\n", 255 | " pops.append(k)\n", 256 | "# fairness\n", 257 | "clear_keywords.update({'fairness(s)': 0})\n", 258 | "for k, v in clear_keywords.items():\n", 259 | " if 'fairness' in k and k != 'fairness(s)':\n", 260 | " clear_keywords['fairness(s)'] += v\n", 261 | " pops.append(k)\n", 262 | "# interpretability\n", 263 | "clear_keywords.update({'interpretability(-ies)': 0})\n", 264 | "for k, v in clear_keywords.items():\n", 265 | " if 'interpretability' in k and k != 'interpretability(-ies)':\n", 266 | " clear_keywords['interpretability(-ies)'] += v\n", 267 | " pops.append(k)\n", 268 | "# gaussian process\n", 269 | "clear_keywords.update({'gaussian process(s)': 0})\n", 270 | "for k, v in clear_keywords.items():\n", 271 | " if 'gaussian process' in k and k != 'gaussian process(s)':\n", 272 | " clear_keywords['gaussian process(s)'] += v\n", 273 | " pops.append(k)\n", 274 | "for pop in set(pops):\n", 275 | " print(pop)\n", 276 | " clear_keywords.pop(pop)\n", 277 | "clear_keywords = {k: v for k, v in sorted(clear_keywords.items(), key=lambda item: item[1])[::-1]}" 278 | ] 279 | }, 280 | { 281 | "cell_type": "code", 282 | "execution_count": null, 283 | "id": "jmdMkKwQhKDX", 284 | "metadata": { 285 | "id": "jmdMkKwQhKDX" 286 | }, 287 | "outputs": [], 288 | "source": [ 289 | "words = {}\n", 290 | "for keyword, cnt in keywords.items():\n", 291 | " _words = keyword.split(' ')\n", 292 | " for word in _words:\n", 293 | " word = word[:-1] if word.endswith('s') else word\n", 294 | " if word in ['learning', 'neural', 'network', 'optimization', 'model',\n", 295 | " 'theory', 'inference', 'method', 'algorithm', 'data', 'gradient',\n", 296 | " 'estimation', 'image', 'machine', 'analysi', 'of', 'system',\n", 297 | " 'dynamic', 'approximation', 'function']:\n", 298 | " continue\n", 299 | " if word not in words:\n", 300 | " words[word] = 0\n", 301 | " words[word] += cnt\n", 302 | "\n", 303 | "words = dict(sorted(words.items(), key=lambda item: item[1], reverse=True))\n", 304 | "\n", 305 | "clear_keywords = {}\n", 306 | "for word, cnt in words.items():\n", 307 | " for keyword in keywords:\n", 308 | " if word in keyword:\n", 309 | " if keyword not in clear_keywords:\n", 310 | " clear_keywords[keyword] = 0\n", 311 | " clear_keywords[keyword] += cnt\n", 312 | " break\n", 313 | "clear_keywords = dict(sorted(clear_keywords.items(), key=lambda item: item[1], reverse=True))" 314 | ] 315 | }, 316 | { 317 | "cell_type": "code", 318 | "execution_count": null, 319 | "id": "2189926b", 320 | "metadata": { 321 | "id": "2189926b" 322 | }, 323 | "outputs": [], 324 | "source": [ 325 | "# original keywords\n", 326 | "ttl = 40\n", 327 | "kws = list(keywords.keys())[:ttl]\n", 328 | "freqs = list(keywords.values())[:ttl]\n", 329 | "\n", 330 | "\n", 331 | "width = 0.5\n", 332 | "fig = plt.figure(figsize=[18, 6])\n", 333 | "\n", 334 | "ax = fig.add_subplot(1, 1, 1)\n", 335 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n", 336 | "ax.spines['left'].set_color('w')\n", 337 | "ax.spines['bottom'].set_color('w')\n", 338 | "ax.spines['right'].set_color('w')\n", 339 | "ax.spines['top'].set_color('w')\n", 340 | "\n", 341 | "colors = ['#789BFF', '#FE8671'] * (ttl // 2)\n", 342 | "\n", 343 | "# all keywords\n", 344 | "ax.bar(np.arange(ttl), freqs, width=width, alpha=0.95, \n", 345 | " color=colors, capsize=4)\n", 346 | "for i, v in zip(np.arange(ttl), freqs):\n", 347 | " ax.text(i - 0.5 if v >= 100 else i - 0.3, v + 4.0, str(v), color=colors[i], fontsize=12)\n", 348 | "\n", 349 | "plt.ylim(0, 215)\n", 350 | "plt.xticks(ticks=np.arange(ttl), rotation=45,\n", 351 | " labels=[d for d in kws], ha='right')\n", 352 | "for ticklabel, tickcolor in zip(plt.gca().get_xticklabels(), colors):\n", 353 | " ticklabel.set_color(tickcolor)\n", 354 | "ax.set_ylabel(r\"#\", fontsize=14)\n", 355 | "ax.set_axisbelow(True)\n", 356 | "ax.grid()\n", 357 | "plt.savefig('assets/keywords_bar.png', bbox_inches='tight', dpi=150)" 358 | ] 359 | }, 360 | { 361 | "cell_type": "code", 362 | "execution_count": null, 363 | "id": "cd772820", 364 | "metadata": { 365 | "id": "cd772820" 366 | }, 367 | "outputs": [], 368 | "source": [ 369 | "# clear keywords\n", 370 | "ttl = 30\n", 371 | "kws = list(clear_keywords.keys())[:ttl]\n", 372 | "freqs = list(clear_keywords.values())[:ttl]\n", 373 | "\n", 374 | "\n", 375 | "width = 0.5\n", 376 | "fig = plt.figure(figsize=[16, 6])\n", 377 | "\n", 378 | "ax = fig.add_subplot(1, 1, 1)\n", 379 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n", 380 | "ax.spines['left'].set_color('w')\n", 381 | "ax.spines['bottom'].set_color('w')\n", 382 | "ax.spines['right'].set_color('w')\n", 383 | "ax.spines['top'].set_color('w')\n", 384 | "\n", 385 | "colors = ['#789BFF', '#FE8671'] * (ttl // 2)\n", 386 | "\n", 387 | "# all keywords\n", 388 | "ax.bar(np.arange(ttl), freqs, width=width, alpha=0.95, \n", 389 | " color=colors, capsize=4)\n", 390 | "for i, v in zip(np.arange(ttl), freqs):\n", 391 | " ax.text(i - 0.25 if v >= 100 else i - 0.2, v + 4.0, str(v), color=colors[i], fontsize=12)\n", 392 | "\n", 393 | "plt.ylim(0, 400)\n", 394 | "plt.xticks(ticks=np.arange(ttl), rotation=45,\n", 395 | " labels=[d for d in kws], ha='right')\n", 396 | "for ticklabel, tickcolor in zip(plt.gca().get_xticklabels(), colors):\n", 397 | " ticklabel.set_color(tickcolor)\n", 398 | "ax.set_ylabel(r\"#\", fontsize=14)\n", 399 | "ax.set_axisbelow(True)\n", 400 | "ax.grid()\n", 401 | "plt.savefig('assets/clear_keywords_bar.png', bbox_inches='tight', dpi=150)" 402 | ] 403 | }, 404 | { 405 | "cell_type": "markdown", 406 | "id": "dcd75c52", 407 | "metadata": { 408 | "id": "dcd75c52" 409 | }, 410 | "source": [ 411 | "### statistics bar" 412 | ] 413 | }, 414 | { 415 | "cell_type": "code", 416 | "execution_count": null, 417 | "id": "a0d9b636", 418 | "metadata": { 419 | "id": "a0d9b636" 420 | }, 421 | "outputs": [], 422 | "source": [ 423 | "# all decisions\n", 424 | "_cmd = \"SELECT rating_avg FROM submissions;\"\n", 425 | "db.cursor.execute(_cmd)\n", 426 | "data = db.cursor.fetchall()\n", 427 | "rating_avgs = np.array(data)\n", 428 | "print(\"> Total submissions (including CE): {}\".format(len(data)))\n", 429 | "print(f\" Average ratings: {rating_avgs.mean():.2f}\")\n", 430 | "print(f\" Max ratings: {rating_avgs.max():.2f}\")\n", 431 | "print(f\" Min ratings: {rating_avgs.min():.2f}\")\n", 432 | "\n", 433 | "# oral\n", 434 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Oral%';\"\n", 435 | "db.cursor.execute(_cmd)\n", 436 | "data = db.cursor.fetchall()\n", 437 | "oral_avgs = np.array(data)\n", 438 | "print(\"> Oral submissions (including CE): {}\".format(oral_avgs.shape[0]))\n", 439 | "print(f\" Average ratings: {oral_avgs.mean():.2f}\")\n", 440 | "print(f\" Max ratings: {oral_avgs.max():.2f}\")\n", 441 | "print(f\" Min ratings: {oral_avgs.min():.2f}\")\n", 442 | "\n", 443 | "# spotlight\n", 444 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Spotlight%';\"\n", 445 | "db.cursor.execute(_cmd)\n", 446 | "data = db.cursor.fetchall()\n", 447 | "spotlight_avgs = np.array(data)\n", 448 | "print(\"> Soitlight submissions (including CE): {}\".format(spotlight_avgs.shape[0]))\n", 449 | "print(f\" Average ratings: {spotlight_avgs.mean():.2f}\")\n", 450 | "print(f\" Max ratings: {spotlight_avgs.max():.2f}\")\n", 451 | "print(f\" Min ratings: {spotlight_avgs.min():.2f}\")\n", 452 | "\n", 453 | "# poster\n", 454 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Poster%';\"\n", 455 | "db.cursor.execute(_cmd)\n", 456 | "data = db.cursor.fetchall()\n", 457 | "poster_avgs = np.array(data)\n", 458 | "print(\"> Poster submissions (including CE): {}\".format(poster_avgs.shape[0]))\n", 459 | "print(f\" Average ratings: {poster_avgs.mean():.2f}\")\n", 460 | "print(f\" Max ratings: {poster_avgs.max():.2f}\")\n", 461 | "print(f\" Min ratings: {poster_avgs.min():.2f}\")\n", 462 | "\n", 463 | "# reject\n", 464 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Reject%';\"\n", 465 | "db.cursor.execute(_cmd)\n", 466 | "data = db.cursor.fetchall()\n", 467 | "reject_avgs = np.array(data)\n", 468 | "print(\"> Reject submissions (including CE): {}\".format(reject_avgs.shape[0]))\n", 469 | "print(f\" Average ratings: {reject_avgs.mean():.2f}\")\n", 470 | "print(f\" Max ratings: {reject_avgs.max():.2f}\")\n", 471 | "print(f\" Min ratings: {reject_avgs.min():.2f}\")" 472 | ] 473 | }, 474 | { 475 | "cell_type": "code", 476 | "execution_count": null, 477 | "id": "09f9d3bb", 478 | "metadata": { 479 | "id": "09f9d3bb" 480 | }, 481 | "outputs": [], 482 | "source": [ 483 | "_min, _max = rating_avgs.min(), rating_avgs.max()\n", 484 | "\n", 485 | "width = 0.16\n", 486 | "fig = plt.figure(figsize=[16, 6])\n", 487 | "\n", 488 | "ax = fig.add_subplot(1, 1, 1)\n", 489 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n", 490 | "ax.spines['left'].set_color('w')\n", 491 | "ax.spines['bottom'].set_color('w')\n", 492 | "ax.spines['right'].set_color('w')\n", 493 | "ax.spines['top'].set_color('w')\n", 494 | "\n", 495 | "# all submissions\n", 496 | "hist, bin_edges = np.histogram(rating_avgs, bins=20, range=(_min, _max))\n", 497 | "# ax.bar(np.linspace(_min, _max, len(hist)), hist, width=width, alpha=0.95, \n", 498 | "# color='#789BFF', capsize=4)\n", 499 | "for i, v in zip(np.linspace(_min, _max, len(hist)), hist):\n", 500 | " ax.text(i - 0.1 if v >= 100 else i - 0.05, v + 6.0, str(v), color='#1f59ff', fontsize=16)\n", 501 | "\n", 502 | "# reject\n", 503 | "hist_reject, _ = np.histogram(reject_avgs, bins=20, range=(_min, _max))\n", 504 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_reject, width=width, alpha=0.95, \n", 505 | " color='#E3E7FF', capsize=4, label='Reject')\n", 506 | "\n", 507 | "# poster\n", 508 | "hist_poster, _ = np.histogram(poster_avgs, bins=20, range=(_min, _max))\n", 509 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_poster, bottom=hist_reject, width=width, alpha=0.95, \n", 510 | " color='#A0B5FF', capsize=4, label='Poster')\n", 511 | "\n", 512 | "# spotlight\n", 513 | "hist_spotlight, _ = np.histogram(spotlight_avgs, bins=20, range=(_min, _max))\n", 514 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_spotlight, bottom=hist_poster + hist_reject, \n", 515 | " width=width, alpha=0.95, \n", 516 | " color='#7879FF', capsize=4, label='Spotlight')\n", 517 | "\n", 518 | "# oral\n", 519 | "hist_oral, _ = np.histogram(oral_avgs, bins=20, range=(_min, _max))\n", 520 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_oral, bottom=hist_poster + hist_reject + hist_spotlight, \n", 521 | " width=width, alpha=0.95, \n", 522 | " color='#FF435B', capsize=4, label='Oral')\n", 523 | "\n", 524 | "plt.ylim(0, 550)\n", 525 | "plt.xticks(ticks=np.linspace(_min, _max, len(hist)), \n", 526 | " rotation=40, \n", 527 | " labels=[f\"{d:.2f}\" for d in np.linspace(_min, _max, len(hist))])\n", 528 | "ax.set_ylabel(r\"# submissions\", fontsize=14)\n", 529 | "ax.set_xlabel(\"Rating\", fontsize=14)\n", 530 | "ax.set_axisbelow(True)\n", 531 | "ax.grid()\n", 532 | "handles, labels = ax.get_legend_handles_labels()\n", 533 | "ax.legend(handles[::-1], labels[::-1], loc=2, fontsize=14)\n", 534 | "plt.savefig('assets/stats_bar.png')" 535 | ] 536 | }, 537 | { 538 | "cell_type": "code", 539 | "execution_count": null, 540 | "id": "0011116b", 541 | "metadata": { 542 | "id": "0011116b" 543 | }, 544 | "outputs": [], 545 | "source": [ 546 | "# consistency experiment statistics\n", 547 | "_cmd = \"SELECT * FROM submissions WHERE num_decision == 2 ORDER BY title;\"\n", 548 | "db.cursor.execute(_cmd)\n", 549 | "data = db.cursor.fetchall()\n", 550 | "print(\"> Total submissions with CE: {}\".format(len(data) // 2))\n", 551 | "num_comflict = 0\n", 552 | "num_consist = 0\n", 553 | "ces = {}\n", 554 | "for i in range(0, len(data), 2): \n", 555 | " dcs = data[i][6].split(' ')[-1].strip('()')\n", 556 | " dcs_0 = data[i][7].split(' ')[-1].strip('()')\n", 557 | " dcs_1 = data[i + 1][7].split(' ')[-1].strip('()') \n", 558 | " _key = \", \".join(sorted([dcs_0, dcs_1]))\n", 559 | " _key = dcs + ', ' + _key\n", 560 | " if _key in ces.keys():\n", 561 | " ces[_key] += 1\n", 562 | " else:\n", 563 | " ces.update({_key: 1})\n", 564 | " assert data[i][2] == data[i + 1][2], f'not match for {i}'\n", 565 | " if dcs_0 != dcs_1:\n", 566 | " num_comflict += 1\n", 567 | " else:\n", 568 | " num_consist += 1\n", 569 | "print(f\"> Decision conflict: {num_comflict}\")\n", 570 | "print(f\"> Decision consist: {num_consist}\")\n", 571 | "pprint(ces)" 572 | ] 573 | }, 574 | { 575 | "cell_type": "markdown", 576 | "id": "2cbc2868", 577 | "metadata": { 578 | "id": "2cbc2868" 579 | }, 580 | "source": [ 581 | "### write consistency experiment" 582 | ] 583 | }, 584 | { 585 | "cell_type": "code", 586 | "execution_count": null, 587 | "id": "e3f885a0", 588 | "metadata": { 589 | "id": "e3f885a0" 590 | }, 591 | "outputs": [], 592 | "source": [ 593 | "check = '✔'\n", 594 | "maps = {\n", 595 | " 'Oral': 'a',\n", 596 | " 'Spotlight': 'b',\n", 597 | " 'Poster': 'c',\n", 598 | " 'Reject': 'd'\n", 599 | "}" 600 | ] 601 | }, 602 | { 603 | "cell_type": "code", 604 | "execution_count": null, 605 | "id": "248fd137", 606 | "metadata": { 607 | "id": "248fd137" 608 | }, 609 | "outputs": [], 610 | "source": [ 611 | "_cmd = \"SELECT * FROM submissions WHERE num_decision == 2 \" \\\n", 612 | " \"ORDER BY CASE final_decision WHEN 'Accept (oral)' \" \\\n", 613 | " \"THEN 'a' WHEN 'Accept (Spotlight)' THEN 'b' WHEN 'Accept (Poster)' \" \\\n", 614 | " \"THEN 'c' WHEN 'Reject' THEN 'd' END, title DESC;\"\n", 615 | "db.cursor.execute(_cmd)\n", 616 | "data = db.cursor.fetchall()\n", 617 | "\n", 618 | "# read template \n", 619 | "with open('neurips2021_consistency_experiments_template.html', 'r') as f:\n", 620 | " html_temp = f.readlines()\n", 621 | "# find insert index\n", 622 | "idx = html_temp.index(' \\n') + 1\n", 623 | "\n", 624 | "# write data\n", 625 | "for i in trange(len(data)):\n", 626 | " _data = data[i]\n", 627 | " final_d = _data[6].split(' ')[-1].strip('()')\n", 628 | " now_d = _data[7].split(' ')[-1].strip('()')\n", 629 | " _str = f\"{i + 1} {_data[2]}\" \\\n", 630 | " f\"{_data[9]:.2f}{_data[10]:.2f}{_data[11]}\" \\\n", 631 | " f\"{final_d}\" \\\n", 632 | " f\"{now_d}\" \\\n", 633 | " f\"{check}\\n\"\n", 634 | " html_temp.insert(idx + i, _str)\n", 635 | "\n", 636 | "with open('neurips2021_consistency_experiments.html' ,'w') as f:\n", 637 | " f.write(\"\".join(html_temp))" 638 | ] 639 | }, 640 | { 641 | "cell_type": "markdown", 642 | "id": "4ab7f63c", 643 | "metadata": { 644 | "id": "4ab7f63c" 645 | }, 646 | "source": [ 647 | "### write all submissions" 648 | ] 649 | }, 650 | { 651 | "cell_type": "code", 652 | "execution_count": null, 653 | "id": "5d31242d", 654 | "metadata": { 655 | "id": "5d31242d" 656 | }, 657 | "outputs": [], 658 | "source": [ 659 | "_cmd = \"SELECT * FROM submissions ORDER BY rating_avg DESC;\"\n", 660 | "db.cursor.execute(_cmd)\n", 661 | "data = db.cursor.fetchall()\n", 662 | "\n", 663 | "# read template \n", 664 | "with open('neurips2021_submissions_template.html', 'r') as f:\n", 665 | " html_temp = f.readlines()\n", 666 | "# find insert index\n", 667 | "idx = html_temp.index(' \\n') + 1\n", 668 | "\n", 669 | "# write data\n", 670 | "for i in trange(len(data)):\n", 671 | " _data = data[i]\n", 672 | " final_d = _data[6].split(' ')[-1].strip('()')\n", 673 | " now_d = _data[7].split(' ')[-1].strip('()')\n", 674 | " _str = f\"{i + 1} {_data[2]}\" \\\n", 675 | " f\"{_data[9]:.2f}{_data[10]:.2f}{_data[11]}\" \\\n", 676 | " f\"{final_d}\" \\\n", 677 | " f\"{now_d}\" \\\n", 678 | " f\"{check if _data[5] == 2 else ''}\\n\"\n", 679 | " html_temp.insert(idx + i, _str)\n", 680 | "\n", 681 | "with open('neurips2021_submissions.html' ,'w') as f:\n", 682 | " f.write(\"\".join(html_temp))" 683 | ] 684 | }, 685 | { 686 | "cell_type": "code", 687 | "execution_count": null, 688 | "id": "b4ca6f1e", 689 | "metadata": { 690 | "id": "b4ca6f1e" 691 | }, 692 | "outputs": [], 693 | "source": [ 694 | "db.close()" 695 | ] 696 | } 697 | ], 698 | "metadata": { 699 | "colab": { 700 | "name": "plot.ipynb", 701 | "provenance": [] 702 | }, 703 | "kernelspec": { 704 | "display_name": "Python 3 (ipykernel)", 705 | "language": "python", 706 | "name": "python3" 707 | }, 708 | "language_info": { 709 | "codemirror_mode": { 710 | "name": "ipython", 711 | "version": 3 712 | }, 713 | "file_extension": ".py", 714 | "mimetype": "text/x-python", 715 | "name": "python", 716 | "nbconvert_exporter": "python", 717 | "pygments_lexer": "ipython3", 718 | "version": "3.7.11" 719 | } 720 | }, 721 | "nbformat": 4, 722 | "nbformat_minor": 5 723 | } 724 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/brands.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Brands'; 7 | font-style: normal; 8 | font-weight: 400; 9 | font-display: block; 10 | src: url("../webfonts/fa-brands-400.eot"); 11 | src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } 12 | 13 | .fab { 14 | font-family: 'Font Awesome 5 Brands'; 15 | font-weight: 400; } 16 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/brands.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400} -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/regular.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Free'; 7 | font-style: normal; 8 | font-weight: 400; 9 | font-display: block; 10 | src: url("../webfonts/fa-regular-400.eot"); 11 | src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } 12 | 13 | .far { 14 | font-family: 'Font Awesome 5 Free'; 15 | font-weight: 400; } 16 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/solid.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face { 6 | font-family: 'Font Awesome 5 Free'; 7 | font-style: normal; 8 | font-weight: 900; 9 | font-display: block; 10 | src: url("../webfonts/fa-solid-900.eot"); 11 | src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } 12 | 13 | .fa, 14 | .fas { 15 | font-family: 'Font Awesome 5 Free'; 16 | font-weight: 900; } 17 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/svg-with-js.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | svg:not(:root).svg-inline--fa { 6 | overflow: visible; } 7 | 8 | .svg-inline--fa { 9 | display: inline-block; 10 | font-size: inherit; 11 | height: 1em; 12 | overflow: visible; 13 | vertical-align: -.125em; } 14 | .svg-inline--fa.fa-lg { 15 | vertical-align: -.225em; } 16 | .svg-inline--fa.fa-w-1 { 17 | width: 0.0625em; } 18 | .svg-inline--fa.fa-w-2 { 19 | width: 0.125em; } 20 | .svg-inline--fa.fa-w-3 { 21 | width: 0.1875em; } 22 | .svg-inline--fa.fa-w-4 { 23 | width: 0.25em; } 24 | .svg-inline--fa.fa-w-5 { 25 | width: 0.3125em; } 26 | .svg-inline--fa.fa-w-6 { 27 | width: 0.375em; } 28 | .svg-inline--fa.fa-w-7 { 29 | width: 0.4375em; } 30 | .svg-inline--fa.fa-w-8 { 31 | width: 0.5em; } 32 | .svg-inline--fa.fa-w-9 { 33 | width: 0.5625em; } 34 | .svg-inline--fa.fa-w-10 { 35 | width: 0.625em; } 36 | .svg-inline--fa.fa-w-11 { 37 | width: 0.6875em; } 38 | .svg-inline--fa.fa-w-12 { 39 | width: 0.75em; } 40 | .svg-inline--fa.fa-w-13 { 41 | width: 0.8125em; } 42 | .svg-inline--fa.fa-w-14 { 43 | width: 0.875em; } 44 | .svg-inline--fa.fa-w-15 { 45 | width: 0.9375em; } 46 | .svg-inline--fa.fa-w-16 { 47 | width: 1em; } 48 | .svg-inline--fa.fa-w-17 { 49 | width: 1.0625em; } 50 | .svg-inline--fa.fa-w-18 { 51 | width: 1.125em; } 52 | .svg-inline--fa.fa-w-19 { 53 | width: 1.1875em; } 54 | .svg-inline--fa.fa-w-20 { 55 | width: 1.25em; } 56 | .svg-inline--fa.fa-pull-left { 57 | margin-right: .3em; 58 | width: auto; } 59 | .svg-inline--fa.fa-pull-right { 60 | margin-left: .3em; 61 | width: auto; } 62 | .svg-inline--fa.fa-border { 63 | height: 1.5em; } 64 | .svg-inline--fa.fa-li { 65 | width: 2em; } 66 | .svg-inline--fa.fa-fw { 67 | width: 1.25em; } 68 | 69 | .fa-layers svg.svg-inline--fa { 70 | bottom: 0; 71 | left: 0; 72 | margin: auto; 73 | position: absolute; 74 | right: 0; 75 | top: 0; } 76 | 77 | .fa-layers { 78 | display: inline-block; 79 | height: 1em; 80 | position: relative; 81 | text-align: center; 82 | vertical-align: -.125em; 83 | width: 1em; } 84 | .fa-layers svg.svg-inline--fa { 85 | -webkit-transform-origin: center center; 86 | transform-origin: center center; } 87 | 88 | .fa-layers-text, .fa-layers-counter { 89 | display: inline-block; 90 | position: absolute; 91 | text-align: center; } 92 | 93 | .fa-layers-text { 94 | left: 50%; 95 | top: 50%; 96 | -webkit-transform: translate(-50%, -50%); 97 | transform: translate(-50%, -50%); 98 | -webkit-transform-origin: center center; 99 | transform-origin: center center; } 100 | 101 | .fa-layers-counter { 102 | background-color: #ff253a; 103 | border-radius: 1em; 104 | -webkit-box-sizing: border-box; 105 | box-sizing: border-box; 106 | color: #fff; 107 | height: 1.5em; 108 | line-height: 1; 109 | max-width: 5em; 110 | min-width: 1.5em; 111 | overflow: hidden; 112 | padding: .25em; 113 | right: 0; 114 | text-overflow: ellipsis; 115 | top: 0; 116 | -webkit-transform: scale(0.25); 117 | transform: scale(0.25); 118 | -webkit-transform-origin: top right; 119 | transform-origin: top right; } 120 | 121 | .fa-layers-bottom-right { 122 | bottom: 0; 123 | right: 0; 124 | top: auto; 125 | -webkit-transform: scale(0.25); 126 | transform: scale(0.25); 127 | -webkit-transform-origin: bottom right; 128 | transform-origin: bottom right; } 129 | 130 | .fa-layers-bottom-left { 131 | bottom: 0; 132 | left: 0; 133 | right: auto; 134 | top: auto; 135 | -webkit-transform: scale(0.25); 136 | transform: scale(0.25); 137 | -webkit-transform-origin: bottom left; 138 | transform-origin: bottom left; } 139 | 140 | .fa-layers-top-right { 141 | right: 0; 142 | top: 0; 143 | -webkit-transform: scale(0.25); 144 | transform: scale(0.25); 145 | -webkit-transform-origin: top right; 146 | transform-origin: top right; } 147 | 148 | .fa-layers-top-left { 149 | left: 0; 150 | right: auto; 151 | top: 0; 152 | -webkit-transform: scale(0.25); 153 | transform: scale(0.25); 154 | -webkit-transform-origin: top left; 155 | transform-origin: top left; } 156 | 157 | .fa-lg { 158 | font-size: 1.33333em; 159 | line-height: 0.75em; 160 | vertical-align: -.0667em; } 161 | 162 | .fa-xs { 163 | font-size: .75em; } 164 | 165 | .fa-sm { 166 | font-size: .875em; } 167 | 168 | .fa-1x { 169 | font-size: 1em; } 170 | 171 | .fa-2x { 172 | font-size: 2em; } 173 | 174 | .fa-3x { 175 | font-size: 3em; } 176 | 177 | .fa-4x { 178 | font-size: 4em; } 179 | 180 | .fa-5x { 181 | font-size: 5em; } 182 | 183 | .fa-6x { 184 | font-size: 6em; } 185 | 186 | .fa-7x { 187 | font-size: 7em; } 188 | 189 | .fa-8x { 190 | font-size: 8em; } 191 | 192 | .fa-9x { 193 | font-size: 9em; } 194 | 195 | .fa-10x { 196 | font-size: 10em; } 197 | 198 | .fa-fw { 199 | text-align: center; 200 | width: 1.25em; } 201 | 202 | .fa-ul { 203 | list-style-type: none; 204 | margin-left: 2.5em; 205 | padding-left: 0; } 206 | .fa-ul > li { 207 | position: relative; } 208 | 209 | .fa-li { 210 | left: -2em; 211 | position: absolute; 212 | text-align: center; 213 | width: 2em; 214 | line-height: inherit; } 215 | 216 | .fa-border { 217 | border: solid 0.08em #eee; 218 | border-radius: .1em; 219 | padding: .2em .25em .15em; } 220 | 221 | .fa-pull-left { 222 | float: left; } 223 | 224 | .fa-pull-right { 225 | float: right; } 226 | 227 | .fa.fa-pull-left, 228 | .fas.fa-pull-left, 229 | .far.fa-pull-left, 230 | .fal.fa-pull-left, 231 | .fab.fa-pull-left { 232 | margin-right: .3em; } 233 | 234 | .fa.fa-pull-right, 235 | .fas.fa-pull-right, 236 | .far.fa-pull-right, 237 | .fal.fa-pull-right, 238 | .fab.fa-pull-right { 239 | margin-left: .3em; } 240 | 241 | .fa-spin { 242 | -webkit-animation: fa-spin 2s infinite linear; 243 | animation: fa-spin 2s infinite linear; } 244 | 245 | .fa-pulse { 246 | -webkit-animation: fa-spin 1s infinite steps(8); 247 | animation: fa-spin 1s infinite steps(8); } 248 | 249 | @-webkit-keyframes fa-spin { 250 | 0% { 251 | -webkit-transform: rotate(0deg); 252 | transform: rotate(0deg); } 253 | 100% { 254 | -webkit-transform: rotate(360deg); 255 | transform: rotate(360deg); } } 256 | 257 | @keyframes fa-spin { 258 | 0% { 259 | -webkit-transform: rotate(0deg); 260 | transform: rotate(0deg); } 261 | 100% { 262 | -webkit-transform: rotate(360deg); 263 | transform: rotate(360deg); } } 264 | 265 | .fa-rotate-90 { 266 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; 267 | -webkit-transform: rotate(90deg); 268 | transform: rotate(90deg); } 269 | 270 | .fa-rotate-180 { 271 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; 272 | -webkit-transform: rotate(180deg); 273 | transform: rotate(180deg); } 274 | 275 | .fa-rotate-270 { 276 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; 277 | -webkit-transform: rotate(270deg); 278 | transform: rotate(270deg); } 279 | 280 | .fa-flip-horizontal { 281 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; 282 | -webkit-transform: scale(-1, 1); 283 | transform: scale(-1, 1); } 284 | 285 | .fa-flip-vertical { 286 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 287 | -webkit-transform: scale(1, -1); 288 | transform: scale(1, -1); } 289 | 290 | .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { 291 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 292 | -webkit-transform: scale(-1, -1); 293 | transform: scale(-1, -1); } 294 | 295 | :root .fa-rotate-90, 296 | :root .fa-rotate-180, 297 | :root .fa-rotate-270, 298 | :root .fa-flip-horizontal, 299 | :root .fa-flip-vertical, 300 | :root .fa-flip-both { 301 | -webkit-filter: none; 302 | filter: none; } 303 | 304 | .fa-stack { 305 | display: inline-block; 306 | height: 2em; 307 | position: relative; 308 | width: 2.5em; } 309 | 310 | .fa-stack-1x, 311 | .fa-stack-2x { 312 | bottom: 0; 313 | left: 0; 314 | margin: auto; 315 | position: absolute; 316 | right: 0; 317 | top: 0; } 318 | 319 | .svg-inline--fa.fa-stack-1x { 320 | height: 1em; 321 | width: 1.25em; } 322 | 323 | .svg-inline--fa.fa-stack-2x { 324 | height: 2em; 325 | width: 2.5em; } 326 | 327 | .fa-inverse { 328 | color: #fff; } 329 | 330 | .sr-only { 331 | border: 0; 332 | clip: rect(0, 0, 0, 0); 333 | height: 1px; 334 | margin: -1px; 335 | overflow: hidden; 336 | padding: 0; 337 | position: absolute; 338 | width: 1px; } 339 | 340 | .sr-only-focusable:active, .sr-only-focusable:focus { 341 | clip: auto; 342 | height: auto; 343 | margin: 0; 344 | overflow: visible; 345 | position: static; 346 | width: auto; } 347 | 348 | .svg-inline--fa .fa-primary { 349 | fill: var(--fa-primary-color, currentColor); 350 | opacity: 1; 351 | opacity: var(--fa-primary-opacity, 1); } 352 | 353 | .svg-inline--fa .fa-secondary { 354 | fill: var(--fa-secondary-color, currentColor); 355 | opacity: 0.4; 356 | opacity: var(--fa-secondary-opacity, 0.4); } 357 | 358 | .svg-inline--fa.fa-swap-opacity .fa-primary { 359 | opacity: 0.4; 360 | opacity: var(--fa-secondary-opacity, 0.4); } 361 | 362 | .svg-inline--fa.fa-swap-opacity .fa-secondary { 363 | opacity: 1; 364 | opacity: var(--fa-primary-opacity, 1); } 365 | 366 | .svg-inline--fa mask .fa-primary, 367 | .svg-inline--fa mask .fa-secondary { 368 | fill: black; } 369 | 370 | .fad.fa-inverse { 371 | color: #fff; } 372 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/svg-with-js.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff} -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/v4-shims.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .fa.fa-glass:before { 6 | content: "\f000"; } 7 | 8 | .fa.fa-meetup { 9 | font-family: 'Font Awesome 5 Brands'; 10 | font-weight: 400; } 11 | 12 | .fa.fa-star-o { 13 | font-family: 'Font Awesome 5 Free'; 14 | font-weight: 400; } 15 | 16 | .fa.fa-star-o:before { 17 | content: "\f005"; } 18 | 19 | .fa.fa-remove:before { 20 | content: "\f00d"; } 21 | 22 | .fa.fa-close:before { 23 | content: "\f00d"; } 24 | 25 | .fa.fa-gear:before { 26 | content: "\f013"; } 27 | 28 | .fa.fa-trash-o { 29 | font-family: 'Font Awesome 5 Free'; 30 | font-weight: 400; } 31 | 32 | .fa.fa-trash-o:before { 33 | content: "\f2ed"; } 34 | 35 | .fa.fa-file-o { 36 | font-family: 'Font Awesome 5 Free'; 37 | font-weight: 400; } 38 | 39 | .fa.fa-file-o:before { 40 | content: "\f15b"; } 41 | 42 | .fa.fa-clock-o { 43 | font-family: 'Font Awesome 5 Free'; 44 | font-weight: 400; } 45 | 46 | .fa.fa-clock-o:before { 47 | content: "\f017"; } 48 | 49 | .fa.fa-arrow-circle-o-down { 50 | font-family: 'Font Awesome 5 Free'; 51 | font-weight: 400; } 52 | 53 | .fa.fa-arrow-circle-o-down:before { 54 | content: "\f358"; } 55 | 56 | .fa.fa-arrow-circle-o-up { 57 | font-family: 'Font Awesome 5 Free'; 58 | font-weight: 400; } 59 | 60 | .fa.fa-arrow-circle-o-up:before { 61 | content: "\f35b"; } 62 | 63 | .fa.fa-play-circle-o { 64 | font-family: 'Font Awesome 5 Free'; 65 | font-weight: 400; } 66 | 67 | .fa.fa-play-circle-o:before { 68 | content: "\f144"; } 69 | 70 | .fa.fa-repeat:before { 71 | content: "\f01e"; } 72 | 73 | .fa.fa-rotate-right:before { 74 | content: "\f01e"; } 75 | 76 | .fa.fa-refresh:before { 77 | content: "\f021"; } 78 | 79 | .fa.fa-list-alt { 80 | font-family: 'Font Awesome 5 Free'; 81 | font-weight: 400; } 82 | 83 | .fa.fa-dedent:before { 84 | content: "\f03b"; } 85 | 86 | .fa.fa-video-camera:before { 87 | content: "\f03d"; } 88 | 89 | .fa.fa-picture-o { 90 | font-family: 'Font Awesome 5 Free'; 91 | font-weight: 400; } 92 | 93 | .fa.fa-picture-o:before { 94 | content: "\f03e"; } 95 | 96 | .fa.fa-photo { 97 | font-family: 'Font Awesome 5 Free'; 98 | font-weight: 400; } 99 | 100 | .fa.fa-photo:before { 101 | content: "\f03e"; } 102 | 103 | .fa.fa-image { 104 | font-family: 'Font Awesome 5 Free'; 105 | font-weight: 400; } 106 | 107 | .fa.fa-image:before { 108 | content: "\f03e"; } 109 | 110 | .fa.fa-pencil:before { 111 | content: "\f303"; } 112 | 113 | .fa.fa-map-marker:before { 114 | content: "\f3c5"; } 115 | 116 | .fa.fa-pencil-square-o { 117 | font-family: 'Font Awesome 5 Free'; 118 | font-weight: 400; } 119 | 120 | .fa.fa-pencil-square-o:before { 121 | content: "\f044"; } 122 | 123 | .fa.fa-share-square-o { 124 | font-family: 'Font Awesome 5 Free'; 125 | font-weight: 400; } 126 | 127 | .fa.fa-share-square-o:before { 128 | content: "\f14d"; } 129 | 130 | .fa.fa-check-square-o { 131 | font-family: 'Font Awesome 5 Free'; 132 | font-weight: 400; } 133 | 134 | .fa.fa-check-square-o:before { 135 | content: "\f14a"; } 136 | 137 | .fa.fa-arrows:before { 138 | content: "\f0b2"; } 139 | 140 | .fa.fa-times-circle-o { 141 | font-family: 'Font Awesome 5 Free'; 142 | font-weight: 400; } 143 | 144 | .fa.fa-times-circle-o:before { 145 | content: "\f057"; } 146 | 147 | .fa.fa-check-circle-o { 148 | font-family: 'Font Awesome 5 Free'; 149 | font-weight: 400; } 150 | 151 | .fa.fa-check-circle-o:before { 152 | content: "\f058"; } 153 | 154 | .fa.fa-mail-forward:before { 155 | content: "\f064"; } 156 | 157 | .fa.fa-expand:before { 158 | content: "\f424"; } 159 | 160 | .fa.fa-compress:before { 161 | content: "\f422"; } 162 | 163 | .fa.fa-eye { 164 | font-family: 'Font Awesome 5 Free'; 165 | font-weight: 400; } 166 | 167 | .fa.fa-eye-slash { 168 | font-family: 'Font Awesome 5 Free'; 169 | font-weight: 400; } 170 | 171 | .fa.fa-warning:before { 172 | content: "\f071"; } 173 | 174 | .fa.fa-calendar:before { 175 | content: "\f073"; } 176 | 177 | .fa.fa-arrows-v:before { 178 | content: "\f338"; } 179 | 180 | .fa.fa-arrows-h:before { 181 | content: "\f337"; } 182 | 183 | .fa.fa-bar-chart { 184 | font-family: 'Font Awesome 5 Free'; 185 | font-weight: 400; } 186 | 187 | .fa.fa-bar-chart:before { 188 | content: "\f080"; } 189 | 190 | .fa.fa-bar-chart-o { 191 | font-family: 'Font Awesome 5 Free'; 192 | font-weight: 400; } 193 | 194 | .fa.fa-bar-chart-o:before { 195 | content: "\f080"; } 196 | 197 | .fa.fa-twitter-square { 198 | font-family: 'Font Awesome 5 Brands'; 199 | font-weight: 400; } 200 | 201 | .fa.fa-facebook-square { 202 | font-family: 'Font Awesome 5 Brands'; 203 | font-weight: 400; } 204 | 205 | .fa.fa-gears:before { 206 | content: "\f085"; } 207 | 208 | .fa.fa-thumbs-o-up { 209 | font-family: 'Font Awesome 5 Free'; 210 | font-weight: 400; } 211 | 212 | .fa.fa-thumbs-o-up:before { 213 | content: "\f164"; } 214 | 215 | .fa.fa-thumbs-o-down { 216 | font-family: 'Font Awesome 5 Free'; 217 | font-weight: 400; } 218 | 219 | .fa.fa-thumbs-o-down:before { 220 | content: "\f165"; } 221 | 222 | .fa.fa-heart-o { 223 | font-family: 'Font Awesome 5 Free'; 224 | font-weight: 400; } 225 | 226 | .fa.fa-heart-o:before { 227 | content: "\f004"; } 228 | 229 | .fa.fa-sign-out:before { 230 | content: "\f2f5"; } 231 | 232 | .fa.fa-linkedin-square { 233 | font-family: 'Font Awesome 5 Brands'; 234 | font-weight: 400; } 235 | 236 | .fa.fa-linkedin-square:before { 237 | content: "\f08c"; } 238 | 239 | .fa.fa-thumb-tack:before { 240 | content: "\f08d"; } 241 | 242 | .fa.fa-external-link:before { 243 | content: "\f35d"; } 244 | 245 | .fa.fa-sign-in:before { 246 | content: "\f2f6"; } 247 | 248 | .fa.fa-github-square { 249 | font-family: 'Font Awesome 5 Brands'; 250 | font-weight: 400; } 251 | 252 | .fa.fa-lemon-o { 253 | font-family: 'Font Awesome 5 Free'; 254 | font-weight: 400; } 255 | 256 | .fa.fa-lemon-o:before { 257 | content: "\f094"; } 258 | 259 | .fa.fa-square-o { 260 | font-family: 'Font Awesome 5 Free'; 261 | font-weight: 400; } 262 | 263 | .fa.fa-square-o:before { 264 | content: "\f0c8"; } 265 | 266 | .fa.fa-bookmark-o { 267 | font-family: 'Font Awesome 5 Free'; 268 | font-weight: 400; } 269 | 270 | .fa.fa-bookmark-o:before { 271 | content: "\f02e"; } 272 | 273 | .fa.fa-twitter { 274 | font-family: 'Font Awesome 5 Brands'; 275 | font-weight: 400; } 276 | 277 | .fa.fa-facebook { 278 | font-family: 'Font Awesome 5 Brands'; 279 | font-weight: 400; } 280 | 281 | .fa.fa-facebook:before { 282 | content: "\f39e"; } 283 | 284 | .fa.fa-facebook-f { 285 | font-family: 'Font Awesome 5 Brands'; 286 | font-weight: 400; } 287 | 288 | .fa.fa-facebook-f:before { 289 | content: "\f39e"; } 290 | 291 | .fa.fa-github { 292 | font-family: 'Font Awesome 5 Brands'; 293 | font-weight: 400; } 294 | 295 | .fa.fa-credit-card { 296 | font-family: 'Font Awesome 5 Free'; 297 | font-weight: 400; } 298 | 299 | .fa.fa-feed:before { 300 | content: "\f09e"; } 301 | 302 | .fa.fa-hdd-o { 303 | font-family: 'Font Awesome 5 Free'; 304 | font-weight: 400; } 305 | 306 | .fa.fa-hdd-o:before { 307 | content: "\f0a0"; } 308 | 309 | .fa.fa-hand-o-right { 310 | font-family: 'Font Awesome 5 Free'; 311 | font-weight: 400; } 312 | 313 | .fa.fa-hand-o-right:before { 314 | content: "\f0a4"; } 315 | 316 | .fa.fa-hand-o-left { 317 | font-family: 'Font Awesome 5 Free'; 318 | font-weight: 400; } 319 | 320 | .fa.fa-hand-o-left:before { 321 | content: "\f0a5"; } 322 | 323 | .fa.fa-hand-o-up { 324 | font-family: 'Font Awesome 5 Free'; 325 | font-weight: 400; } 326 | 327 | .fa.fa-hand-o-up:before { 328 | content: "\f0a6"; } 329 | 330 | .fa.fa-hand-o-down { 331 | font-family: 'Font Awesome 5 Free'; 332 | font-weight: 400; } 333 | 334 | .fa.fa-hand-o-down:before { 335 | content: "\f0a7"; } 336 | 337 | .fa.fa-arrows-alt:before { 338 | content: "\f31e"; } 339 | 340 | .fa.fa-group:before { 341 | content: "\f0c0"; } 342 | 343 | .fa.fa-chain:before { 344 | content: "\f0c1"; } 345 | 346 | .fa.fa-scissors:before { 347 | content: "\f0c4"; } 348 | 349 | .fa.fa-files-o { 350 | font-family: 'Font Awesome 5 Free'; 351 | font-weight: 400; } 352 | 353 | .fa.fa-files-o:before { 354 | content: "\f0c5"; } 355 | 356 | .fa.fa-floppy-o { 357 | font-family: 'Font Awesome 5 Free'; 358 | font-weight: 400; } 359 | 360 | .fa.fa-floppy-o:before { 361 | content: "\f0c7"; } 362 | 363 | .fa.fa-navicon:before { 364 | content: "\f0c9"; } 365 | 366 | .fa.fa-reorder:before { 367 | content: "\f0c9"; } 368 | 369 | .fa.fa-pinterest { 370 | font-family: 'Font Awesome 5 Brands'; 371 | font-weight: 400; } 372 | 373 | .fa.fa-pinterest-square { 374 | font-family: 'Font Awesome 5 Brands'; 375 | font-weight: 400; } 376 | 377 | .fa.fa-google-plus-square { 378 | font-family: 'Font Awesome 5 Brands'; 379 | font-weight: 400; } 380 | 381 | .fa.fa-google-plus { 382 | font-family: 'Font Awesome 5 Brands'; 383 | font-weight: 400; } 384 | 385 | .fa.fa-google-plus:before { 386 | content: "\f0d5"; } 387 | 388 | .fa.fa-money { 389 | font-family: 'Font Awesome 5 Free'; 390 | font-weight: 400; } 391 | 392 | .fa.fa-money:before { 393 | content: "\f3d1"; } 394 | 395 | .fa.fa-unsorted:before { 396 | content: "\f0dc"; } 397 | 398 | .fa.fa-sort-desc:before { 399 | content: "\f0dd"; } 400 | 401 | .fa.fa-sort-asc:before { 402 | content: "\f0de"; } 403 | 404 | .fa.fa-linkedin { 405 | font-family: 'Font Awesome 5 Brands'; 406 | font-weight: 400; } 407 | 408 | .fa.fa-linkedin:before { 409 | content: "\f0e1"; } 410 | 411 | .fa.fa-rotate-left:before { 412 | content: "\f0e2"; } 413 | 414 | .fa.fa-legal:before { 415 | content: "\f0e3"; } 416 | 417 | .fa.fa-tachometer:before { 418 | content: "\f3fd"; } 419 | 420 | .fa.fa-dashboard:before { 421 | content: "\f3fd"; } 422 | 423 | .fa.fa-comment-o { 424 | font-family: 'Font Awesome 5 Free'; 425 | font-weight: 400; } 426 | 427 | .fa.fa-comment-o:before { 428 | content: "\f075"; } 429 | 430 | .fa.fa-comments-o { 431 | font-family: 'Font Awesome 5 Free'; 432 | font-weight: 400; } 433 | 434 | .fa.fa-comments-o:before { 435 | content: "\f086"; } 436 | 437 | .fa.fa-flash:before { 438 | content: "\f0e7"; } 439 | 440 | .fa.fa-clipboard { 441 | font-family: 'Font Awesome 5 Free'; 442 | font-weight: 400; } 443 | 444 | .fa.fa-paste { 445 | font-family: 'Font Awesome 5 Free'; 446 | font-weight: 400; } 447 | 448 | .fa.fa-paste:before { 449 | content: "\f328"; } 450 | 451 | .fa.fa-lightbulb-o { 452 | font-family: 'Font Awesome 5 Free'; 453 | font-weight: 400; } 454 | 455 | .fa.fa-lightbulb-o:before { 456 | content: "\f0eb"; } 457 | 458 | .fa.fa-exchange:before { 459 | content: "\f362"; } 460 | 461 | .fa.fa-cloud-download:before { 462 | content: "\f381"; } 463 | 464 | .fa.fa-cloud-upload:before { 465 | content: "\f382"; } 466 | 467 | .fa.fa-bell-o { 468 | font-family: 'Font Awesome 5 Free'; 469 | font-weight: 400; } 470 | 471 | .fa.fa-bell-o:before { 472 | content: "\f0f3"; } 473 | 474 | .fa.fa-cutlery:before { 475 | content: "\f2e7"; } 476 | 477 | .fa.fa-file-text-o { 478 | font-family: 'Font Awesome 5 Free'; 479 | font-weight: 400; } 480 | 481 | .fa.fa-file-text-o:before { 482 | content: "\f15c"; } 483 | 484 | .fa.fa-building-o { 485 | font-family: 'Font Awesome 5 Free'; 486 | font-weight: 400; } 487 | 488 | .fa.fa-building-o:before { 489 | content: "\f1ad"; } 490 | 491 | .fa.fa-hospital-o { 492 | font-family: 'Font Awesome 5 Free'; 493 | font-weight: 400; } 494 | 495 | .fa.fa-hospital-o:before { 496 | content: "\f0f8"; } 497 | 498 | .fa.fa-tablet:before { 499 | content: "\f3fa"; } 500 | 501 | .fa.fa-mobile:before { 502 | content: "\f3cd"; } 503 | 504 | .fa.fa-mobile-phone:before { 505 | content: "\f3cd"; } 506 | 507 | .fa.fa-circle-o { 508 | font-family: 'Font Awesome 5 Free'; 509 | font-weight: 400; } 510 | 511 | .fa.fa-circle-o:before { 512 | content: "\f111"; } 513 | 514 | .fa.fa-mail-reply:before { 515 | content: "\f3e5"; } 516 | 517 | .fa.fa-github-alt { 518 | font-family: 'Font Awesome 5 Brands'; 519 | font-weight: 400; } 520 | 521 | .fa.fa-folder-o { 522 | font-family: 'Font Awesome 5 Free'; 523 | font-weight: 400; } 524 | 525 | .fa.fa-folder-o:before { 526 | content: "\f07b"; } 527 | 528 | .fa.fa-folder-open-o { 529 | font-family: 'Font Awesome 5 Free'; 530 | font-weight: 400; } 531 | 532 | .fa.fa-folder-open-o:before { 533 | content: "\f07c"; } 534 | 535 | .fa.fa-smile-o { 536 | font-family: 'Font Awesome 5 Free'; 537 | font-weight: 400; } 538 | 539 | .fa.fa-smile-o:before { 540 | content: "\f118"; } 541 | 542 | .fa.fa-frown-o { 543 | font-family: 'Font Awesome 5 Free'; 544 | font-weight: 400; } 545 | 546 | .fa.fa-frown-o:before { 547 | content: "\f119"; } 548 | 549 | .fa.fa-meh-o { 550 | font-family: 'Font Awesome 5 Free'; 551 | font-weight: 400; } 552 | 553 | .fa.fa-meh-o:before { 554 | content: "\f11a"; } 555 | 556 | .fa.fa-keyboard-o { 557 | font-family: 'Font Awesome 5 Free'; 558 | font-weight: 400; } 559 | 560 | .fa.fa-keyboard-o:before { 561 | content: "\f11c"; } 562 | 563 | .fa.fa-flag-o { 564 | font-family: 'Font Awesome 5 Free'; 565 | font-weight: 400; } 566 | 567 | .fa.fa-flag-o:before { 568 | content: "\f024"; } 569 | 570 | .fa.fa-mail-reply-all:before { 571 | content: "\f122"; } 572 | 573 | .fa.fa-star-half-o { 574 | font-family: 'Font Awesome 5 Free'; 575 | font-weight: 400; } 576 | 577 | .fa.fa-star-half-o:before { 578 | content: "\f089"; } 579 | 580 | .fa.fa-star-half-empty { 581 | font-family: 'Font Awesome 5 Free'; 582 | font-weight: 400; } 583 | 584 | .fa.fa-star-half-empty:before { 585 | content: "\f089"; } 586 | 587 | .fa.fa-star-half-full { 588 | font-family: 'Font Awesome 5 Free'; 589 | font-weight: 400; } 590 | 591 | .fa.fa-star-half-full:before { 592 | content: "\f089"; } 593 | 594 | .fa.fa-code-fork:before { 595 | content: "\f126"; } 596 | 597 | .fa.fa-chain-broken:before { 598 | content: "\f127"; } 599 | 600 | .fa.fa-shield:before { 601 | content: "\f3ed"; } 602 | 603 | .fa.fa-calendar-o { 604 | font-family: 'Font Awesome 5 Free'; 605 | font-weight: 400; } 606 | 607 | .fa.fa-calendar-o:before { 608 | content: "\f133"; } 609 | 610 | .fa.fa-maxcdn { 611 | font-family: 'Font Awesome 5 Brands'; 612 | font-weight: 400; } 613 | 614 | .fa.fa-html5 { 615 | font-family: 'Font Awesome 5 Brands'; 616 | font-weight: 400; } 617 | 618 | .fa.fa-css3 { 619 | font-family: 'Font Awesome 5 Brands'; 620 | font-weight: 400; } 621 | 622 | .fa.fa-ticket:before { 623 | content: "\f3ff"; } 624 | 625 | .fa.fa-minus-square-o { 626 | font-family: 'Font Awesome 5 Free'; 627 | font-weight: 400; } 628 | 629 | .fa.fa-minus-square-o:before { 630 | content: "\f146"; } 631 | 632 | .fa.fa-level-up:before { 633 | content: "\f3bf"; } 634 | 635 | .fa.fa-level-down:before { 636 | content: "\f3be"; } 637 | 638 | .fa.fa-pencil-square:before { 639 | content: "\f14b"; } 640 | 641 | .fa.fa-external-link-square:before { 642 | content: "\f360"; } 643 | 644 | .fa.fa-compass { 645 | font-family: 'Font Awesome 5 Free'; 646 | font-weight: 400; } 647 | 648 | .fa.fa-caret-square-o-down { 649 | font-family: 'Font Awesome 5 Free'; 650 | font-weight: 400; } 651 | 652 | .fa.fa-caret-square-o-down:before { 653 | content: "\f150"; } 654 | 655 | .fa.fa-toggle-down { 656 | font-family: 'Font Awesome 5 Free'; 657 | font-weight: 400; } 658 | 659 | .fa.fa-toggle-down:before { 660 | content: "\f150"; } 661 | 662 | .fa.fa-caret-square-o-up { 663 | font-family: 'Font Awesome 5 Free'; 664 | font-weight: 400; } 665 | 666 | .fa.fa-caret-square-o-up:before { 667 | content: "\f151"; } 668 | 669 | .fa.fa-toggle-up { 670 | font-family: 'Font Awesome 5 Free'; 671 | font-weight: 400; } 672 | 673 | .fa.fa-toggle-up:before { 674 | content: "\f151"; } 675 | 676 | .fa.fa-caret-square-o-right { 677 | font-family: 'Font Awesome 5 Free'; 678 | font-weight: 400; } 679 | 680 | .fa.fa-caret-square-o-right:before { 681 | content: "\f152"; } 682 | 683 | .fa.fa-toggle-right { 684 | font-family: 'Font Awesome 5 Free'; 685 | font-weight: 400; } 686 | 687 | .fa.fa-toggle-right:before { 688 | content: "\f152"; } 689 | 690 | .fa.fa-eur:before { 691 | content: "\f153"; } 692 | 693 | .fa.fa-euro:before { 694 | content: "\f153"; } 695 | 696 | .fa.fa-gbp:before { 697 | content: "\f154"; } 698 | 699 | .fa.fa-usd:before { 700 | content: "\f155"; } 701 | 702 | .fa.fa-dollar:before { 703 | content: "\f155"; } 704 | 705 | .fa.fa-inr:before { 706 | content: "\f156"; } 707 | 708 | .fa.fa-rupee:before { 709 | content: "\f156"; } 710 | 711 | .fa.fa-jpy:before { 712 | content: "\f157"; } 713 | 714 | .fa.fa-cny:before { 715 | content: "\f157"; } 716 | 717 | .fa.fa-rmb:before { 718 | content: "\f157"; } 719 | 720 | .fa.fa-yen:before { 721 | content: "\f157"; } 722 | 723 | .fa.fa-rub:before { 724 | content: "\f158"; } 725 | 726 | .fa.fa-ruble:before { 727 | content: "\f158"; } 728 | 729 | .fa.fa-rouble:before { 730 | content: "\f158"; } 731 | 732 | .fa.fa-krw:before { 733 | content: "\f159"; } 734 | 735 | .fa.fa-won:before { 736 | content: "\f159"; } 737 | 738 | .fa.fa-btc { 739 | font-family: 'Font Awesome 5 Brands'; 740 | font-weight: 400; } 741 | 742 | .fa.fa-bitcoin { 743 | font-family: 'Font Awesome 5 Brands'; 744 | font-weight: 400; } 745 | 746 | .fa.fa-bitcoin:before { 747 | content: "\f15a"; } 748 | 749 | .fa.fa-file-text:before { 750 | content: "\f15c"; } 751 | 752 | .fa.fa-sort-alpha-asc:before { 753 | content: "\f15d"; } 754 | 755 | .fa.fa-sort-alpha-desc:before { 756 | content: "\f881"; } 757 | 758 | .fa.fa-sort-amount-asc:before { 759 | content: "\f160"; } 760 | 761 | .fa.fa-sort-amount-desc:before { 762 | content: "\f884"; } 763 | 764 | .fa.fa-sort-numeric-asc:before { 765 | content: "\f162"; } 766 | 767 | .fa.fa-sort-numeric-desc:before { 768 | content: "\f886"; } 769 | 770 | .fa.fa-youtube-square { 771 | font-family: 'Font Awesome 5 Brands'; 772 | font-weight: 400; } 773 | 774 | .fa.fa-youtube { 775 | font-family: 'Font Awesome 5 Brands'; 776 | font-weight: 400; } 777 | 778 | .fa.fa-xing { 779 | font-family: 'Font Awesome 5 Brands'; 780 | font-weight: 400; } 781 | 782 | .fa.fa-xing-square { 783 | font-family: 'Font Awesome 5 Brands'; 784 | font-weight: 400; } 785 | 786 | .fa.fa-youtube-play { 787 | font-family: 'Font Awesome 5 Brands'; 788 | font-weight: 400; } 789 | 790 | .fa.fa-youtube-play:before { 791 | content: "\f167"; } 792 | 793 | .fa.fa-dropbox { 794 | font-family: 'Font Awesome 5 Brands'; 795 | font-weight: 400; } 796 | 797 | .fa.fa-stack-overflow { 798 | font-family: 'Font Awesome 5 Brands'; 799 | font-weight: 400; } 800 | 801 | .fa.fa-instagram { 802 | font-family: 'Font Awesome 5 Brands'; 803 | font-weight: 400; } 804 | 805 | .fa.fa-flickr { 806 | font-family: 'Font Awesome 5 Brands'; 807 | font-weight: 400; } 808 | 809 | .fa.fa-adn { 810 | font-family: 'Font Awesome 5 Brands'; 811 | font-weight: 400; } 812 | 813 | .fa.fa-bitbucket { 814 | font-family: 'Font Awesome 5 Brands'; 815 | font-weight: 400; } 816 | 817 | .fa.fa-bitbucket-square { 818 | font-family: 'Font Awesome 5 Brands'; 819 | font-weight: 400; } 820 | 821 | .fa.fa-bitbucket-square:before { 822 | content: "\f171"; } 823 | 824 | .fa.fa-tumblr { 825 | font-family: 'Font Awesome 5 Brands'; 826 | font-weight: 400; } 827 | 828 | .fa.fa-tumblr-square { 829 | font-family: 'Font Awesome 5 Brands'; 830 | font-weight: 400; } 831 | 832 | .fa.fa-long-arrow-down:before { 833 | content: "\f309"; } 834 | 835 | .fa.fa-long-arrow-up:before { 836 | content: "\f30c"; } 837 | 838 | .fa.fa-long-arrow-left:before { 839 | content: "\f30a"; } 840 | 841 | .fa.fa-long-arrow-right:before { 842 | content: "\f30b"; } 843 | 844 | .fa.fa-apple { 845 | font-family: 'Font Awesome 5 Brands'; 846 | font-weight: 400; } 847 | 848 | .fa.fa-windows { 849 | font-family: 'Font Awesome 5 Brands'; 850 | font-weight: 400; } 851 | 852 | .fa.fa-android { 853 | font-family: 'Font Awesome 5 Brands'; 854 | font-weight: 400; } 855 | 856 | .fa.fa-linux { 857 | font-family: 'Font Awesome 5 Brands'; 858 | font-weight: 400; } 859 | 860 | .fa.fa-dribbble { 861 | font-family: 'Font Awesome 5 Brands'; 862 | font-weight: 400; } 863 | 864 | .fa.fa-skype { 865 | font-family: 'Font Awesome 5 Brands'; 866 | font-weight: 400; } 867 | 868 | .fa.fa-foursquare { 869 | font-family: 'Font Awesome 5 Brands'; 870 | font-weight: 400; } 871 | 872 | .fa.fa-trello { 873 | font-family: 'Font Awesome 5 Brands'; 874 | font-weight: 400; } 875 | 876 | .fa.fa-gratipay { 877 | font-family: 'Font Awesome 5 Brands'; 878 | font-weight: 400; } 879 | 880 | .fa.fa-gittip { 881 | font-family: 'Font Awesome 5 Brands'; 882 | font-weight: 400; } 883 | 884 | .fa.fa-gittip:before { 885 | content: "\f184"; } 886 | 887 | .fa.fa-sun-o { 888 | font-family: 'Font Awesome 5 Free'; 889 | font-weight: 400; } 890 | 891 | .fa.fa-sun-o:before { 892 | content: "\f185"; } 893 | 894 | .fa.fa-moon-o { 895 | font-family: 'Font Awesome 5 Free'; 896 | font-weight: 400; } 897 | 898 | .fa.fa-moon-o:before { 899 | content: "\f186"; } 900 | 901 | .fa.fa-vk { 902 | font-family: 'Font Awesome 5 Brands'; 903 | font-weight: 400; } 904 | 905 | .fa.fa-weibo { 906 | font-family: 'Font Awesome 5 Brands'; 907 | font-weight: 400; } 908 | 909 | .fa.fa-renren { 910 | font-family: 'Font Awesome 5 Brands'; 911 | font-weight: 400; } 912 | 913 | .fa.fa-pagelines { 914 | font-family: 'Font Awesome 5 Brands'; 915 | font-weight: 400; } 916 | 917 | .fa.fa-stack-exchange { 918 | font-family: 'Font Awesome 5 Brands'; 919 | font-weight: 400; } 920 | 921 | .fa.fa-arrow-circle-o-right { 922 | font-family: 'Font Awesome 5 Free'; 923 | font-weight: 400; } 924 | 925 | .fa.fa-arrow-circle-o-right:before { 926 | content: "\f35a"; } 927 | 928 | .fa.fa-arrow-circle-o-left { 929 | font-family: 'Font Awesome 5 Free'; 930 | font-weight: 400; } 931 | 932 | .fa.fa-arrow-circle-o-left:before { 933 | content: "\f359"; } 934 | 935 | .fa.fa-caret-square-o-left { 936 | font-family: 'Font Awesome 5 Free'; 937 | font-weight: 400; } 938 | 939 | .fa.fa-caret-square-o-left:before { 940 | content: "\f191"; } 941 | 942 | .fa.fa-toggle-left { 943 | font-family: 'Font Awesome 5 Free'; 944 | font-weight: 400; } 945 | 946 | .fa.fa-toggle-left:before { 947 | content: "\f191"; } 948 | 949 | .fa.fa-dot-circle-o { 950 | font-family: 'Font Awesome 5 Free'; 951 | font-weight: 400; } 952 | 953 | .fa.fa-dot-circle-o:before { 954 | content: "\f192"; } 955 | 956 | .fa.fa-vimeo-square { 957 | font-family: 'Font Awesome 5 Brands'; 958 | font-weight: 400; } 959 | 960 | .fa.fa-try:before { 961 | content: "\f195"; } 962 | 963 | .fa.fa-turkish-lira:before { 964 | content: "\f195"; } 965 | 966 | .fa.fa-plus-square-o { 967 | font-family: 'Font Awesome 5 Free'; 968 | font-weight: 400; } 969 | 970 | .fa.fa-plus-square-o:before { 971 | content: "\f0fe"; } 972 | 973 | .fa.fa-slack { 974 | font-family: 'Font Awesome 5 Brands'; 975 | font-weight: 400; } 976 | 977 | .fa.fa-wordpress { 978 | font-family: 'Font Awesome 5 Brands'; 979 | font-weight: 400; } 980 | 981 | .fa.fa-openid { 982 | font-family: 'Font Awesome 5 Brands'; 983 | font-weight: 400; } 984 | 985 | .fa.fa-institution:before { 986 | content: "\f19c"; } 987 | 988 | .fa.fa-bank:before { 989 | content: "\f19c"; } 990 | 991 | .fa.fa-mortar-board:before { 992 | content: "\f19d"; } 993 | 994 | .fa.fa-yahoo { 995 | font-family: 'Font Awesome 5 Brands'; 996 | font-weight: 400; } 997 | 998 | .fa.fa-google { 999 | font-family: 'Font Awesome 5 Brands'; 1000 | font-weight: 400; } 1001 | 1002 | .fa.fa-reddit { 1003 | font-family: 'Font Awesome 5 Brands'; 1004 | font-weight: 400; } 1005 | 1006 | .fa.fa-reddit-square { 1007 | font-family: 'Font Awesome 5 Brands'; 1008 | font-weight: 400; } 1009 | 1010 | .fa.fa-stumbleupon-circle { 1011 | font-family: 'Font Awesome 5 Brands'; 1012 | font-weight: 400; } 1013 | 1014 | .fa.fa-stumbleupon { 1015 | font-family: 'Font Awesome 5 Brands'; 1016 | font-weight: 400; } 1017 | 1018 | .fa.fa-delicious { 1019 | font-family: 'Font Awesome 5 Brands'; 1020 | font-weight: 400; } 1021 | 1022 | .fa.fa-digg { 1023 | font-family: 'Font Awesome 5 Brands'; 1024 | font-weight: 400; } 1025 | 1026 | .fa.fa-pied-piper-pp { 1027 | font-family: 'Font Awesome 5 Brands'; 1028 | font-weight: 400; } 1029 | 1030 | .fa.fa-pied-piper-alt { 1031 | font-family: 'Font Awesome 5 Brands'; 1032 | font-weight: 400; } 1033 | 1034 | .fa.fa-drupal { 1035 | font-family: 'Font Awesome 5 Brands'; 1036 | font-weight: 400; } 1037 | 1038 | .fa.fa-joomla { 1039 | font-family: 'Font Awesome 5 Brands'; 1040 | font-weight: 400; } 1041 | 1042 | .fa.fa-spoon:before { 1043 | content: "\f2e5"; } 1044 | 1045 | .fa.fa-behance { 1046 | font-family: 'Font Awesome 5 Brands'; 1047 | font-weight: 400; } 1048 | 1049 | .fa.fa-behance-square { 1050 | font-family: 'Font Awesome 5 Brands'; 1051 | font-weight: 400; } 1052 | 1053 | .fa.fa-steam { 1054 | font-family: 'Font Awesome 5 Brands'; 1055 | font-weight: 400; } 1056 | 1057 | .fa.fa-steam-square { 1058 | font-family: 'Font Awesome 5 Brands'; 1059 | font-weight: 400; } 1060 | 1061 | .fa.fa-automobile:before { 1062 | content: "\f1b9"; } 1063 | 1064 | .fa.fa-envelope-o { 1065 | font-family: 'Font Awesome 5 Free'; 1066 | font-weight: 400; } 1067 | 1068 | .fa.fa-envelope-o:before { 1069 | content: "\f0e0"; } 1070 | 1071 | .fa.fa-spotify { 1072 | font-family: 'Font Awesome 5 Brands'; 1073 | font-weight: 400; } 1074 | 1075 | .fa.fa-deviantart { 1076 | font-family: 'Font Awesome 5 Brands'; 1077 | font-weight: 400; } 1078 | 1079 | .fa.fa-soundcloud { 1080 | font-family: 'Font Awesome 5 Brands'; 1081 | font-weight: 400; } 1082 | 1083 | .fa.fa-file-pdf-o { 1084 | font-family: 'Font Awesome 5 Free'; 1085 | font-weight: 400; } 1086 | 1087 | .fa.fa-file-pdf-o:before { 1088 | content: "\f1c1"; } 1089 | 1090 | .fa.fa-file-word-o { 1091 | font-family: 'Font Awesome 5 Free'; 1092 | font-weight: 400; } 1093 | 1094 | .fa.fa-file-word-o:before { 1095 | content: "\f1c2"; } 1096 | 1097 | .fa.fa-file-excel-o { 1098 | font-family: 'Font Awesome 5 Free'; 1099 | font-weight: 400; } 1100 | 1101 | .fa.fa-file-excel-o:before { 1102 | content: "\f1c3"; } 1103 | 1104 | .fa.fa-file-powerpoint-o { 1105 | font-family: 'Font Awesome 5 Free'; 1106 | font-weight: 400; } 1107 | 1108 | .fa.fa-file-powerpoint-o:before { 1109 | content: "\f1c4"; } 1110 | 1111 | .fa.fa-file-image-o { 1112 | font-family: 'Font Awesome 5 Free'; 1113 | font-weight: 400; } 1114 | 1115 | .fa.fa-file-image-o:before { 1116 | content: "\f1c5"; } 1117 | 1118 | .fa.fa-file-photo-o { 1119 | font-family: 'Font Awesome 5 Free'; 1120 | font-weight: 400; } 1121 | 1122 | .fa.fa-file-photo-o:before { 1123 | content: "\f1c5"; } 1124 | 1125 | .fa.fa-file-picture-o { 1126 | font-family: 'Font Awesome 5 Free'; 1127 | font-weight: 400; } 1128 | 1129 | .fa.fa-file-picture-o:before { 1130 | content: "\f1c5"; } 1131 | 1132 | .fa.fa-file-archive-o { 1133 | font-family: 'Font Awesome 5 Free'; 1134 | font-weight: 400; } 1135 | 1136 | .fa.fa-file-archive-o:before { 1137 | content: "\f1c6"; } 1138 | 1139 | .fa.fa-file-zip-o { 1140 | font-family: 'Font Awesome 5 Free'; 1141 | font-weight: 400; } 1142 | 1143 | .fa.fa-file-zip-o:before { 1144 | content: "\f1c6"; } 1145 | 1146 | .fa.fa-file-audio-o { 1147 | font-family: 'Font Awesome 5 Free'; 1148 | font-weight: 400; } 1149 | 1150 | .fa.fa-file-audio-o:before { 1151 | content: "\f1c7"; } 1152 | 1153 | .fa.fa-file-sound-o { 1154 | font-family: 'Font Awesome 5 Free'; 1155 | font-weight: 400; } 1156 | 1157 | .fa.fa-file-sound-o:before { 1158 | content: "\f1c7"; } 1159 | 1160 | .fa.fa-file-video-o { 1161 | font-family: 'Font Awesome 5 Free'; 1162 | font-weight: 400; } 1163 | 1164 | .fa.fa-file-video-o:before { 1165 | content: "\f1c8"; } 1166 | 1167 | .fa.fa-file-movie-o { 1168 | font-family: 'Font Awesome 5 Free'; 1169 | font-weight: 400; } 1170 | 1171 | .fa.fa-file-movie-o:before { 1172 | content: "\f1c8"; } 1173 | 1174 | .fa.fa-file-code-o { 1175 | font-family: 'Font Awesome 5 Free'; 1176 | font-weight: 400; } 1177 | 1178 | .fa.fa-file-code-o:before { 1179 | content: "\f1c9"; } 1180 | 1181 | .fa.fa-vine { 1182 | font-family: 'Font Awesome 5 Brands'; 1183 | font-weight: 400; } 1184 | 1185 | .fa.fa-codepen { 1186 | font-family: 'Font Awesome 5 Brands'; 1187 | font-weight: 400; } 1188 | 1189 | .fa.fa-jsfiddle { 1190 | font-family: 'Font Awesome 5 Brands'; 1191 | font-weight: 400; } 1192 | 1193 | .fa.fa-life-ring { 1194 | font-family: 'Font Awesome 5 Free'; 1195 | font-weight: 400; } 1196 | 1197 | .fa.fa-life-bouy { 1198 | font-family: 'Font Awesome 5 Free'; 1199 | font-weight: 400; } 1200 | 1201 | .fa.fa-life-bouy:before { 1202 | content: "\f1cd"; } 1203 | 1204 | .fa.fa-life-buoy { 1205 | font-family: 'Font Awesome 5 Free'; 1206 | font-weight: 400; } 1207 | 1208 | .fa.fa-life-buoy:before { 1209 | content: "\f1cd"; } 1210 | 1211 | .fa.fa-life-saver { 1212 | font-family: 'Font Awesome 5 Free'; 1213 | font-weight: 400; } 1214 | 1215 | .fa.fa-life-saver:before { 1216 | content: "\f1cd"; } 1217 | 1218 | .fa.fa-support { 1219 | font-family: 'Font Awesome 5 Free'; 1220 | font-weight: 400; } 1221 | 1222 | .fa.fa-support:before { 1223 | content: "\f1cd"; } 1224 | 1225 | .fa.fa-circle-o-notch:before { 1226 | content: "\f1ce"; } 1227 | 1228 | .fa.fa-rebel { 1229 | font-family: 'Font Awesome 5 Brands'; 1230 | font-weight: 400; } 1231 | 1232 | .fa.fa-ra { 1233 | font-family: 'Font Awesome 5 Brands'; 1234 | font-weight: 400; } 1235 | 1236 | .fa.fa-ra:before { 1237 | content: "\f1d0"; } 1238 | 1239 | .fa.fa-resistance { 1240 | font-family: 'Font Awesome 5 Brands'; 1241 | font-weight: 400; } 1242 | 1243 | .fa.fa-resistance:before { 1244 | content: "\f1d0"; } 1245 | 1246 | .fa.fa-empire { 1247 | font-family: 'Font Awesome 5 Brands'; 1248 | font-weight: 400; } 1249 | 1250 | .fa.fa-ge { 1251 | font-family: 'Font Awesome 5 Brands'; 1252 | font-weight: 400; } 1253 | 1254 | .fa.fa-ge:before { 1255 | content: "\f1d1"; } 1256 | 1257 | .fa.fa-git-square { 1258 | font-family: 'Font Awesome 5 Brands'; 1259 | font-weight: 400; } 1260 | 1261 | .fa.fa-git { 1262 | font-family: 'Font Awesome 5 Brands'; 1263 | font-weight: 400; } 1264 | 1265 | .fa.fa-hacker-news { 1266 | font-family: 'Font Awesome 5 Brands'; 1267 | font-weight: 400; } 1268 | 1269 | .fa.fa-y-combinator-square { 1270 | font-family: 'Font Awesome 5 Brands'; 1271 | font-weight: 400; } 1272 | 1273 | .fa.fa-y-combinator-square:before { 1274 | content: "\f1d4"; } 1275 | 1276 | .fa.fa-yc-square { 1277 | font-family: 'Font Awesome 5 Brands'; 1278 | font-weight: 400; } 1279 | 1280 | .fa.fa-yc-square:before { 1281 | content: "\f1d4"; } 1282 | 1283 | .fa.fa-tencent-weibo { 1284 | font-family: 'Font Awesome 5 Brands'; 1285 | font-weight: 400; } 1286 | 1287 | .fa.fa-qq { 1288 | font-family: 'Font Awesome 5 Brands'; 1289 | font-weight: 400; } 1290 | 1291 | .fa.fa-weixin { 1292 | font-family: 'Font Awesome 5 Brands'; 1293 | font-weight: 400; } 1294 | 1295 | .fa.fa-wechat { 1296 | font-family: 'Font Awesome 5 Brands'; 1297 | font-weight: 400; } 1298 | 1299 | .fa.fa-wechat:before { 1300 | content: "\f1d7"; } 1301 | 1302 | .fa.fa-send:before { 1303 | content: "\f1d8"; } 1304 | 1305 | .fa.fa-paper-plane-o { 1306 | font-family: 'Font Awesome 5 Free'; 1307 | font-weight: 400; } 1308 | 1309 | .fa.fa-paper-plane-o:before { 1310 | content: "\f1d8"; } 1311 | 1312 | .fa.fa-send-o { 1313 | font-family: 'Font Awesome 5 Free'; 1314 | font-weight: 400; } 1315 | 1316 | .fa.fa-send-o:before { 1317 | content: "\f1d8"; } 1318 | 1319 | .fa.fa-circle-thin { 1320 | font-family: 'Font Awesome 5 Free'; 1321 | font-weight: 400; } 1322 | 1323 | .fa.fa-circle-thin:before { 1324 | content: "\f111"; } 1325 | 1326 | .fa.fa-header:before { 1327 | content: "\f1dc"; } 1328 | 1329 | .fa.fa-sliders:before { 1330 | content: "\f1de"; } 1331 | 1332 | .fa.fa-futbol-o { 1333 | font-family: 'Font Awesome 5 Free'; 1334 | font-weight: 400; } 1335 | 1336 | .fa.fa-futbol-o:before { 1337 | content: "\f1e3"; } 1338 | 1339 | .fa.fa-soccer-ball-o { 1340 | font-family: 'Font Awesome 5 Free'; 1341 | font-weight: 400; } 1342 | 1343 | .fa.fa-soccer-ball-o:before { 1344 | content: "\f1e3"; } 1345 | 1346 | .fa.fa-slideshare { 1347 | font-family: 'Font Awesome 5 Brands'; 1348 | font-weight: 400; } 1349 | 1350 | .fa.fa-twitch { 1351 | font-family: 'Font Awesome 5 Brands'; 1352 | font-weight: 400; } 1353 | 1354 | .fa.fa-yelp { 1355 | font-family: 'Font Awesome 5 Brands'; 1356 | font-weight: 400; } 1357 | 1358 | .fa.fa-newspaper-o { 1359 | font-family: 'Font Awesome 5 Free'; 1360 | font-weight: 400; } 1361 | 1362 | .fa.fa-newspaper-o:before { 1363 | content: "\f1ea"; } 1364 | 1365 | .fa.fa-paypal { 1366 | font-family: 'Font Awesome 5 Brands'; 1367 | font-weight: 400; } 1368 | 1369 | .fa.fa-google-wallet { 1370 | font-family: 'Font Awesome 5 Brands'; 1371 | font-weight: 400; } 1372 | 1373 | .fa.fa-cc-visa { 1374 | font-family: 'Font Awesome 5 Brands'; 1375 | font-weight: 400; } 1376 | 1377 | .fa.fa-cc-mastercard { 1378 | font-family: 'Font Awesome 5 Brands'; 1379 | font-weight: 400; } 1380 | 1381 | .fa.fa-cc-discover { 1382 | font-family: 'Font Awesome 5 Brands'; 1383 | font-weight: 400; } 1384 | 1385 | .fa.fa-cc-amex { 1386 | font-family: 'Font Awesome 5 Brands'; 1387 | font-weight: 400; } 1388 | 1389 | .fa.fa-cc-paypal { 1390 | font-family: 'Font Awesome 5 Brands'; 1391 | font-weight: 400; } 1392 | 1393 | .fa.fa-cc-stripe { 1394 | font-family: 'Font Awesome 5 Brands'; 1395 | font-weight: 400; } 1396 | 1397 | .fa.fa-bell-slash-o { 1398 | font-family: 'Font Awesome 5 Free'; 1399 | font-weight: 400; } 1400 | 1401 | .fa.fa-bell-slash-o:before { 1402 | content: "\f1f6"; } 1403 | 1404 | .fa.fa-trash:before { 1405 | content: "\f2ed"; } 1406 | 1407 | .fa.fa-copyright { 1408 | font-family: 'Font Awesome 5 Free'; 1409 | font-weight: 400; } 1410 | 1411 | .fa.fa-eyedropper:before { 1412 | content: "\f1fb"; } 1413 | 1414 | .fa.fa-area-chart:before { 1415 | content: "\f1fe"; } 1416 | 1417 | .fa.fa-pie-chart:before { 1418 | content: "\f200"; } 1419 | 1420 | .fa.fa-line-chart:before { 1421 | content: "\f201"; } 1422 | 1423 | .fa.fa-lastfm { 1424 | font-family: 'Font Awesome 5 Brands'; 1425 | font-weight: 400; } 1426 | 1427 | .fa.fa-lastfm-square { 1428 | font-family: 'Font Awesome 5 Brands'; 1429 | font-weight: 400; } 1430 | 1431 | .fa.fa-ioxhost { 1432 | font-family: 'Font Awesome 5 Brands'; 1433 | font-weight: 400; } 1434 | 1435 | .fa.fa-angellist { 1436 | font-family: 'Font Awesome 5 Brands'; 1437 | font-weight: 400; } 1438 | 1439 | .fa.fa-cc { 1440 | font-family: 'Font Awesome 5 Free'; 1441 | font-weight: 400; } 1442 | 1443 | .fa.fa-cc:before { 1444 | content: "\f20a"; } 1445 | 1446 | .fa.fa-ils:before { 1447 | content: "\f20b"; } 1448 | 1449 | .fa.fa-shekel:before { 1450 | content: "\f20b"; } 1451 | 1452 | .fa.fa-sheqel:before { 1453 | content: "\f20b"; } 1454 | 1455 | .fa.fa-meanpath { 1456 | font-family: 'Font Awesome 5 Brands'; 1457 | font-weight: 400; } 1458 | 1459 | .fa.fa-meanpath:before { 1460 | content: "\f2b4"; } 1461 | 1462 | .fa.fa-buysellads { 1463 | font-family: 'Font Awesome 5 Brands'; 1464 | font-weight: 400; } 1465 | 1466 | .fa.fa-connectdevelop { 1467 | font-family: 'Font Awesome 5 Brands'; 1468 | font-weight: 400; } 1469 | 1470 | .fa.fa-dashcube { 1471 | font-family: 'Font Awesome 5 Brands'; 1472 | font-weight: 400; } 1473 | 1474 | .fa.fa-forumbee { 1475 | font-family: 'Font Awesome 5 Brands'; 1476 | font-weight: 400; } 1477 | 1478 | .fa.fa-leanpub { 1479 | font-family: 'Font Awesome 5 Brands'; 1480 | font-weight: 400; } 1481 | 1482 | .fa.fa-sellsy { 1483 | font-family: 'Font Awesome 5 Brands'; 1484 | font-weight: 400; } 1485 | 1486 | .fa.fa-shirtsinbulk { 1487 | font-family: 'Font Awesome 5 Brands'; 1488 | font-weight: 400; } 1489 | 1490 | .fa.fa-simplybuilt { 1491 | font-family: 'Font Awesome 5 Brands'; 1492 | font-weight: 400; } 1493 | 1494 | .fa.fa-skyatlas { 1495 | font-family: 'Font Awesome 5 Brands'; 1496 | font-weight: 400; } 1497 | 1498 | .fa.fa-diamond { 1499 | font-family: 'Font Awesome 5 Free'; 1500 | font-weight: 400; } 1501 | 1502 | .fa.fa-diamond:before { 1503 | content: "\f3a5"; } 1504 | 1505 | .fa.fa-intersex:before { 1506 | content: "\f224"; } 1507 | 1508 | .fa.fa-facebook-official { 1509 | font-family: 'Font Awesome 5 Brands'; 1510 | font-weight: 400; } 1511 | 1512 | .fa.fa-facebook-official:before { 1513 | content: "\f09a"; } 1514 | 1515 | .fa.fa-pinterest-p { 1516 | font-family: 'Font Awesome 5 Brands'; 1517 | font-weight: 400; } 1518 | 1519 | .fa.fa-whatsapp { 1520 | font-family: 'Font Awesome 5 Brands'; 1521 | font-weight: 400; } 1522 | 1523 | .fa.fa-hotel:before { 1524 | content: "\f236"; } 1525 | 1526 | .fa.fa-viacoin { 1527 | font-family: 'Font Awesome 5 Brands'; 1528 | font-weight: 400; } 1529 | 1530 | .fa.fa-medium { 1531 | font-family: 'Font Awesome 5 Brands'; 1532 | font-weight: 400; } 1533 | 1534 | .fa.fa-y-combinator { 1535 | font-family: 'Font Awesome 5 Brands'; 1536 | font-weight: 400; } 1537 | 1538 | .fa.fa-yc { 1539 | font-family: 'Font Awesome 5 Brands'; 1540 | font-weight: 400; } 1541 | 1542 | .fa.fa-yc:before { 1543 | content: "\f23b"; } 1544 | 1545 | .fa.fa-optin-monster { 1546 | font-family: 'Font Awesome 5 Brands'; 1547 | font-weight: 400; } 1548 | 1549 | .fa.fa-opencart { 1550 | font-family: 'Font Awesome 5 Brands'; 1551 | font-weight: 400; } 1552 | 1553 | .fa.fa-expeditedssl { 1554 | font-family: 'Font Awesome 5 Brands'; 1555 | font-weight: 400; } 1556 | 1557 | .fa.fa-battery-4:before { 1558 | content: "\f240"; } 1559 | 1560 | .fa.fa-battery:before { 1561 | content: "\f240"; } 1562 | 1563 | .fa.fa-battery-3:before { 1564 | content: "\f241"; } 1565 | 1566 | .fa.fa-battery-2:before { 1567 | content: "\f242"; } 1568 | 1569 | .fa.fa-battery-1:before { 1570 | content: "\f243"; } 1571 | 1572 | .fa.fa-battery-0:before { 1573 | content: "\f244"; } 1574 | 1575 | .fa.fa-object-group { 1576 | font-family: 'Font Awesome 5 Free'; 1577 | font-weight: 400; } 1578 | 1579 | .fa.fa-object-ungroup { 1580 | font-family: 'Font Awesome 5 Free'; 1581 | font-weight: 400; } 1582 | 1583 | .fa.fa-sticky-note-o { 1584 | font-family: 'Font Awesome 5 Free'; 1585 | font-weight: 400; } 1586 | 1587 | .fa.fa-sticky-note-o:before { 1588 | content: "\f249"; } 1589 | 1590 | .fa.fa-cc-jcb { 1591 | font-family: 'Font Awesome 5 Brands'; 1592 | font-weight: 400; } 1593 | 1594 | .fa.fa-cc-diners-club { 1595 | font-family: 'Font Awesome 5 Brands'; 1596 | font-weight: 400; } 1597 | 1598 | .fa.fa-clone { 1599 | font-family: 'Font Awesome 5 Free'; 1600 | font-weight: 400; } 1601 | 1602 | .fa.fa-hourglass-o { 1603 | font-family: 'Font Awesome 5 Free'; 1604 | font-weight: 400; } 1605 | 1606 | .fa.fa-hourglass-o:before { 1607 | content: "\f254"; } 1608 | 1609 | .fa.fa-hourglass-1:before { 1610 | content: "\f251"; } 1611 | 1612 | .fa.fa-hourglass-2:before { 1613 | content: "\f252"; } 1614 | 1615 | .fa.fa-hourglass-3:before { 1616 | content: "\f253"; } 1617 | 1618 | .fa.fa-hand-rock-o { 1619 | font-family: 'Font Awesome 5 Free'; 1620 | font-weight: 400; } 1621 | 1622 | .fa.fa-hand-rock-o:before { 1623 | content: "\f255"; } 1624 | 1625 | .fa.fa-hand-grab-o { 1626 | font-family: 'Font Awesome 5 Free'; 1627 | font-weight: 400; } 1628 | 1629 | .fa.fa-hand-grab-o:before { 1630 | content: "\f255"; } 1631 | 1632 | .fa.fa-hand-paper-o { 1633 | font-family: 'Font Awesome 5 Free'; 1634 | font-weight: 400; } 1635 | 1636 | .fa.fa-hand-paper-o:before { 1637 | content: "\f256"; } 1638 | 1639 | .fa.fa-hand-stop-o { 1640 | font-family: 'Font Awesome 5 Free'; 1641 | font-weight: 400; } 1642 | 1643 | .fa.fa-hand-stop-o:before { 1644 | content: "\f256"; } 1645 | 1646 | .fa.fa-hand-scissors-o { 1647 | font-family: 'Font Awesome 5 Free'; 1648 | font-weight: 400; } 1649 | 1650 | .fa.fa-hand-scissors-o:before { 1651 | content: "\f257"; } 1652 | 1653 | .fa.fa-hand-lizard-o { 1654 | font-family: 'Font Awesome 5 Free'; 1655 | font-weight: 400; } 1656 | 1657 | .fa.fa-hand-lizard-o:before { 1658 | content: "\f258"; } 1659 | 1660 | .fa.fa-hand-spock-o { 1661 | font-family: 'Font Awesome 5 Free'; 1662 | font-weight: 400; } 1663 | 1664 | .fa.fa-hand-spock-o:before { 1665 | content: "\f259"; } 1666 | 1667 | .fa.fa-hand-pointer-o { 1668 | font-family: 'Font Awesome 5 Free'; 1669 | font-weight: 400; } 1670 | 1671 | .fa.fa-hand-pointer-o:before { 1672 | content: "\f25a"; } 1673 | 1674 | .fa.fa-hand-peace-o { 1675 | font-family: 'Font Awesome 5 Free'; 1676 | font-weight: 400; } 1677 | 1678 | .fa.fa-hand-peace-o:before { 1679 | content: "\f25b"; } 1680 | 1681 | .fa.fa-registered { 1682 | font-family: 'Font Awesome 5 Free'; 1683 | font-weight: 400; } 1684 | 1685 | .fa.fa-creative-commons { 1686 | font-family: 'Font Awesome 5 Brands'; 1687 | font-weight: 400; } 1688 | 1689 | .fa.fa-gg { 1690 | font-family: 'Font Awesome 5 Brands'; 1691 | font-weight: 400; } 1692 | 1693 | .fa.fa-gg-circle { 1694 | font-family: 'Font Awesome 5 Brands'; 1695 | font-weight: 400; } 1696 | 1697 | .fa.fa-tripadvisor { 1698 | font-family: 'Font Awesome 5 Brands'; 1699 | font-weight: 400; } 1700 | 1701 | .fa.fa-odnoklassniki { 1702 | font-family: 'Font Awesome 5 Brands'; 1703 | font-weight: 400; } 1704 | 1705 | .fa.fa-odnoklassniki-square { 1706 | font-family: 'Font Awesome 5 Brands'; 1707 | font-weight: 400; } 1708 | 1709 | .fa.fa-get-pocket { 1710 | font-family: 'Font Awesome 5 Brands'; 1711 | font-weight: 400; } 1712 | 1713 | .fa.fa-wikipedia-w { 1714 | font-family: 'Font Awesome 5 Brands'; 1715 | font-weight: 400; } 1716 | 1717 | .fa.fa-safari { 1718 | font-family: 'Font Awesome 5 Brands'; 1719 | font-weight: 400; } 1720 | 1721 | .fa.fa-chrome { 1722 | font-family: 'Font Awesome 5 Brands'; 1723 | font-weight: 400; } 1724 | 1725 | .fa.fa-firefox { 1726 | font-family: 'Font Awesome 5 Brands'; 1727 | font-weight: 400; } 1728 | 1729 | .fa.fa-opera { 1730 | font-family: 'Font Awesome 5 Brands'; 1731 | font-weight: 400; } 1732 | 1733 | .fa.fa-internet-explorer { 1734 | font-family: 'Font Awesome 5 Brands'; 1735 | font-weight: 400; } 1736 | 1737 | .fa.fa-television:before { 1738 | content: "\f26c"; } 1739 | 1740 | .fa.fa-contao { 1741 | font-family: 'Font Awesome 5 Brands'; 1742 | font-weight: 400; } 1743 | 1744 | .fa.fa-500px { 1745 | font-family: 'Font Awesome 5 Brands'; 1746 | font-weight: 400; } 1747 | 1748 | .fa.fa-amazon { 1749 | font-family: 'Font Awesome 5 Brands'; 1750 | font-weight: 400; } 1751 | 1752 | .fa.fa-calendar-plus-o { 1753 | font-family: 'Font Awesome 5 Free'; 1754 | font-weight: 400; } 1755 | 1756 | .fa.fa-calendar-plus-o:before { 1757 | content: "\f271"; } 1758 | 1759 | .fa.fa-calendar-minus-o { 1760 | font-family: 'Font Awesome 5 Free'; 1761 | font-weight: 400; } 1762 | 1763 | .fa.fa-calendar-minus-o:before { 1764 | content: "\f272"; } 1765 | 1766 | .fa.fa-calendar-times-o { 1767 | font-family: 'Font Awesome 5 Free'; 1768 | font-weight: 400; } 1769 | 1770 | .fa.fa-calendar-times-o:before { 1771 | content: "\f273"; } 1772 | 1773 | .fa.fa-calendar-check-o { 1774 | font-family: 'Font Awesome 5 Free'; 1775 | font-weight: 400; } 1776 | 1777 | .fa.fa-calendar-check-o:before { 1778 | content: "\f274"; } 1779 | 1780 | .fa.fa-map-o { 1781 | font-family: 'Font Awesome 5 Free'; 1782 | font-weight: 400; } 1783 | 1784 | .fa.fa-map-o:before { 1785 | content: "\f279"; } 1786 | 1787 | .fa.fa-commenting:before { 1788 | content: "\f4ad"; } 1789 | 1790 | .fa.fa-commenting-o { 1791 | font-family: 'Font Awesome 5 Free'; 1792 | font-weight: 400; } 1793 | 1794 | .fa.fa-commenting-o:before { 1795 | content: "\f4ad"; } 1796 | 1797 | .fa.fa-houzz { 1798 | font-family: 'Font Awesome 5 Brands'; 1799 | font-weight: 400; } 1800 | 1801 | .fa.fa-vimeo { 1802 | font-family: 'Font Awesome 5 Brands'; 1803 | font-weight: 400; } 1804 | 1805 | .fa.fa-vimeo:before { 1806 | content: "\f27d"; } 1807 | 1808 | .fa.fa-black-tie { 1809 | font-family: 'Font Awesome 5 Brands'; 1810 | font-weight: 400; } 1811 | 1812 | .fa.fa-fonticons { 1813 | font-family: 'Font Awesome 5 Brands'; 1814 | font-weight: 400; } 1815 | 1816 | .fa.fa-reddit-alien { 1817 | font-family: 'Font Awesome 5 Brands'; 1818 | font-weight: 400; } 1819 | 1820 | .fa.fa-edge { 1821 | font-family: 'Font Awesome 5 Brands'; 1822 | font-weight: 400; } 1823 | 1824 | .fa.fa-credit-card-alt:before { 1825 | content: "\f09d"; } 1826 | 1827 | .fa.fa-codiepie { 1828 | font-family: 'Font Awesome 5 Brands'; 1829 | font-weight: 400; } 1830 | 1831 | .fa.fa-modx { 1832 | font-family: 'Font Awesome 5 Brands'; 1833 | font-weight: 400; } 1834 | 1835 | .fa.fa-fort-awesome { 1836 | font-family: 'Font Awesome 5 Brands'; 1837 | font-weight: 400; } 1838 | 1839 | .fa.fa-usb { 1840 | font-family: 'Font Awesome 5 Brands'; 1841 | font-weight: 400; } 1842 | 1843 | .fa.fa-product-hunt { 1844 | font-family: 'Font Awesome 5 Brands'; 1845 | font-weight: 400; } 1846 | 1847 | .fa.fa-mixcloud { 1848 | font-family: 'Font Awesome 5 Brands'; 1849 | font-weight: 400; } 1850 | 1851 | .fa.fa-scribd { 1852 | font-family: 'Font Awesome 5 Brands'; 1853 | font-weight: 400; } 1854 | 1855 | .fa.fa-pause-circle-o { 1856 | font-family: 'Font Awesome 5 Free'; 1857 | font-weight: 400; } 1858 | 1859 | .fa.fa-pause-circle-o:before { 1860 | content: "\f28b"; } 1861 | 1862 | .fa.fa-stop-circle-o { 1863 | font-family: 'Font Awesome 5 Free'; 1864 | font-weight: 400; } 1865 | 1866 | .fa.fa-stop-circle-o:before { 1867 | content: "\f28d"; } 1868 | 1869 | .fa.fa-bluetooth { 1870 | font-family: 'Font Awesome 5 Brands'; 1871 | font-weight: 400; } 1872 | 1873 | .fa.fa-bluetooth-b { 1874 | font-family: 'Font Awesome 5 Brands'; 1875 | font-weight: 400; } 1876 | 1877 | .fa.fa-gitlab { 1878 | font-family: 'Font Awesome 5 Brands'; 1879 | font-weight: 400; } 1880 | 1881 | .fa.fa-wpbeginner { 1882 | font-family: 'Font Awesome 5 Brands'; 1883 | font-weight: 400; } 1884 | 1885 | .fa.fa-wpforms { 1886 | font-family: 'Font Awesome 5 Brands'; 1887 | font-weight: 400; } 1888 | 1889 | .fa.fa-envira { 1890 | font-family: 'Font Awesome 5 Brands'; 1891 | font-weight: 400; } 1892 | 1893 | .fa.fa-wheelchair-alt { 1894 | font-family: 'Font Awesome 5 Brands'; 1895 | font-weight: 400; } 1896 | 1897 | .fa.fa-wheelchair-alt:before { 1898 | content: "\f368"; } 1899 | 1900 | .fa.fa-question-circle-o { 1901 | font-family: 'Font Awesome 5 Free'; 1902 | font-weight: 400; } 1903 | 1904 | .fa.fa-question-circle-o:before { 1905 | content: "\f059"; } 1906 | 1907 | .fa.fa-volume-control-phone:before { 1908 | content: "\f2a0"; } 1909 | 1910 | .fa.fa-asl-interpreting:before { 1911 | content: "\f2a3"; } 1912 | 1913 | .fa.fa-deafness:before { 1914 | content: "\f2a4"; } 1915 | 1916 | .fa.fa-hard-of-hearing:before { 1917 | content: "\f2a4"; } 1918 | 1919 | .fa.fa-glide { 1920 | font-family: 'Font Awesome 5 Brands'; 1921 | font-weight: 400; } 1922 | 1923 | .fa.fa-glide-g { 1924 | font-family: 'Font Awesome 5 Brands'; 1925 | font-weight: 400; } 1926 | 1927 | .fa.fa-signing:before { 1928 | content: "\f2a7"; } 1929 | 1930 | .fa.fa-viadeo { 1931 | font-family: 'Font Awesome 5 Brands'; 1932 | font-weight: 400; } 1933 | 1934 | .fa.fa-viadeo-square { 1935 | font-family: 'Font Awesome 5 Brands'; 1936 | font-weight: 400; } 1937 | 1938 | .fa.fa-snapchat { 1939 | font-family: 'Font Awesome 5 Brands'; 1940 | font-weight: 400; } 1941 | 1942 | .fa.fa-snapchat-ghost { 1943 | font-family: 'Font Awesome 5 Brands'; 1944 | font-weight: 400; } 1945 | 1946 | .fa.fa-snapchat-square { 1947 | font-family: 'Font Awesome 5 Brands'; 1948 | font-weight: 400; } 1949 | 1950 | .fa.fa-pied-piper { 1951 | font-family: 'Font Awesome 5 Brands'; 1952 | font-weight: 400; } 1953 | 1954 | .fa.fa-first-order { 1955 | font-family: 'Font Awesome 5 Brands'; 1956 | font-weight: 400; } 1957 | 1958 | .fa.fa-yoast { 1959 | font-family: 'Font Awesome 5 Brands'; 1960 | font-weight: 400; } 1961 | 1962 | .fa.fa-themeisle { 1963 | font-family: 'Font Awesome 5 Brands'; 1964 | font-weight: 400; } 1965 | 1966 | .fa.fa-google-plus-official { 1967 | font-family: 'Font Awesome 5 Brands'; 1968 | font-weight: 400; } 1969 | 1970 | .fa.fa-google-plus-official:before { 1971 | content: "\f2b3"; } 1972 | 1973 | .fa.fa-google-plus-circle { 1974 | font-family: 'Font Awesome 5 Brands'; 1975 | font-weight: 400; } 1976 | 1977 | .fa.fa-google-plus-circle:before { 1978 | content: "\f2b3"; } 1979 | 1980 | .fa.fa-font-awesome { 1981 | font-family: 'Font Awesome 5 Brands'; 1982 | font-weight: 400; } 1983 | 1984 | .fa.fa-fa { 1985 | font-family: 'Font Awesome 5 Brands'; 1986 | font-weight: 400; } 1987 | 1988 | .fa.fa-fa:before { 1989 | content: "\f2b4"; } 1990 | 1991 | .fa.fa-handshake-o { 1992 | font-family: 'Font Awesome 5 Free'; 1993 | font-weight: 400; } 1994 | 1995 | .fa.fa-handshake-o:before { 1996 | content: "\f2b5"; } 1997 | 1998 | .fa.fa-envelope-open-o { 1999 | font-family: 'Font Awesome 5 Free'; 2000 | font-weight: 400; } 2001 | 2002 | .fa.fa-envelope-open-o:before { 2003 | content: "\f2b6"; } 2004 | 2005 | .fa.fa-linode { 2006 | font-family: 'Font Awesome 5 Brands'; 2007 | font-weight: 400; } 2008 | 2009 | .fa.fa-address-book-o { 2010 | font-family: 'Font Awesome 5 Free'; 2011 | font-weight: 400; } 2012 | 2013 | .fa.fa-address-book-o:before { 2014 | content: "\f2b9"; } 2015 | 2016 | .fa.fa-vcard:before { 2017 | content: "\f2bb"; } 2018 | 2019 | .fa.fa-address-card-o { 2020 | font-family: 'Font Awesome 5 Free'; 2021 | font-weight: 400; } 2022 | 2023 | .fa.fa-address-card-o:before { 2024 | content: "\f2bb"; } 2025 | 2026 | .fa.fa-vcard-o { 2027 | font-family: 'Font Awesome 5 Free'; 2028 | font-weight: 400; } 2029 | 2030 | .fa.fa-vcard-o:before { 2031 | content: "\f2bb"; } 2032 | 2033 | .fa.fa-user-circle-o { 2034 | font-family: 'Font Awesome 5 Free'; 2035 | font-weight: 400; } 2036 | 2037 | .fa.fa-user-circle-o:before { 2038 | content: "\f2bd"; } 2039 | 2040 | .fa.fa-user-o { 2041 | font-family: 'Font Awesome 5 Free'; 2042 | font-weight: 400; } 2043 | 2044 | .fa.fa-user-o:before { 2045 | content: "\f007"; } 2046 | 2047 | .fa.fa-id-badge { 2048 | font-family: 'Font Awesome 5 Free'; 2049 | font-weight: 400; } 2050 | 2051 | .fa.fa-drivers-license:before { 2052 | content: "\f2c2"; } 2053 | 2054 | .fa.fa-id-card-o { 2055 | font-family: 'Font Awesome 5 Free'; 2056 | font-weight: 400; } 2057 | 2058 | .fa.fa-id-card-o:before { 2059 | content: "\f2c2"; } 2060 | 2061 | .fa.fa-drivers-license-o { 2062 | font-family: 'Font Awesome 5 Free'; 2063 | font-weight: 400; } 2064 | 2065 | .fa.fa-drivers-license-o:before { 2066 | content: "\f2c2"; } 2067 | 2068 | .fa.fa-quora { 2069 | font-family: 'Font Awesome 5 Brands'; 2070 | font-weight: 400; } 2071 | 2072 | .fa.fa-free-code-camp { 2073 | font-family: 'Font Awesome 5 Brands'; 2074 | font-weight: 400; } 2075 | 2076 | .fa.fa-telegram { 2077 | font-family: 'Font Awesome 5 Brands'; 2078 | font-weight: 400; } 2079 | 2080 | .fa.fa-thermometer-4:before { 2081 | content: "\f2c7"; } 2082 | 2083 | .fa.fa-thermometer:before { 2084 | content: "\f2c7"; } 2085 | 2086 | .fa.fa-thermometer-3:before { 2087 | content: "\f2c8"; } 2088 | 2089 | .fa.fa-thermometer-2:before { 2090 | content: "\f2c9"; } 2091 | 2092 | .fa.fa-thermometer-1:before { 2093 | content: "\f2ca"; } 2094 | 2095 | .fa.fa-thermometer-0:before { 2096 | content: "\f2cb"; } 2097 | 2098 | .fa.fa-bathtub:before { 2099 | content: "\f2cd"; } 2100 | 2101 | .fa.fa-s15:before { 2102 | content: "\f2cd"; } 2103 | 2104 | .fa.fa-window-maximize { 2105 | font-family: 'Font Awesome 5 Free'; 2106 | font-weight: 400; } 2107 | 2108 | .fa.fa-window-restore { 2109 | font-family: 'Font Awesome 5 Free'; 2110 | font-weight: 400; } 2111 | 2112 | .fa.fa-times-rectangle:before { 2113 | content: "\f410"; } 2114 | 2115 | .fa.fa-window-close-o { 2116 | font-family: 'Font Awesome 5 Free'; 2117 | font-weight: 400; } 2118 | 2119 | .fa.fa-window-close-o:before { 2120 | content: "\f410"; } 2121 | 2122 | .fa.fa-times-rectangle-o { 2123 | font-family: 'Font Awesome 5 Free'; 2124 | font-weight: 400; } 2125 | 2126 | .fa.fa-times-rectangle-o:before { 2127 | content: "\f410"; } 2128 | 2129 | .fa.fa-bandcamp { 2130 | font-family: 'Font Awesome 5 Brands'; 2131 | font-weight: 400; } 2132 | 2133 | .fa.fa-grav { 2134 | font-family: 'Font Awesome 5 Brands'; 2135 | font-weight: 400; } 2136 | 2137 | .fa.fa-etsy { 2138 | font-family: 'Font Awesome 5 Brands'; 2139 | font-weight: 400; } 2140 | 2141 | .fa.fa-imdb { 2142 | font-family: 'Font Awesome 5 Brands'; 2143 | font-weight: 400; } 2144 | 2145 | .fa.fa-ravelry { 2146 | font-family: 'Font Awesome 5 Brands'; 2147 | font-weight: 400; } 2148 | 2149 | .fa.fa-eercast { 2150 | font-family: 'Font Awesome 5 Brands'; 2151 | font-weight: 400; } 2152 | 2153 | .fa.fa-eercast:before { 2154 | content: "\f2da"; } 2155 | 2156 | .fa.fa-snowflake-o { 2157 | font-family: 'Font Awesome 5 Free'; 2158 | font-weight: 400; } 2159 | 2160 | .fa.fa-snowflake-o:before { 2161 | content: "\f2dc"; } 2162 | 2163 | .fa.fa-superpowers { 2164 | font-family: 'Font Awesome 5 Brands'; 2165 | font-weight: 400; } 2166 | 2167 | .fa.fa-wpexplorer { 2168 | font-family: 'Font Awesome 5 Brands'; 2169 | font-weight: 400; } 2170 | 2171 | .fa.fa-cab:before { 2172 | content: "\f1ba"; } 2173 | -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/css/v4-shims.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | .fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cab:before{content:"\f1ba"} -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /web_src/noto_sans.css: -------------------------------------------------------------------------------- 1 | /* from: https://fonts.googleapis.com/css?family=Noto Sans */ 2 | /* cyrillic-ext */ 3 | @font-face { 4 | font-family: 'Noto Sans'; 5 | font-style: normal; 6 | font-weight: 400; 7 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6DRAW_0.woff2) format('woff2'); 8 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 9 | } 10 | /* cyrillic */ 11 | @font-face { 12 | font-family: 'Noto Sans'; 13 | font-style: normal; 14 | font-weight: 400; 15 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr4TRAW_0.woff2) format('woff2'); 16 | unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 17 | } 18 | /* devanagari */ 19 | @font-face { 20 | font-family: 'Noto Sans'; 21 | font-style: normal; 22 | font-weight: 400; 23 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5DRAW_0.woff2) format('woff2'); 24 | unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; 25 | } 26 | /* greek-ext */ 27 | @font-face { 28 | font-family: 'Noto Sans'; 29 | font-style: normal; 30 | font-weight: 400; 31 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6TRAW_0.woff2) format('woff2'); 32 | unicode-range: U+1F00-1FFF; 33 | } 34 | /* greek */ 35 | @font-face { 36 | font-family: 'Noto Sans'; 37 | font-style: normal; 38 | font-weight: 400; 39 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5jRAW_0.woff2) format('woff2'); 40 | unicode-range: U+0370-03FF; 41 | } 42 | /* vietnamese */ 43 | @font-face { 44 | font-family: 'Noto Sans'; 45 | font-style: normal; 46 | font-weight: 400; 47 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6jRAW_0.woff2) format('woff2'); 48 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 49 | } 50 | /* latin-ext */ 51 | @font-face { 52 | font-family: 'Noto Sans'; 53 | font-style: normal; 54 | font-weight: 400; 55 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6zRAW_0.woff2) format('woff2'); 56 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 57 | } 58 | /* latin */ 59 | @font-face { 60 | font-family: 'Noto Sans'; 61 | font-style: normal; 62 | font-weight: 400; 63 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5TRA.woff2) format('woff2'); 64 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 65 | } 66 | -------------------------------------------------------------------------------- /web_src/stats.js: -------------------------------------------------------------------------------- 1 | 2 | new Tablesort(document.getElementById('all-subs')); 3 | -------------------------------------------------------------------------------- /web_src/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --my-bg: #f4f4f4; 3 | --my-blue: #4f70f6; 4 | --my-orange: #ee9470; 5 | --nips-red: #80261b; 6 | --nips-bg: #fffdfa; 7 | --nips-blue: #597f91; 8 | --nips-blue2: #496876; 9 | --nips-bg2: #eeece4; 10 | --nips-bg-menu: #f0f0ed; 11 | --nips-bg-menu-hover: rgba(244, 196, 178, 0.53); 12 | --nips-font-black: #2f3a49; 13 | --nips-gray-line: #dddddd; 14 | } 15 | 16 | body { 17 | background-color: white; 18 | font-size: 18px; 19 | font-family: 'Noto Sans', sans-serif; 20 | width: 100%; 21 | margin: 0; 22 | color: var(--nips-font-black); 23 | margin-bottom: 30px; 24 | } 25 | 26 | table { 27 | border-collapse: collapse; 28 | border-spacing: 0; 29 | margin: auto; 30 | width: 90%; 31 | /*margin-left: 5%;*/ 32 | color: var(--nips-font-black); 33 | table-layout: fixed; 34 | } 35 | 36 | thead:after { 37 | content: ""; 38 | display: block; 39 | height: 8px; 40 | width: 100%; 41 | background: var(--my-bg); 42 | } 43 | 44 | thead tr:first-child th:last-child { 45 | border-top-right-radius: 6px; 46 | border-bottom-right-radius: 6px; 47 | } 48 | 49 | thead tr:first-child th:first-child { 50 | border-top-left-radius: 6px; 51 | border-bottom-left-radius: 6px; 52 | } 53 | 54 | td { 55 | border: 1px solid #d7d7d7; 56 | overflow: hidden; 57 | } 58 | 59 | th { 60 | height: 36px; 61 | background-color: #dedede; 62 | text-align: center; 63 | border: 1px solid #ebebeb; 64 | } 65 | 66 | th:last-child { 67 | border-right: none; 68 | border-top: none; 69 | } 70 | 71 | th:first-child { 72 | border-left: none; 73 | border-top: none; 74 | } 75 | 76 | th[role=columnheader]:not(.no-sort) { 77 | cursor: pointer; 78 | } 79 | 80 | th[role=columnheader]:not(.no-sort):after { 81 | content: ''; 82 | float: right; 83 | margin-top: 10px; 84 | margin-right: 6px; 85 | /*margin-left: 4px;*/ 86 | border-width: 0 6px 6px; 87 | border-style: solid; 88 | border-color: var(--my-blue) transparent; 89 | /*visibility: hidden;*/ 90 | opacity: .2; 91 | -ms-user-select: none; 92 | -webkit-user-select: none; 93 | -moz-user-select: none; 94 | user-select: none; 95 | } 96 | 97 | th[aria-sort=descending]:not(.no-sort):after { 98 | border-bottom: none; 99 | border-width: 6px 6px 0; 100 | } 101 | 102 | th[aria-sort]:not(.no-sort):after { 103 | visibility: visible; 104 | opacity: .8; 105 | } 106 | 107 | th[role=columnheader]:not(.no-sort):hover:after { 108 | visibility: visible; 109 | opacity: 1; 110 | } 111 | 112 | .header { 113 | width: 100%; 114 | /*background-color: var(--nips-red);*/ 115 | /*color: white;*/ 116 | height: 50px; 117 | line-height: 50px; 118 | font-size: 26px; 119 | text-align: center; 120 | margin: 16px 0 8px 0; 121 | } 122 | 123 | .note { 124 | background-color: rgba(240, 240, 240, 0.47); 125 | border-radius: 6px; 126 | /*padding: 1px 0;*/ 127 | width: 90%; 128 | margin-left: 5%; 129 | margin-bottom: 16px; 130 | display: inline-table; 131 | /*height: 60px;*/ 132 | } 133 | 134 | .note li { 135 | list-style: none; 136 | line-height: 150%; 137 | } 138 | 139 | .note li::before { 140 | content: "\1F449"; 141 | color: var(--nips-font-black); 142 | font-weight: bolder; 143 | width: 20px; 144 | margin-left: -20px; 145 | margin-right: 6px; 146 | } 147 | 148 | .note hr { 149 | width: 100%; 150 | margin-left: -20px; 151 | border-color: rgba(239, 239, 239, 0.47); 152 | } 153 | 154 | .note h3 { 155 | margin-left: -20px; 156 | } 157 | 158 | .note span:not(.bg) { 159 | color: var(--my-orange); 160 | } 161 | 162 | .note span:is(.bg) { 163 | background-color: #d5d5d5; 164 | padding: 0 4px; 165 | border-radius: 4px; 166 | } 167 | 168 | th:is(.th-rank) { 169 | width: 55px; 170 | } 171 | 172 | th:is(.th-rat) { 173 | width: 100px; 174 | } 175 | 176 | th:is(.th-title) { 177 | width: 600px; 178 | } 179 | 180 | th:is(.th-rats) { 181 | width: 150px; 182 | } 183 | 184 | th:is(.th-var) { 185 | width: 100px; 186 | } 187 | 188 | th:is(.th-d) { 189 | width: 90px; 190 | } 191 | 192 | td:not(.td-left) { 193 | text-align: center; 194 | } 195 | 196 | td:is(.total) { 197 | background-color: #dedede; 198 | } 199 | 200 | td:is(.oral) { 201 | background-color: #fb7b8f; 202 | } 203 | 204 | td:is(.spotlight) { 205 | background-color: rgba(251, 123, 143, 0.6); 206 | } 207 | 208 | td:is(.poster) { 209 | background-color: rgba(251, 123, 143, 0.19); 210 | } 211 | 212 | .note img { 213 | cursor: pointer; 214 | } 215 | 216 | td span { 217 | font-size: 14px; 218 | color: rgba(79, 112, 246, 0.73); 219 | } 220 | 221 | tbody tr { 222 | height: 46px; 223 | } 224 | 225 | .note tr { 226 | height: 36px; 227 | } 228 | 229 | .note table { 230 | width: 600px; 231 | margin-left: 18px; 232 | } 233 | 234 | tr:hover { 235 | background-color: #e5e5e5; 236 | } 237 | 238 | a { 239 | color: var(--my-blue); 240 | text-decoration: none; 241 | } 242 | 243 | a:hover, 244 | a:visited, 245 | a:active { 246 | color: var(--my-orange); 247 | } 248 | 249 | .sub-menu a { 250 | color: var(--nips-font-black); 251 | } 252 | 253 | .menu { 254 | width: 90%; 255 | height: 50px; 256 | margin-left: 5%; 257 | margin-bottom: 20px; 258 | display: flex; 259 | border-bottom: 1px solid var(--nips-gray-line); 260 | } 261 | 262 | .sub-menu { 263 | height: 49px; 264 | line-height: 49px; 265 | font-size: 20px; 266 | font-weight: bold; 267 | margin-left: 10px; 268 | margin-right: 10px; 269 | padding: 0 10px; 270 | background-color: var(--nips-bg-menu); 271 | border-top: 1px solid var(--nips-gray-line); 272 | border-left: 1px solid var(--nips-gray-line); 273 | border-right: 1px solid var(--nips-gray-line); 274 | border-top-left-radius: 6px; 275 | border-top-right-radius: 6px; 276 | cursor: pointer; 277 | } 278 | 279 | .sub-menu:is(.act) { 280 | border-bottom: 1px solid white; 281 | cursor: default; 282 | background-color: white; 283 | } 284 | 285 | .sub-menu:not(.act):hover { 286 | cursor: pointer; 287 | background-color: var(--nips-bg-menu-hover); 288 | } 289 | 290 | /* source from https://codepo8.github.io/css-fork-on-github-ribbon/*/ 291 | #forkongithub a{ 292 | background: #e0e0e0; 293 | color: var(--nips-font-black); 294 | text-decoration: none; 295 | text-align: center; 296 | padding: 5px 40px; 297 | font-size: 1rem; 298 | line-height: 1.6rem; 299 | position: relative; 300 | transition: 0.2s; 301 | } 302 | 303 | #forkongithub a:hover{ 304 | background: var(--nips-bg-menu-hover); 305 | } 306 | 307 | @media screen and (min-width:800px){ 308 | #forkongithub{ 309 | position: absolute; 310 | display: block; 311 | top: 0; 312 | right: 0; 313 | width: 200px; 314 | overflow: hidden; 315 | height: 200px; 316 | z-index: 9999; 317 | } 318 | #forkongithub a{ 319 | width: 170px; 320 | position: absolute; 321 | top: 40px; 322 | right: -60px; 323 | transform: rotate(45deg); 324 | -webkit-transform: rotate(45deg); 325 | -ms-transform: rotate(45deg); 326 | -moz-transform: rotate(45deg); 327 | -o-transform: rotate(45deg); 328 | box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25); 329 | } 330 | } 331 | 332 | 333 | 334 | -------------------------------------------------------------------------------- /web_src/tablesort.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * tablesort v5.2.1 (2021-10-30) 3 | * http://tristen.ca/tablesort/demo/ 4 | * Copyright (c) 2021 ; Licensed MIT 5 | */ 6 | /* 7 | * + first column never change 8 | */ 9 | !function () { 10 | function a(b, c) { 11 | if (!(this instanceof a)) return new a(b, c); 12 | if (!b || "TABLE" !== b.tagName) throw new Error("Element must be a table"); 13 | this.init(b, c || {}) 14 | } 15 | 16 | var b = [], c = function (a) { 17 | var b; 18 | return window.CustomEvent && "function" == typeof window.CustomEvent ? b = new CustomEvent(a) : (b = document.createEvent("CustomEvent"), b.initCustomEvent(a, !1, !1, void 0)), b 19 | }, d = function (a, b) { 20 | return a.getAttribute(b.sortAttribute || "data-sort") || a.textContent || a.innerText || "" 21 | }, e = function (a, b) { 22 | return a = a.trim().toLowerCase(), b = b.trim().toLowerCase(), a === b ? 0 : a < b ? 1 : -1 23 | }, f = function (a, b) { 24 | return [].slice.call(a).find(function (a) { 25 | return a.getAttribute("data-sort-column-key") === b 26 | }) 27 | }, g = function (a, b) { 28 | return function (c, d) { 29 | var e = a(c.td, d.td); 30 | return 0 === e ? b ? d.index - c.index : c.index - d.index : e 31 | } 32 | }; 33 | a.extend = function (a, c, d) { 34 | if ("function" != typeof c || "function" != typeof d) throw new Error("Pattern and sort must be a function"); 35 | b.push({name: a, pattern: c, sort: d}) 36 | }, a.prototype = { 37 | init: function (a, b) { 38 | var c, d, e, f, g = this; 39 | if (g.table = a, g.thead = !1, g.options = b, a.rows && a.rows.length > 0) if (a.tHead && a.tHead.rows.length > 0) { 40 | for (e = 0; e < a.tHead.rows.length; e++) if ("thead" === a.tHead.rows[e].getAttribute("data-sort-method")) { 41 | c = a.tHead.rows[e]; 42 | break 43 | } 44 | c || (c = a.tHead.rows[a.tHead.rows.length - 1]), g.thead = !0 45 | } else c = a.rows[0]; 46 | if (c) { 47 | var h = function () { 48 | g.current && g.current !== this && g.current.removeAttribute("aria-sort"), g.current = this, g.sortTable(this) 49 | }; 50 | for (e = 0; e < c.cells.length; e++) f = c.cells[e], f.setAttribute("role", "columnheader"), "none" !== f.getAttribute("data-sort-method") && (f.tabindex = 0, f.addEventListener("click", h, !1), null !== f.getAttribute("data-sort-default") && (d = f)); 51 | d && (g.current = d, g.sortTable(d)) 52 | } 53 | }, sortTable: function (a, h) { 54 | var i = this, j = a.getAttribute("data-sort-column-key"), k = a.cellIndex, l = e, m = "", n = [], 55 | o = i.thead ? 0 : 1, p = a.getAttribute("data-sort-method"), q = a.getAttribute("aria-sort"); 56 | if (i.table.dispatchEvent(c("beforeSort")), h || (q = "ascending" === q ? "descending" : "descending" === q ? "ascending" : i.options.descending ? "descending" : "ascending", a.setAttribute("aria-sort", q)), !(i.table.rows.length < 2)) { 57 | if (!p) { 58 | for (var r; n.length < 3 && o < i.table.tBodies[0].rows.length;) r = j ? f(i.table.tBodies[0].rows[o].cells, j) : i.table.tBodies[0].rows[o].cells[k], m = r ? d(r, i.options) : "", m = m.trim(), m.length > 0 && n.push(m), o++; 59 | if (!n) return 60 | } 61 | for (o = 0; o < b.length; o++) if (m = b[o], p) { 62 | if (m.name === p) { 63 | l = m.sort; 64 | break 65 | } 66 | } else if (n.every(m.pattern)) { 67 | l = m.sort; 68 | break 69 | } 70 | for (i.col = k, o = 0; o < i.table.tBodies.length; o++) { 71 | var s, t = [], u = {}, v = 0, w = 0; 72 | var ot = []; 73 | if (!(i.table.tBodies[o].rows.length < 2)) { 74 | for (s = 0; s < i.table.tBodies[o].rows.length; s++) { // loop rows 75 | var r; 76 | m = i.table.tBodies[o].rows[s], 77 | "none" === m.getAttribute("data-sort-method") ? u[v] = m : ( 78 | r = j ? f(m.cells, j) : m.cells[i.col], 79 | t.push({ 80 | tr: m, 81 | td: r ? d(r, i.options) : "", 82 | index: v 83 | }), 84 | ot.push({tdInner: m.cells[0].innerHTML}) 85 | ), 86 | v++ 87 | } 88 | for ("descending" === q ? t.sort(g(l, !0)) : (t.sort(g(l, !1)), t.reverse()), s = 0; s < v; s++) 89 | u[s] ? (m = u[s], w++) : m = t[s - w].tr, 90 | m.cells[0].innerHTML = ot[s].tdInner, 91 | i.table.tBodies[o].appendChild(m) 92 | } 93 | } 94 | i.table.dispatchEvent(c("afterSort")) 95 | } 96 | }, refresh: function () { 97 | void 0 !== this.current && this.sortTable(this.current, !0) 98 | } 99 | }, "undefined" != typeof module && module.exports ? module.exports = a : window.Tablesort = a 100 | }(); 101 | --------------------------------------------------------------------------------