Compare commits
374 Commits
v1.6.0
...
fad7bf8d8b
Author | SHA1 | Date | |
---|---|---|---|
fad7bf8d8b | |||
f628c39287 | |||
d119834272 | |||
a0d0c057f7 | |||
1f5cf1df35 | |||
033394c457 | |||
87d5281816 | |||
7a8d1f59ba | |||
77eee96005 | |||
472df0cdfa | |||
4cdc9165be | |||
3730c0660b | |||
89bc3bd5ef | |||
8219d4b7e5 | |||
a443bf41ba | |||
b82b9691d6 | |||
325a2e6a5e | |||
6a66bd3960 | |||
ef4362bd76 | |||
b2c716163c | |||
32b2b7657c | |||
d70ec0b76b | |||
44b7357ede | |||
dc5516ecbd | |||
e486d9e0e8 | |||
472ee845b5 | |||
af9662389a | |||
5bac41a5e4 | |||
aa0481df98 | |||
5be9cca700 | |||
5b48c95d91 | |||
f4fefdd53c | |||
cd79deaea7 | |||
bdeee903fc | |||
8904aefbeb | |||
ff073a40bc | |||
b211518500 | |||
aa3e7bbd53 | |||
91d47bc960 | |||
ecc96efe04 | |||
a91e34747b | |||
12382afb9f | |||
c7fdce6cf5 | |||
1338bc6902 | |||
5358c069f5 | |||
f371b107d5 | |||
49d6555dad | |||
82446fb0de | |||
83449d3eb8 | |||
c27ea5ef86 | |||
54f94e829f | |||
86cf25174b | |||
f0f659b2e5 | |||
67fe555d14 | |||
889c8723c1 | |||
0a40d85471 | |||
f6aa8db84a | |||
00de0753c1 | |||
87687f1990 | |||
1ee16a1b4c | |||
7fbc420b64 | |||
e06f383b06 | |||
054135cf3d | |||
e91c382b58 | |||
465621fb4d | |||
3a277208c4 | |||
32267b870a | |||
2e7bc3546e | |||
b3df3bf8c0 | |||
275876d204 | |||
5b292b88b5 | |||
bf239eed62 | |||
730f9411d8 | |||
a980ec29e5 | |||
9347641da0 | |||
6c763f33f1 | |||
6d4cb1e2e5 | |||
90879d1922 | |||
2273d04d0e | |||
bab185f279 | |||
af38e165b5 | |||
d51515831b | |||
8a268e5ae0 | |||
257a47405b | |||
9a007b1fd5 | |||
e9ae8babaf | |||
0edc0dc305 | |||
d8d29a95c9 | |||
70a48ec331 | |||
e7c0ae9a8b | |||
20a4af6abb | |||
7ac8f62338 | |||
d98ec5052f | |||
07bf7ac380 | |||
c2559a0f27 | |||
1ab5cd4c12 | |||
94101a6dfe | |||
75bc7ca36d | |||
dd00e173b4 | |||
2c7fe912ce | |||
6bf7b8b206 | |||
c6fb2c69f9 | |||
50e597be97 | |||
f992bb4b0a | |||
4aa3ce04c9 | |||
58981baa42 | |||
8f79619edc | |||
3a533ac00f | |||
635ed0b083 | |||
69ed06542b | |||
629a51071d | |||
74e4af976f | |||
812aac31b5 | |||
279f74180c | |||
e1109e946f | |||
e0e731b2be | |||
b2645546db | |||
f342a37801 | |||
c32881f759 | |||
33f7d115c4 | |||
b7179bd824 | |||
9607978501 | |||
da6523413a | |||
7088e62ab4 | |||
cc347d64bb | |||
4534dd1650 | |||
bc4d6e61fb | |||
b35770b029 | |||
dd0e3cb790 | |||
da9cd0235b | |||
69a5e9a008 | |||
afea139a79 | |||
95731e592b | |||
d0bbdb201b | |||
b66050952d | |||
d3062942d0 | |||
5a0d517559 | |||
3981230629 | |||
77453e1448 | |||
702e4472a8 | |||
e70a646f78 | |||
b548490e0f | |||
2a8a494ff7 | |||
f54cc4f898 | |||
4f2f962564 | |||
4b61e30782 | |||
10db5b089d | |||
b942f13fc7 | |||
5b5939c33c | |||
e4822ac7cb | |||
26186cadbf | |||
88113a286e | |||
1ae571f05c | |||
ac221a25a0 | |||
52f8e5417c | |||
cfe72be589 | |||
4eea47a7e3 | |||
a3d1244824 | |||
b341aa1ade | |||
53fd30be75 | |||
06dfeff9ba | |||
9d7e291762 | |||
2071fde7d0 | |||
f4edec67f1 | |||
cb07d0897e | |||
a8ec3c2a72 | |||
bcbd378fd2 | |||
85dd6a8e1c | |||
e622ba5b77 | |||
97ffd12dea | |||
4e8ee741ab | |||
13e3d48336 | |||
b38ae91853 | |||
1c60fa82bd | |||
5945ca3460 | |||
e45e02f7ca | |||
f863abab62 | |||
ed5a19b747 | |||
1a7a243e7f | |||
57755c2b12 | |||
11c03686c6 | |||
43b91c0754 | |||
4f4e846034 | |||
9c4b998658 | |||
c1d2dbfac8 | |||
8ef6bca68c | |||
c58976a4d4 | |||
812e4e16ca | |||
1b0a810ffc | |||
664c8d492c | |||
b757854ba0 | |||
25257c4eab | |||
56d6abbfd1 | |||
dc8a23d53e | |||
a237c074a2 | |||
db21d1297e | |||
9d66447fd9 | |||
593ae3f556 | |||
be5bbffdf2 | |||
8302e3a3fd | |||
d369849b7f | |||
dc6f370d3b | |||
0c30b02171 | |||
6135f98e51 | |||
b7154f1656 | |||
fd224d7a70 | |||
9fefbadd68 | |||
a51fd8fc3a | |||
445cc8d653 | |||
2b0b5613c0 | |||
f541c5e621 | |||
5dd73a8388 | |||
e194ec87d4 | |||
b75302eedc | |||
7f1c8de1d7 | |||
52dfa4bdd9 | |||
2fd2bb691a | |||
a855cc34e8 | |||
f631c188e4 | |||
5e4962b7e1 | |||
6bf1b6166f | |||
30099655ba | |||
9432b31d37 | |||
f0ab389044 | |||
ed96a91b9e | |||
55d56d3c11 | |||
a5ef9a7a16 | |||
a11202bc0b | |||
240a5f02ab | |||
317738b8a9 | |||
337401938e | |||
a41f2fd895 | |||
a92e8667ae | |||
2fe84fc26c | |||
d823b22c44 | |||
801b9ce2d9 | |||
2141a11ec8 | |||
2ff9a81e29 | |||
ac1d47c6ed | |||
0d2d0377a9 | |||
b478e98af2 | |||
58991ba509 | |||
1567b0f860 | |||
58e0a55b64 | |||
d762fa81f5 | |||
d0c7ae6e8d | |||
b81f7d7094 | |||
fd7f70ab1c | |||
31158ee3ec | |||
485ec3a44f | |||
7d5a704b7d | |||
55e4a851c2 | |||
ec1acafc86 | |||
408d8d5ec9 | |||
db5e1a1137 | |||
ac31290324 | |||
06baf7b66e | |||
0a4954d3fb | |||
d2273faf04 | |||
2939eaa70a | |||
0d1b519fac | |||
650d56c2ac | |||
da76780447 | |||
adbdb29289 | |||
6652cc21e1 | |||
b878e69b50 | |||
c91c91e1c4 | |||
780045f904 | |||
df5fa9261f | |||
2d24b0ff5b | |||
d46d1ad268 | |||
edc2be9f67 | |||
64bcfc7244 | |||
bdc847283a | |||
0a48f45500 | |||
89d8ce7126 | |||
7a50e2a9e4 | |||
fe08a6ab98 | |||
7aae7cb217 | |||
ee616b0ab2 | |||
68f15e055a | |||
d2218a1f3f | |||
f2ad65af96 | |||
61c2949a3f | |||
1e01152ba6 | |||
d6cd68d13c | |||
8f7d659e30 | |||
60a5c2b1b7 | |||
de76d3ee25 | |||
2ca07ca152 | |||
28ea74d70a | |||
642eb752fa | |||
52a34e1b5c | |||
af9dc3c1b5 | |||
07fce91c41 | |||
43635be88b | |||
eeedfb5a99 | |||
974a825924 | |||
1f5a774480 | |||
615a2bd4e0 | |||
50070962d1 | |||
6bd2fb5377 | |||
4898fcf532 | |||
d244012bf0 | |||
1f4e516586 | |||
c8a0210b73 | |||
18eccc4e45 | |||
c959c89da0 | |||
156ddf6d36 | |||
2a35ae74be | |||
cb64ee108a | |||
77a4605259 | |||
6a45d44f1b | |||
716a0a2bb1 | |||
d5939a4039 | |||
298e9a61d0 | |||
7c5e34eb22 | |||
495ce30ba5 | |||
5d9bc21028 | |||
25ccd3a2dd | |||
a6a9928e8b | |||
d6b39720d9 | |||
bd6c38144c | |||
40d7e5a7db | |||
e15281e4f1 | |||
91931e2eb3 | |||
90e631dabe | |||
ce3ac4158f | |||
1c344228a4 | |||
1dbde9dbca | |||
9ea1882359 | |||
ea6cc8bfa5 | |||
ecd967c60b | |||
2acb215ae1 | |||
a0cefbd874 | |||
31d663699e | |||
a585094e76 | |||
0158080593 | |||
60e7914bac | |||
96dcdf006e | |||
a42ac95bb3 | |||
dbfa44ef18 | |||
22c26bc22b | |||
0625fec50d | |||
2c7fe1f48f | |||
638c5c0769 | |||
47ea387a5c | |||
85587becc7 | |||
56272f9277 | |||
198dd1b03e | |||
a565e552c1 | |||
95fc7773d9 | |||
92fe1be9b5 | |||
858d614ede | |||
a8f8c9fefc | |||
59107b63a5 | |||
fabe216329 | |||
e31d4369b8 | |||
681fa94e42 | |||
8629308695 | |||
d9f703340c | |||
05e1ac77dc | |||
6596b6bceb | |||
00413467c6 | |||
e77bf5df4b | |||
4b3f7b7af8 | |||
d15f603813 | |||
5b106039e3 | |||
617af368dd | |||
54ddbd1ea2 | |||
1d70505492 | |||
98489bce99 | |||
d142e0b2ee | |||
972d5cba8e |
@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE colormap [
|
||||
<!ELEMENT colormap (color)+>
|
||||
<!ELEMENT color (#PCDATA)>
|
||||
<!ATTLIST color name CDATA "0">
|
||||
<!ATTLIST color color CDATA "rgb(0,0,0)">
|
||||
<!ATTLIST color compliance CDATA "SVG">
|
||||
]>
|
||||
<!--
|
||||
Associate a color name with its red, green, blue, and alpha intensities.
|
||||
|
||||
A number of methods and options require a color parameter. It is often
|
||||
convenient to refer to a color by name (e.g. white) rather than by hex
|
||||
value (e.g. #fff). This file maps a color name to its equivalent red,
|
||||
green, blue, and alpha intensities (e.g. for white, red = 255, green =
|
||||
255, blue = 255, and alpha = 0).
|
||||
-->
|
||||
<colormap>
|
||||
<!-- <color name="none" color="rgba(0,0,0,0)" compliance="SVG, XPM"/> -->
|
||||
<!-- <color name="black" color="rgb(0,0,0)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="red" color="rgb(255,0,0)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="magenta" color="rgb(255,0,255)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="green" color="rgb(0,128,0)" compliance="SVG"/> -->
|
||||
<!-- <color name="cyan" color="rgb(0,255,255)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="blue" color="rgb(0,0,255)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="yellow" color="rgb(255,255,0)" compliance="SVG, X11, XPM"/> -->
|
||||
<!-- <color name="white" color="rgb(255,255,255)" compliance="SVG, X11"/> -->
|
||||
</colormap>
|
@ -1,102 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE delegatemap [
|
||||
<!ELEMENT delegatemap (delegate)+>
|
||||
<!ELEMENT delegate (#PCDATA)>
|
||||
<!ATTLIST delegate decode CDATA #IMPLIED>
|
||||
<!ATTLIST delegate encode CDATA #IMPLIED>
|
||||
<!ATTLIST delegate mode CDATA #IMPLIED>
|
||||
<!ATTLIST delegate spawn CDATA #IMPLIED>
|
||||
<!ATTLIST delegate stealth CDATA #IMPLIED>
|
||||
<!ATTLIST delegate thread-support CDATA #IMPLIED>
|
||||
<!ATTLIST delegate command CDATA #REQUIRED>
|
||||
]>
|
||||
<!--
|
||||
Delegate command file.
|
||||
|
||||
Commands which specify
|
||||
|
||||
decode="in_format" encode="out_format"
|
||||
|
||||
specify the rules for converting from in_format to out_format These
|
||||
rules may be used to translate directly between formats.
|
||||
|
||||
Commands which specify only
|
||||
|
||||
decode="in_format"
|
||||
|
||||
specify the rules for converting from in_format to some format that
|
||||
ImageMagick will automatically recognize. These rules are used to
|
||||
decode formats.
|
||||
|
||||
Commands which specify only
|
||||
|
||||
encode="out_format"
|
||||
|
||||
specify the rules for an "encoder" which may accept any input format.
|
||||
|
||||
For delegates other than ps:alpha, ps:color, ps:mono, and mpeg-encode the
|
||||
substitution rules are as follows:
|
||||
|
||||
%i input image filename
|
||||
%o output image filename
|
||||
%u unique temporary filename
|
||||
%# input image signature
|
||||
%b image file size
|
||||
%c input image comment
|
||||
%g image geometry
|
||||
%h image rows (height)
|
||||
%k input image number colors
|
||||
%l image label
|
||||
%m input image format
|
||||
%p page number
|
||||
%q input image depth
|
||||
%s scene number
|
||||
%w image columns (width)
|
||||
%x input image x resolution
|
||||
%y input image y resolution
|
||||
|
||||
-->
|
||||
<delegatemap>
|
||||
<delegate decode="bpg" command="cmd.exe /c ("bpgdec" -b 16 -o "%o.png" "%i") & (move "%o.png" "%o" >nul)"/>
|
||||
<delegate decode="png" encode="bpg" command=""bpgenc" -b 12 -q %~ -o "%o" "%i""/>
|
||||
<delegate decode="browse" stealth="True" spawn="True" command="cmd.exe /c start "" http://www.imagemagick.org/"/>
|
||||
<delegate decode="dng:decode" stealth="True" command="dcraw.exe -6 -W -O "%u.ppm" "%i""/>
|
||||
<delegate decode="dot" command="dot -Tps "%i" -o "%o""/>
|
||||
<delegate decode="dvi" command="dvips -q -o "%o" "%i""/>
|
||||
<delegate decode="edit" stealth="True" command="notepad "%o""/>
|
||||
<delegate decode="eps" encode="pdf" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="eps" encode="ps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="hpg" command="hp2xx -q -m eps -f "%o" "%i""/>
|
||||
<delegate decode="hpgl" command="hp2xx -q -m eps -f "%o" "%i""/>
|
||||
<delegate decode="htm" command="html2ps -U -o "%o" "%i""/>
|
||||
<delegate decode="html" command="html2ps -U -o "%o" "%i""/>
|
||||
<delegate decode="jxr" command="cmd.exe /c (move "%i" "%i.jxr" >nul) & ("JXRDecApp.exe" -i "%i.jxr" -o "%o.pnm") & (move "%i.jxr" "%i" >nul) & (move "%o.pnm" "%o" >nul)"/>
|
||||
<delegate decode="mpeg:decode" command=""ffmpeg.exe" -nostdin -v -1 -i "%i" -vframes %S -vcodec pam -an -f rawvideo -y "%u.pam""/>
|
||||
<delegate decode="pcl:cmyk" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate decode="pcl:color" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ppmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate decode="pcl:mono" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate decode="pdf" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=eps2write -sPDFPassword="%a" "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="pdf" encode="ps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write -sPDFPassword="%a" "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="pgp" command="pgpv -fq "%i""/>
|
||||
<delegate decode="png" encode="launch" spawn="True" mode="encode" command="imdisplay "%i"" />
|
||||
<delegate decode="png" encode="show" spawn="True" mode="encode" command="imdisplay "%i"" />
|
||||
<delegate decode="png" encode="win" spawn="True" mode="encode" command="imdisplay "%i"" />
|
||||
<delegate decode="pnm" encode="ilbm" mode="encode" command="ppmtoilbm -24if "%i" > "%o""/>
|
||||
<delegate decode="pnm" encode="jxr" command="cmd.exe /c (move "%i" "%i.pnm" >nul) & ("JXREncApp.exe" -i "%i.pnm" -o "%o.jxr") & (move "%i.pnm" "%i" >nul) & (move "%o.jxr" "%o" >nul)"/>
|
||||
<delegate decode="pnm" encode="wdp" command="cmd.exe /c (move "%i" "%i.pnm" >nul) & ("JXREncApp.exe" -i "%i.pnm" -o "%o.jxr") & (move "%i.pnm" "%i" >nul) & (move "%o.jxr" "%o" >nul)"/>
|
||||
<delegate decode="ps:alpha" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
|
||||
<delegate decode="ps:cmyk" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
|
||||
<delegate decode="ps:color" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
|
||||
<delegate decode="ps" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=eps2write "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="ps" encode="pdf" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i""/>
|
||||
<delegate decode="ps:mono" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
|
||||
<delegate decode="shtml" command="html2ps -U -o "%o" "%i""/>
|
||||
<delegate decode="svg" command=""rsvg-convert" -o "%o" "%i""/>
|
||||
<!-- Remove the extra space in - -export in the line below when you want to use inkscape -->
|
||||
<!--<delegate decode="svg:decode" stealth="True" command=""inkscape" "%s" - -export-eps="%s" - -export-dpi="%s" - -export-background="%s" - -export-background-opacity="%s" > "%s" 2>&1"/>-->
|
||||
<delegate decode="wdp" command="cmd.exe /c (move "%i" "%i.jxr" >nul) & ("JXRDecApp.exe" -i "%i.jxr" -o "%o.pnm") & (move "%i.jxr" "%i" >nul) & (move "%o.pnm" "%o" >nul)"/>
|
||||
<delegate decode="xps:cmyk" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate decode="xps:color" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate decode="xps:mono" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
|
||||
<delegate encode="mpeg:encode" stealth="True" command=""ffmpeg.exe" -nostdin -v -1 -i "%M%%d.jpg" "%u.%m""/>
|
||||
</delegatemap>
|
BIN
.deps/patch.exe
BIN
.deps/rsrc.exe
13
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: https://github.com/koho/frpmgr/blob/master/docs/donate-wechat.jpg
|
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Version**
|
||||
Include the version in the About page.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Windows 10]
|
||||
- Version [e.g. 24H2]
|
14
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the feature request**
|
||||
A clear and concise description of what you want to add.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
7
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
|
||||
updates:
|
||||
- package-ecosystem: "gomod"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
26
.github/workflows/golangci-lint.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
golangci:
|
||||
name: Lint
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go environment
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
|
||||
- name: Run
|
||||
uses: golangci/golangci-lint-action@v8
|
||||
with:
|
||||
version: v2.5
|
192
.github/workflows/releaser.yml
vendored
Normal file
@ -0,0 +1,192 @@
|
||||
name: Releaser
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
architecture: [x64, x86, arm64]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go environment
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
|
||||
- name: Setup VS environment
|
||||
shell: powershell
|
||||
run: |
|
||||
echo "$(vswhere.exe -latest -property installationPath)\VC\Auxiliary\Build" >> $env:GITHUB_PATH
|
||||
@"
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
set SRC_DIR=%~1
|
||||
:safe_copy
|
||||
shift
|
||||
if "%~1"=="" exit /b 0
|
||||
if "%~2"=="" exit /b 1
|
||||
set SRC_FILE=%SRC_DIR%\%~1
|
||||
set DST_FILE=%~2\%~1
|
||||
if not "%~x1" == ".msi" (
|
||||
set SRC_FILE_UNSIGNED=!SRC_FILE!.unsigned
|
||||
copy /Y "!SRC_FILE!" "!SRC_FILE_UNSIGNED!"
|
||||
"%SIGNTOOL%" remove /s "!SRC_FILE_UNSIGNED!" || exit /b 1
|
||||
call :pe_compare "!SRC_FILE_UNSIGNED!" "!DST_FILE!" || (
|
||||
echo File checksum mismatch: !SRC_FILE!
|
||||
exit /b 1))
|
||||
copy /Y "!SRC_FILE!" "!DST_FILE!"
|
||||
shift
|
||||
goto :safe_copy
|
||||
:pe_compare
|
||||
python -c "import os;import sys;from ctypes import *;header_sum,checksum1,checksum2=c_ulong(0),c_ulong(0),c_ulong(0);src_size,dst_size=os.path.getsize(sys.argv[1]),os.path.getsize(sys.argv[2]);f=open(sys.argv[1],'r+');f.seek(dst_size,os.SEEK_SET);f.truncate();f.close();assert windll.imagehlp.MapFileAndCheckSumW(sys.argv[1],byref(header_sum),byref(checksum1))==0;assert windll.imagehlp.MapFileAndCheckSumW(sys.argv[2],byref(header_sum),byref(checksum2))==0;assert checksum1.value==checksum2.value" %1 %2
|
||||
goto :eof
|
||||
"@ | Out-File -Encoding ascii -FilePath safe_copy.bat
|
||||
|
||||
- name: Setup toolchain
|
||||
shell: cmd
|
||||
run: |
|
||||
curl "https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-msvcrt-x86_64.zip" -o llvm-mingw-20250709-msvcrt-x86_64.zip -L
|
||||
tar -xf llvm-mingw-20250709-msvcrt-x86_64.zip
|
||||
echo %CD%\llvm-mingw-20250709-msvcrt-x86_64\bin>>%GITHUB_PATH%
|
||||
vcvarsall x64 && set WindowsSdkVerBinPath >> %GITHUB_ENV%
|
||||
|
||||
- name: Build main application
|
||||
shell: cmd
|
||||
run: build.bat -p ${{ matrix.architecture }}
|
||||
|
||||
- name: Get version info
|
||||
shell: powershell
|
||||
run: |
|
||||
$version = $((Get-Item .\bin\${{ matrix.architecture }}\frpmgr.exe).VersionInfo.ProductVersion)
|
||||
echo "VERSION=$version" >> $env:GITHUB_ENV
|
||||
$signtool = $(cmd /C "vcvarsall x64 && where signtool" | Select-Object -Last 1)
|
||||
echo "SIGNTOOL=$signtool" >> $env:GITHUB_ENV
|
||||
|
||||
- name: Build custom actions
|
||||
shell: cmd
|
||||
run: installer\build.bat %VERSION% ${{ matrix.architecture }} actions
|
||||
|
||||
- name: Prepare to upload files
|
||||
shell: cmd
|
||||
run: copy /Y installer\build\${{ matrix.architecture }}\actions.dll bin\${{ matrix.architecture }}
|
||||
|
||||
- name: Upload unsigned application
|
||||
id: upload-unsigned-application
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: frpmgr-${{ env.VERSION }}-main-${{ matrix.architecture }}-unsigned
|
||||
path: |
|
||||
bin/${{ matrix.architecture }}/frpmgr.exe
|
||||
bin/${{ matrix.architecture }}/actions.dll
|
||||
|
||||
- name: Sign
|
||||
uses: signpath/github-action-submit-signing-request@v1.2
|
||||
with:
|
||||
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
|
||||
organization-id: '${{ secrets.SIGNPATH_ORGANIZATION_ID }}'
|
||||
project-slug: 'frpmgr'
|
||||
signing-policy-slug: 'release-signing'
|
||||
github-artifact-id: '${{ steps.upload-unsigned-application.outputs.artifact-id }}'
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: 'dist'
|
||||
|
||||
- name: Verify and copy signed files
|
||||
shell: cmd
|
||||
run: safe_copy dist frpmgr.exe bin\${{ matrix.architecture }} actions.dll installer\build\${{ matrix.architecture }}
|
||||
|
||||
- name: Build MSI installer
|
||||
shell: cmd
|
||||
run: installer\build.bat %VERSION% ${{ matrix.architecture }} msi
|
||||
|
||||
- name: Upload unsigned installer
|
||||
id: upload-unsigned-installer
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: frpmgr-${{ env.VERSION }}-installer-${{ matrix.architecture }}-unsigned
|
||||
path: installer/build/${{ matrix.architecture }}/frpmgr.msi
|
||||
|
||||
- name: Sign
|
||||
uses: signpath/github-action-submit-signing-request@v1.2
|
||||
with:
|
||||
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
|
||||
organization-id: '${{ secrets.SIGNPATH_ORGANIZATION_ID }}'
|
||||
project-slug: 'frpmgr'
|
||||
signing-policy-slug: 'release-signing'
|
||||
github-artifact-id: '${{ steps.upload-unsigned-installer.outputs.artifact-id }}'
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: 'dist'
|
||||
|
||||
- name: Verify and copy signed files
|
||||
shell: cmd
|
||||
run: safe_copy dist frpmgr.msi installer\build\${{ matrix.architecture }}
|
||||
|
||||
- name: Build EXE bootstrapper
|
||||
shell: cmd
|
||||
run: installer\build.bat %VERSION% ${{ matrix.architecture }} setup
|
||||
|
||||
- name: Upload unsigned bootstrapper
|
||||
id: upload-unsigned-bootstrapper
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: frpmgr-${{ env.VERSION }}-setup-${{ matrix.architecture }}-unsigned
|
||||
path: installer/build/${{ matrix.architecture }}/setup.exe
|
||||
|
||||
- name: Sign
|
||||
uses: signpath/github-action-submit-signing-request@v1.2
|
||||
with:
|
||||
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
|
||||
organization-id: '${{ secrets.SIGNPATH_ORGANIZATION_ID }}'
|
||||
project-slug: 'frpmgr'
|
||||
signing-policy-slug: 'release-signing'
|
||||
github-artifact-id: '${{ steps.upload-unsigned-bootstrapper.outputs.artifact-id }}'
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: 'dist'
|
||||
|
||||
- name: Verify and copy signed files
|
||||
shell: cmd
|
||||
run: safe_copy dist setup.exe installer\build\${{ matrix.architecture }}
|
||||
|
||||
- name: Create release files
|
||||
shell: cmd
|
||||
run: installer\build.bat %VERSION% ${{ matrix.architecture }} dist
|
||||
|
||||
- name: Upload release files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: frpmgr-${{ env.VERSION }}-dist-${{ matrix.architecture }}
|
||||
path: |
|
||||
bin/*.exe
|
||||
bin/*.zip
|
||||
|
||||
release:
|
||||
name: Release
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get version info
|
||||
run: |
|
||||
tag_name="${{ github.event.release.tag_name }}"
|
||||
echo "VERSION=${tag_name#v}" >> $GITHUB_ENV
|
||||
|
||||
- name: Collect files
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: frpmgr-${{ env.VERSION }}-dist-*
|
||||
merge-multiple: true
|
||||
|
||||
- name: Upload release assets
|
||||
uses: shogo82148/actions-upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: |
|
||||
./*.exe
|
||||
./*.zip
|
78
.github/workflows/tests.yml
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
name: Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
architecture: [x64, x86, arm64]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go environment
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
|
||||
- name: Setup VS environment
|
||||
shell: powershell
|
||||
run: echo "$(vswhere.exe -latest -property installationPath)\VC\Auxiliary\Build" >> $env:GITHUB_PATH
|
||||
|
||||
- name: Setup toolchain
|
||||
shell: cmd
|
||||
run: |
|
||||
curl "https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-msvcrt-x86_64.zip" -o llvm-mingw-20250709-msvcrt-x86_64.zip -L
|
||||
tar -xf llvm-mingw-20250709-msvcrt-x86_64.zip
|
||||
echo %CD%\llvm-mingw-20250709-msvcrt-x86_64\bin>>%GITHUB_PATH%
|
||||
vcvarsall x64 && set WindowsSdkVerBinPath >> %GITHUB_ENV%
|
||||
|
||||
- name: Add commit hash to version number
|
||||
shell: powershell
|
||||
if: github.event_name == 'pull_request'
|
||||
env:
|
||||
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
run: |
|
||||
$versionFile = ".\pkg\version\version.go"
|
||||
$rev = [UInt16]("0x" + $env:HEAD_SHA.Substring(0, 4))
|
||||
$version = (findstr /r "Number.*=.*[0-9.]*" $versionFile | Select-Object -First 1 | ConvertFrom-StringData).Get_Item("Number")
|
||||
$newVersion = $version.Substring(0, $version.Length - 1) + ".$rev" + '"'
|
||||
(Get-Content $versionFile).Replace($version, $newVersion) | Set-Content $versionFile
|
||||
echo "VERSION=$($newVersion.Replace('"', ''))" >> $env:GITHUB_ENV
|
||||
|
||||
- name: Build
|
||||
shell: cmd
|
||||
run: build.bat ${{ matrix.architecture }}
|
||||
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v4
|
||||
if: github.event_name == 'pull_request'
|
||||
with:
|
||||
name: frpmgr-${{ env.VERSION }}-test-${{ matrix.architecture }}
|
||||
path: |
|
||||
bin/*.exe
|
||||
bin/*.zip
|
||||
retention-days: 7
|
||||
|
||||
test:
|
||||
name: Go
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go environment
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
|
||||
- name: Test
|
||||
run: go test -v ./...
|
31
.golangci.yml
Normal file
@ -0,0 +1,31 @@
|
||||
version: "2"
|
||||
linters:
|
||||
default: none
|
||||
enable:
|
||||
- govet
|
||||
- ineffassign
|
||||
- staticcheck
|
||||
- unused
|
||||
- whitespace
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: should not use dot imports
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
formatters:
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
242
CHANGELOG.md
Normal file
@ -0,0 +1,242 @@
|
||||
# Changelog[Deprecated]
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.11.0] - 2023-02-10
|
||||
|
||||
### What's Changed
|
||||
* View old history log files by @koho in https://github.com/koho/frpmgr/pull/30
|
||||
* Show item name in dialog title
|
||||
* Show blue config name when config is set to start manually
|
||||
* Set gray background color for disabled proxy
|
||||
* Support go1.20
|
||||
* Support `bandwidth_limit_mode` option
|
||||
|
||||
### Update
|
||||
* FRP v0.47.0
|
||||
|
||||
**Full Changelog**: https://github.com/koho/frpmgr/compare/v1.10.1...v1.11.0
|
||||
|
||||
## [1.10.1] - 2023-01-10
|
||||
### 新增
|
||||
* 自定义 DNS 服务
|
||||
* 支持降级安装
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.46.1
|
||||
|
||||
## [1.10.0] - 2022-12-19
|
||||
### 新增
|
||||
* 认证支持 `oidc_scope` 参数
|
||||
* 支持 quic 协议
|
||||
|
||||
### 优化
|
||||
* 展示 `xtcp`、`stcp`、`sudp` 类型的访问者参数(#27)
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.46.0
|
||||
|
||||
## [1.9.2] - 2022-10-27
|
||||
### 更新
|
||||
* FRP 版本 0.45.0
|
||||
|
||||
## [1.9.1] - 2022-07-11
|
||||
### 更新
|
||||
* FRP 版本 0.44.0
|
||||
|
||||
## [1.9.0] - 2022-07-01
|
||||
### 新增
|
||||
* 多语言支持(#19)
|
||||
* 支持创建/导入分享链接
|
||||
* 可创建某个配置的副本,避免参数的重复输入
|
||||
* 从 URL 导入配置
|
||||
|
||||
### 优化
|
||||
* 配置文件统一存放到 `profiles` 目录
|
||||
|
||||
## [1.8.1] - 2022-05-28
|
||||
### 新增
|
||||
* 新的代理参数「路由用户」(`route_by_http_user`)
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.43.0
|
||||
|
||||
## [1.8.0] - 2022-05-15
|
||||
### 新增
|
||||
* 从剪贴板导入配置/代理
|
||||
* 支持拖拽文件导入配置
|
||||
* 在文件夹中显示配置
|
||||
|
||||
### 优化
|
||||
* 减少安装包体积(-48%)
|
||||
* 升级时默认选择上次安装的目录
|
||||
* 导入文件前验证配置文件
|
||||
|
||||
## [1.7.2] - 2022-04-22
|
||||
### 更新
|
||||
* FRP 版本 0.42.0
|
||||
|
||||
## [1.7.1] - 2022-04-13
|
||||
### 新增
|
||||
* "快速添加"支持更多类型,如 FTP、文件服务等
|
||||
* 快捷启用/禁用代理条目
|
||||
* 新增 TLS、心跳、复用等配置选项
|
||||
* 代理条目右键菜单新增"复制访问地址"功能
|
||||
|
||||
### 修复
|
||||
* 修复 Win7 下无法打开服务窗口
|
||||
|
||||
### 优化
|
||||
* 防止同一用户下 GUI 窗口多开
|
||||
* 启动配置前验证配置文件
|
||||
* 保存代理条目前验证代理条目
|
||||
* 使用范围端口时自动添加前缀
|
||||
|
||||
## [1.7.0] - 2022-03-24
|
||||
### 新增
|
||||
* 支持全部代理类型(本次新增`sudp`, `http`, `https`, `tcpmux`)的图形化配置
|
||||
* 新增插件编辑
|
||||
* 新增负载均衡
|
||||
* 新增健康检查
|
||||
* 新增带宽限制,代理协议版本配置
|
||||
* 代理项目表格新增了子域名,自定义域名,插件列
|
||||
* 添加连接超时时间,心跳间隔时间配置
|
||||
* 添加 pprof 开关
|
||||
|
||||
### 修复
|
||||
* 修复在中文配置名下,打开服务按钮无反应的问题
|
||||
* 修复随机名称按钮会生成相同名称问题
|
||||
* 修复了小概率界面崩溃问题
|
||||
|
||||
### 优化
|
||||
* 无法添加相同名称的代理
|
||||
* 无法导入相同名称的配置,当以压缩包导入时,忽略同名配置导入
|
||||
* 减少了不必要的 IO 查询
|
||||
* 代理项目表格各列宽调整,以充分利用空间
|
||||
* 手动指定日志文件后修改配置名不再自动改变日志路径配置
|
||||
* 路径配置的输入框添加浏览文件按钮
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.41.0
|
||||
|
||||
## [1.6.1] - 2022-03-07
|
||||
### 优化
|
||||
* 安装包改用 exe 格式,避免无法关闭占用程序
|
||||
* 升级完成后自动重启之前运行的服务
|
||||
|
||||
## [1.6.0] - 2022-02-14
|
||||
### 新增
|
||||
* 配置编辑支持自定义参数(#12)
|
||||
* 打开配置文件入口
|
||||
* 项目编辑可生成随机名称
|
||||
* 复制服务器地址入口
|
||||
* 添加`connect_server_local_ip`,`http_proxy`,`user`编辑入口
|
||||
|
||||
### 优化
|
||||
* 减少不必要的视图更新
|
||||
* 优化系统缩放时的界面显示
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.39.1
|
||||
|
||||
## [1.5.0] - 2022-01-05
|
||||
### 更新
|
||||
* FRP 版本 0.38.0
|
||||
|
||||
## [1.4.2] - 2021-09-08
|
||||
### 新增
|
||||
* 可单独设定配置的服务启动方式(手动/自动)(#9)
|
||||
|
||||
### 修复
|
||||
* 修复某些情况下无法查看服务的异常
|
||||
|
||||
## [1.4.1] - 2021-09-07
|
||||
### 新增
|
||||
* 支持配置xtcp/stcp类型(#8)
|
||||
* 添加自定义选项支持
|
||||
* 查看服务属性入口(#9)
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.37.1
|
||||
|
||||
## [1.4.0] - 2021-07-12
|
||||
### 修复
|
||||
* 修复日志文件的卸载错误提示
|
||||
|
||||
### 更新
|
||||
* FRP 版本 0.37.0
|
||||
|
||||
## [1.3.2] - 2020-12-16
|
||||
### 新增
|
||||
* 支持双击编辑
|
||||
|
||||
### 优化
|
||||
* 小幅UI优化
|
||||
|
||||
## [1.3.1] - 2020-12-16
|
||||
### 新增
|
||||
* 添加文件版本信息
|
||||
|
||||
### 修复
|
||||
* 修复卸载程序时的DLL错误
|
||||
|
||||
## [1.3.0] - 2020-12-13
|
||||
### 新增
|
||||
* 添加关于页面
|
||||
* 支持导出配置文件
|
||||
|
||||
### 优化
|
||||
* 日志实时显示
|
||||
* 小幅UI优化
|
||||
|
||||
### 修复
|
||||
* 修复卸载时日志文件无法删除的问题
|
||||
|
||||
## [1.2.5] - 2020-12-03
|
||||
### 优化
|
||||
* 小幅 UI 逻辑优化
|
||||
* 相关日志文件重命名/删除
|
||||
|
||||
### 修复
|
||||
* 修复 Windows 7 下的闪退问题(#2)
|
||||
|
||||
## [1.2.4] - 2020-08-17
|
||||
### 新增
|
||||
* 添加自定义DNS服务器的支持,对于使用动态DNS的服务器可以减少离线时间
|
||||
|
||||
### 修复
|
||||
* 修复了一些编译错误
|
||||
|
||||
## [1.2.3] - 2020-05-24
|
||||
### 修复
|
||||
* 解决某些情况下电脑重启后服务没有自动运行问题
|
||||
* 更新软件后需打开软件,选择左侧配置项后右键编辑,然后直接确定,再启动即可
|
||||
|
||||
[Unreleased]: https://github.com/koho/frpmgr/compare/v1.11.0...HEAD
|
||||
[1.11.0]: https://github.com/koho/frpmgr/compare/v1.10.1...v1.11.0
|
||||
[1.10.1]: https://github.com/koho/frpmgr/compare/v1.10.0...v1.10.1
|
||||
[1.10.0]: https://github.com/koho/frpmgr/compare/v1.9.2...v1.10.0
|
||||
[1.9.2]: https://github.com/koho/frpmgr/compare/v1.9.1...v1.9.2
|
||||
[1.9.1]: https://github.com/koho/frpmgr/compare/v1.9.0...v1.9.1
|
||||
[1.9.0]: https://github.com/koho/frpmgr/compare/v1.8.1...v1.9.0
|
||||
[1.8.1]: https://github.com/koho/frpmgr/compare/v1.8.0...v1.8.1
|
||||
[1.8.0]: https://github.com/koho/frpmgr/compare/v1.7.2...v1.8.0
|
||||
[1.7.2]: https://github.com/koho/frpmgr/compare/v1.7.1...v1.7.2
|
||||
[1.7.1]: https://github.com/koho/frpmgr/compare/v1.7.0...v1.7.1
|
||||
[1.7.0]: https://github.com/koho/frpmgr/compare/v1.6.1...v1.7.0
|
||||
[1.6.1]: https://github.com/koho/frpmgr/compare/v1.6.0...v1.6.1
|
||||
[1.6.0]: https://github.com/koho/frpmgr/compare/v1.5.0...v1.6.0
|
||||
[1.5.0]: https://github.com/koho/frpmgr/compare/v1.4.2...v1.5.0
|
||||
[1.4.2]: https://github.com/koho/frpmgr/compare/v1.4.1...v1.4.2
|
||||
[1.4.1]: https://github.com/koho/frpmgr/compare/v1.4.0...v1.4.1
|
||||
[1.4.0]: https://github.com/koho/frpmgr/compare/v1.3.2...v1.4.0
|
||||
[1.3.2]: https://github.com/koho/frpmgr/compare/v1.3.1...v1.3.2
|
||||
[1.3.1]: https://github.com/koho/frpmgr/compare/v1.3.0...v1.3.1
|
||||
[1.3.0]: https://github.com/koho/frpmgr/compare/v1.2.5...v1.3.0
|
||||
[1.2.5]: https://github.com/koho/frpmgr/compare/v1.2.4...v1.2.5
|
||||
[1.2.4]: https://github.com/koho/frpmgr/compare/v1.2.3...v1.2.4
|
||||
[1.2.3]: https://github.com/koho/frpmgr/releases/tag/v1.2.3
|
120
README.md
@ -1,47 +1,113 @@
|
||||
# frpmgr
|
||||
# FRP Manager
|
||||
|
||||
Windows 下的 [frp](https://github.com/fatedier/frp) 图形界面客户端。
|
||||
[](https://github.com/koho/frpmgr/releases)
|
||||
[](https://github.com/fatedier/frp)
|
||||
[](https://github.com/koho/frpmgr/releases)
|
||||
|
||||

|
||||
English | [简体中文](README_zh.md)
|
||||
|
||||
系统需求:win7及以上版本
|
||||
FRP Manager is a multi-node, graphical reverse proxy tool designed for [FRP](https://github.com/fatedier/frp) on Windows. It allows users to setup reverse proxy easily without writing the configuration file. FRP Manager offers a complete solution including editor, launcher, status tracking, and hot reload.
|
||||
|
||||
## 特征
|
||||
* 简易的编辑界面
|
||||
* 支持导入/导出配置文件
|
||||
* 开机自启动
|
||||
* 多配置文件管理
|
||||
The tool was inspired by a common use case where we often need to combine multiple tools including client, configuration file, and launcher to create a stable service that exposes a local server behind a NAT or firewall to the Internet. Now, with FRP Manager, an all-in-one solution, you can avoid many tedious operations when deploying a reverse proxy.
|
||||
|
||||
## 编译
|
||||
**安装依赖**:
|
||||
- go >=1.16
|
||||
- Visual Studio
|
||||
- [MinGW](https://www.mingw-w64.org/)
|
||||
- [WiX Toolset](https://wixtoolset.org/)
|
||||
The latest release requires at least Windows 10 or Server 2016. Please visit the **[Wiki](https://github.com/koho/frpmgr/wiki)** for comprehensive guides.
|
||||
|
||||
**环境配置**:
|
||||

|
||||
|
||||
把`VsMSBuildCmd.bat`添加到环境变量。通常目录为:
|
||||
- `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools`
|
||||
## Features
|
||||
|
||||
**执行编译**:
|
||||
- **Closable GUI:** All launched configurations will run independently as background services, so you can close the GUI after finishing all settings.
|
||||
- **Auto-start:** A launched configuration is registered as an auto-start service by default and starts automatically during system boot (no login required).
|
||||
- **Hot reload:** Allows users to apply proxy changes to a running configuration without restarting the service and without losing proxy state.
|
||||
- **Multiple configurations:** It's easy to connect to multiple nodes by creating multiple configurations.
|
||||
- **Import and export configurations:** Provides the option to import configuration file from multiple sources, including local file, clipboard, and HTTP.
|
||||
- **Self-destructing configuration:** A special configuration that disappears and becomes unreachable after a certain amount of time.
|
||||
- **Status tracking:** You can check the proxy status directly in the table view without looking at the logs.
|
||||
|
||||
```shell script
|
||||
Visit the **[Wiki](https://github.com/koho/frpmgr/wiki)** for comprehensive guides, including:
|
||||
|
||||
- **[Installation Instructions](https://github.com/koho/frpmgr/wiki#how-to-install):** Install or upgrade FRP Manager on Windows.
|
||||
- **[Quick Start Guide](https://github.com/koho/frpmgr/wiki/Quick-Start):** Learn how to connect to your node and setup a proxy in minutes.
|
||||
- **[Configuration](https://github.com/koho/frpmgr/wiki/Configuration):** Explore configuration, proxy, visitor, and log.
|
||||
- **[Examples](https://github.com/koho/frpmgr/wiki/Examples):** There are some common examples to help you learn FRP Manager.
|
||||
|
||||
## Building
|
||||
|
||||
To build FRP Manager from source, you need to install the following dependencies:
|
||||
|
||||
- Go
|
||||
- [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/)
|
||||
- [MinGW](https://github.com/mstorsjo/llvm-mingw)
|
||||
- [WiX Toolset](https://wixtoolset.org/) v3.14
|
||||
|
||||
Once installed, the `WindowsSdkVerBinPath` environment variable should be set to tell build script where to find the specific version of Windows SDK, e.g., `set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\`. You should also add the `bin` directory of MinGW to the `PATH` environment variable.
|
||||
|
||||
You can compile the project by opening the terminal:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/koho/frpmgr
|
||||
cd frpmgr
|
||||
build.bat
|
||||
```
|
||||
|
||||
在 `bin` 目录找到生成的安装文件。
|
||||
The generated installation files are located in the `bin` directory.
|
||||
|
||||
**调试**:
|
||||
You can also skip building the installation package and get a portable application by passing the `-p` option to the `build` command:
|
||||
|
||||
编译程序需要渲染图标生成资源和对某些文件打补丁,这些操作都在`build.bat`完成。因此在第一次调试前需要运行一次`build.bat`,后续调试不需要再执行该脚本。
|
||||
```shell
|
||||
build.bat -p
|
||||
```
|
||||
|
||||
## 捐助
|
||||
In this case, you only need to install Go and MinGW.
|
||||
|
||||
如果您觉得本项目对你有帮助,欢迎给予我们支持。
|
||||
### Debugging
|
||||
|
||||
### 微信支付捐赠
|
||||
If you're building the project for the first time, you need to compile resources:
|
||||
|
||||

|
||||
```shell
|
||||
go generate
|
||||
```
|
||||
|
||||
The command does not need to be executed again unless the project's resources change.
|
||||
|
||||
After that, the application can be run directly:
|
||||
|
||||
```shell
|
||||
go run ./cmd/frpmgr
|
||||
```
|
||||
|
||||
## Sponsors
|
||||
|
||||
> We are really thankful for all of our users, contributors, and sponsors that has been keeping this project alive and well. We are also giving our gratitude for these company/organization for providing their service for us.
|
||||
|
||||
1. SignPath Foundation for providing us free code signing!
|
||||
<p align=center>
|
||||
<a href="https://about.signpath.io/">
|
||||
<img src="./docs/sponsor_signpath.png" alt="SignPath Logo" height=50 />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Code Signing Policy
|
||||
|
||||
Free code signing provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
|
||||
|
||||
Team roles:
|
||||
|
||||
- Committers and reviewers: [Members team](https://github.com/koho/frpmgr/graphs/contributors)
|
||||
- Approvers: [Owners](https://github.com/koho)
|
||||
|
||||
Read our full [Privacy Policy](#privacy-policy).
|
||||
|
||||
## Privacy Policy
|
||||
|
||||
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
|
||||
|
||||
FRP Manager has integrated the following services for additional functions, which can be enabled or disabled at any time in the settings:
|
||||
|
||||
- [api.github.com](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement) (Check for program updates)
|
||||
|
||||
## Donation
|
||||
|
||||
If this project is useful to you, consider supporting its development in one of the following ways:
|
||||
|
||||
- [**WeChat**](/docs/donate-wechat.jpg)
|
||||
|
113
README_zh.md
Normal file
@ -0,0 +1,113 @@
|
||||
# FRP 管理器
|
||||
|
||||
[](https://github.com/koho/frpmgr/releases)
|
||||
[](https://github.com/fatedier/frp)
|
||||
[](https://github.com/koho/frpmgr/releases)
|
||||
|
||||
[English](README.md) | 简体中文
|
||||
|
||||
FRP 管理器是一个多节点、图形化反向代理工具,专为 Windows 上的 [FRP](https://github.com/fatedier/frp) 设计。它允许用户轻松设置反向代理,而无需编写配置文件。FRP 管理器提供了一套完整的解决方案,包括编辑器、启动器、状态跟踪和热重载。
|
||||
|
||||
该工具的灵感来自于一个常见的用例,我们经常需要组合使用多种工具,包括客户端、配置文件和启动器,以创建一个稳定的服务,将位于 NAT 或防火墙后的本地服务器暴露到互联网。现在,有了 FRP 管理器这个一体化解决方案,您可以在部署反向代理时省去许多繁琐的操作。
|
||||
|
||||
最新版本至少需要 Windows 10 或 Server 2016。请访问 **[Wiki](https://github.com/koho/frpmgr/wiki)** 获取完整指南。
|
||||
|
||||

|
||||
|
||||
## 特征
|
||||
|
||||
- **界面可退出:**​所有已启动的配置都将作为后台服务独立运行,因此您可以在完成所有设置后关闭界面。
|
||||
- **开机自启:**​已启动的配置默认注册为自动启动服务,并在系统启动时自动启动(无需登录)。
|
||||
- **热重载:**​允许用户将代理更改应用于正在运行的配置,而无需重启服务,也不会丢失代理状态。
|
||||
- **多配置文件管理:**​通过创建多个配置,可以轻松连接到多个节点。
|
||||
- **导入和导出配置:**​提供从多个来源导入配置文件的选项,包括本地文件、剪贴板和 HTTP。
|
||||
- **自毁配置:**​一种特殊配置,会在指定的时间后删除并无法访问。
|
||||
- **状态跟踪:**​您可以直接在表格视图中查看代理状态,而无需查看日志。
|
||||
|
||||
访问 **[Wiki](https://github.com/koho/frpmgr/wiki)** 获取完整指南,包括:
|
||||
|
||||
- **[安装说明](https://github.com/koho/frpmgr/wiki#how-to-install):**​在 Windows 上安装或升级 FRP 管理器。
|
||||
- **[快速入门指南](https://github.com/koho/frpmgr/wiki/Quick-Start):**​了解如何在几分钟内连接到您的节点并设置代理。
|
||||
- **[配置](https://github.com/koho/frpmgr/wiki/Configuration):**​探索配置、代理、访问者和日志。
|
||||
- **[示例](https://github.com/koho/frpmgr/wiki/Examples):**​这里有一些常见的示例可以帮助您学习 FRP 管理器。
|
||||
|
||||
## 构建
|
||||
|
||||
要从源代码构建 FRP 管理器,您需要安装以下依赖项:
|
||||
|
||||
- Go
|
||||
- [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/)
|
||||
- [MinGW](https://github.com/mstorsjo/llvm-mingw)
|
||||
- [WiX Toolset](https://wixtoolset.org/) v3.14
|
||||
|
||||
安装完成后,您需要设置 `WindowsSdkVerBinPath` 环境变量,以指示构建脚本在哪里找到特定版本的 Windows SDK,例如 `set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\`。您还需要将 MinGW 的 `bin` 目录添加到 `PATH` 环境变量中。
|
||||
|
||||
您可以通过打开终端来编译项目:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/koho/frpmgr
|
||||
cd frpmgr
|
||||
build.bat
|
||||
```
|
||||
|
||||
生成的安装文件位于 `bin` 目录。
|
||||
|
||||
如果您想跳过构建安装包,可以在 `build` 命令中添加 `-p` 选项来获得一个便携软件:
|
||||
|
||||
```shell
|
||||
build.bat -p
|
||||
```
|
||||
|
||||
在这种情况下,您只需安装 Go 和 MinGW 即可。
|
||||
|
||||
### 调试
|
||||
|
||||
如果您是首次构建项目,则需要编译资源:
|
||||
|
||||
```shell
|
||||
go generate
|
||||
```
|
||||
|
||||
除非项目资源发生变化,否则无需再次执行该命令。
|
||||
|
||||
之后,即可直接运行该应用程序:
|
||||
|
||||
```shell
|
||||
go run ./cmd/frpmgr
|
||||
```
|
||||
|
||||
## 赞助商
|
||||
|
||||
> 我们非常感谢所有为项目发展而努力的用户、贡献者和赞助者。同时也感谢这些公司/组织为我们提供服务。
|
||||
|
||||
1. SignPath Foundation 为我们提供免费的代码签名!
|
||||
<p align=center>
|
||||
<a href="https://about.signpath.io/">
|
||||
<img src="./docs/sponsor_signpath.png" alt="SignPath Logo" height=50 />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 代码签名政策
|
||||
|
||||
免费代码签名由 [SignPath.io](https://about.signpath.io/) 提供,证书由 [SignPath Foundation](https://signpath.org/) 提供。
|
||||
|
||||
团队角色:
|
||||
|
||||
- 提交者和审阅者:[团队成员](https://github.com/koho/frpmgr/graphs/contributors)
|
||||
- 审批者:[所有者](https://github.com/koho)
|
||||
|
||||
请阅读我们的完整[隐私政策](#隐私政策)。
|
||||
|
||||
## 隐私政策
|
||||
|
||||
除非得到用户、安装或操作人员的许可,否则该程序不会将任何信息传输到其他联网系统。
|
||||
|
||||
FRP 管理器集成了以下服务以实现附加功能,您可以随时在设置中启用或禁用这些服务:
|
||||
|
||||
- [api.github.com](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement)(检查程序更新)
|
||||
|
||||
## 捐助
|
||||
|
||||
如果本项目对您有帮助,请考虑通过以下方式支持其开发:
|
||||
|
||||
- [**微信**](/docs/donate-wechat.jpg)
|
68
build.bat
@ -1,21 +1,53 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
for /F %%i in ('git tag') do (set FRPMGR_VERSION=%%i)
|
||||
set FRPMGR_VERSION=%FRPMGR_VERSION:~1%
|
||||
echo Version: %FRPMGR_VERSION%
|
||||
set GOARCH_x64=amd64
|
||||
set GOARCH_x86=386
|
||||
set BUILDDIR=%~dp0
|
||||
set PATH=%BUILDDIR%.deps;%PATH%
|
||||
echo [+] Rendering icons
|
||||
for %%a in ("icon\*.svg") do convert -density 1000 -background none "%%~fa" -define icon:auto-resize="256,192,128,96,64,48,32,24,16" "%%~dpna.ico" || exit /b 1
|
||||
echo [+] Building resources
|
||||
windres -DFRPMGR_VERSION_ARRAY=%FRPMGR_VERSION:.=,% -DFRPMGR_VERSION_STR=%FRPMGR_VERSION% -i cmd/frpmgr/resources.rc -o cmd/frpmgr/rsrc.syso -O coff -c 65001 || exit /b %errorlevel%
|
||||
echo [+] Patching files
|
||||
go mod tidy || exit /b 1
|
||||
for %%f in (patches\*.patch) do patch -N -r - -d %GOPATH% -p0 < %%f
|
||||
echo [+] Compiling release version
|
||||
for /F "tokens=2 delims=@" %%y in ('go mod graph ^| findstr frpmgr ^| findstr frp@') do (set FRP_VERSION=%%y)
|
||||
go build -ldflags="-H windowsgui -X github.com/koho/frpmgr/config.Version=v%FRPMGR_VERSION% -X github.com/koho/frpmgr/config.FRPVersion=%FRP_VERSION%" -o bin/frpmgr.exe github.com/koho/frpmgr/cmd/frpmgr || exit /b 1
|
||||
echo [+] Building installer
|
||||
call installer/build.bat %FRPMGR_VERSION% || exit /b 1
|
||||
echo [+] Success.
|
||||
exit /b 0
|
||||
cd /d %BUILDDIR% || exit /b 1
|
||||
|
||||
if "%~1" == "-p" (
|
||||
set FRPMGR_TARGET=%~2
|
||||
) else (
|
||||
set FRPMGR_TARGET=%~1
|
||||
)
|
||||
|
||||
if "%FRPMGR_TARGET%" == "" set FRPMGR_TARGET=x64 x86
|
||||
|
||||
:packages
|
||||
echo [+] Downloading packages
|
||||
go mod tidy || goto :error
|
||||
|
||||
:resources
|
||||
echo [+] Generating resources
|
||||
for /f %%a in ('go generate') do set %%a
|
||||
if not defined VERSION exit /b 1
|
||||
|
||||
:build
|
||||
echo [+] Building program
|
||||
set MOD=github.com/koho/frpmgr
|
||||
set GO111MODULE=on
|
||||
set CGO_ENABLED=0
|
||||
for %%a in (%FRPMGR_TARGET%) do (
|
||||
if defined GOARCH_%%a (
|
||||
set GOARCH=!GOARCH_%%a!
|
||||
) else (
|
||||
set GOARCH=%%a
|
||||
)
|
||||
go build -trimpath -ldflags="-H windowsgui -s -w -X %MOD%/pkg/version.BuildDate=%BUILD_DATE%" -o bin\%%a\frpmgr.exe .\cmd\frpmgr || goto :error
|
||||
)
|
||||
|
||||
if "%~1" == "-p" goto :success
|
||||
|
||||
:installer
|
||||
echo [+] Building installer
|
||||
for %%a in (%FRPMGR_TARGET%) do (
|
||||
call installer\build.bat %VERSION% %%a || goto :error
|
||||
)
|
||||
|
||||
:success
|
||||
echo [+] Success
|
||||
exit /b 0
|
||||
|
||||
:error
|
||||
echo [-] Failed with error %errorlevel%.
|
||||
exit /b %errorlevel%
|
||||
|
@ -1,51 +1,81 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/koho/frpmgr/services"
|
||||
"github.com/koho/frpmgr/ui"
|
||||
"golang.org/x/sys/windows"
|
||||
"os"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/windows"
|
||||
"golang.org/x/sys/windows/svc"
|
||||
|
||||
"github.com/koho/frpmgr/i18n"
|
||||
"github.com/koho/frpmgr/pkg/version"
|
||||
"github.com/koho/frpmgr/services"
|
||||
"github.com/koho/frpmgr/ui"
|
||||
)
|
||||
|
||||
func fatal(v ...interface{}) {
|
||||
windows.MessageBox(0, windows.StringToUTF16Ptr(fmt.Sprint(v...)), windows.StringToUTF16Ptr("错误"), windows.MB_ICONERROR)
|
||||
windows.MessageBox(0, windows.StringToUTF16Ptr(fmt.Sprint(v...)), windows.StringToUTF16Ptr(ui.AppLocalName), windows.MB_ICONERROR)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func info(title string, format string, v ...interface{}) {
|
||||
windows.MessageBox(0, windows.StringToUTF16Ptr(fmt.Sprintf(format, v...)), windows.StringToUTF16Ptr(title), windows.MB_ICONINFORMATION)
|
||||
windows.MessageBox(0, windows.StringToUTF16Ptr(i18n.Sprintf(format, v...)), windows.StringToUTF16Ptr(title), windows.MB_ICONINFORMATION)
|
||||
}
|
||||
|
||||
func usage() {
|
||||
var flags = [...]string{
|
||||
fmt.Sprintf("(no argument): run the frp manager"),
|
||||
"/service CONFIG_PATH",
|
||||
}
|
||||
builder := strings.Builder{}
|
||||
for _, flag := range flags {
|
||||
builder.WriteString(fmt.Sprintf(" %s\n", flag))
|
||||
}
|
||||
info(fmt.Sprintf("Command Line Options"), "Usage: %s [\n%s]", os.Args[0], builder.String())
|
||||
os.Exit(1)
|
||||
var (
|
||||
confPath string
|
||||
showVersion bool
|
||||
showHelp bool
|
||||
flagOutput strings.Builder
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&confPath, "c", "", "The path to config `file` (Service-only).")
|
||||
flag.BoolVar(&showVersion, "v", false, "Display version information.")
|
||||
flag.BoolVar(&showHelp, "h", false, "Show help information.")
|
||||
flag.CommandLine.SetOutput(&flagOutput)
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) <= 1 {
|
||||
ui.RunUI()
|
||||
if showHelp {
|
||||
flag.Usage()
|
||||
info(ui.AppLocalName, flagOutput.String())
|
||||
return
|
||||
}
|
||||
switch os.Args[1] {
|
||||
case "/service":
|
||||
if len(os.Args) != 3 {
|
||||
usage()
|
||||
if showVersion {
|
||||
info(ui.AppLocalName, strings.Join([]string{
|
||||
i18n.Sprintf("Version: %s", version.Number),
|
||||
i18n.Sprintf("FRP version: %s", version.FRPVersion),
|
||||
i18n.Sprintf("Built on: %s", version.BuildDate),
|
||||
}, "\n"))
|
||||
return
|
||||
}
|
||||
inService, err := svc.IsWindowsService()
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
if inService {
|
||||
if confPath == "" {
|
||||
os.Exit(1)
|
||||
return
|
||||
}
|
||||
err := services.Run(os.Args[2])
|
||||
if err != nil {
|
||||
if err = services.Run(confPath); err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
} else {
|
||||
h, err := checkSingleton()
|
||||
defer windows.CloseHandle(h)
|
||||
if errors.Is(err, syscall.ERROR_ALREADY_EXISTS) {
|
||||
showMainWindow()
|
||||
return
|
||||
}
|
||||
if err = ui.RunUI(); err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
usage()
|
||||
}
|
||||
|
@ -3,9 +3,9 @@
|
||||
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="frpmgr" type="win32"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<dependency>
|
||||
@ -19,4 +19,10 @@
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</assembly>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 10 and Windows 11 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
</assembly>
|
||||
|
15
cmd/frpmgr/resource.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef _RESOURCE_H
|
||||
#define _RESOURCE_H
|
||||
|
||||
#define IDI_APP 7
|
||||
#define IDI_DOT 21
|
||||
|
||||
#define IDD_VALIDATE VALDLG
|
||||
|
||||
#define IDC_TITLE 2000
|
||||
#define IDC_STATIC1 2001
|
||||
#define IDC_STATIC2 2002
|
||||
#define IDC_EDIT 2003
|
||||
#define IDC_ICON 2004
|
||||
|
||||
#endif
|
94
cmd/frpmgr/resource.rc
Normal file
@ -0,0 +1,94 @@
|
||||
#include <windows.h>
|
||||
#include "resource.h"
|
||||
|
||||
#pragma code_page(65001) // UTF-8
|
||||
|
||||
#define STRINGIZE(x) #x
|
||||
#define EXPAND(x) STRINGIZE(x)
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST manifest.xml
|
||||
IDI_APP ICON icon/app.ico
|
||||
IDI_DOT ICON icon/dot.ico
|
||||
|
||||
#define VERSIONINFO_TEMPLATE(block_id, lang_id, charset_id, file_desc) \
|
||||
VS_VERSION_INFO VERSIONINFO \
|
||||
FILEVERSION VERSION_ARRAY \
|
||||
PRODUCTVERSION VERSION_ARRAY \
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK \
|
||||
FILEFLAGS 0x0 \
|
||||
FILEOS VOS__WINDOWS32 \
|
||||
FILETYPE VFT_APP \
|
||||
FILESUBTYPE VFT2_UNKNOWN \
|
||||
BEGIN \
|
||||
BLOCK "StringFileInfo" \
|
||||
BEGIN \
|
||||
BLOCK block_id \
|
||||
BEGIN \
|
||||
VALUE "CompanyName", "FRP Manager Project" \
|
||||
VALUE "FileDescription", file_desc \
|
||||
VALUE "FileVersion", EXPAND(VERSION_STR) \
|
||||
VALUE "InternalName", "frpmgr" \
|
||||
VALUE "LegalCopyright", "Copyright © FRP Manager Project" \
|
||||
VALUE "OriginalFilename", "frpmgr.exe" \
|
||||
VALUE "ProductName", file_desc \
|
||||
VALUE "ProductVersion", EXPAND(VERSION_STR) \
|
||||
VALUE "Comments", "https://github.com/koho/frpmgr" \
|
||||
END \
|
||||
END \
|
||||
BLOCK "VarFileInfo" \
|
||||
BEGIN \
|
||||
VALUE "Translation", lang_id, charset_id \
|
||||
END \
|
||||
END
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"040904B0", 0x0409, 1200,
|
||||
"FRP Manager"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"080404B0", 0x0804, 1200,
|
||||
"FRP 管理器"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"040404B0", 0x0404, 1200,
|
||||
"FRP 管理器"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"041104B0", 0x0411, 1200,
|
||||
"FRP マネージャ"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"041204B0", 0x0412, 1200,
|
||||
"FRP 관리자"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN
|
||||
VERSIONINFO_TEMPLATE(
|
||||
"0C0A04B0", 0x0C0A, 1200,
|
||||
"Administrador de FRP"
|
||||
)
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
IDD_VALIDATE DIALOGEX 0, 0, 275, 114
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "@IDD_VALIDATE"
|
||||
FONT 9, "Microsoft YaHei", 400, 0, 0x80
|
||||
BEGIN
|
||||
ICON "",IDC_ICON,7,5,20,18
|
||||
LTEXT "@IDC_TITLE",IDC_TITLE,31,5,237,30
|
||||
RTEXT "@IDC_STATIC2",IDC_STATIC2,33,59,49,11
|
||||
EDITTEXT IDC_EDIT,87,58,141,11,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
GROUPBOX "@IDC_STATIC1",IDC_STATIC1,26,40,222,43
|
||||
DEFPUSHBUTTON "@IDOK",IDOK,158,95,52,14
|
||||
PUSHBUTTON "@IDCANCEL",IDCANCEL,216,95,52,14
|
||||
END
|
@ -1,43 +0,0 @@
|
||||
#include <windows.h>
|
||||
|
||||
#pragma code_page(65001) // UTF-8
|
||||
|
||||
#define STRINGIZE(x) #x
|
||||
#define EXPAND(x) STRINGIZE(x)
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST manifest.xml
|
||||
11 ICON icon/app.ico
|
||||
21 ICON icon/dot.ico
|
||||
22 ICON icon/open.ico
|
||||
23 ICON icon/refresh.ico
|
||||
24 ICON icon/copy.ico
|
||||
25 ICON icon/copy_act.ico
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO \
|
||||
FILEVERSION FRPMGR_VERSION_ARRAY \
|
||||
PRODUCTVERSION FRPMGR_VERSION_ARRAY \
|
||||
FILEOS VOS_NT_WINDOWS32 \
|
||||
FILETYPE VFT_APP \
|
||||
FILESUBTYPE VFT2_UNKNOWN \
|
||||
BEGIN \
|
||||
BLOCK "StringFileInfo" \
|
||||
BEGIN \
|
||||
BLOCK "040904b0" \
|
||||
BEGIN \
|
||||
VALUE "CompanyName", "" \
|
||||
VALUE "FileDescription", "FRP 管理器" \
|
||||
VALUE "FileVersion", EXPAND(FRPMGR_VERSION_STR) \
|
||||
VALUE "InternalName", "frpmgr" \
|
||||
VALUE "LegalCopyright", "" \
|
||||
VALUE "OriginalFilename", "frpmgr.exe" \
|
||||
VALUE "ProductName", "frpmgr" \
|
||||
VALUE "ProductVersion", EXPAND(FRPMGR_VERSION_STR) \
|
||||
VALUE "Comments", "https://github.com/koho/frpmgr" \
|
||||
END \
|
||||
END \
|
||||
BLOCK "VarFileInfo" \
|
||||
BEGIN \
|
||||
VALUE "Translation", 0x0804, 1200 \
|
||||
END \
|
||||
END
|
92
cmd/frpmgr/singleton.go
Normal file
@ -0,0 +1,92 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"io/fs"
|
||||
"os"
|
||||
"syscall"
|
||||
|
||||
"github.com/lxn/win"
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
// checkSingleton returns an error when another program is running.
|
||||
// This function should be only called in gui mode before the window is created.
|
||||
func checkSingleton() (windows.Handle, error) {
|
||||
path, err := os.Executable()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
hashName := md5.Sum([]byte(path))
|
||||
name, err := syscall.UTF16PtrFromString("Local\\" + hex.EncodeToString(hashName[:]))
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return windows.CreateMutex(nil, false, name)
|
||||
}
|
||||
|
||||
// showMainWindow activates and brings the window of running process to the foreground.
|
||||
func showMainWindow() error {
|
||||
var windowToShow win.HWND
|
||||
path, err := os.Executable()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
execFileInfo, err := os.Stat(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
syscall.MustLoadDLL("user32.dll").MustFindProc("EnumWindows").Call(
|
||||
syscall.NewCallback(func(hwnd syscall.Handle, lparam uintptr) uintptr {
|
||||
className := make([]uint16, windows.MAX_PATH)
|
||||
if _, err = win.GetClassName(win.HWND(hwnd), &className[0], len(className)); err != nil {
|
||||
return 1
|
||||
}
|
||||
if windows.UTF16ToString(className) == "\\o/ Walk_MainWindow_Class \\o/" {
|
||||
var pid uint32
|
||||
var imageName string
|
||||
var imageFileInfo fs.FileInfo
|
||||
if _, err = windows.GetWindowThreadProcessId(windows.HWND(hwnd), &pid); err != nil {
|
||||
return 1
|
||||
}
|
||||
imageName, err = getImageName(pid)
|
||||
if err != nil {
|
||||
return 1
|
||||
}
|
||||
imageFileInfo, err = os.Stat(imageName)
|
||||
if err != nil {
|
||||
return 1
|
||||
}
|
||||
if os.SameFile(execFileInfo, imageFileInfo) {
|
||||
windowToShow = win.HWND(hwnd)
|
||||
return 0
|
||||
}
|
||||
}
|
||||
return 1
|
||||
}), 0)
|
||||
if windowToShow != 0 {
|
||||
if win.IsIconic(windowToShow) {
|
||||
win.ShowWindow(windowToShow, win.SW_RESTORE)
|
||||
} else {
|
||||
win.SetForegroundWindow(windowToShow)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// getImageName returns the full process image name of the given process id.
|
||||
func getImageName(pid uint32) (string, error) {
|
||||
proc, err := windows.OpenProcess(windows.PROCESS_QUERY_LIMITED_INFORMATION, false, pid)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer windows.CloseHandle(proc)
|
||||
var exeNameBuf [261]uint16
|
||||
exeNameLen := uint32(len(exeNameBuf) - 1)
|
||||
err = windows.QueryFullProcessImageName(proc, 0, &exeNameBuf[0], &exeNameLen)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return windows.UTF16ToString(exeNameBuf[:exeNameLen]), nil
|
||||
}
|
189
config/conf.go
@ -1,189 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/koho/frpmgr/utils"
|
||||
"gopkg.in/ini.v1"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type AuthInfo struct {
|
||||
AuthMethod string `ini:"authentication_method,omitempty"`
|
||||
Token string `ini:"token,omitempty"`
|
||||
OIDCClientId string `ini:"oidc_client_id,omitempty"`
|
||||
OIDCClientSecret string `ini:"oidc_client_secret,omitempty"`
|
||||
OIDCAudience string `ini:"oidc_audience,omitempty"`
|
||||
OIDCTokenEndpoint string `ini:"oidc_token_endpoint_url,omitempty"`
|
||||
}
|
||||
|
||||
type Common struct {
|
||||
AuthInfo `ini:"common"`
|
||||
ServerAddress string `ini:"server_addr"`
|
||||
ServerPort string `ini:"server_port"`
|
||||
ConnectServerLocalIP string `ini:"connect_server_local_ip,omitempty"`
|
||||
HTTPProxy string `ini:"http_proxy,omitempty"`
|
||||
LogFile string `ini:"log_file,omitempty"`
|
||||
LogLevel string `ini:"log_level,omitempty"`
|
||||
LogMaxDays uint `ini:"log_max_days,omitempty"`
|
||||
AdminAddr string `ini:"admin_addr,omitempty"`
|
||||
AdminPort string `ini:"admin_port,omitempty"`
|
||||
AdminUser string `ini:"admin_user,omitempty"`
|
||||
AdminPwd string `ini:"admin_pwd,omitempty"`
|
||||
PoolCount uint `ini:"pool_count,omitempty"`
|
||||
DNSServer string `ini:"dns_server,omitempty"`
|
||||
Protocol string `ini:"protocol,omitempty"`
|
||||
LoginFailExit bool `ini:"login_fail_exit"`
|
||||
User string `ini:"user,omitempty"`
|
||||
ManualStart bool `ini:"manual_start,omitempty"`
|
||||
Custom map[string]string `ini:"-"`
|
||||
}
|
||||
|
||||
type Section struct {
|
||||
Name string `ini:"-"`
|
||||
Type string `ini:"type,omitempty"`
|
||||
LocalIP string `ini:"local_ip,omitempty"`
|
||||
LocalPort string `ini:"local_port,omitempty"`
|
||||
RemotePort string `ini:"remote_port,omitempty"`
|
||||
Role string `ini:"role,omitempty"`
|
||||
SK string `ini:"sk,omitempty"`
|
||||
ServerName string `ini:"server_name,omitempty"`
|
||||
BindAddr string `ini:"bind_addr,omitempty"`
|
||||
BindPort string `ini:"bind_port,omitempty"`
|
||||
UseEncryption bool `ini:"use_encryption,omitempty"`
|
||||
UseCompression bool `ini:"use_compression,omitempty"`
|
||||
Custom map[string]string `ini:"-"`
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Name string `ini:"-"`
|
||||
Path string
|
||||
Status ServiceState
|
||||
Common
|
||||
Items []*Section
|
||||
}
|
||||
|
||||
var Configurations []*Config
|
||||
var ConfMutex sync.Mutex
|
||||
var StatusChan = make(chan bool)
|
||||
|
||||
func LoadConfig() ([]*Config, error) {
|
||||
files, err := filepath.Glob("*.ini")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
confList := make([]*Config, 0)
|
||||
for _, f := range files {
|
||||
c := new(Config)
|
||||
if err = c.Load(f); err != nil {
|
||||
continue
|
||||
}
|
||||
confList = append(confList, c)
|
||||
}
|
||||
return confList, nil
|
||||
}
|
||||
|
||||
func GetConfigNames() []string {
|
||||
names := make([]string, 0)
|
||||
for _, c := range Configurations {
|
||||
names = append(names, c.Name)
|
||||
}
|
||||
return names
|
||||
}
|
||||
|
||||
func (c *Config) GetSectionNames() []string {
|
||||
names := make([]string, 0)
|
||||
for _, sect := range c.Items {
|
||||
names = append(names, sect.Name)
|
||||
}
|
||||
return names
|
||||
}
|
||||
|
||||
func (c *Config) Load(source string) error {
|
||||
c.Name = NameFromPath(source)
|
||||
c.Path = source
|
||||
c.Status = StateStopped
|
||||
cfg, err := ini.Load(source)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
common, err := cfg.GetSection("common")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = common.MapTo(&c.Common)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c.Common.Custom = make(map[string]string)
|
||||
for _, key := range common.Keys() {
|
||||
if utils.GetFieldName(key.Name(), "ini", Common{}) == "" && utils.GetFieldName(key.Name(), "ini", AuthInfo{}) == "" {
|
||||
c.Common.Custom[key.Name()] = key.String()
|
||||
}
|
||||
}
|
||||
c.Items = make([]*Section, 0)
|
||||
for _, section := range cfg.Sections() {
|
||||
if section.Name() == "common" || section.Name() == "DEFAULT" {
|
||||
continue
|
||||
}
|
||||
s := Section{Name: section.Name()}
|
||||
section.MapTo(&s)
|
||||
s.Custom = make(map[string]string)
|
||||
for _, key := range section.Keys() {
|
||||
if utils.GetFieldName(key.Name(), "ini", Section{}) == "" {
|
||||
s.Custom[key.Name()] = key.String()
|
||||
}
|
||||
}
|
||||
c.Items = append(c.Items, &s)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Config) SaveTo(path string) error {
|
||||
cfg := ini.Empty()
|
||||
common, err := cfg.NewSection("common")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
common.ReflectFrom(&c.Common)
|
||||
for k, v := range c.Common.Custom {
|
||||
common.Key(k).SetValue(v)
|
||||
}
|
||||
for _, item := range c.Items {
|
||||
s, err := cfg.NewSection(item.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.ReflectFrom(&item)
|
||||
for k, v := range item.Custom {
|
||||
s.Key(k).SetValue(v)
|
||||
}
|
||||
}
|
||||
for _, sect := range cfg.Sections() {
|
||||
if sect.Name() == "common" || sect.Name() == "DEFAULT" {
|
||||
continue
|
||||
}
|
||||
if _, found := utils.Find(c.GetSectionNames(), sect.Name()); !found {
|
||||
cfg.DeleteSection(sect.Name())
|
||||
}
|
||||
}
|
||||
return cfg.SaveTo(path)
|
||||
}
|
||||
|
||||
func (c *Config) Save() error {
|
||||
return c.SaveTo(c.Name + ".ini")
|
||||
}
|
||||
|
||||
func (c *Config) Delete() error {
|
||||
return os.Remove(c.Name + ".ini")
|
||||
}
|
||||
|
||||
func NameFromPath(confPath string) string {
|
||||
name := filepath.Base(confPath)
|
||||
return strings.TrimSuffix(name, filepath.Ext(name))
|
||||
}
|
||||
|
||||
func PathFromName(name string) (string, error) {
|
||||
return filepath.Abs(name + ".ini")
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package config
|
||||
|
||||
type ServiceState int
|
||||
|
||||
const (
|
||||
StateUnknown ServiceState = iota
|
||||
StateStarted
|
||||
StateStopped
|
||||
StateStarting
|
||||
StateStopping
|
||||
)
|
||||
|
||||
var (
|
||||
Version = "v0.0.0"
|
||||
FRPVersion = "v0.0.0"
|
||||
)
|
BIN
docs/frpmgr.jpg
Before Width: | Height: | Size: 66 KiB |
BIN
docs/screenshot_en.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
docs/screenshot_zh.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
docs/sponsor_signpath.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
3
generate.go
Normal file
@ -0,0 +1,3 @@
|
||||
package frpmgr
|
||||
|
||||
//go:generate go run resource.go
|
69
go.mod
@ -1,15 +1,66 @@
|
||||
module github.com/koho/frpmgr
|
||||
|
||||
go 1.16
|
||||
go 1.24.0
|
||||
|
||||
require (
|
||||
github.com/fatedier/frp v0.39.1
|
||||
github.com/fatedier/golib v0.1.1-0.20220119075718-78e5cf8c00ee
|
||||
github.com/Microsoft/go-winio v0.6.2
|
||||
github.com/fatedier/frp v0.65.0
|
||||
github.com/fatedier/golib v0.5.1
|
||||
github.com/fsnotify/fsnotify v1.9.0
|
||||
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e // indirect
|
||||
github.com/miekg/dns v1.1.45 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect
|
||||
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34
|
||||
gopkg.in/Knetic/govaluate.v3 v3.0.0 // indirect
|
||||
gopkg.in/ini.v1 v1.63.0
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e
|
||||
github.com/pelletier/go-toml/v2 v2.2.0
|
||||
github.com/samber/lo v1.47.0
|
||||
golang.org/x/sys v0.32.0
|
||||
golang.org/x/text v0.24.0
|
||||
gopkg.in/ini.v1 v1.67.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 // indirect
|
||||
github.com/coreos/go-oidc/v3 v3.14.1 // indirect
|
||||
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/hashicorp/yamux v0.1.1 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.6 // indirect
|
||||
github.com/klauspost/reedsolomon v1.12.0 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/pion/dtls/v2 v2.2.7 // indirect
|
||||
github.com/pion/logging v0.2.2 // indirect
|
||||
github.com/pion/stun/v2 v2.0.0 // indirect
|
||||
github.com/pion/transport/v2 v2.2.1 // indirect
|
||||
github.com/pion/transport/v3 v3.0.1 // indirect
|
||||
github.com/pires/go-proxyproto v0.7.0 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/quic-go/quic-go v0.53.0 // indirect
|
||||
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 // indirect
|
||||
github.com/spf13/cobra v1.8.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/templexxx/cpu v0.1.1 // indirect
|
||||
github.com/templexxx/xorsimd v0.4.3 // indirect
|
||||
github.com/tjfoc/gmsm v1.4.1 // indirect
|
||||
github.com/vishvananda/netlink v1.3.0 // indirect
|
||||
github.com/vishvananda/netns v0.0.4 // indirect
|
||||
github.com/xtaci/kcp-go/v5 v5.6.13 // indirect
|
||||
go.uber.org/mock v0.5.0 // indirect
|
||||
golang.org/x/crypto v0.37.0 // indirect
|
||||
golang.org/x/mod v0.24.0 // indirect
|
||||
golang.org/x/net v0.39.0 // indirect
|
||||
golang.org/x/oauth2 v0.28.0 // indirect
|
||||
golang.org/x/sync v0.13.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
golang.org/x/tools v0.31.0 // indirect
|
||||
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
|
||||
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect
|
||||
gopkg.in/Knetic/govaluate.v3 v3.0.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
k8s.io/apimachinery v0.28.8 // indirect
|
||||
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
)
|
||||
|
||||
replace github.com/lxn/walk => github.com/koho/frpmgr v0.0.0-20250619085234-ed99ab60add0
|
||||
|
750
go.sum
@ -1,698 +1,256 @@
|
||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
||||
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
|
||||
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
|
||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
||||
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
||||
github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
|
||||
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
|
||||
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
||||
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
|
||||
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
|
||||
github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
|
||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/coreos/go-oidc/v3 v3.14.1 h1:9ePWwfdwC4QKRlCXsJGou56adA/owXczOzwKdOumLqk=
|
||||
github.com/coreos/go-oidc/v3 v3.14.1/go.mod h1:HaZ3szPaZ0e4r6ebqvsLWlk2Tn+aejfmrfah6hnSYEU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw=
|
||||
github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk=
|
||||
github.com/fatedier/frp v0.39.1 h1:t5NiZxpjKRG1Lpr0jCS9AbTPx4Y7ThZsvpJzXvJKPN8=
|
||||
github.com/fatedier/frp v0.39.1/go.mod h1:FpjNieDWogfli0W8aGAfNIyA/TmIOT1f0Ixk5Zgxdew=
|
||||
github.com/fatedier/golib v0.1.1-0.20220119075718-78e5cf8c00ee h1:iS0wlj2uZPxh3pciAf/HTzi88Kqu7DPh1jNKgJaFhtI=
|
||||
github.com/fatedier/golib v0.1.1-0.20220119075718-78e5cf8c00ee/go.mod h1:fLV0TLwHqrnB/L3jbNl67Gn6PCLggDGHniX1wLrA2Qo=
|
||||
github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74=
|
||||
github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s=
|
||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
|
||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
|
||||
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
|
||||
github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=
|
||||
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
|
||||
github.com/go-playground/validator/v10 v10.6.1 h1:W6TRDXt4WcWp4c4nf/G+6BkGdhiIo0k417gfr+V6u4I=
|
||||
github.com/go-playground/validator/v10 v10.6.1/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/fatedier/frp v0.65.0 h1:Wn8qjXXf+G7+czZB0o7Y4U7Ohy9q/LOAqzK5AVKEel4=
|
||||
github.com/fatedier/frp v0.65.0/go.mod h1:P5aPIs0cqLWDKIYkOziZQGZpb4DwzQkRyK5h+OtPp0Y=
|
||||
github.com/fatedier/golib v0.5.1 h1:hcKAnaw5mdI/1KWRGejxR+i1Hn/NvbY5UsMKDr7o13M=
|
||||
github.com/fatedier/golib v0.5.1/go.mod h1:W6kIYkIFxHsTzbgqg5piCxIiDo4LzwgTY6R5W8l9NFQ=
|
||||
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
||||
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||
github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
|
||||
github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
|
||||
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
|
||||
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
|
||||
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
|
||||
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
|
||||
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
|
||||
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
|
||||
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
||||
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
|
||||
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
|
||||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
||||
github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c h1:nqkErwUGfpZZMqj29WZ9U/wz2OpJVDuiokLhE/3Y7IQ=
|
||||
github.com/hashicorp/yamux v0.0.0-20210707203944-259a57b3608c/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/cpuid/v2 v2.0.6 h1:dQ5ueTiftKxp0gyjKSx5+8BtPWkyQbd95m8Gys/RarI=
|
||||
github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/reedsolomon v1.9.15 h1:g2erWKD2M6rgnPf89fCji6jNlhMKMdXcuNHMW1SYCIo=
|
||||
github.com/klauspost/reedsolomon v1.9.15/go.mod h1:eqPAcE7xar5CIzcdfwydOEdcmchAKAP/qs14y4GCBOk=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
|
||||
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc=
|
||||
github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
|
||||
github.com/klauspost/reedsolomon v1.12.0 h1:I5FEp3xSwVCcEh3F5A7dofEfhXdF/bWhQWPH+XwBFno=
|
||||
github.com/klauspost/reedsolomon v1.12.0/go.mod h1:EPLZJeh4l27pUGC3aXOjheaoh1I9yut7xTURiW3LQ9Y=
|
||||
github.com/koho/frpmgr v0.0.0-20250619085234-ed99ab60add0 h1:45SbnvjExN+92n5O4YVWPXfF/sQG0iLvijF247q0kjs=
|
||||
github.com/koho/frpmgr v0.0.0-20250619085234-ed99ab60add0/go.mod h1:BEvTAgZsEET00wLNsOhKg8fX//k6l4b5INTzX2APBb8=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
|
||||
github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
|
||||
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
|
||||
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794 h1:NVRJ0Uy0SOFcXSKLsS65OmI1sgCCfiDUPj+cwnH7GZw=
|
||||
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/miekg/dns v1.1.45 h1:g5fRIhm9nx7g8osrAvgb16QJfmyMsyOCb+J7LSv+Qzk=
|
||||
github.com/miekg/dns v1.1.45/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
|
||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
|
||||
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
|
||||
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
|
||||
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
|
||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
|
||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||
github.com/pires/go-proxyproto v0.5.0 h1:A4Jv4ZCaV3AFJeGh5mGwkz4iuWUYMlQ7IoO/GTuSuLo=
|
||||
github.com/pires/go-proxyproto v0.5.0/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo=
|
||||
github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
||||
github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8=
|
||||
github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s=
|
||||
github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
|
||||
github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
|
||||
github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0=
|
||||
github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ=
|
||||
github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c=
|
||||
github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
|
||||
github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM=
|
||||
github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0=
|
||||
github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
|
||||
github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU=
|
||||
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
||||
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/rodaine/table v1.0.1 h1:U/VwCnUxlVYxw8+NJiLIuCxA/xa6jL38MY3FYysVWWQ=
|
||||
github.com/rodaine/table v1.0.1/go.mod h1:UVEtfBsflpeEcD56nF4F5AocNFta0ZuolpSVdPtlmP4=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
|
||||
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/quic-go/quic-go v0.53.0 h1:QHX46sISpG2S03dPeZBgVIZp8dGagIaiu2FiVYvpCZI=
|
||||
github.com/quic-go/quic-go v0.53.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY=
|
||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
|
||||
github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
|
||||
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 h1:TG/diQgUe0pntT/2D9tmUCz4VNwm9MfrtPr0SU2qSX8=
|
||||
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E=
|
||||
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
|
||||
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU=
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
|
||||
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b h1:fj5tQ8acgNUr6O8LEplsxDhUIe2573iLkJc+PqnzZTI=
|
||||
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/templexxx/cpu v0.1.1 h1:isxHaxBXpYFWnk2DReuKkigaZyrjs2+9ypIdGP4h+HI=
|
||||
github.com/templexxx/cpu v0.1.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk=
|
||||
github.com/templexxx/xorsimd v0.4.3 h1:9AQTFHd7Bhk3dIT7Al2XeBX5DWOvsUPZCuhyAtNbHjU=
|
||||
github.com/templexxx/xorsimd v0.4.3/go.mod h1:oZQcD6RFDisW2Am58dSAGwwL6rHjbzrlu25VDqfWkQg=
|
||||
github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
|
||||
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk=
|
||||
github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs=
|
||||
github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8=
|
||||
github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
|
||||
github.com/xtaci/kcp-go/v5 v5.6.13 h1:FEjtz9+D4p8t2x4WjciGt/jsIuhlWjjgPCCWjrVR4Hk=
|
||||
github.com/xtaci/kcp-go/v5 v5.6.13/go.mod h1:75S1AKYYzNUSXIv30h+jPKJYZUwqpfvLshu63nCNSOM=
|
||||
github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E=
|
||||
github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37/go.mod h1:HpMP7DB2CyokmAh4lp0EQnnWhmycP/TvwBGzvuie+H0=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
|
||||
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ=
|
||||
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
|
||||
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
|
||||
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
|
||||
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
|
||||
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
|
||||
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
|
||||
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8=
|
||||
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
|
||||
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
|
||||
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
|
||||
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
|
||||
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 h1:GkvMjFtXUmahfDtashnc1mnrCtuBVcwse5QV2lUk/tI=
|
||||
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
|
||||
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 h1:BonxutuHCTL0rBDnZlKjpGIQFTjyUVTexFOdWkB6Fg0=
|
||||
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
|
||||
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg=
|
||||
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4=
|
||||
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
||||
google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
|
||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
|
||||
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/Knetic/govaluate.v3 v3.0.0 h1:18mUyIt4ZlRlFZAAfVetz4/rzlJs9yhN+U02F4u1AOc=
|
||||
gopkg.in/Knetic/govaluate.v3 v3.0.0/go.mod h1:csKLBORsPbafmSCGTEh3U7Ozmsuq8ZSIlKk1bcqph0E=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.63.0 h1:2t0h8NA59dpVQpa5Yh8cIcR6nHAeBIEk0zlLVqfw4N4=
|
||||
gopkg.in/ini.v1 v1.63.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||
gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y=
|
||||
gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gvisor.dev/gvisor v0.0.0-20230927004350-cbd86285d259 h1:TbRPT0HtzFP3Cno1zZo7yPzEEnfu8EjLfl6IU9VfqkQ=
|
||||
gvisor.dev/gvisor v0.0.0-20230927004350-cbd86285d259/go.mod h1:AVgIgHMwK63XvmAzWG9vLQ41YnVHN0du0tEC46fI7yY=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.21.2/go.mod h1:Lv6UGJZ1rlMI1qusN8ruAp9PUBFyBwpEHAdG24vIsiU=
|
||||
k8s.io/apimachinery v0.21.2/go.mod h1:CdTY8fU/BlvAbJ2z/8kBwimGki5Zp8/fbVuLY8gJumM=
|
||||
k8s.io/client-go v0.21.2/go.mod h1:HdJ9iknWpbl3vMGtib6T2PyI/VYxiZfq936WNVHBRrA=
|
||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
|
||||
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
k8s.io/apimachinery v0.28.8 h1:hi/nrxHwk4QLV+W/SHve1bypTE59HCDorLY1stBIxKQ=
|
||||
k8s.io/apimachinery v0.28.8/go.mod h1:cBnwIM3fXoRo28SqbV/Ihxf/iviw85KyXOrzxvZQ83U=
|
||||
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
|
||||
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
|
||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
|
1330
i18n/catalog.go
Normal file
2513
i18n/locales/en-US/messages.gotext.json
Normal file
1899
i18n/locales/es-ES/messages.gotext.json
Normal file
1909
i18n/locales/ja-JP/messages.gotext.json
Normal file
1899
i18n/locales/ko-KR/messages.gotext.json
Normal file
1899
i18n/locales/zh-CN/messages.gotext.json
Normal file
1899
i18n/locales/zh-TW/messages.gotext.json
Normal file
104
i18n/text.go
Normal file
@ -0,0 +1,104 @@
|
||||
package i18n
|
||||
|
||||
//go:generate go run golang.org/x/text/cmd/gotext -srclang=en-US update -out=catalog.go -lang=en-US,zh-CN,zh-TW,ja-JP,ko-KR,es-ES ../cmd/frpmgr
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
|
||||
"golang.org/x/sys/windows"
|
||||
"golang.org/x/text/language"
|
||||
"golang.org/x/text/message"
|
||||
|
||||
"github.com/koho/frpmgr/pkg/config"
|
||||
)
|
||||
|
||||
var (
|
||||
printer *message.Printer
|
||||
useLang language.Tag
|
||||
IDToName = map[string]string{
|
||||
"zh-CN": "简体中文",
|
||||
"zh-TW": "繁體中文",
|
||||
"en-US": "English",
|
||||
"ja-JP": "日本語",
|
||||
"ko-KR": "한국어",
|
||||
"es-ES": "Español",
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
if preferredLang := langInConfig(); preferredLang != "" {
|
||||
useLang = language.Make(preferredLang)
|
||||
} else {
|
||||
useLang = lang()
|
||||
}
|
||||
printer = message.NewPrinter(useLang)
|
||||
}
|
||||
|
||||
// GetLanguage returns the current display language code.
|
||||
func GetLanguage() string {
|
||||
return useLang.String()
|
||||
}
|
||||
|
||||
// langInConfig returns the UI language code in config file
|
||||
func langInConfig() string {
|
||||
b, err := os.ReadFile(config.LangFile)
|
||||
if err == nil {
|
||||
id := string(b)
|
||||
if _, ok := IDToName[id]; ok {
|
||||
return id
|
||||
}
|
||||
}
|
||||
b, err = os.ReadFile(config.DefaultAppFile)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
var s struct {
|
||||
Lang string `json:"lang"`
|
||||
}
|
||||
if err = json.Unmarshal(b, &s); err != nil {
|
||||
return ""
|
||||
}
|
||||
if _, ok := IDToName[s.Lang]; ok {
|
||||
return s.Lang
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// lang returns the user preferred UI language.
|
||||
func lang() (tag language.Tag) {
|
||||
tag = language.English
|
||||
languages, err := windows.GetUserPreferredUILanguages(windows.MUI_LANGUAGE_NAME)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if match := message.MatchLanguage(languages...); !match.IsRoot() {
|
||||
tag = match
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Sprintf is just a wrapper function of message printer.
|
||||
func Sprintf(key message.Reference, a ...interface{}) string {
|
||||
return printer.Sprintf(key, a...)
|
||||
}
|
||||
|
||||
// SprintfColon adds a colon at the tail of a string.
|
||||
func SprintfColon(key message.Reference, a ...interface{}) string {
|
||||
return Sprintf(key, a...) + ":"
|
||||
}
|
||||
|
||||
// SprintfEllipsis adds an ellipsis at the tail of a string.
|
||||
func SprintfEllipsis(key message.Reference, a ...interface{}) string {
|
||||
return Sprintf(key, a...) + "..."
|
||||
}
|
||||
|
||||
// SprintfLSpace adds a space at the start of a string.
|
||||
func SprintfLSpace(key message.Reference, a ...interface{}) string {
|
||||
return " " + Sprintf(key, a...)
|
||||
}
|
||||
|
||||
// SprintfRSpace adds a space at the end of a string.
|
||||
func SprintfRSpace(key message.Reference, a ...interface{}) string {
|
||||
return Sprintf(key, a...) + " "
|
||||
}
|
BIN
icon/app.ico
Normal file
After Width: | Height: | Size: 50 KiB |
432
icon/app.svg
@ -1,427 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
zoomAndPan="magnify"
|
||||
contentStyleType="text/css"
|
||||
id="svg2"
|
||||
sodipodi:docname="Crystal_Clear_app_linneighborhood.new.svg"
|
||||
version="1.1"
|
||||
width="407"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
height="407">
|
||||
<metadata
|
||||
id="metadata146">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
objecttolerance="10"
|
||||
bordercolor="#666666"
|
||||
inkscape:window-height="834"
|
||||
inkscape:zoom="0.55698257"
|
||||
id="namedview84"
|
||||
gridtolerance="10"
|
||||
inkscape:current-layer="svg2"
|
||||
inkscape:window-y="27"
|
||||
inkscape:cy="158.05771"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cx="6.7187214"
|
||||
showgrid="false"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1440"
|
||||
pagecolor="#ffffff"
|
||||
borderopacity="1"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3936"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3938" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3940" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4370"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4372" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4374" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4279"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4281" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4283" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4036"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4038" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4040" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4024">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4026" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#ffffff;stop-opacity:0.49803922;"
|
||||
id="stop4034" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4028" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3685">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.30000001"
|
||||
offset="0"
|
||||
id="stop3687" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0"
|
||||
offset="1"
|
||||
id="stop3689" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0.97422123,0,0,1.0442282,-152.37144,-243.18363)"
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3868"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="369"
|
||||
y1="614.86218"
|
||||
x2="369"
|
||||
y2="478.36218"
|
||||
xlink:href="#linearGradient3685" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(-0.12477578,0.62894977,-1.344634,-0.08139473,448.14031,-32.957024)"
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4032"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
spreadMethod="reflect"
|
||||
x1="84.270332"
|
||||
y1="158.15402"
|
||||
y2="158.15402"
|
||||
x2="398.27032"
|
||||
xlink:href="#linearGradient4024" />
|
||||
<linearGradient
|
||||
x1="149.80469"
|
||||
xlink:href="#linearGradient4036"
|
||||
y1="360.66406"
|
||||
x2="365.625"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="360.66406"
|
||||
id="linearGradient4042"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="matrix(-0.05429007,-0.74636342,-1.5075144,0.03084743,772.50444,499.09629)" />
|
||||
<filter
|
||||
x="-0.29278594"
|
||||
y="-0.30742526"
|
||||
width="1.5855719"
|
||||
id="filter4247"
|
||||
height="1.6148505"
|
||||
inkscape:collect="always"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="3.2523829"
|
||||
inkscape:collect="always"
|
||||
id="feGaussianBlur4249" />
|
||||
</filter>
|
||||
<filter
|
||||
x="-0.35134313"
|
||||
y="-0.36891031"
|
||||
width="1.7026863"
|
||||
id="filter4255"
|
||||
height="1.7378206"
|
||||
inkscape:collect="always"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="3.9028595"
|
||||
inkscape:collect="always"
|
||||
id="feGaussianBlur4257" />
|
||||
</filter>
|
||||
<filter
|
||||
x="-0.35134313"
|
||||
y="-0.36891031"
|
||||
width="1.7026863"
|
||||
id="filter4259"
|
||||
height="1.7378206"
|
||||
inkscape:collect="always"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="3.9028595"
|
||||
inkscape:collect="always"
|
||||
id="feGaussianBlur4261" />
|
||||
</filter>
|
||||
<filter
|
||||
x="-0.35134313"
|
||||
y="-0.36891031"
|
||||
width="1.7026863"
|
||||
id="filter4263"
|
||||
height="1.7378206"
|
||||
inkscape:collect="always"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="3.9028595"
|
||||
inkscape:collect="always"
|
||||
id="feGaussianBlur4265" />
|
||||
</filter>
|
||||
<filter
|
||||
x="-0.35134313"
|
||||
y="-0.36891031"
|
||||
width="1.7026863"
|
||||
id="filter4271"
|
||||
height="1.7378206"
|
||||
inkscape:collect="always"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
stdDeviation="3.9028595"
|
||||
inkscape:collect="always"
|
||||
id="feGaussianBlur4273" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
x1="213.15121"
|
||||
xlink:href="#linearGradient4279"
|
||||
y1="252.88338"
|
||||
x2="242.87743"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="252.88338"
|
||||
id="linearGradient4285"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="matrix(-1.8191796,0,0,1,610.04675,-50.01213)" />
|
||||
<linearGradient
|
||||
x1="213.27011"
|
||||
xlink:href="#linearGradient4370"
|
||||
y1="252.88338"
|
||||
x2="242.75851"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="252.88338"
|
||||
id="linearGradient4376"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="matrix(-4.3200016,-8.8839851,-0.82294491,0.0107314,1396.8773,2227.0713)" />
|
||||
<linearGradient
|
||||
x1="210.78125"
|
||||
xlink:href="#linearGradient3936"
|
||||
y1="257.83203"
|
||||
x2="239.90234"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="257.83203"
|
||||
id="linearGradient3942"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="matrix(-0.74242242,-0.5447124,0.51896924,-0.77924984,254.64457,522.83946)" />
|
||||
</defs>
|
||||
<path
|
||||
d="m 402.75789,203.5 a 199.25789,199.25789 0 0 1 -398.51578,0 199.25789,199.25789 0 1 1 398.51578,0 z"
|
||||
id="path2830"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#183f8e;fill-opacity:1;stroke:#0b1e46;stroke-width:7.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
d="M 36.62747,220.83189 C 51.67425,307.12428 62.75993,396.04902 204.19353,398.35069 358.47758,374.2341 361.03402,302.45167 377.60492,235.45109 337.09511,301.76722 284.16517,350.61049 202.24509,358.67001 104.88013,353.98314 77.1934,281.10538 36.62747,220.83189 z"
|
||||
id="path3663"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient3868);fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 383.06193,177.62039 c 0,0 -2.63803,13.19016 -4.8992,14.69761 -2.26117,1.50744 -13.94389,13.94388 -13.94389,13.94388 l -2.26117,7.53723 1.13059,21.85798 -10.55213,16.20506 -2.63803,15.45133 -7.53724,9.7984 -20.72739,0 -13.19016,-7.16037 -6.40665,-13.94388 -3.76862,-9.04469 1.13059,-10.92899 4.52234,-11.30585 -6.78351,-16.58191 0,-14.69761 -15.8282,-3.39176 -21.10425,0.37687 -18.84309,-18.46623 -0.37686,-27.13404 10.92899,-18.08936 16.95878,-15.07447 29.77207,-1.13059 13.19016,10.55213 31.65639,-1.13058 0,-3.76862 -11.68272,-13.56702 -5.27606,0 -2.63803,3.39175 c 0,0 -1.50745,-3.76861 -1.50745,-2.26117 0,1.50745 0.75372,4.52234 0.75372,4.52234 l -4.52234,-6.40665 0,4.89921 -3.6708,-3.44062 -6.7188,-12.353926 -3.6845,0.21674 -1.95062,2.60083 4.33471,6.718796 6.06859,5.20165 -0.43347,2.16736 -3.03429,-2.16736 -0.86695,1.95062 0.21674,2.60083 -2.38409,-0.86694 0.21673,-3.90124 -9.10289,-13.220866 -13.22087,-0.65021 -4.76818,4.55145 -2.81756,10.403296 -5.41839,1.30042 -1.08368,2.81756 -11.05351,-3.0343 0,-17.122106 2.3841,-2.38409 c 1.81765,-0.88212 5.37275,-0.89641 11.70371,-0.6502 3.94024,-0.32222 2.32657,-6.19836 0,-12.7874 l -2.81756,-1.51715 2.81756,-1.73388 4.33471,0.6502 11.27025,-3.90124 6.28533,-6.93553 6.7188,-8.66943 3.68451,0.86695 4.11797,-3.90124 4.06343,-9.24691 c 9.68955,8.27679 20.00533,16.62146 27.49814,24.79876 32.11834,32.45403 53.72083,67.452026 51.80744,95.868386 -5.32863,0.34435 -5.25327,3.70738 -8.49669,7.17955 l -12.23575,0.38802 -12.13719,-14.30455 -11.27025,-17.33884 9.7531,20.15641 9.53637,16.90537 15.38822,0 -0.59101,3.63483 z"
|
||||
id="path4122"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 199.74621,215.24232 -2.11534,9.16648 -7.75626,9.8716 -0.70511,13.39717 -15.51251,14.10228 -2.82046,11.98694 -13.39717,12.69206 -15.51251,9.87159 -3.52557,15.51251 -2.82045,16.21763 3.52557,13.39717 -12.69206,-1.41023 -4.23068,-5.64091 c 0,0 -6.34603,-9.16649 -4.9358,-13.39717 1.41023,-4.23069 1.41023,-33.84548 1.41023,-33.84548 l 1.41023,-21.85854 c 0,0 -0.70754,-14.39556 -2.11535,-17.62785 -1.06966,-2.45591 -16.8481,-17.1798 -14.95322,-19.07468 l -4.08486,-14.06568 0.70512,-12.69206 7.75625,-9.8716 L 89.74841,177.16616 87.8641,166.78388 69.3001,160.24342 54.4927,146.84625 48.14668,124.98771 49.5569,97.488264 c -4.30241,7.365846 -4.17276,15.618106 -3.52557,23.973876 l -1.76808,1.5133 -1.13059,-9.79841 -1.88431,-9.7984 6.78351,-16.205046 c 0,0 20.79061,-19.85867 22.23484,-20.7274 2.50607,-1.50744 1.68473,-6.70752 1.17618,-6.70752 l 25.82263,-20.90822 12.57167,14.04872 3.76862,7.9141 c 0,0 4.1461,0.33391 5.65293,0.37686 3.53828,0.10086 8.01172,-25.27388 6.40665,-26.00346 l 12.43643,4.52234 12.8133,-1.13058 12.43644,18.46622 -7.50684,14.83284 2.9845,0.24163 7.53723,0.37686 -1.13058,8.66782 -9.42155,-4.52234 0,-4.8992 -12.43643,0 0.37686,4.8992 8.29096,4.52234 -2.63804,10.55213 -9.04468,-3.39176 -9.04468,7.53724 -7.91409,2.63803 -1.50745,8.290956 -4.14548,7.16037 -10.17527,7.53723 -1.50744,5.27607 2.26117,5.65292 -1.50745,1.88431 -3.39176,-0.37686 -2.26117,-6.02979 -2.63803,-3.01489 -10.55213,1.13058 -13.56702,5.27607 -3.39175,13.19016 2.26117,3.39175 9.42154,1.88431 2.63803,-4.52234 10.92899,-0.37686 -4.14548,6.02979 4.52234,6.78351 5.65293,2.63803 -2.63803,5.65292 6.78351,8.29096 10.17526,-4.52234 22.23485,-0.37686 6.02978,9.42154 13.19016,5.27607 9.42155,6.78351 9.04468,10.17526 13.56702,3.39176 9.63748,10.86475 z"
|
||||
id="path4091"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 143.37788,156.13929 a 4.14548,3.0148947 0 0 1 -8.29096,0 4.14548,3.0148947 0 1 1 8.29096,0 z"
|
||||
id="path4101"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="M 214.52594,6.5398948 C 302.46431,20.561174 355.47357,52.086404 346.87978,114.4826 322.4798,198.5275 248.02366,196.39738 179.38024,204.27431 70.00917,182.56946 66.45439,142.54809 63.50845,102.42131 70.67184,26.720464 138.88855,12.871314 214.52594,6.5398948 z"
|
||||
id="path3683"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient4032);fill-opacity:1;stroke:none"
|
||||
inkscape:transform-center-y="56.105886" />
|
||||
<path
|
||||
d="m 165.23587,142.76068 a 0.94215429,1.319016 0 1 1 -0.14323,-0.69912"
|
||||
id="path4106"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 126.04224,149.35576 c 2.15158,4.70346 9.09922,7.09931 -5.27606,7.9141 -6.49976,-0.83396 -7.98706,-7.97717 -18.08937,-13.19016 9.39282,-2.25218 15.76779,3.04028 23.36543,5.27606 z"
|
||||
id="path4097"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 166.74331,130.51266 a 0.94215429,2.638032 0 1 1 -0.14322,-1.39824"
|
||||
id="path4108"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 165.61272,181.76587 a 1.1305852,1.1305852 0 1 1 -0.17188,-0.59925"
|
||||
id="path4110"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 160.71351,180.8237 a 0.37686172,0.94215429 0 1 1 -0.0573,-0.49937"
|
||||
id="path4112"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 228.17177,182.89645 a 1.8843086,1.8843086 0 1 1 -0.28646,-0.99874"
|
||||
id="path4114"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 223.64941,188.17252 a 0.94215429,1.8843086 0 1 1 -0.14323,-0.99875"
|
||||
id="path4116"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 221.38826,193.44858 a 0.75372344,1.1305852 0 1 1 -0.11458,-0.59925"
|
||||
id="path4118"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<path
|
||||
d="m 381.93134,229.51162 -10.55213,9.42155 -6.02978,16.20505 3.76861,8.29096 9.04469,-5.27607 3.39175,-11.30585 2.63803,-8.66782 -2.26117,-8.66782 z"
|
||||
id="path4120"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 279.40315,61.499814 -2.60083,1.08368 -2.60083,1.73388 -3.25103,1.73389 -2.16736,-1.51715 1.30042,-3.68451 -2.38409,-5.41838 -0.43347,-4.76819 -0.65021,-3.03429 -2.81756,-1.08368 2.38409,-2.16736 4.98492,0 0,2.60083 4.76818,6.7188 3.6845,3.90124 -0.21673,3.90124 z"
|
||||
id="path4124"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 265.53207,62.800224 0.43347,-3.25103 -0.86694,-3.90124 -2.60083,-0.21673 -4.33471,2.81756 -0.43347,3.90124 c 0,0 3.25103,1.51715 4.33471,1.51715 1.08368,0 3.46777,-0.86695 3.46777,-0.86695 z"
|
||||
id="path4126"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 234.99702,10.573344 c 0.001,3.50761 -13.24553,12.13081 -13.24553,12.13081 l -18.85599,5.63512 -6.50207,10.40331 c 0,0 -8.45268,1.30041 -9.31962,0.21674 -0.86695,-1.08368 -6.50207,-8.45269 -6.50207,-8.45269 0,0 -10.46552,-3.03944 -9.53636,-4.76818 1.67578,-3.11786 -19.91653,-11.10653 -20.7305,-10.45534 22.24425,-6.3867792 52.84194,-9.8068792 84.69214,-4.70977 z"
|
||||
id="path4128"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 231.72133,42.860554 7.15227,0.21674 2.60083,-2.81756 0.6502,-3.90124 -5.63512,-0.86694 -6.7188,0.86694 -3.0343,3.0343 0.21674,0.43347 4.76818,3.03429 z"
|
||||
id="path4130"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
inkscape:transform-center-x="-5.386165"
|
||||
id="path3890"
|
||||
d="m 208.94837,237.33272 c -61.305,1.25445 -108.37961,38.33046 -105.14407,82.81158 3.23553,44.48112 55.55597,79.52326 116.86097,78.26881 61.305,-1.25445 108.3796,-38.33046 105.14407,-82.81157 -3.23553,-44.48113 -55.55597,-79.52327 -116.86097,-78.26882 z"
|
||||
style="opacity:0.46835441;fill:url(#linearGradient4042);fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
inkscape:transform-center-y="-69.571298"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4277"
|
||||
d="m 169.11869,202.87125 c 0,99.15656 11.69838,179.53883 26.12908,179.53883 14.43068,0 26.12906,-80.38227 26.12906,-179.53883 0,-99.15656 -11.69838,-179.538837 -26.12906,-179.538837 -14.4307,0 -26.12908,80.382277 -26.12908,179.538837 z"
|
||||
style="fill:none;stroke:url(#linearGradient4285);stroke-width:5;stroke-miterlimit:4;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4277-1"
|
||||
d="M 141.69738,76.507699 C 60.096991,77.571788 21.726927,135.56357 55.995469,206.03605 90.263968,276.50844 184.19426,332.77501 265.79465,331.71092 347.39504,330.64683 385.76511,272.65504 351.49661,202.18265 317.22807,131.71017 223.29776,75.44361 141.69738,76.507699 z"
|
||||
style="fill:none;stroke:url(#linearGradient4376);stroke-width:5;stroke-miterlimit:4;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4044-6-7-2"
|
||||
d="m 206.93359,339.08203 c 0,7.01143 -5.96808,12.69531 -13.33007,12.69531 -7.362,0 -13.33008,-5.68388 -13.33008,-12.69531 0,-7.01143 5.96808,-12.69531 13.33008,-12.69531 7.36199,0 13.33007,5.68388 13.33007,12.69531 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#f9f9f9;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter4263)"
|
||||
transform="matrix(0.99132302,0,0,1.0198451,23.878498,-253.73902)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4044-6-7-2-2"
|
||||
d="m 206.93359,339.08203 c 0,7.01143 -5.96808,12.69531 -13.33007,12.69531 -7.362,0 -13.33008,-5.68388 -13.33008,-12.69531 0,-7.01143 5.96808,-12.69531 13.33008,-12.69531 7.36199,0 13.33007,5.68388 13.33007,12.69531 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#f9f9f9;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter4271)"
|
||||
transform="matrix(0.88117602,0,0,0.90652897,4.961992,-223.17678)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4044"
|
||||
d="m 206.93359,339.08203 c 0,7.01143 -5.96808,12.69531 -13.33007,12.69531 -7.362,0 -13.33008,-5.68388 -13.33008,-12.69531 0,-7.01143 5.96808,-12.69531 13.33008,-12.69531 7.36199,0 13.33007,5.68388 13.33007,12.69531 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#f9f9f9;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter4247)"
|
||||
transform="matrix(1.4193929,0,0,1.4633411,-118.05725,-194.61686)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path3934"
|
||||
d="m 212.19864,192.60789 c 52.76137,-79.22298 99.54177,-140.504607 104.48693,-136.876359 4.94517,3.628253 -33.81752,70.792439 -86.57889,150.015419 -52.76137,79.22298 -99.54176,140.50461 -104.48693,136.87636 -4.94517,-3.62825 33.81752,-70.79244 86.57889,-150.01542 z"
|
||||
style="fill:none;stroke:url(#linearGradient3942);stroke-width:4.64010096;stroke-miterlimit:4;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4044-6-7"
|
||||
d="m 206.93359,339.08203 c 0,7.01143 -5.96808,12.69531 -13.33007,12.69531 -7.362,0 -13.33008,-5.68388 -13.33008,-12.69531 0,-7.01143 5.96808,-12.69531 13.33008,-12.69531 7.36199,0 13.33007,5.68388 13.33007,12.69531 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#f9f9f9;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter4259)"
|
||||
transform="matrix(1.10147,0,0,1.1331612,66.8255,-256.41909)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4044-6"
|
||||
d="m 206.93359,339.08203 c 0,7.01143 -5.96808,12.69531 -13.33007,12.69531 -7.362,0 -13.33008,-5.68388 -13.33008,-12.69531 0,-7.01143 5.96808,-12.69531 13.33008,-12.69531 7.36199,0 13.33007,5.68388 13.33007,12.69531 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#f9f9f9;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter4255)"
|
||||
transform="matrix(1.211617,0,0,1.2464773,-13.370076,-206.53428)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cscsscssscsssc"
|
||||
id="path3957"
|
||||
d="m 162.83483,386.89854 c 22.48747,-15.69642 11.27745,-17.27867 20.38403,-20.23002 13.91318,-4.50911 43.35225,6.76461 43.35225,6.76461 0,0 22.1813,7.16185 33.3236,9.98354 6.09329,1.54307 10.46554,-13.73761 16.74815,-13.54242 11.68148,0.36291 22.9682,5.88013 22.9682,5.88013 0,0 -15.10414,4.57739 -18.85157,7.81631 -7.53806,6.51517 -29.6514,10.5094 -42.06951,12.75363 -12.4181,2.24424 -25.53685,1.669 -38.152,1.34654 -14.4392,-0.36908 -41.29393,-4.48846 -41.29393,-4.48846 0,0 -17.43773,-0.66839 -24.23775,-5.38617 -5.86455,-4.06876 -15.59404,1.55575 -15.47862,-12.87574 0.0574,-7.1704 9.93198,3.44129 19.79228,6.32411 11.10693,3.2473 23.51487,5.65394 23.51487,5.65394 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.7;fill:#e3e6f1;fill-opacity:1;stroke:none" />
|
||||
<ellipse
|
||||
rx="198.83333"
|
||||
ry="196.16666"
|
||||
style="fill:none;stroke:#0b1e46;stroke-width:5"
|
||||
cx="238.16667"
|
||||
cy="241.83334"
|
||||
id="ellipse144"
|
||||
sodipodi:cx="238.16667"
|
||||
sodipodi:cy="241.83334"
|
||||
sodipodi:rx="198.83333"
|
||||
sodipodi:ry="196.16666"
|
||||
transform="translate(-34.65789,-38.342106)" />
|
||||
<svg width="196" height="196" viewBox="0 0 196 196" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="98" cy="98" r="98" fill="#307fec"/>
|
||||
<path d="M0 0C9.14866886.037533 17.22012512 2.42754171 25.875 5.3125 25.24816224 9.20323238 24.06490291 12.41180682 22.40625 15.98046875 21.91769531 17.03814453 21.42914063 18.09582031 20.92578125 19.18554688 20.41402344 20.27931641 19.90226562 21.37308594 19.375 22.5 18.86324219 23.60537109 18.35148437 24.71074219 17.82421875 25.84960938 14.22879464 33.60491071 14.22879464 33.60491071 12.875 36.3125c6.6.0 13.2.0 20 0-2.74311757 8.2293527-5.81983443 14.5072504-10 22-6.6.0-13.2.0-20 0-.66 1.98-1.32 3.96-2 6C-.30574675 66.89295828-1.51012196 69.4485972-2.75 72-7.20837762 81.30592927-11.1713474 90.78137319-15.125 100.3125c-11.55.0-23.1.0-35 0 1.12511809-6.75070855 1.12511809-6.75070855 2.92578125-10.4609375C-46.81443359 89.04976563-46.42964844 88.24796875-46.03320312 87.421875-45.63037109 86.60203125-45.22753906 85.7821875-44.8125 84.9375-44.42126953 84.12539062-44.03003906 83.31328125-43.62695312 82.4765625c1.48804651-3.07973806 2.98287133-6.15404921 4.54638671-9.19628906C-37.35389762 69.91812423-35.79432282 66.56321047-34.42578125 63.0390625-31.06119644 54.44632958-27.11915997 46.09069224-23.3125 37.6875c1.57027085-3.47078555 3.13906321-6.94223608 4.70703125-10.4140625C-18.22574921 26.43367371-17.84602966 25.59390991-17.45480347 24.72869873c2.79794821-6.20059747 5.53869159-12.4246724 8.22062683-18.67636108C-6.76291797.33468549-6.2733019.13332521.0.0z"
|
||||
fill="#fcfdfe" transform="translate(86.125,50.6875)"/>
|
||||
<path d="M0 0C5.49110072-.07550699 10.98188377-.12922511 16.47338867-.16479492c1.85877765-.01486511 3.71752171-.03516313 5.57617188-.06152344C56.20891765-.69780069 56.20891765-.69780069 69 7 69.88558594 7.51433594 69.88558594 7.51433594 70.7890625 8.0390625 73.62173603 9.79773659 75.12383176 11.18574763 77 14c.265625 2.92578125.265625 2.92578125.25 6.3125C77.25773437 21.97732422 77.25773437 21.97732422 77.265625 23.67578125 77 27 77 27 75 33c-11.55.0-23.1.0-35 0C40.33 31.02 40.66 29.04 41 27 41.92939473 18.83651171 41.92939473 18.83651171 39 11.5 30.21072208 4.17560173 20.01523416 2.92347445 8.9375 1.875c-.86560547-.08636719-1.73121094-.17273437-2.62304688-.26171875C4.21011156 1.40400971 2.10511876 1.20130332.0 1 0 .67.0.34.0.0z"
|
||||
fill="#f8fafe" transform="translate(83,45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 2.3 KiB |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg height="32" width="32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="2" x2="2" y1="30" y2="2"><stop offset="0" stop-color="#197cf1"/><stop offset="1" stop-color="#20bcfa"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="23" x2="30" xlink:href="#a" y1="13" y2="20"/><linearGradient id="a"><stop offset="0" stop-color="#292c2f"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="6" x2="26" xlink:href="#a" y1="6" y2="26"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="2" x2="2" y1="30" y2="2"><stop offset="0" stop-color="#54d883"/><stop offset="1" stop-color="#abf9c7"/></linearGradient><rect fill="url(#b)" height="28" rx="14" width="28" x="2" y="2"/><path d="M16 2A13.965 13.965 0 0 0 2.078 14.53l.543.07L6 17l7.188 4.133 1.47 8.799A13.97 13.97 0 0 0 30 16c0-7.756-6.244-14-14-14z" fill="url(#c)" fill-rule="evenodd" opacity=".2"/><path d="M29.73 13.27L25 18l3.758 3.758a13.984 13.984 0 0 0 .972-8.488z" fill="url(#d)" fill-rule="evenodd" opacity=".2"/><path d="M16 2a14 14 0 0 0-13.059 9H3l3-1 1 1 1 1v-2l2-1V8l2-1 2-2v1l1-1-1-1h2v1l2-1-1-1v-.95A14 14 0 0 0 16 2zm10.375 4.625L26 7v1h1.469a14 14 0 0 0-1.094-1.375zm1.316 1.684L27 9l-2 2-1 1-1 3v1l1 1 1 1 2 1 2.791-.688A14 14 0 0 0 30 16a14 14 0 0 0-2.309-7.691zM4 13l-1 1h-.838c-.05.34-.088.681-.113 1.023v.002L4 16l1 1 2 1 1 1-1 1v2l1 2 2 2v2.629A14 14 0 0 0 16 30c.17-.003.34-.009.51-.018L17 29v-1l2-1 1-1v-2l1-1v-1l-1-1-3-1-1-1-1-1h-1l-1-1-3-1-2 1H6v-2H5v-2z" fill="url(#e)"/><path d="M29.979 15.414A14 14 0 0 1 16 29 14 14 0 0 1 2.021 15.586 14 14 0 0 0 2 16a14 14 0 0 0 14 14 14 14 0 0 0 14-14 14 14 0 0 0-.021-.586z" fill="#292c2f" opacity=".2"/></svg>
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 16 16">
|
||||
<g fill="#555">
|
||||
<path d="M11 5H5v9h8V5h-2zm0 7H7V7h4v5z"/>
|
||||
<path d="M10 2H2v9h2V4h6z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 207 B |
@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 16 16">
|
||||
<g fill="#315efb">
|
||||
<path d="M11 5H5v9h8V5h-2zm0 7H7V7h4v5z"/>
|
||||
<path d="M10 2H2v9h2V4h6z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 210 B |
BIN
icon/dot.ico
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
icon/open.ico
Before Width: | Height: | Size: 47 KiB |
@ -1,5 +0,0 @@
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="sync-alt"
|
||||
class="svg-inline--fa fa-sync-alt fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<path fill="#0000ff"
|
||||
d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1014 B |
@ -1,206 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg936\deff0\nouicompat\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
|
||||
{\colortbl ;\red0\green0\blue255;}
|
||||
{\*\generator Riched20 10.0.18362}\viewkind4\uc1
|
||||
\pard\sl240\slmult1\f0\fs22\lang2052 Apache License\par
|
||||
Version 2.0, January 2004\par
|
||||
{{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/ }}{\fldrslt{http://www.apache.org/licenses/\ul0\cf0}}}}\f0\fs22\par
|
||||
\par
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\par
|
||||
\par
|
||||
1. Definitions.\par
|
||||
\par
|
||||
"License" shall mean the terms and conditions for use, reproduction,\par
|
||||
and distribution as defined by Sections 1 through 9 of this document.\par
|
||||
\par
|
||||
"Licensor" shall mean the copyright owner or entity authorized by\par
|
||||
the copyright owner that is granting the License.\par
|
||||
\par
|
||||
"Legal Entity" shall mean the union of the acting entity and all\par
|
||||
other entities that control, are controlled by, or are under common\par
|
||||
control with that entity. For the purposes of this definition,\par
|
||||
"control" means (i) the power, direct or indirect, to cause the\par
|
||||
direction or management of such entity, whether by contract or\par
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the\par
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.\par
|
||||
\par
|
||||
"You" (or "Your") shall mean an individual or Legal Entity\par
|
||||
exercising permissions granted by this License.\par
|
||||
\par
|
||||
"Source" form shall mean the preferred form for making modifications,\par
|
||||
including but not limited to software source code, documentation\par
|
||||
source, and configuration files.\par
|
||||
\par
|
||||
"Object" form shall mean any form resulting from mechanical\par
|
||||
transformation or translation of a Source form, including but\par
|
||||
not limited to compiled object code, generated documentation,\par
|
||||
and conversions to other media types.\par
|
||||
\par
|
||||
"Work" shall mean the work of authorship, whether in Source or\par
|
||||
Object form, made available under the License, as indicated by a\par
|
||||
copyright notice that is included in or attached to the work\par
|
||||
(an example is provided in the Appendix below).\par
|
||||
\par
|
||||
"Derivative Works" shall mean any work, whether in Source or Object\par
|
||||
form, that is based on (or derived from) the Work and for which the\par
|
||||
editorial revisions, annotations, elaborations, or other modifications\par
|
||||
represent, as a whole, an original work of authorship. For the purposes\par
|
||||
of this License, Derivative Works shall not include works that remain\par
|
||||
separable from, or merely link (or bind by name) to the interfaces of,\par
|
||||
the Work and Derivative Works thereof.\par
|
||||
\par
|
||||
"Contribution" shall mean any work of authorship, including\par
|
||||
the original version of the Work and any modifications or additions\par
|
||||
to that Work or Derivative Works thereof, that is intentionally\par
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner\par
|
||||
or by an individual or Legal Entity authorized to submit on behalf of\par
|
||||
the copyright owner. For the purposes of this definition, "submitted"\par
|
||||
means any form of electronic, verbal, or written communication sent\par
|
||||
to the Licensor or its representatives, including but not limited to\par
|
||||
communication on electronic mailing lists, source code control systems,\par
|
||||
and issue tracking systems that are managed by, or on behalf of, the\par
|
||||
Licensor for the purpose of discussing and improving the Work, but\par
|
||||
excluding communication that is conspicuously marked or otherwise\par
|
||||
designated in writing by the copyright owner as "Not a Contribution."\par
|
||||
\par
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity\par
|
||||
on behalf of whom a Contribution has been received by Licensor and\par
|
||||
subsequently incorporated within the Work.\par
|
||||
\par
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of\par
|
||||
this License, each Contributor hereby grants to You a perpetual,\par
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable\par
|
||||
copyright license to reproduce, prepare Derivative Works of,\par
|
||||
publicly display, publicly perform, sublicense, and distribute the\par
|
||||
Work and such Derivative Works in Source or Object form.\par
|
||||
\par
|
||||
3. Grant of Patent License. Subject to the terms and conditions of\par
|
||||
this License, each Contributor hereby grants to You a perpetual,\par
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable\par
|
||||
(except as stated in this section) patent license to make, have made,\par
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,\par
|
||||
where such license applies only to those patent claims licensable\par
|
||||
by such Contributor that are necessarily infringed by their\par
|
||||
Contribution(s) alone or by combination of their Contribution(s)\par
|
||||
with the Work to which such Contribution(s) was submitted. If You\par
|
||||
institute patent litigation against any entity (including a\par
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work\par
|
||||
or a Contribution incorporated within the Work constitutes direct\par
|
||||
or contributory patent infringement, then any patent licenses\par
|
||||
granted to You under this License for that Work shall terminate\par
|
||||
as of the date such litigation is filed.\par
|
||||
\par
|
||||
4. Redistribution. You may reproduce and distribute copies of the\par
|
||||
Work or Derivative Works thereof in any medium, with or without\par
|
||||
modifications, and in Source or Object form, provided that You\par
|
||||
meet the following conditions:\par
|
||||
\par
|
||||
(a) You must give any other recipients of the Work or\par
|
||||
Derivative Works a copy of this License; and\par
|
||||
\par
|
||||
(b) You must cause any modified files to carry prominent notices\par
|
||||
stating that You changed the files; and\par
|
||||
\par
|
||||
(c) You must retain, in the Source form of any Derivative Works\par
|
||||
that You distribute, all copyright, patent, trademark, and\par
|
||||
attribution notices from the Source form of the Work,\par
|
||||
excluding those notices that do not pertain to any part of\par
|
||||
the Derivative Works; and\par
|
||||
\par
|
||||
(d) If the Work includes a "NOTICE" text file as part of its\par
|
||||
distribution, then any Derivative Works that You distribute must\par
|
||||
include a readable copy of the attribution notices contained\par
|
||||
within such NOTICE file, excluding those notices that do not\par
|
||||
pertain to any part of the Derivative Works, in at least one\par
|
||||
of the following places: within a NOTICE text file distributed\par
|
||||
as part of the Derivative Works; within the Source form or\par
|
||||
documentation, if provided along with the Derivative Works; or,\par
|
||||
within a display generated by the Derivative Works, if and\par
|
||||
wherever such third-party notices normally appear. The contents\par
|
||||
of the NOTICE file are for informational purposes only and\par
|
||||
do not modify the License. You may add Your own attribution\par
|
||||
notices within Derivative Works that You distribute, alongside\par
|
||||
or as an addendum to the NOTICE text from the Work, provided\par
|
||||
that such additional attribution notices cannot be construed\par
|
||||
as modifying the License.\par
|
||||
\par
|
||||
You may add Your own copyright statement to Your modifications and\par
|
||||
may provide additional or different license terms and conditions\par
|
||||
for use, reproduction, or distribution of Your modifications, or\par
|
||||
for any such Derivative Works as a whole, provided Your use,\par
|
||||
reproduction, and distribution of the Work otherwise complies with\par
|
||||
the conditions stated in this License.\par
|
||||
\par
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,\par
|
||||
any Contribution intentionally submitted for inclusion in the Work\par
|
||||
by You to the Licensor shall be under the terms and conditions of\par
|
||||
this License, without any additional terms or conditions.\par
|
||||
Notwithstanding the above, nothing herein shall supersede or modify\par
|
||||
the terms of any separate license agreement you may have executed\par
|
||||
with Licensor regarding such Contributions.\par
|
||||
\par
|
||||
6. Trademarks. This License does not grant permission to use the trade\par
|
||||
names, trademarks, service marks, or product names of the Licensor,\par
|
||||
except as required for reasonable and customary use in describing the\par
|
||||
origin of the Work and reproducing the content of the NOTICE file.\par
|
||||
\par
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or\par
|
||||
agreed to in writing, Licensor provides the Work (and each\par
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,\par
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\par
|
||||
implied, including, without limitation, any warranties or conditions\par
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\par
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the\par
|
||||
appropriateness of using or redistributing the Work and assume any\par
|
||||
risks associated with Your exercise of permissions under this License.\par
|
||||
\par
|
||||
8. Limitation of Liability. In no event and under no legal theory,\par
|
||||
whether in tort (including negligence), contract, or otherwise,\par
|
||||
unless required by applicable law (such as deliberate and grossly\par
|
||||
negligent acts) or agreed to in writing, shall any Contributor be\par
|
||||
liable to You for damages, including any direct, indirect, special,\par
|
||||
incidental, or consequential damages of any character arising as a\par
|
||||
result of this License or out of the use or inability to use the\par
|
||||
Work (including but not limited to damages for loss of goodwill,\par
|
||||
work stoppage, computer failure or malfunction, or any and all\par
|
||||
other commercial damages or losses), even if such Contributor\par
|
||||
has been advised of the possibility of such damages.\par
|
||||
\par
|
||||
9. Accepting Warranty or Additional Liability. While redistributing\par
|
||||
the Work or Derivative Works thereof, You may choose to offer,\par
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,\par
|
||||
or other liability obligations and/or rights consistent with this\par
|
||||
License. However, in accepting such obligations, You may act only\par
|
||||
on Your own behalf and on Your sole responsibility, not on behalf\par
|
||||
of any other Contributor, and only if You agree to indemnify,\par
|
||||
defend, and hold each Contributor harmless for any liability\par
|
||||
incurred by, or claims asserted against, such Contributor by reason\par
|
||||
of your accepting any such warranty or additional liability.\par
|
||||
\par
|
||||
END OF TERMS AND CONDITIONS\par
|
||||
\par
|
||||
APPENDIX: How to apply the Apache License to your work.\par
|
||||
\par
|
||||
To apply the Apache License to your work, attach the following\par
|
||||
boilerplate notice, with the fields enclosed by brackets "\{\}"\par
|
||||
replaced with your own identifying information. (Don't include\par
|
||||
the brackets!) The text should be enclosed in the appropriate\par
|
||||
comment syntax for the file format. We also recommend that a\par
|
||||
file or class name and description of purpose be included on the\par
|
||||
same "printed page" as the copyright notice for easier\par
|
||||
identification within third-party archives.\par
|
||||
\par
|
||||
Copyright \{yyyy\} \{name of copyright owner\}\par
|
||||
\par
|
||||
Licensed under the Apache License, Version 2.0 (the "License");\par
|
||||
you may not use this file except in compliance with the License.\par
|
||||
You may obtain a copy of the License at\par
|
||||
\par
|
||||
{{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs22\par
|
||||
\par
|
||||
Unless required by applicable law or agreed to in writing, software\par
|
||||
distributed under the License is distributed on an "AS IS" BASIS,\par
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\par
|
||||
See the License for the specific language governing permissions and\par
|
||||
limitations under the License.\par
|
||||
}
|
||||
|