From 6646f1325997b764ed5379f356d7d668c27acd27 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 9 Nov 2024 02:07:13 +0800 Subject: [PATCH] =?UTF-8?q?fixbug:=20=F0=9F=90=9B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=83=A8=E5=88=86bug=E5=92=8C=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 4 +- .gitignore | 8 +- ReadMe.md | 8 ++ build/server.ts | 4 + docker/Dockerfile | 10 +-- docker/bunny-web.site.csr | 18 ---- docker/bunny-web.site.key | 27 ------ docker/bunny-web.site_bundle.crt | 64 -------------- docker/bunny-web.site_bundle.pem | 64 -------------- docker/nginx-ssl | 80 ++++++++++++++++++ docker/nginx.conf | 48 ----------- images/ReadMe/image-20241107133345299.png | Bin 36069 -> 0 bytes index.html | 6 +- .../welcome/components/server-read-me.vue | 2 +- src/views/welcome/components/web-read-me.vue | 2 +- src/views/welcome/utils/hooks.ts | 4 +- 16 files changed, 113 insertions(+), 236 deletions(-) delete mode 100644 docker/bunny-web.site.csr delete mode 100644 docker/bunny-web.site.key delete mode 100644 docker/bunny-web.site_bundle.crt delete mode 100644 docker/bunny-web.site_bundle.pem create mode 100644 docker/nginx-ssl delete mode 100644 images/ReadMe/image-20241107133345299.png diff --git a/.env.production b/.env.production index b0a7302..d4bf382 100644 --- a/.env.production +++ b/.env.production @@ -23,12 +23,12 @@ VITE_BASE_API_RETRY=5 VITE_BASE_API_RETRY_DELAY=3000 # 是否在打包时使用cdn替换本地库 替换 true 不替换 false -VITE_CDN=true +VITE_CDN=false # 是否启用gzip压缩或brotli压缩(分两种情况,删除原始文件和不删除原始文件) # 压缩时不删除原始文件的配置:gzip、brotli、both(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认) # 压缩时删除原始文件的配置:gzip-clear、brotli-clear、both-clear(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认) -VITE_COMPRESSION="none" +VITE_COMPRESSION="gzip" # 开发环境读取配置文件路径 VITE_PUBLIC_PATH=/ diff --git a/.gitignore b/.gitignore index 423ed2b..72dee2f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,11 @@ dist-ssr report.html vite.config.*.timestamp* +bunny-web.site.csr +bunny-web.site.key +bunny-web.site_bundle.crt +bunny-web.site_bundle.pem + yarn.lock npm-debug.log* .pnpm-error.log* @@ -19,4 +24,5 @@ tests/**/coverage/ *.ntvs* *.njsproj *.sln -tsconfig.tsbuildinfo \ No newline at end of file +tsconfig.tsbuildinfo + diff --git a/ReadMe.md b/ReadMe.md index 7ad029b..344f007 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,3 +1,11 @@ +# 感谢 + +项目由[小铭](https://github.com/xiaoxian521)开源权限模板[Pure-admin](https://pure-admin.github.io/vue-pure-admin/) + +Pure-admin文档:https://pure-admin.github.io/pure-admin-doc + +项目整体都由此模板开发 + # 项目预览 不知道为什么,图床用的使自己的,Gitee就是不显示其它GitHub和Gitea都能显示就Gitee显示不出来,如果想用Gitee就把ReadMe文件下载下来也行;或者把项目clone下来看也可以 diff --git a/build/server.ts b/build/server.ts index 016dc2a..e244a00 100644 --- a/build/server.ts +++ b/build/server.ts @@ -10,6 +10,10 @@ export const serverOptions = (mode: string) => { open: true, cors: true, proxy: { + '/api/v1/': { + target: 'http://129.211.31.58:3000', + changeOrigin: true, + }, '/api': { target: VITE_APP_URL, changeOrigin: true, diff --git a/docker/Dockerfile b/docker/Dockerfile index ae2e543..349fcba 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,10 +6,10 @@ RUN rm /etc/nginx/conf.d/default.conf # 将自定义的 Nginx 配置文件复制到容器中 COPY nginx.conf /etc/nginx/conf.d/default.conf -COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr -COPY bunny-web.site.key /etc/nginx/bunny-web.site.key -COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt -COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem +#COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr +#COPY bunny-web.site.key /etc/nginx/bunny-web.site.key +#COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt +#COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem # 设置时区,构建镜像时执行的命令 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime @@ -24,7 +24,7 @@ COPY dist/ /usr/share/nginx/html COPY dist/ /etc/nginx/html # 暴露 Nginx 的默认端口 -EXPOSE 443 +EXPOSE 80 # 自动启动 Nginx CMD ["nginx", "-g", "daemon off;"] diff --git a/docker/bunny-web.site.csr b/docker/bunny-web.site.csr deleted file mode 100644 index 8470be1..0000000 --- a/docker/bunny-web.site.csr +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIC/DCCAeQCAQAwgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw -DgYDVQQHEwdCZWlqaW5nMQ8wDQYDVQQKEwZxY2xvdWQxDzANBgNVBAsTBnFjbG91 -ZDEXMBUGA1UEAxMOYnVubnktd2ViLnNpdGUxHDAaBgNVBAUTEzcwMjQ3NDk4NzQ4 -Mjg1OTA5MzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD1Ld0oD+qm -7JM6uEphC+HfNPhVA3IgCSEXxaNOe+WzrvVefopk7odWpjZMCRMm8kS3YUXJI3as -ff0NMJbmih7h7ESeQsd+JoPs+nIwFPovNYzjTfdw2Q0HQZ5zladbg4v7j1JWHQ4/ -7PpxhsD08KJ5hidGO6pq7WF+LDvm824teYhdGBCjqCBfsF7FSe0htVIFF6g1c4fC -s/HLW+PLz/Crkr58OQZHEhyeC+wmnB1H5QBZHh2peNvfSgCXs5CQutGVtewfIsAU -BLkHE6xFeYv1kWIguuycQ6FBFL+fRUAcXS9n8OXAwbIuTLeRLShtqBGQz4meSmC1 -UiJeedsKaawTAgMBAAGgLDAqBgkqhkiG9w0BCQ4xHTAbMBkGA1UdEQQSMBCCDmJ1 -bm55LXdlYi5zaXRlMA0GCSqGSIb3DQEBCwUAA4IBAQAEJRIgGVU0ij9TWdNFJ1y7 -YW67sGKH/zCjNfmwCWjvJ+zDDGxNpuwUiKj6jwDNL/ku99axIbJ3Rzn8HQ75N1M6 -IzNKTUtlEgYcj84khilGFOgS3Fr/BPpRLVjx0BdXHRO+sbKx5Gg2tqQwhVFqlJxM -MYXpSbzjs+RwFZhy30l6Zhpu6nfkj3tBZYE+gTiOQaKXyUNrGZAVdFzesEaOIVcv -oQFYFFU/HVsiizupS4tcL1GFko7fkNwXQ0Da3QEoA++JNC9RAi4iRfRjGxhnpk0N -LqGV9Y2ExFn5VBZNyab1TIGmr3xSeGz1BNLLyoquRbcmSOS0WPW8koawBe/P90bM ------END CERTIFICATE REQUEST----- \ No newline at end of file diff --git a/docker/bunny-web.site.key b/docker/bunny-web.site.key deleted file mode 100644 index e35f4c6..0000000 --- a/docker/bunny-web.site.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA9S3dKA/qpuyTOrhKYQvh3zT4VQNyIAkhF8WjTnvls671Xn6K -ZO6HVqY2TAkTJvJEt2FFySN2rH39DTCW5ooe4exEnkLHfiaD7PpyMBT6LzWM4033 -cNkNB0Gec5WnW4OL+49SVh0OP+z6cYbA9PCieYYnRjuqau1hfiw75vNuLXmIXRgQ -o6ggX7BexUntIbVSBReoNXOHwrPxy1vjy8/wq5K+fDkGRxIcngvsJpwdR+UAWR4d -qXjb30oAl7OQkLrRlbXsHyLAFAS5BxOsRXmL9ZFiILrsnEOhQRS/n0VAHF0vZ/Dl -wMGyLky3kS0obagRkM+JnkpgtVIiXnnbCmmsEwIDAQABAoIBAGvG2oYG4Sa5rkrM -wl2AxKzC8zsjxaJRgQubJJuWmTXwfgoo5BtUQ4gSjqHEB3hCXXSjPPMbNMrEo12N -83eqVcMIgm1ze5B3y9x7h4CdaBEioCk3l8MylqiO7uFucuAmpn1R1mbmZOIzATCw -hNfng/SZxV/5UIOqkAXP2hE/BzrTapvzmYrKAYLqqLAfkuII5m16FgjbGuG4Dnch -l+voT93fCK0fZkwz70oNYSos1F73XourXXfauuWCBy9kbmizfHU3klqkATZqPt1W -cYSIaamZOWQ3PE66oRPDnGixTdw+IxPrr0htwXN7XKZVKgKzirBfDnI5HplUzPKL -bowZmRECgYEA+dmAjXNPJeIJBgVTIeGZ3Td9jnZq+EeD5LGGfJ2bncZ3ExCNsiV/ -djMSj0KFZlkc7GNydSaig0GMoLJzr3vOpYi4/areWNZ5Ar4BkH/1S/0u9v+kYox4 -5vp1JJ6jRSw60A2YH5LI7Wzs8r7S/rIWo0RT/WFvj2gXqKiEfbwCLWkCgYEA+zbt -88Ex+YOY1I2YYQL0eAH2l3DX4nqjJr6btsTZO/nd7tRI5v7VwOzdhU8YaC+Sj64+ -qPQUg/79cjlMO5FdVdX7k2Dms1ZcT6C9BnZ+NugEaZH9Sgmd2sBJNpGl0rAeZcSn -R/gYTC13Z5vtKbUMtpsXZydKwey4wOT0J7fhkhsCgYAHcBkqnNcrWopIOppZ9Nxe -wIslVZMjpwVfJoXJaeu7C7B5ydFeD023GBgiWamc/WQmCWPb5vWJkMb99bIJ9FaX -iPVw38hUvrXFhiCHy7ditrvSMJQVNvdWcPhRycM0iPeLQAxaTEVdBBQdud6QJH8W -By+06FSo4UFrDPE8yP8LmQKBgBKdJ1SAZCuQzKozM688gNDDlHn0Korle2FLjk4k -l9QR15fystQq3bvF0UQncC+IFtv+lTX/n+WH50+nXzaqtre9ez6YV3/CTmS4DEmG -TiPTXUBVSOdLfx7OUJ5yfE74Lchsodh7UZGTbN2IeDI28BI3u6wxBSEJYUcpr82h -ml0xAoGBALHmuJxcaawZn2KC467Z8xP6+ggxzjsnnk+GlfqeqSmlaSVBo0Di8Nz2 -ekHHzRSIL+YZ3dsfrgR4IVigrlYETHGZl4BAtU2Yi0+1T1qhgTFkPlATuB5uHBhf -dyULEujSQy+yeoS+RR+69XUswhhrNUgij9rKHDDjMHbdnKO0fSgs ------END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/docker/bunny-web.site_bundle.crt b/docker/bunny-web.site_bundle.crt deleted file mode 100644 index 2ad85d6..0000000 --- a/docker/bunny-web.site_bundle.crt +++ /dev/null @@ -1,64 +0,0 @@ ------BEGIN CERTIFICATE----- -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 -QT4W0Lc= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFBzCCA++gAwIBAgIRALIM7VUuMaC/NDp1KHQ76aswDQYJKoZIhvcNAQELBQAw -ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yMjAxMTAwMDAwMDBaFw0y -ODEyMzEyMzU5NTlaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKExxUcnVzdEFzaWEg -VGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDExpUcnVzdEFzaWEgUlNBIERWIFRM -UyBDQSBHMjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjGDe0GSaBs -Yl/VhMaTM6GhfR1TAt4mrhN8zfAMwEfLZth+N2ie5ULbW8YvSGzhqkDhGgSBlafm -qq05oeESrIJQyz24j7icGeGyIZ/jIChOOvjt4M8EVi3O0Se7E6RAgVYcX+QWVp5c -Sy+l7XrrtL/pDDL9Bngnq/DVfjCzm5ZYUb1PpyvYTP7trsV+yYOCNmmwQvB4yVjf -IIpHC1OcsPBntMUGeH1Eja4D+qJYhGOxX9kpa+2wTCW06L8T6OhkpJWYn5JYiht5 -8exjAR7b8Zi3DeG9oZO5o6Qvhl3f8uGU8lK1j9jCUN/18mI/5vZJ76i+hsgdlfZB -Rh5lmAQjD80M9TY+oD4MYUqB5XrigPfFAUwXFGehhlwCVw7y6+5kpbq/NpvM5Ba8 -SeQYUUuMA8RXpTtGlrrTPqJryfa55hTuX/ThhX4gcCVkbyujo0CYr+Uuc14IOyNY -1fD0/qORbllbgV41wiy/2ZUWZQUodqHWkjT1CwIMbQOY5jmrSYGBwwIDAQABo4IB -JjCCASIwHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYE -FF86fBEQfgxncWHci6O1AANn9VccMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E -CDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAiBgNVHSAE -GzAZMA0GCysGAQQBsjEBAgIxMAgGBmeBDAECATBDBgNVHR8EPDA6MDigNqA0hjJo -dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy -bDA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9k -b2NhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHMUom5cxIje2IiFU7mOCsBr2F6CY -eU5cyfQ/Aep9kAXYUDuWsaT85721JxeXFYkf4D/cgNd9+hxT8ZeDOJrn+ysqR7NO -2K9AdqTdIY2uZPKmvgHOkvH2gQD6jc05eSPOwdY/10IPvmpgUKaGOa/tyygL8Og4 -3tYyoHipMMnS4OiYKakDJny0XVuchIP7ZMKiP07Q3FIuSS4omzR77kmc75/6Q9dP -v4wa90UCOn1j6r7WhMmX3eT3Gsdj3WMe9bYD0AFuqa6MDyjIeXq08mVGraXiw73s -Zale8OMckn/BU3O/3aFNLHLfET2H2hT6Wb3nwxjpLIfXmSVcVd8A58XH0g== ------END CERTIFICATE----- \ No newline at end of file diff --git a/docker/bunny-web.site_bundle.pem b/docker/bunny-web.site_bundle.pem deleted file mode 100644 index 2ad85d6..0000000 --- a/docker/bunny-web.site_bundle.pem +++ /dev/null @@ -1,64 +0,0 @@ ------BEGIN CERTIFICATE----- -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 -QT4W0Lc= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFBzCCA++gAwIBAgIRALIM7VUuMaC/NDp1KHQ76aswDQYJKoZIhvcNAQELBQAw -ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yMjAxMTAwMDAwMDBaFw0y -ODEyMzEyMzU5NTlaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKExxUcnVzdEFzaWEg -VGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDExpUcnVzdEFzaWEgUlNBIERWIFRM -UyBDQSBHMjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjGDe0GSaBs -Yl/VhMaTM6GhfR1TAt4mrhN8zfAMwEfLZth+N2ie5ULbW8YvSGzhqkDhGgSBlafm -qq05oeESrIJQyz24j7icGeGyIZ/jIChOOvjt4M8EVi3O0Se7E6RAgVYcX+QWVp5c -Sy+l7XrrtL/pDDL9Bngnq/DVfjCzm5ZYUb1PpyvYTP7trsV+yYOCNmmwQvB4yVjf -IIpHC1OcsPBntMUGeH1Eja4D+qJYhGOxX9kpa+2wTCW06L8T6OhkpJWYn5JYiht5 -8exjAR7b8Zi3DeG9oZO5o6Qvhl3f8uGU8lK1j9jCUN/18mI/5vZJ76i+hsgdlfZB -Rh5lmAQjD80M9TY+oD4MYUqB5XrigPfFAUwXFGehhlwCVw7y6+5kpbq/NpvM5Ba8 -SeQYUUuMA8RXpTtGlrrTPqJryfa55hTuX/ThhX4gcCVkbyujo0CYr+Uuc14IOyNY -1fD0/qORbllbgV41wiy/2ZUWZQUodqHWkjT1CwIMbQOY5jmrSYGBwwIDAQABo4IB -JjCCASIwHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYE -FF86fBEQfgxncWHci6O1AANn9VccMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E -CDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAiBgNVHSAE -GzAZMA0GCysGAQQBsjEBAgIxMAgGBmeBDAECATBDBgNVHR8EPDA6MDigNqA0hjJo -dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy -bDA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9k -b2NhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHMUom5cxIje2IiFU7mOCsBr2F6CY -eU5cyfQ/Aep9kAXYUDuWsaT85721JxeXFYkf4D/cgNd9+hxT8ZeDOJrn+ysqR7NO -2K9AdqTdIY2uZPKmvgHOkvH2gQD6jc05eSPOwdY/10IPvmpgUKaGOa/tyygL8Og4 -3tYyoHipMMnS4OiYKakDJny0XVuchIP7ZMKiP07Q3FIuSS4omzR77kmc75/6Q9dP -v4wa90UCOn1j6r7WhMmX3eT3Gsdj3WMe9bYD0AFuqa6MDyjIeXq08mVGraXiw73s -Zale8OMckn/BU3O/3aFNLHLfET2H2hT6Wb3nwxjpLIfXmSVcVd8A58XH0g== ------END CERTIFICATE----- \ No newline at end of file diff --git a/docker/nginx-ssl b/docker/nginx-ssl new file mode 100644 index 0000000..05490e0 --- /dev/null +++ b/docker/nginx-ssl @@ -0,0 +1,80 @@ +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + #SSL 默认访问端口号为 443 + listen 443 ssl; + #请填写绑定证书的域名 + server_name localhost; + #请填写证书文件的相对路径或绝对路径 + ssl_certificate bunny-web.site_bundle.crt; + #请填写私钥文件的相对路径或绝对路径 + ssl_certificate_key bunny-web.site.key; + ssl_session_timeout 5m; + #请按照以下协议配置 + ssl_protocols TLSv1.2 TLSv1.3; + #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; + ssl_prefer_server_ciphers on; + + location / { + root /etc/nginx/html; + index index.html index.htm; + try_files $uri /index.html; + } + + # 后端跨域请求 + location ~/admin/ { + proxy_pass http://172.17.0.1:8000; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # 后端跨域请求 + location ~/api/v1/ { + proxy_pass http://129.211.31.58:3000; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect http:// https://; + } + + error_page 404 404.html; + + location = /50x.html { + root html; + } + } + +server { + listen 80 ; + listen [::]:80; + server_name localhost; + return 301 https://$host$request_uri; + + location / { + root /etc/nginx/html; + index index.html index.htm; + try_files $uri /index.html; + } + + # 后端跨域请求 + location ~/admin/ { + proxy_pass http://172.17.0.1:8000; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + error_page 404 404.html; + + location = /50x.html { + root html; + } +} diff --git a/docker/nginx.conf b/docker/nginx.conf index 4be834d..fca77a4 100644 --- a/docker/nginx.conf +++ b/docker/nginx.conf @@ -3,58 +3,10 @@ map $http_upgrade $connection_upgrade { '' close; } -server { - #SSL 默认访问端口号为 443 - listen 443 ssl; - #请填写绑定证书的域名 - server_name localhost; - #请填写证书文件的相对路径或绝对路径 - ssl_certificate bunny-web.site_bundle.crt; - #请填写私钥文件的相对路径或绝对路径 - ssl_certificate_key bunny-web.site.key; - ssl_session_timeout 5m; - #请按照以下协议配置 - ssl_protocols TLSv1.2 TLSv1.3; - #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; - ssl_prefer_server_ciphers on; - - location / { - root /etc/nginx/html; - index index.html index.htm; - try_files $uri /index.html; - } - - # 后端跨域请求 - location ~/admin/ { - proxy_pass http://172.17.0.1:8000; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - # 后端跨域请求 - location ~/api/v1/ { - proxy_pass http://129.211.31.58:3000; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - error_page 404 404.html; - - location = /50x.html { - root html; - } - } - server { listen 80 ; listen [::]:80; server_name localhost; - return 301 https://$host$request_uri; location / { root /etc/nginx/html; diff --git a/images/ReadMe/image-20241107133345299.png b/images/ReadMe/image-20241107133345299.png deleted file mode 100644 index c1b212d51f339c5ade211db5fbe7223248742933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36069 zcmcG#byQnjyDyr0vC^Og3beRW+@USO-5pA?;_lWKC{o;=;>E2%@Z#@^!VvV z!~4(Y%6>K~E&0RgBCg9T>qXPQ8yYaUUftiZ>woI+uP7fM{1s;b?uL&+uYh) z?11_3T9H%98Nc=)F3!#;w!`-=fFPWo{(k+L;KP5_9)M<)WmAxGOM+wX3~v7+yuVcb z>|eG1wH}+CJOO_G!17)?o;|7^QxFMk+ho!8GCudC3%Rf7>wIBR(N)wkc6x)|fja;8 zrsDY~qsFrr9ff%Jx9#S!Uh^&iS8Q_weO~B@2GvL5JpHFwSwqnkfvxB6rXmyryX^iQ zz6z{Nwaepi+?RVF`H>Fu{>umS%y;*nkLmr}?mu7VyhQ)!h5yeF5aVq<*yk4zVAX4M z+Ro1?)vX(wot1(-diLTqyKzr>rf8rLuN5$e-^kwF*9@~ohA5r~lHb}RVF4;4FTRLO zJD*-p{!D0i_QT1QtSH=Te^Y6dHsZC&$#P&jnfu!4d+dLv7RmVFML?N;lgH&T(R@bDN57G2mp?bA^E%m?jG-kBB-MD4c3#o&^J6_dmGS#c z1(DY!@I#Q^7vYI1ua3Oid?IYUrt?9KyOULsxiUGm@YnPoIqygD?3?w*TnSe-gwuS* zKOh(l)&=}f6$RQMpu>GA^!L}xv4w?&hy`!YEw|%W_T(hBwHboOO?Ew(q8eu)3iQke zdTG-yCX;*|URwx^`V3f9r#pp`aoqB-icI_DT;yl?q~Gqf5gjFniG}TTKe(SCn3TB| zUv9wel((YOzFi7DavGl^fuIy)s&ww8ebhg7?{r&whe?55n z_U#1em^)%jBLgLwD13WF8K`h~?kFkQ6O4*Tc6|}-tIhst>F7YtiZhR&b=4y8wMR1$c&-*6yiT6_CTP*ZrKgoa# zjtIpUOW7WP-j_@F_r1+ZT`#+2_SgI+>vnx`uq&+Dg7gEfC4GDK=_Q&h9c*^i9at8k z-3mXP^fQt2J7n)Z{e1*k@O$R}G9XpN*G6~EC`~V)bhFIa*%@Ji9ZrHzhJX91=j*o( zQk}btPTv<8BuHPm;Fen!nxY@RLhocRbuZ`OErKTJh&$nH`*s4`>x|m9?+CcB;N8X9 zT+jyLtv7XL!=p5YokiXvW)&p_>(^UNr>*ONM6Obw82R*cfg0EuGGsg z2;R|LN;ETS&t{WbUSC)HJfzAw(0wwwPz7cg!G{Ql~V-b*u@}IK`mLb9#LV|FSx-E3~z7++gF=a+1&zj0G{4WRnQhHeShKFo< z`rv7T2_oi#hFF)Q_QK_HBQvvzZl1)70kem~5hvkU>YazE{%K%F zMziekXY>B~1N|o5nX`iwcj|_4-Cy4f+4_Yqjoo#(5a&M4Ug!1`4(neWeBSyRiHv-(kQw1LzEp}F>dpxH>9%yuJ1dHdK-{TKdmU^JS*9)I z4KwxojRF4gCry2o*ESAd~nAQQIhE<;o*__ zmAbdhR5O|16&c4=gJYEo2Kmw#TY&AeVF1V%tL}=?PuWN;Ln}0gMB(-=6S^>Ey4ohEknIkf)`l z8St|9HFKP$i6G59gj!xAYGn>F43;_YglO22*1Ea=yNFCt3IEoEhbC=P$=VqmcJ0a3 zPel5+k4=yz);fsw0TD#v<<>>Z&ZMoG*ZJPvPTotc{z+DEri&Zjn=@T-TEmJrtmbgy z;>ROg{fVS05stN3&^e1a`chnJPTGa5Nzo(6%upOxkX$i?swo? zbLAoGh6l*SA&}`Eky+!b0Kr>ZtP`F&wQimhYZ3pmai|p{pX_J7cT3z8k+XRqv>=8B zs@h05)GT#J*CsSH<}}u0NBML0?!e3}datBhe4A!T;ke|{IN;z-`zV{MsY-@J$wx<8 zizQca%~D@Jbj|tJ%m{cc7_!VR2)iGsQdFW~hgj9V?YX7FU*zV@77cJgOFn;XiZZwb zZaGNq)CE~v?8s(aH{zk%vT1$8T`DFqJX+8W{|wXH8EZsL#wN{v0fw0^{p@rz@Eobq zH~|D4<)(cd=#wS4)m86~*C;L>6xw-D$id@i_BYHwubg5^@obB^a|W z{av~wyqPsED2Ro;f>STiE#-xy%tKssgE|M3r8x3#%S?OW;MT5_u%5&>gwTx zqnh^PpSrmdTEE}h?#(pIeuPY6wWJ@BmB0=Xa26aq*~Ek|HZntk|%a##qdBR_m!pB*O=1Qo&c?A{EUPf7y&%$%f zW!{6iX5NU}E8QLyF6*&A82VnUt}--@B|L=N-yMv(j}9@0Sk==Uts?ZVh|g zrsK==)1OmjS?0UmTv;-5lS5%rnF>wNQ|x*^ipxV+g%%H9Z$#rIJ~`)T$FV}ls_;#M zZ^`woLkFvduk!i#SSu3Wlk4Q*`f5FD#({iFpSnv0+f-l615bkt?6gSr)9pj($o+}E z+tWvi8n?|baQwRUUVWgZ;{@KsSaOXhLV4Q=DR9cw7OivmD{eIjcFkOJR1q-ph! zb6fRgVv$_d+XS+my*wFO(fWomy{1FW9H%8e>^rXmWev0G*!(QtGmjl;6xgu+N4)o8 zr-)DEnDe?B(%wmEHvPnDAVxvqVlsn#h)FjEZ!~au;?>V~&N#K*giwJd0TjGY{tS8( zJbNTDKE1J^i%~RteDYW8Cm}yJ+hIVbBT&wa1BmcsmJQ%A?3J}nt`|0N#JZ|K8w`tMTF!@DE(IUIO|}u5|Xy_0Im?9iy+kpiunrM!mAxYgw7;ID%3}W?jL{ zDt3;9WRtTx?yihEYt!IF4QY5PsTf-se(90Q6(i?o7oWGasQT-=2(dvut-cn$B+l=a z-~!!F9ye?DI^y3%HuYMY!Xt(5N}Osp8+$08jU1C3`3M>b9GB+t2#DH&+iqu&dKDI7FsQCF8v=G$}4-qZV&Q zv|nP6b2*7RB#Gc;P}qjp*6i#+<9U+CVLqaNuusaf`?L)U5_#3n%^ywRK?c|Qs-z7q zjjiCbWwlSUQKw0R8P-TJY<5pn!RYu;5!pEbD!~itTn-gWoNENtikpH7d^J{xH(58k z)4U`_<_15H6cUcW2SRHK^9c<;A`4Jway(K&*iOR@0Q>(Gr&@1lFUJd?x*MLM^e>l= zuYG;J(ZOjVzDdG&(TnFhEoa3Fjpa&dwKvfX>-2$P=|RBv*bS-LEp~ZLF_3YPMzh_t&2x9iV%)mB)bU7jVI;&_~ zGH!g+)rW3HR-!0HW-G5oqEMbF_rA)ryM1!h-7;b}U%Dz?>$>9P(kR%I>ulXXvPmGR9|@a!5=38u1BQGLI!C<8ZTa7?%~WnzmB-el ztL+RoHs79@(Lf-Q>t&WW!7u(izk7s@MIvH$(je1`cPR;(c}ane^)o2w6`4f|!;B9< zvP7iu7DKATpKwu^KEK79TcAbtx-V7B(0h2V>S{*z1cy z;92;J`$Yhcuf#_nvT3W!YpV}Qz!k5|EXOKSqma*oGXf4ejt()V<5+SdDjmjbEJ6K{?g*U|oesvUKcBIWq|KM>$J)%} zi&NQa5?o5Dz8?)xq$luAA1K|oB@dSSN&c2d>W{CtJh&i@bZ3w(IP}F4Lm4x~i>X;* z!}DR~JWPeB>Ti;}eJ9egP(IDN7ME>&r7j58T$Y|Ehl?9btpvB~Ti9_-rbIq8zpoMq z&+`cGtQS|k-KlTgavX#c*tW|voXlji2!zQ|q35+qMtr9Bq9 zb~Y~>NIn4$bIqfK>J}#xUtEp^VKBGg%4~u`>WI0(dbsrVw`J_{WlG`hFEdT+$E=l( z8$lmM1H%-w;$I)!EH>%>?t6ku?}U^&qWsvt!LT_J;JBIAa7(_P8Z=Tq z+h-Q+Q$fdPs=4(z*WqDWgI({{E5XrNgCKd^%Y|Lbn%8#fg3pvcp;JA5@tQ6wT+lmf zyB}9X_BpD6mNQF1t%hEj3C5{O>s&F6|4wCa2|Ya#sHzFT9sF`?0Y}F85ez zB1oC7g%**%7td*%)e}wSa^uZ>Y!^>%`en*EUI(i}AP~PFx~`rbZN5p_cZgF~c~AEz?xp2CA=;-!6r#VI_bqxAy=Ia^#umC66H|M z(b+KC3@JQD(q&2G4iDprZ!{;Arw#b zzjZB4D{XE5T72@V^mP7000EGj3SMkuQ}Y~e_|`=|otc!={a%^U8rJgm)tUuFJ`#VhPAGec zMNz*&Y9%g+Pm8!VzC!Y(ry-h(MYj}(Uv<#VMTa-a&w#|}%!bFlu*Jo_0uY5$T&3RiQXe_ zTieX2@gRy$N*!VC7Pz}iZ}?^JaM8_+3JoD9tmUwxSmz(id z%o$t)Ya;z4)R$N|tGY!ZIe!W5@lG#G?|eZ&jR&H!EbN7*E4*Y9qNiW)^;X`kVEpO z(tlQa;xc@j*LZyDQ|;?6Ig>rr;k~?a9M_h0l8iOR43-nmd6=qm zW=A6ft+mmBrObAAOw|*#X~}g4M+t5fsLpmh|e0krkHQJ0nTB_^`Kpo9>LGI+_ct|_Jkv`pO+VAO4pYursifRqm>t8eXw{MD{bQpFUv7_Yx8Z9;?x!EOR9J7970Nt+FlG)n z>z(u_Hsa@M9sLaY*#230QBO8=xU|&Ga=oQAk>kd}?2G@(dRQ*2j4cCd%5TKX!0qh{ zkNcsyK^Yue<@4=!w;$5pJ*;&@F7t@^*|WXY{I zIHyvfxh7nC#7CUZm@wpZHF|b&68eO^TJ84K;22Q*UK3Y*Iw{g?x#DqLxkN2`A67Lc zs9RU0(-I5&$j|M##&-sQN28d_3Xhtd6t`B!%A5}fZ*LD$Y~%O%9lp_V?rm$;{czp% zjA$f;iIHz&t|&eFJIvHJZ@Nlb>xC*dT(XTuct1fqtObcFh}z>z@{${Y*PFgp{9?=y zTM#0v7;UdaqzfE2p%4TCx*GG zDrOp17H{W5j=2p#+X&^5X2Je;Yz^)#Jpk$rbFK10bON9<6z|(<|vr( ztx2-1%UT8ynjKdwU@zF$4qp7|8Hw@a!lTJLJ&o}dIX^?a@Zs2Rt78moCgpc~zX{rT z{f^gZKQbx`+gZQ)dNsG-j767t%saQL>gZ$7`_6$U3ODcoB_$tqQm6`xK{@G7@tUix zM!JD+#b$~5HVN#BKk@i>WMlC;OVZ+^Kz=RIi|2_yf6&UM?w_x&21KO!EiSZY z?oSqJD5N`idH&iyk6IPsns(M}a;x4Y#(E|AMRIF=wKLQ2`kB7oWHMDIy0U{ zqzw(o6Y(i?y6rFdyxtGHxLv&%Zkgu34vvNU9$(G!RJz=|4j|am+E?h$94%CCbWcNAED;#I z{4LZk_{(wse2XVv$x+Nq|)6<$RgqI5`abY z5+DC$DVs9zMS>G{jNrAM=GR@nd$Vt;8FxuB@u-I~;zt0M@7}0HXLfqx@q{DHF%EE{ zc#V4^4MhWAc-m>Ah9~a34}zk(iqQ=`X*O(cZ~GB=lF593@x92a|Lz?=54dmOjpY5j z1K!!20L6c-!|!nR-?zTydP9yba&n&NgZjtr`a4}47!L14 z(na3i{hw_3zjYl8{TQ^>Q-G{&(raVBG{C}y+1S;~xGq+$iMu5Gd@){k89s zOQMD?P8lwjH=96-_t;pVUkWo1!=~2WP*BK3)hAL{rW~f}2+qh|6g(lwX!1WNgFY3* zf{9C1%bzFPj;IU^RpAvJ6P=3J%*|B1Hee1xYpPvsnL<2#a zf2>SIn`UXsX+6bF1ZxtfwBh$sEYsLK{P>u!P|aM>6OX2&KAozR)9=;rrV_7UcH4v~ zRE}S0)JkvM-*TS*(Y@8wj0Mpd_6Fq}{PBHi5%(V@N$&`mts#mUY$J$ z3|u>SMVg>^*7mmnN6kV@IukDZ0fM7J&l%W(woqDIxG_i zR%d~lvfrZ6JI^rT>Mm8bZI6HF0xbAxGE`3M1Va^PEFxkry`F%cKbLTh69p6MPY34N zW&CLC<{3(=&Wj5Q%BpT~$(0H&&c)c+(t$=8Ic21bb-e_q(aELT+g&{E(^MCO9P#`q z4P%i@H~a$Lo5|<);&|i>Iy)6&>}n!!FkG%Nfk{YpN=y$v@5y+)WfO>mm3*>f7@Gl0_)HI_NLc@XWi1e zGWK+?FML0iNlPzNY&pi)1fy@4PMtEUpwBp|RM3*2NXSpdOh(zwTSg~NeZeXMm&#++ z#OMeXhra?zYppu|n20FGd0m- zYDbejmZ-Bsq0Bk7^gH$_w9PLRJ$N6dC3}>HBbL4sma1c--g^O>tD~%-;kelA)R@~g z>5xOZcj9OazK;n|Ct;+5a93qC%7|7}2*D^>)?)I6sUKr?cI9b`=~hjfda6|MMv;?9 zFe#bFhf!76&C#SR=8GsBRJK8)ql{AeR3xYLMj@*(>7PJE$){Z#AM}n_F%?iWi#eJGBI%T`E6hPa#3ln5znFTHwh9bZI;}@ z)q(q*>Cjz^wGxjZSE8FC9Ajfa;kMT@{nuFYsoOJ2#Cij%J3^Kjs~^X5KC^Ipv)Bu( zMTPfo4C(&L!q$!$cQm>j>#BFO{8`x1(LKnyie)_zn%qP_kop0FSLN_%+GjvnZ;aSG zCC*eDwRgYVvn3r&>8-5vB=#tTjqwViKdbCACpnbOLm-7#)MwJKS#hT|5s;N1h0@Y? zx#Wq)xo2$mPZx`$_N3Eem2+*a-uy_(UOjhwBo+IE9pydiF}4*KW^qQ0=~CpE^$M<- zSmK&fJQSD68CDvf=Vhd#PylWYZAF6P(9u4_cFh9nsN{m6AQh3D{+i5~PgrrA{H! zXrA49QzskuWdo`3683EGO_q`RvtBU>dl#*hNhL=rDSHS`)u1@$iIbuPrKfmQ`tCI; z3lIgXeKz*zkvReu0+)v)Huy=ROv``rY>xs6+CWxI$w75*#wSGRhoiNP;e}cpOA#) z6{WF!au(k|Ud~?j@x>jSlh4pmUoEO6=@n@qCFo%|^N5BxbHNsM(VUJ}OF30&2hPg) zGj}E#_PlS-i_Zq&S1H=7#ZpJY{taH=Gps!Xe@`xgSqQE}2xP=M(vLX;;ikYs+oK%- z-fv+HCQXGYn~^#aQ80U;(Dlb_TAWk7+g?#nG2q+qKs-0|V!@tpYpoS_i>7NsGSJ(0)@!Wm|_qfmO(4 zvHXng)}u)l!)m;$F(X&-g*JCn+ani%n8p~EbhMj@=yy0h zWIip{ROd37%y`l;=8j=hIIiK<+Op6f=-t2ouI+vR^T84SP%Z9@U1C?ELt0ulsc*aN zi0>diy1W?0mDI#aBmGLuxN7voF675&Bb7ZTxbDxv;-;Z?8YVI7L1f5_*54gC%h(Q4 z(x{e?Lwr8>D-b-K;m{FWAHtr!DI$}4wg^Ci_1JWQrgYELz+A}^DYb_5j<+h*$|jk! zLmGR`1xxZVr0Pi4Pdxb3Y*K~B)N#;^%2t9ef4I!{xI8FLRAaZ5DcV)kNz%?Jqt89= z&_PS#ktXOHk3~Q8cJkdlbBzjpEi;(1ppwDp%_uwK@Rmy=M>?dWs1FWH|FuF(CllrP z8BeCIDe#Rfh^PFz1kXWy`R-TNwyay4XJG|i9A|@RoxnC(KY9cS*ddL8W15Uvi_Jzo zG(9Ltm6{n6TVqYgoX8PgW|i2|>O8C~LKJ5@C)3N3Wz^%Y2qSrBClRE2N$pZCAhzQv zP{pfNpm=1CW3OAxK^12buM}n34W-71P${v5j6>BUmslSjUc{w%`aG_ESDvvO=Q2;U zqhnvP;3Ccx6&+Tx`&>iUm+%aX@G_}niqYw8ODpd!iFA+=<(wf-EIBoJJ9>D!1V4pp(e-uvA;QXPg#A- zW7D^Lxc~dls!qt0lLnVFKe$)CKkihB+nK1aSl9RUFdW?Q$%*h2VeI>b(cQQko#yEt zi*|Z2st&Rn-bT@mo$R)U^74Sa(4PqZi(E8B9(`8wz3FRW7D=&XJ8$epr@F`7OEs%g ziw7m&p@w9ZD(42S6u<8IGQbHuCz+pSoXw--+&=~K_WvKHCI|DP-B(Qt_ced@nZC>1 zFA;o7eE;hg%7zW?=R>sn@6VP0uj$W!VJH2NJT)xqZu0M6tY`Oa zeivJ+YSXuW2i_J&V2)_sUwRXC&r~!NM$0|Az8+A1M4kf##^#mIuUV#1qG&NlJO!6P z6O*V_ACK}60Qydj+4N1%#p2Jh4>w((nOiBm+lu>)^cJ1V$`=_6)hR5s@)cfwpn*FR~MJ^WlJVpxV#O`tmZOH zC9$mD(WamXnasiMv~S`oboOXawc}0E(pizzN_$H~;r=5}--xN)jV!^orjFi4iMuxY zK0?~8&RaTnNVFe@qVq)!7Bf?YaR?9L9UJnjYsi3~J$g*0^NWq!o)w5Jn}t+OJg&Ew zP4ZP&x=R?q+PX~1{oN5&Ij3naYF|EBtVURM!}+kGSC=sVn6DL}EPB$O?n-`U{XLK4 zV71s1)uoLr@(eXmynNGqgf~P7y*HB8st0M3Ii*keWa~PJ?@X!yBNoHs?*8#lmT=zJ+%Y7>X?IxV0?y!yxdXF^p%X!iT% z@F=t&R7F#ctPxMY%Y*?qbBadBysTvJxk7LBB)$ig0iV?echXJ^Dt5IbrkMWB4K2dl z7$ravv5`VAvo$XoD@;Kkc{Sff(|B88@jcqzkA;8}%Bshcx}JUpPWLaNe{!-0Z0nw| z&32&!^qH$b4ehDWxTdBhE%EMwT(IOCuDD}?Wm4-2m$kZQEQcuU?^GvS(qoV-cuG|! znBO;{6L#0~6BoCuzE%eaaMud1HZIotO=e&JO;FYk2fq_dO4(U{TOxRP_5pue=68o) z+}qTQN6!7N-h}8VEjE@k?msnx5|Dq`U|KX3yI265WoF)jxU;hZW$R_MF{bnf7{D&q zIX#K-9IxWWPpga8G7?WNWkBy)|1001(CTPnv4}M3<6xjNEfKKY`SPb1(?pt$XHz{% z%|ZC93sSPUS60|lZ5L1iWEhUwS9Y;Ns7oPM|K=TzX{dAJkTAqDS<h$wPddpof+Ru#u=X zm2*-pX&&{Si$rMsha`G4Jn9W`5`(SIDW0FW&X|0K7?$0DzB2O^^{D(Lhn|D|TC#9v z4Kr`kZ%*!Fj(FPERwhc@fC}p`r$fsmy021|kap2BM}twk%}5uoNK{_Qsu4^H4I@h@ zStt0*aLrC)9LZRY?oTE2el_NK7c%UDo(I1o@T7*A0)S&WNUtL>ltN9}O0TIizfLl4 zu$Hj9zk^g=01U_t%HO+)EZKX7Ptdq)N-5P>>w9I>V{v9-Tgk_IVt;XRGY4p?brp!4 zlp`(QHcWm{qV#4}sXPgfog^9$V3xb+%1et|m_Kfi%K|=1EyD6wzMP7gt!}{7&Yn`6NI=FU zEC>?43xm@DoX>_6P`rlvA{h!klpTNh%w;KK5gLfVw?$^*HNkB|= z3&xk)`5W~&U?KXv$xqkcJsrKWn?v9}StVgKa!VfqH89af7+V6v= zQ-w!Go-zsAA=1eU_@v*J+&3)67@F?T>(WCQAIq!nau!&G0XhLVHD>0!18NdxHPu{P z+(AVflrjKIIP`TY7+X>zHRPm_%m8x)7yGWVW!w}XENyW|9#6b#y3?D+jt)ny}IneK(;met|?Mmy)Xx{e; z|KQg4qNxN~QM?b`6|%5VO*Utx9u5kBOA(?~_kpBp@6Cbp-%+B~LO_p;*^oFIH1itK zZWQzw;(cU~upfT?S4b>pjJ2ZZLJa?UafnG?onhh{OMeBbX{Jis&y-Cu9S(qjAjvFU zynOqTH?0Pb*HD-ZbrQ~Y7>`&B_Ji$##XV8`S4neCQ6sB>(cX8hxRzwwQ6=qOPR)7j zx44?qHpQc2+;+mjf|E-#nl;E6A8Qhc2)!DZP)#o+Ak+Apw(;QW-zdq5b#vtltu|Eg zI@<~TSOQ%#w4(%&45l{B8G?g8uT;2T@JNU*IObk&btb5LvNJUwi9{lO_K*PJ&G5MH8Y`5LcTPYcc8rV!-H1TQ zC->-a!SjT(Ra@+P6`sy7^H9Q6kRSs>m-(VUf$Ry6RF~`_!=ELL>?b^nXxKYf$Mj`3 z3#p8+4_2LoiM4lT^+)R9g&#oB&66|SZL79wkIQbk#~B~LVgF+-EU|R3sx8`zIHm2X zp6;@4>R<|^D*lD8p$KTTt5?w*o5anBysmJ3D&v2Z(0BgXx_MLc{U6`pJ^B9%od1u= z`hWWX*KfGz_36mLe^?N|;3vLxUW^gn?%4)tt3gM$E$jXL|9ye}2kejkeJAKf9{r-s zukSx~L95;J<$7n=es95i{RBQQF4uT13#nHSc*IF?-;L)K--gkzCRI3#)7d^<2So}9 zzXm~30KmHJ3*W5{k-f+D6cm6XQC&Q6GS$E+y?>_UTLEa^5!5@Fy;=IiiuG(NEU-3t z*8Wd6(}2-}lyWtvgT(+wh-gBW$D&WWq+M=v^Z)8OgqN5zeyxXD=Y;UFY zicUbs%`4W8>nO^7_oZ~Q&@xyu^|y}kI7tdLY?;0&48ODq(0*l-FQ&Hj9%GAY`J7y zoT7##G0S#;KuIqJ!#<{&-ZK-EAC;Ike~NppXdRGhGQsue%}u~IR50Ti= zd%nmYGiBvnl_-US8x>ZP{TOTI)7M|03To&X`;0qoo)0s|FMU)be}nh*t7q`S&M&%+ z8hoIkS-&e*PGei@)7$-wzJrf#b`g=cr~^%pnk%Ag=km69eu=mZydvVcn%NY6)-R1R2e z%D5{_$2C`cdv%@RBXnj!*Z2>>27|>cT@lhTIA8>TD!m23;La^!p4_nIWbgePm+y<^ zY0-@3v~!e;RUav3Ad9cJFFkA9{#px&58*lAtsq&a;-8RLm)h)BVS{ zc}`!^-MP(&ht3ba2Xk2Jq!+Sm`tiA5e7myvwS@DQ{Ky?8*;zoHbCAGVaMV}jVH}XV zrnEm&tR^rIp~-7O0bK@KvlvZ};w-bosML95%8@cBR9=0*Uw@ z&5XQM1_*21gm*zwcF6>CJ!(G-Jj`aM{#Ul1MxZ&|?Df&zFmyOYTx3z4}>p-c-YOUB4=~?VSd8-b5GR z6pR6bN^!4PP^7~T5+_@$k4u_ARi>#Fr7A_Xo9?dv3Ku^OrC8v??+4(s^GUqV731;j zO+3C25SMwcaik=phif#{mI;**5)Xteu+vEPQC*v91pt81vNbN-87bnR;H6fDUgX zQ42Zj{`2QRns)!~shc7SCtO&UsDT+-tC(nTVMu!KQ&xOEwb3CK3RXq(FQuPJr?wQE zqMrRJ;Wux6mQMa(Ahp|d3>%w*Pfr}_qxbItu8^~@M-y6PyGmePo>c8V)qF-5@2}F} zSnw%DYge15?Wl%Nc(qbn8WQ#-xy#Kc4`yh2rV~#Ka2RUSl(1L#68eIb!#gs1oqzn0 ziNN(`D(QBMF#rqEPubR0VZ>M$+qH<6y!-1NVIWwMl~4Sr489DADd*E<0+mma2faLR zZy(=F@MgT8%eHGK7@P%9*1%XtXbW<%+3GjbuglkH3 zW-Pa#HcT!j%OXw)L?*$yx<#jpQAKpWB`YoN*R!&orU188Bu|`~s-2;|Xhn_qTF8fd zGm`vi%Me*B(%!r)|2C^{OLSOPq`_1;!c{U{9;LB^?ah*Y z?omJ7pVkcT7Mme?$RA_FPDV+pilUiZ<0q;JP@@Eq9udhu^SC&&reE3@@iUQ%K{%$7 zlQaO7Ue@8A_T6U_jf<_=Tk31tz4ki(V0m!(#Vk%t`9O(6n!}p+)v6$Y5)N6{1H0~C z4$LX9l4-F!ppN+dilO&>=A)_7CHYSA-ANIE)Y8_~&ksKk>hepArbIb)$yynD%9y!0?9 zmO)75D^xRJ_g9gE#gP}b^vas$+l-zBr@Z=_aVX&Ps;Q#^$f?o*U3trs z0aEu8%`pIwOYb-bNnCJS^A&+ilY5W{#i)2fOnI`Zf=qKgInfDp+HKtwQh#%g2|=}_ zwRjP>_#IeBjg1?w3&CGMs{fOogH)@1<+W(bD0%-7=otL}Ia%jF(W>8NQ#W7~pw5K< z>AX*sR@TAhE%pjNbtWTmUS`&!Y+8jnUeD+kfSV zY@c`WRZab=KMmHZbDbYkf_3Gr075%dnC~Ca-C>i!P=l?0SkBz2$5*3vUjp=%?D*x; z3AQ*mce=17xe}9xua+Vy=%-0h&eMo5hvGdP3~N4D2Nx7L>sfSR>Jm?dL?Izg!ab+K z9=86F0>i^osAQ$BrEGQ`7C#qW321^ zv>E`fPvic)PU}6>ofGfiIhw`?!9=Mj)M}KJf6W5HeP}DP#8#ckkvp38V_;o&lnEnnSb&g@WGyA@>KC=Uv{|u zK|ZtAW?fyBFP=hE_zHJ(0Up36(z~W1W23_ICI~i}X*ZA)jBg^2Jc%z6s3Q*6sdBw2 z=2D0UbnNkJvE&*Xb6d|pvgg$`a(9gTOAs%&cnxt%pF$vMXAPMh<_zyIYYqDfq$(n(5?9UYo zo@oJ9Xtbjxaz_z*hnQ6-t#UvO2>-zglE3n^*-bUcb$m=s0I2h(Z83lHJcj2sZOTPK z&?m?_E&I=Hnyt^;-j4`aIMIBmLwt`PYJ&;>Y|9>LdmFC6tDZHg?fk>Iw6GPx3e#-- zqJq0>_KZW^>d@~Rd=F` z1CbvKj%=iIi^-!DSftU zzu4^eoe@v?AKmg;x2C~c>(~W}Z}5H~CeIss$Xey2lKkm#;A-f6=_t<8v@`Tb<;AFq z2FQ-_-0cq_pig5ex}iro3gesiIi%5oyrU)(={Myu2|6vZr9VRAEpVd-t(>Z@%8w&U z@PpT-{rvy9t68xVs_Zb*w?;BiC|e|YS-1A+?`(GcKefGOR9s!VEl89=a0$Ufp~2lH zgu*Sj1$PQ}CkgKE?kU_|5;O#d!UF^d?(WdL$oJlJdfa>ZyM0gh82l(|SFPH6>737; z&stKqLu-3%sDOnGkX=bK`HmZK;PZmHy6kL=fojH|t6#dR>IoWDN{w5W4b{IbHd%5u zyE5NKs;m}H($Q5JCmUA{0P_oN+Y>6mNp*lWG$t)5Xiu!qq9ZgAvI9=HE{hhB0vrIX z`mAzRIDwUI`r`V7O3ostH$91DQdr45{Y(AVHr?~5@!8dWG$t1{@Gg*Ze1Ic9I~OEA zco6+xh#z&q*I@fudZO*|die01%c~4dYJl}Y`bQ@da!VNmk$&eB*5olwZ@2a)V?38Pb@449hG3JT(wP&5c|kW1t# zr{J~Z1c74uUxNT@Y<#!1OCcqK&lL#?+x2AdoBV@8y>9W9U&XZUdS{dlFxXXoxuzCK z0Os6=g#-qL53WBg*0mUatVPO!mkb!a6m#WOAQwLT$kA>k&;+d5*PxKNrZ2OVl2W3v zjk9axni+BLYbSmsmjD2WPxkRQfo#Ax2ABEH(VmVvQr#p?2!oxAMWU15SPPl2GhTPG zpkM+7WX%N08>@nSwjuOA60P_1D1Zo*Ei7$CGuU>2=P&aC;jgfnGtUf>_2EC`8eh0* z@d|vVrs@jwL#nCWeLC0>d`cvi&!8r1N-uBe)_Go?42i6>kir{CRtkB_{B75$diI%c z#;1ve@4cZ!EIwLE?Jt9{7?+BmEqk|9fZTdI7I&tpCfF$luA?nYc@>XO2Lw(gE{FO< z7oKdS&u=w&6ADgApP`L9BEc1_Ew53O2Zo{n<}4NnvAc`!=*CK>DEp-=oGlTLld7r6 zuRX+`z)m+7uC9psJL4Nb1$U8d1|0;u6r)>1YN^@6OU#-wFsr-6IrH<{G%z#2Yrn1H za*NY^YiU%^`?d3!S0yc80t|*JTZaL&n6_PoME+E?9Kh%+Q}R-Ki946xa ze#~Yb{Fo(mueW}f+T3o{gGhPYn_up#xP7j)+2YS~-wvkaz zgUn7Dk25rxVo7|6aOESt=(D(F26DH6?6ylNy z3BNLiutZ4=L{%>2n5}=21MUzvYT_iF~f2py|i57LVKj zLmw?+`ZIJB@9XfvITy_eT!{f!5$P)pmj3gGI(2CW&Ww$f1-2<`iPWRLVDS;-vUT_!-YkP2*- z1|(_ijTN!<{8Ef!AD8Dn4mO-|?8lW(>VyS}E-+Y-(HftA;3at%rz~!1VoLv31(xK7NEhizlUQ$EOb0k%jMQC7wry2-CK) zX^z>sqHB1j7PLI*#Mot@i-?=o@%FeRe2PQQzf2FzJ6WZp?~eJiIG7-TKn3%oe{5$< zqYLCxk3K7L*1DP4Po$Nof3p zs#y)L2j1KpUMDVIj`S3h*9dyrhXVBC_`@n|R7W@O^Fm!Di=yb_*9fJC8>xn@3r<{S z+_c-)4UE(fUY@_xIMsV&V!@{LjpeKTY+Of)2voPNVvd9@*rBtV&}%m?gZnKQq7LAe2x$5g;w9GH1SpK<6F6r}l3DfVivfYk1vMH-r;UvIP|Hy3y z*(6-SwHQa@2Pyr7rDpE^)g?jAkJ6&ST9up!u3*Wx9EPo>S~>WaXT5p<*P#UR|GQn7 zD6+x>YY4&l`*EDNV10P$G>SnF+lPI~!+4M?vLwjX2gGhD#gxcF^ktC&6eP$cIL!AtHpj=28-PbDK+e?vgg?e4^p^Xx#ff(SGq` zv5F4Ty&)MM&OdsLIO+ZrL0!!gymUhQtcl4mKD!tpuuUej>6tA_wvrw=>l1UHoo^ncgf|Z%s z>a4P`hqz3<)ImmGcF1$a=f!FVt5Nj&Oe-gTEo~+HLii2bF>eSq^bo7$_^$cnpA+4Z zfqqU`#hlJ2;d;LKWW}&k=St$L3}#-JxHuHOr-2ihe^Y24q^ zaq2L2ytjL*I&m9Kj<=xs92;{YBQxUF(L00+k`C)V;nse-E~fP1mYj54DX&~<(X$BQ z1^WDAZqgigXEz~g1LQ;+!lS$%u&2I@>;lbOAzrqOQECD6`Uv{bHABiC5KPZ7k8x|h z6llL94|R{>h|_C)rIca%_3L$yG_sy0X`in~-0dEjZ_q{=U zA`$bMrM4fU6mmb^{FwIFdyQfSV*grP4=)`#*W0BL)NHZG2q7AvguL{D5O?13yf27} zT==#XzdYS#X@h_AYILU{nyXN5*Y-8*W8E<_4zt7@B1Q`EVq%h?Nv<*soM<{ zV>E>-n*OM9U<5okKW%i%Efh-@lWa8u*rrgVrGe(zZEEp4_KbAUGd-@`kAAF<-fY79Rae^CYLhK zYjym7ae0fO{pv(M?Wr#R&B2-oeo+DhAb~}xZqZ>fb3$fw~(7ovIc~%*4&ML^{*J8%p zr?mK-mD+7j9wUxVcV2@h^y|B0*_Gq{SR<{?MzkxPyZL}oS9N3t_2emLY&0*d(Si@M zY8gL59gO0rl`*Rs+P4`6A}tt3seR-%OsWjW0z-b#ncqvrN~An==YjJHELciR@iYP@ zl-nM;-l4UbG}TxH2og7)eAgt(@G(e?ecvtWUV2M$XGMPvVbeAsyElz*6a3T66_3K5 z_C%RU8@)SJCj%K(<2Ilq-N-`OH@h~OfAbJwb9>lgKe%-MEWD#$Zr40tdVKWOfD9Zb zlT1jo(RQwoU-Axg%f~fkT1L#v%Dc-HJ3Bg^?=)IHl*_d*TWo%2KQBDj7qD^pq=SFd7u7AwE8CNov$uhdU0 zi)L!0K2;F;Gyn=6@A<%*(cCVjZ@I24u!HLp!$LG7h$d6=!!^IL8%{#<9?^LRX zA-TYMjfv9b)TpccqqAD4O!gvl)u3W_2I%uBqVCn>RwOcf>!FCdc#bwcEAySyXL(#ShkY5qXsEVXoT$ae1Kh)>7qapo0yWzc$DaB3z?AcU8d{; zH%lC-#1LT}m3fRhPW{b+>HCXm5KM!z$x)ru^*FSOi1Wop77rrgP6Yof<`h~6U*Xm1 zAGgoNQ$vDq4BBnb3Iv>zGjJeeC6$IcT3YKO9*C*xbIds2mWq8zaiMYo+048=ZivA~ zimKTFBy#H!)jo60Wwwm)3T+7OLhf8!;LSa%Ug7CgncRpY_Oy}rkx>1aM&e0zva)4m zAo+Z=sQ9Y9D<-ed&ilJw%#f0eVed2@bY6N}qx!w2C$|Cfw!~GoY*(;-PDQrL&Xw`N z>CXuDFA`T5v1#$ze>$;Lvaw$4t>$SM*x%jK6eVLZCQ!73Fr^6yw)T(FvB5u?NsA0- z{UFM|BEO_xQmGq2RIQA#%ju#g6A|-yA4=P}g*l&ffu3RITtZfZ5%+R?!}x!;n%Ij1x&IHE}7&aebAmOegVTulQO=71AuG56a1z; z4x(YU#-c$hH{a%jP;#n5Xg8kBR0ajr#HV!o*t)L${o|j49 zEP17%FjT9ltA0;I0_B4z`z8FalW|*ZZTigS}Vlo*zRN7HwT; zPvsU%4j3oT&op>76SbbUv@h9aox*lkGhZOktL4>`8@TpQo~hn?MW#}d@mD(gutJ)< z)F~9YgA&b$f$YyuECbZ>1y|P@WuHb03D-s5o6lEKJc+pbpyF^xPw3;SOT%%7D54S$ z&Ct|OU|HglG_S*VH7!?mO$=gsZQ;1-kZ{Y-ygMUg7@#_|zUsN#)cP5i6Y7BnQ$(tdL?>}Q7e#h7>0syIutg%Fk#Lo@+pfjvY@iC zXTaEo6Nukh)GTZ5ZYrRpKA}Ni3Aj=Q!+vl&&XihDLVh-{a<^w0!N6VTCxHO8agPbX z_dC)EunL-HdS0A9a3QLJXTzT`-S?t%?awhA4WVDHut)C;jvs|XgImvnDJ9Y;2Gb6i zLt#k}`9wvhp06Qc@^LiX8S_asYR)CYuh8vVU$>>q^%+4j9S^a%V2c<{HD}A%7c>?pTnzy9f-EP{f$kcv4va-H%o9>F{ z7>UT?p(^+RlO~;h(^@6$nRW_SMw8dUWT9?bqq*YGEcaIAO>}*%I3~(p(G{1Dn9-dv z)(JaqSvy+ratt0w&3nt!$pzIJuv}6=5DuR9yWiLp6)+SoGsHJ34#P0YMvtheLn%?W zzI#S;50Si1bbph^-4|`yM)or$!!qn};@~VPn6lo>^|O?8T%MsUOS7qB+8p;voPFU+ zya`ydW?Jvb>QEsW;|yk0fmO`y#cBlAz?VxHLWU>)cq?vCQD>oEF?eYMrfquePsur= zY6hoN!6hv?c2(6A11o$0h;fS7#iITQPxAjX5k1_m$_xqX(8_=J{!Xv4BTDGlz<;<} zLP*y)XoJ}v&ON^s87&<2@$GjN%+j_#ut@~E+Ma{Pd6OvMDguH!)&DNn{I@)Dk=8Yo z)Q45;U*r?H>_EYl;a_$)^)?RYf9!7m?`iJ8|LNHsYz)!DJ>F)fKibBES3RlX=vEi_ zaHjcC||aTahV%VE}*8 ze_879j8B?NT#+QKq+Xpuj<=oJgsEPP2oQ^)-!c)-|mcqR22!Y7rvEd_2MY!Uy-zip{Esr6&w=$_>5e(NYlW(U9}8*LJT zf~?bLb4N2;;$2d|5Ye^I?VE338EnJ2zhMXN>ocfMj$yy`9Jdn$H(97`y}KpTe7&K^ zpt|Jqo?h-b5tOpzwbhDe&{p_WFMB!A;W;Q8(^^s~eGJf=6GKK35F#sY+IP7=v@w1{ zt@B5wu;-C$-Q8)!NKesO@(yH@b=jvT%bwk$wO+7Pz}rcyndRHp&ET_bk*TvR+xN`U zLqzyQ=|BI=*FCXbp|Rr@cu0?y(Wx>mi`2>&EOh|$fD+L+HX^YCOvK&XMMt6!IX9Lq z!~^VJ+EQU?;Qig2IGRIs43_u$b<%)KTJ!)zpKS%}Np!_(-aPMnmBF^5Kxc?r%W;_0 z6)Zvclva=f;oDZXFQ7fJl!wpkU~8yp@ghU$&aPV04z7Ue@87~5`f$zGT<5$s1@;f^ z0OPc}8=krLm%*+_Gn;>yje$^~SbhT2OY$Y3O8P~AJLuR`ebybk?EC9UdVhZypL)Mu zu)Q~#!o-dPy5)CMUU%z$XB%s zlU%eH#6VchpHDd#SDMluA?V@OIpQ!@XceB-=#Yazr7Ps^QO4_61GQyeD;73_Glbr> zgq;#Y9mIlz*w4nVSv7fSMgZom}$J7!R&ZM$m!*Kgba31^mEPn{(rmxK;%K8y?d7FY${;> zRpdyfCV*C{aK&~zUv@Bdn9T6S%q^2~Ru_{mp$7z^bP&e(O_aR>t!SNQM?^oxls(|z zJaP{2y8Vv9@Ol~CF}m`y8N#Z_q@>h`dW7U4mdPl@Y5uiRVGS#XV*SlzBe~u#dcLYm z1zF@lQOx|_JR3p<8K@N+Dr4Syf#=F^hR5jA5g*%COlN8gEz)q7X27@Q#-=)qzy~lt zMOpm3r}T58q0eq0&}Cays6$3E{C(_H+xWRj1=q79Bs?C$B1#s-@%+sV@1@hfJWH&S zP)S^@@YeYKiRb;%Fd7k4t~$V-(IXaGTvQlfn;CCP`B5R7as(Xf*Rv2UXH12X{aZ+n zOSAb}OO5wQUXNJDM(dM~ZI`R9+bTvQP|myU34k0Pv%4!A&ar)U^2BMa54CPDl%?Eh z6m-~)ay95khU^etv_7&_0Vq+-6px=jxSyqCJM_DSX>Lr+ie35#=_nwmgy<{gWjGYk zXeIu*6Io>9i)XZ>wl#?hKYN>KTKwwQJm|5^sXDI(HYTcCRVlJH{aC>irf3hfRNUG? z-DyFA@VRTtD2)o462I%JumIiuMmSX#khAE2-7Q)YbUPJnmHsGnvzQ6_{z=# zM%iBV)Tvz2nE8F+#*>V7mlLrkypwll_lnPHSAgAKH2e6N( zm~7`1yZ8)i4v+c7uK^U%@(GKff_hE{&5{!6h{eW4T6cRJ_QW2Y?q=b08qU6pCsH!p z44s>z2J!EkEWQNMCQc+3RSwE{%5RnS8LQ6msY?UAzgQXw0c7~YFnIB`Q`M+PNmoNrAIUm~(U*$hQXn$N-7vZSeZ^JUq z>BI}0`~5Vg(d4i&O5QQ zoHd-uUA!RSs-1fc>iOuCpX-xVBk19p<_F+)l1T$fW04_@CRfY)z5BGiEO~6 zKN+aLvmG1aRUXvey=iwrGC3w9U7)Y+q;el$`Qk9dg6*veZ_|(CIOQT37))DRr95cj za!3`QPbq7Y&SEmp9*P}52?Wcko46qKU3K(PQ9HceeR4zfOv9MFHrzyJ0#1Amw?NaY z#J!AmvHnxUZ8}$WBJ$ zRN!!$ZH9y-CWVk_Wtua}9EoyAZN(xflDVf!O3A-{v(r&Tz_dN@qUreY{V+R$SLA6z z$&Gd)%5<=c`T=pzGEH{4C}XCeBB8qKQfhQ^N-2^=fL6}| zfYR4jkmiI+ea`=-0G9Rpg2cHc05V=kjr-F@Awix3XS4P!P^wzogW^W}Oh1OCva;*f zI|C^>c@*kYHEu1t0Vi~X3dR3NK?^69Lu{#3@eP?z1reMce0x4U*|`RPh43oyzpGZ& zlF6sOyw_!S^iqud?h z!5x5hNVjr(Q}|5iDSuch*T>D+V%RD-w);N0Ua_Hi% zckD1+NPG7Mp922T|508Cq$bf-s8g5fUj@nw4YFd?e<`0@7 zvh_>RrS2Cn^?Z9vGnc+5SqT0s&FM)FBapUPh_;SxQ)RK=Cbo0|1$|GvaZ zmoWWFvyrpa6G?ZsmSx*X3IRbr??0TVtS~%N$iZ1K(K;+!t5=UiPA}4o5cls~Cii$jF>~a1Xax+7Q0Y zv|5Y57J%}!@00uVmpSou9L3dM?AKZz@gVTy|CP3ym(iyD+WSdtKJp5Ll4+Is5=*qc zYWBnJsoxU83&!R3@}IU){UC3WCQBSQ)!4$hWa;L^EKIS>@g5Z|v%w3fYR!vo-Wa_7 zNX4WEdz8+^6_(NP-(!dLHWOvnfKvO5pb#> z$chsk{~M8}uWzc`DR$~mqzIt|+En%3n2tOyPkBKBLu@FRndg=(FQurw>cSeMgMwl{ zhmyxdr{ang`VtMjYhckmFNGPVx7TwQp7ZXkQAwo?AcK}~$%Eann#zJ{jEo%wsSqp) zo9di5^A}+38${^XzCN3g)qrkQ)O8gBoV^lXXn@S1su<>(@TwDG)Y8E}lIN^Hn5G)JCOLcRLOZIt_K8~E_KP$J zy1aJox|es#R=5iLR{_Bf%x?D5HRpT?N&h^(?dql$yFPGp%+awuDY$WtLGd@qgFc0w z7~8|Riy^Sh?|!^c;|>f%j}P1Ijr+1L<2$QOzHqMNfQISR=40f@t0`95M(#wtz!#&? z=D7_EhK}cs0~VS!>u{`Ko+SQJ55%r4(yY#BmyD0<2ny02`nHL>q}h63l*8kF;Zjl& zy-x3+i2@QaDGI@9I1eAAd(eQ6zJ{~RDe|_JpuX>bpk|vXxFO;g(6Ztkg{Lz0S4!r2 zV>FP7q~nSl`0C; zgwXvK;Gt4ZWu79$@59tny3Z?!;@OcP|C!$i7#=+BT?y~t@FPuC=Hz}Y^_($c$9nan zJ1FFUXG+mq###0Z<;aAv`a&4{uh^NPFTuUHyh1uTUgt6Ut88Vxd#6~?QJGKRbUS|6 z+CJ2G0IdSe>SRdfuJkN3_Ua=#5zE-X2|Z@FHHv8XzSPPBnxigjpYupY8!U$^r|OEF zV2pPb5**|_aVvT!Vn&ST=L}=mCn7|FOx=H`@}w_mC; zG0wyXc7p>3KcS3)GGJ(-VI`pk0WvY5VF4P^aV2;!!#&mJ^fotIhYnI%l>qQ>S$ow< z1LNI03d~*A_03_uS)R-({om=YAZl;geu@-q%F3c&c_;}9>2sZDEzn%AN_62`Hed7s za3OW9`!PbQbXZcOAv&v#B+Kq#0F1U(_Gebp7Ht!$G}dMqD*Nw93`_+h&z!Cga5N#h}ttWx{$&IN{{0tBV%kjl_C6O*sY62gTU2(BQC z6?7VwXpLA5YDHtY*>~}D7VO3EKtPHS^fA&{t(%jTo4bFanTo!neGiQ0RlMel4UKli zemY;(*Na8~s@ktwVN(WMmIHloh+m7Wc#9?EN zKMBh2;^wYpA2hN{M&I(eW;g=!qzcEC^5$pMgeB2}!{~VVsFCaD4dH5O?gTqiOKr<~ z8hROhXB$lh*@!wcco@#bc8m;1Vq`;d5C}@RJ7tb^)AjtCKEYAwj@d1l{cH_w>yRP6 z)cVpwC&0Th|A-e3imfU#)0JBrv*<5Z$`Jd^@s8T3L6 zN2i!pU*fEvEvrLsf#8GmL#k07wOq!AR!PsB?fruXF(!=olH@F;p_NYXh!;u2Bc$ z)m3)aQ%+3G!P8c9)FQ3Yp`F&(6`*+G;1ydtx$KfJH1pBbEucmTn_h{W8n9&SN8u1g1U-)z=x86rx|KNrrI6iCwCU*J zPWimF#g~&cqb)TL5Pd~_wbjP_)uR_kDg%U}w0+jP3y+A_x`kccd!p{MLM#fv&Zvu6??QR;L>eWCl~``Dul@ex$(VTGIDR-Y8we$EGwBO6=e7F-O6hiTL1KCfNd(-LzpV-0 z8J(R@vC`@Ln90I%bR{u^s;XA@sOpZkrSAr8ego!ck)p32r`}%KO{Ju@;PV_IRZMj; z!R7IrU}mml_U)(xwpb0RXcpftTDdp!m+7tq(tosBC_{0-xn;%%0$Ka&{_lmN_YUR9 zKUVTDIZy(Yu?V?&Cud#t9Ahj0wZYuLgdab*DGV`46f7!cC;wt||8Ky`f_w1xeC%u6 z7Y+$XKT zjnSYsPrTPgWzOpP!}eUCjQ_FS{U5V{e+u}QZ?EKLcRRHF%kt-Y_<@&tFKIn-yl-o@ zi`AcXKe@+;BmeA@%23q*%E3qLS!!D+Q(;&AaHuLkw-l0~Iroj}Iv(+NtJT}y^wU)t zJ`r~^B0k+?=XcG6g1Eq!5k{}3kYAc7L1%-WJa`M~3I8fcpZ+HoBP;-h%p~&v1J&6> z`ikp)yg>$74R1uIgov6dXVxDh%)QG4#73q4W#Q(VT|?&`p=;My%O3GLE;RWIOT zZF1u8c~z00Td@M08`^t03f&wO#6*~8{m03t3pn|fpI=l;iiE%Yt%prj=03o~tP8ie zdVRvF+ZqBywvM~1go`o()u(Oy~p7j$H8?|z(QP1!h^ma8Q14b+)Y{2Ps;@&mi zsQ+wR_BH_^U%>o9#900QV^)2mfi|G#Y_SIgokvm_eb*dV4)yu!C*<1xeUi%GGIQD$ zAfWQ4KfWW(iLo*lIJ;R%9qu2LeWLZ6|1>c(rl77>Ikmp(H${pzk3k#oC@YE5KytRP zq=ZnNk)(xH!2sj&Nm6RANoFF@u=zD$p7wW}7|AZZj_0(Coe@(Kw=6|sYQ=NQFPhTA zgGtB`3!SC^0?00A0%tA$Sil1iKNFqHo_PqJPe60dDw>%p%dJRFr7_>)R}z@)j+T8f z=!p)=d;`isDl|@FV?-I7q$W`BZ@ZGp8XU_YzBsv|)Bf6x}^E87%*?OB6N0S&21XYNfV9QXV3=_=PA zspJP%#)QYzE9g>jMX)9HP}7(-@g3EK)U2q$T6K-)d$M3BG#rA^s3hOuQ^pwh3Y};O z1q_DBUo8b~oaNEShb~))v_yYC4;QL%I;P9}#=%1G=UYK0h`{NwpoBEyv(jU`?0Eg zXq|Ps1!zTX1OS2D#fR|A)Xl@(B#wwK8eKJhj8-^b?wo8TC;)^JjY0cod6u>f0P;VWV{UoF zFtqz*DBIeIu!-9z2D-FMOpcTdNtXC}2w3?Vdc7(U4*npaqYbE4X(T?wHKZZNN5{^k zMm{D35ro!kI)N*@JdJAwZ@GBLyCxs>DnYQavmVVG2cRKcvVoeof@w`=o;4r?VkbL4&B^$S^yao9cS@BiogwNwrrbm|b3t-?7mhd@ zLZXgs*szE*byS6Pc!VG0F5rZ9CS7@qfCEezeFa0mq7eYF_{W?6ZCorq!B#vv302-w z2MXq2{mKKNX*l?i0B-$Y-m1{@VPldP4fo6&jzA!z!NE((sti!kbp%gK8^v zjuqL!a4r7rp?(bx_S{L4nAosKZic5@d_F)U&|$7A@WF-4`Ayh~fJY55Iv>4yEn-eV zLQOSc&!0e}!lZLZAJNK&ybpvw-r$?Dvde?P*p?Enqt^9+*pB{dtxS5r3ixRF&fSrC&1sI_`v=SYIx52L&fx%f_z4o%B~i5 z^8{XpWm2jjRUrZ+l{yccjPynkBMMqNro!xGo}&1CeSog2)No%ps5Oo{4$k!MC0->x z(mO`#MrX%*!Nquer^$+8=&1vDypGxXL(+Qs4sHsI#YB3(5ibg?E{LvW@6o-lya6xxe z3!E`A?R)|7w4X~_TQ=T+^)e#xZB49Q^!q*xu2(EUorE|==|(@=x-g@^6unAjFD**W z_ipwzN+gCyO}m8&;wshtI--#&XvQF@A^q!yo1frrH_uYl1V)Nw@X0~)qq;JZV8Vs;WTa;s6J+*9ckK!Naz{{9MD+X-{$Pi-HOQ+u zN@9apL(BmP-cAhc5iPL_C4Tr3t&IvmHhF$m%ImFYX*KOy41%zovQfzirT_5J{fIq& zK_Xz7v@v{MLW=dX3GSmi zfk5~1mZA!Vlzv@p#hih0{88g)>MOQ2!ZNJ;a$3_5K$?d!X+gmd8$PbLz95)VHrXHl zy)IMq_gf_VWBZk{X68GFn z#QgEgbHY3xn(p9%nSUiz5toS4wB_t5vixT+T)(#1lHW)J)O_Tv&X*$E{1m#OstXhDE3yH)uozPuEGkY)(2Tq^5q3Fl}Uj zDN06qTfKGgcA6IMj{=g2^n+1ra8m%cl_rQT^l!#f9q6*f@>z8cO^XUL#UJ#92iuz! z8L(m@Dt3|`4e?b%>!ivbY+T=@N?AOC1CJhr8-#>M|1PBpnaDrWz37{gBAnbH{DJ43 z6=t|wFfib7BMV*c7Pen?PWf9s93Jy#O3mluYQ{#WHQ^QTHC^|m%SF$_=8n1tS{Sv> zrF*lNkC&k<{qk8v2b0fwcX|8WTJ_>hUB%$T{%$|K&Qce>Z%?`4*J{}nFUA&xypIPz zE?1joxLvh-ZOUhOoF#L-vVFLfJbw3+jbb6s+f*j+^V6xtxVO5%8VaF}QZHAq&h)yQ zV`{s(CB3^q6&r;Uv3J@0r!b{q@9WJ(9ar!0+wTUDpdxrdAJUlr*3AEYI@y1l*Zxz$ zmew|G&ouM?ER@OTJ`i|Vpmv>j;nErcPAX8%TR>&rj=daize&e?IimSJcZ;Xe4fe1t_wq@v&E4hk{dxbQ&uJj*YX745)n+Zb$^{KS+x73&{gxA; z9Nan$c-f!gfV$bL9&V>utaV@r$7xW#s2=vYzHt}^A;P=Pw8V>IDnB3ad!KfhfVTmY+$hwXEWqk)(=u%^67Fn-+guA4t^&)h1Ir+E>>c+) ziv2)>TdvZ0s$&HFPUn;!*g9a5G!(oF7z$oua zXc7uuYCW>K0b(!os+_zWyWFSFJ&CMfY0;$zFI?;b|M9Ym&qmY1R3LEj>|cRs=1?wD zM?i#~C$UjWFTQ`CA8o|HUVE{@usP}ABF7T0M;x4 zmLve}!BVYlRtu1DxC=E1 z?+DfCCPiF?T&5=Yh@M;uaW~)9?GBoHU;1R+Wi*Ic@jF~aMQQ1}*0R@j-m@K@S1;a@ z9Ls-3w`oFy36R@Jdo_&f=t{8*IZaHtoOMk|3vHp^H9ui0;QEdD+|*~RO4|K;Vi3J- zEiDT60<-mEmX4m_d|M06B?P}O$X08UvqZ@VdM za%c}37(4I!dezZJ3L~D4Z}l?!jhE@Yc-K$bs(8IOL8v={pBY=~k!^oZ=wu8&5z{^n z9*w=9Jv;a5zU}t8+TKT6oPlT#%D~R`YgY4Ar*Fp5ndV*ZuAfhozmF@2Ys#NWDdK$> z`Q0VxP)D#9tk0lUX;yr`T~qDXDI58CnOgR_K6ev7Em!$VKhS@+-9LFUfAf3GG}QXi zU{^Q&M$n7boloW9fN6_C$Xmb6=QnBhdFA)^>%ywF%o}w7>xUH2Z3=QkwVm7QkRxTZ zg}9XY!K!(8|Mec5g^QGpV;|eIZXKS5+gwM<_b|5)+c-J^*8-T_=oHs|-F^My?#=i9 zlb`4j-kEntoze0>C$ZfjuXWs3jdOGdy;3v}2JT4jVb`I$PrZQ|@LEveB(ZJ7rPOP- zT9zrzVq)?a?JNd0d8*FYazMxv$g@|GH~tLQlV6qB}7^v;GP{aNrYzp|1mTz@Sxt z>CeSGp{D!FD_C&*&G)W*=ZkL9x+_PcH((3H^-YmQOuS#*=j~6Qi|?hu_WI|qxVU^4 z2=lM@NR7|%+mF_QMYQ)nUXU7&J6eYh(9(2%b6 z0V})Za!H>>GB4Q?XzPrZeYpU7@(35}NBZ|-JJ=C8e+ z!6SUp;C=XL*qOD1B(}bMk)AT;zPG(~bC&VPK1AkOmGX7E-SL-MC6?(w@vDq>_^n-y$;|}a%oZxeP*3PB7!40`N zzE=?e?ZU=WNDbsPVgU^0i?7?)YD~OhUka*DdqUTKaF3!`o_E z0x!#TJ=;cnoDCyRyDssVybAL!PfP#@AAk==-+JO?gb%MXdTyQT@@pNCTjAZ`4BvC? zC&Jg)3f^Yr{8TSw`GEh3>eqcL{Tt%lJ)Lqcbzkf_M=oE5R}TV0f=&2s#cR%oJa^Hp Zd&J2h*T%I#_ZIjyNl`g)*?YY&{}-_aYo`DJ diff --git a/index.html b/index.html index 80f6e51..8380b7a 100644 --- a/index.html +++ b/index.html @@ -5,9 +5,9 @@ diff --git a/src/views/welcome/components/server-read-me.vue b/src/views/welcome/components/server-read-me.vue index dbd57c6..bda03ea 100644 --- a/src/views/welcome/components/server-read-me.vue +++ b/src/views/welcome/components/server-read-me.vue @@ -8,7 +8,7 @@ const content = ref(); /** 获取文档信息 */ const onSearch = async () => { - const response = await fetch('/api/v1/repos/auth/auth-server-java/contents/ReadMe.md'); + const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-server-java/contents/ReadMe.md'); const json = await response.json(); content.value = decode(json.content); }; diff --git a/src/views/welcome/components/web-read-me.vue b/src/views/welcome/components/web-read-me.vue index 5963d62..3bf6655 100644 --- a/src/views/welcome/components/web-read-me.vue +++ b/src/views/welcome/components/web-read-me.vue @@ -8,7 +8,7 @@ const content = ref(); /** 获取文档信息 */ const onSearch = async () => { - const response = await fetch('/api/v1/repos/auth/auth-web/contents/ReadMe.md'); + const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-web/contents/ReadMe.md'); const json = await response.json(); content.value = decode(json.content); }; diff --git a/src/views/welcome/utils/hooks.ts b/src/views/welcome/utils/hooks.ts index 9aff996..be703eb 100644 --- a/src/views/welcome/utils/hooks.ts +++ b/src/views/welcome/utils/hooks.ts @@ -8,7 +8,7 @@ export const serverCommitList = ref([]); /** 获取web代码提交记录 */ export const getWebCommitList = async () => { - const response = await fetch('/api/v1/repos/auth/auth-web/commits?page=1&limit=20'); + const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-web/commits?page=1&limit=20'); const json = await response.json(); webCommitList.value = json.map(item => ({ date: dayjs(item?.commit?.committer?.date).format('YYYY-MM-DD HH:mm:ss'), @@ -21,7 +21,7 @@ export const getWebCommitList = async () => { }; /** 获取后端代码提交记录 */ export const getServerCommitList = async () => { - const response = await fetch('/api/v1/repos/auth/auth-server-java/commits?page=1&limit=20'); + const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-server-java/commits?page=1&limit=20'); const json = await response.json(); serverCommitList.value = json.map(item => ({ date: dayjs(item?.commit?.committer?.date).format('YYYY-MM-DD HH:mm:ss'),