Compare commits
3991 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd1616d1c0 | ||
|
|
0b9f0bbe91 | ||
|
|
b726dc8052 | ||
|
|
81d30b906a | ||
|
|
ae14d05290 | ||
|
|
8840bd77ae | ||
|
|
1c3b74c508 | ||
|
|
f9c4575c78 | ||
|
|
035e5931fc | ||
|
|
d5d86dbfa5 | ||
|
|
1b9408ecb0 | ||
|
|
ef259f58aa | ||
|
|
149fc12366 | ||
|
|
77c513511b | ||
|
|
99e647a7a8 | ||
|
|
41893aa6f3 | ||
|
|
62a91aefd2 | ||
|
|
644c75e3e8 | ||
|
|
8752bf089e | ||
|
|
c6c3b89a45 | ||
|
|
8cd244fee4 | ||
|
|
ba348e04f0 | ||
|
|
90a6ebe948 | ||
|
|
1659838194 | ||
|
|
a82e145b1d | ||
|
|
3dd0ec9b65 | ||
|
|
f0a63fa7c5 | ||
|
|
ad52054113 | ||
|
|
0a7ee3fcf0 | ||
|
|
c406e79c5d | ||
|
|
78c37a122e | ||
|
|
8f0edbd91a | ||
|
|
d9c6dcdca4 | ||
|
|
4983c0a877 | ||
|
|
4e6521a713 | ||
|
|
da9838e478 | ||
|
|
639bf29de3 | ||
|
|
cfd1e7a6aa | ||
|
|
17f61152b9 | ||
|
|
9c88e3a84f | ||
|
|
b999a932ac | ||
|
|
e9a0beae20 | ||
|
|
b93c2054c4 | ||
|
|
dcf272f620 | ||
|
|
3ffdf6b299 | ||
|
|
b052c1d804 | ||
|
|
818c448dfc | ||
|
|
5b16bb36d9 | ||
|
|
5b790a431a | ||
|
|
149419d1fd | ||
|
|
60a77413df | ||
|
|
ce1ee9228b | ||
|
|
1bea3d401c | ||
|
|
b6624612cd | ||
|
|
aa463e2cb0 | ||
|
|
6552f0b3c3 | ||
|
|
9950679f2c | ||
|
|
a9a582afae | ||
|
|
607551f394 | ||
|
|
3278a43751 | ||
|
|
c82d314913 | ||
|
|
a71a66c00b | ||
|
|
c0cd45bf1d | ||
|
|
562e6e5c3a | ||
|
|
21f7fdaef4 | ||
|
|
04c5bc3478 | ||
|
|
092ee7bc2a | ||
|
|
18c15ac0b8 | ||
|
|
c0620a95ef | ||
|
|
c939ee4a3d | ||
|
|
709691225a | ||
|
|
bb14e5d66f | ||
|
|
92dfe0babd | ||
|
|
4a7b517460 | ||
|
|
102dcb1993 | ||
|
|
040bed5ce5 | ||
|
|
6d3a59ac04 | ||
|
|
4d26b4d597 | ||
|
|
6aafd8cb34 | ||
|
|
2028a9b288 | ||
|
|
cd956d34b1 | ||
|
|
0cfc25ccb0 | ||
|
|
0199e256d6 | ||
|
|
98e18d5f60 | ||
|
|
e9e1086bc5 | ||
|
|
d1dc4586f6 | ||
|
|
0dd99a2ec7 | ||
|
|
5a841063f2 | ||
|
|
05af15d70a | ||
|
|
26c907bb39 | ||
|
|
55041f8933 | ||
|
|
91f276dd0a | ||
|
|
3166d50412 | ||
|
|
3b8e6f4718 | ||
|
|
c2d45162e0 | ||
|
|
1753d8855c | ||
|
|
014eabed3c | ||
|
|
1f77fe2ea7 | ||
|
|
77dbc2090c | ||
|
|
f828d2eb20 | ||
|
|
6562610df1 | ||
|
|
68d66136ff | ||
|
|
4e84352023 | ||
|
|
3fa5b4867c | ||
|
|
049c39839f | ||
|
|
598c299e18 | ||
|
|
721b10abda | ||
|
|
e9634e1057 | ||
|
|
3d14e98c76 | ||
|
|
2700722a1e | ||
|
|
a164e226dc | ||
|
|
d3a601bd77 | ||
|
|
7046d16956 | ||
|
|
3b85ac912e | ||
|
|
1964922df7 | ||
|
|
8249814f68 | ||
|
|
4363ec399d | ||
|
|
4caa33d627 | ||
|
|
29e7fe12a8 | ||
|
|
b988f23a14 | ||
|
|
c128b79723 | ||
|
|
767dfce556 | ||
|
|
826f1f355f | ||
|
|
7ed7b63b08 | ||
|
|
d540c6cddf | ||
|
|
adc8c92816 | ||
|
|
7bbbdd3c4b | ||
|
|
cc46a1ee55 | ||
|
|
a4f0d01a88 | ||
|
|
76b7bc96ef | ||
|
|
fd8308fcb1 | ||
|
|
97451e23c8 | ||
|
|
11cf410f87 | ||
|
|
000098adb1 | ||
|
|
dfc47ee5d7 | ||
|
|
4add28d3c0 | ||
|
|
0a7e81f532 | ||
|
|
fc2eb5a20b | ||
|
|
a2a64cec6a | ||
|
|
4ca83bfe33 | ||
|
|
5163cf68d6 | ||
|
|
270db6d671 | ||
|
|
8b9f449f95 | ||
|
|
9433b8a8f0 | ||
|
|
561a03421f | ||
|
|
73ae2fa258 | ||
|
|
28fcaf94a3 | ||
|
|
8d646b3e41 | ||
|
|
f8efd2c22a | ||
|
|
5ae688819e | ||
|
|
631fb9fc3b | ||
|
|
640561ab19 | ||
|
|
c0c957cbff | ||
|
|
16d7caa98f | ||
|
|
8333c34124 | ||
|
|
d9e03e8b83 | ||
|
|
bbaf7279ed | ||
|
|
6ffeecad3a | ||
|
|
db3eea65b7 | ||
|
|
b55358b9ab | ||
|
|
dba5a0402c | ||
|
|
92eb6b07c3 | ||
|
|
36aa7b0a20 | ||
|
|
0619d3d8de | ||
|
|
6b5f6c7b9d | ||
|
|
69e3a995ae | ||
|
|
e32ff53d2d | ||
|
|
ba593a19dc | ||
|
|
f40a7aaee1 | ||
|
|
62286a2758 | ||
|
|
067b8244ec | ||
|
|
be9928beda | ||
|
|
742a1e6882 | ||
|
|
a2796d7af0 | ||
|
|
2d6f2cbbde | ||
|
|
3fd89a93f5 | ||
|
|
595f236a7a | ||
|
|
8fec3702f4 | ||
|
|
ec2864902c | ||
|
|
7f00a16d6d | ||
|
|
65597fd6b5 | ||
|
|
fba5d0c4cc | ||
|
|
1089e72ef6 | ||
|
|
0829b3ac36 | ||
|
|
4c1e52c063 | ||
|
|
b39b9abc6f | ||
|
|
ae6fe48777 | ||
|
|
a4cfbf9666 | ||
|
|
ad6160f39b | ||
|
|
3ed2fb7197 | ||
|
|
108020caf5 | ||
|
|
fb35a0b4c6 | ||
|
|
6696bc5bac | ||
|
|
adbc7876b1 | ||
|
|
7388789154 | ||
|
|
ae41100c7c | ||
|
|
521e354ed3 | ||
|
|
7a0ad0e8dc | ||
|
|
ef2a3d367d | ||
|
|
fb00df5d73 | ||
|
|
5493ab7c87 | ||
|
|
53d1ba45f6 | ||
|
|
c812a07a84 | ||
|
|
3c52906878 | ||
|
|
8147ffe141 | ||
|
|
126d7b1c15 | ||
|
|
40e10521d5 | ||
|
|
e221bcccc8 | ||
|
|
144741ea68 | ||
|
|
12b62cb9cf | ||
|
|
e80c16a732 | ||
|
|
cd0713a7ee | ||
|
|
c4d736afbc | ||
|
|
3dfc410b6a | ||
|
|
fe19b4412a | ||
|
|
f2be086123 | ||
|
|
1d6f8e33b3 | ||
|
|
5fb931daad | ||
|
|
70e0adcdcb | ||
|
|
cb7fbe43ee | ||
|
|
6703a31001 | ||
|
|
20ea551c9b | ||
|
|
9bd76d3ad0 | ||
|
|
0280a7deef | ||
|
|
3e2e27d893 | ||
|
|
f96760a86a | ||
|
|
c929fea21d | ||
|
|
11af62c94e | ||
|
|
4f0e7daa13 | ||
|
|
c6e8b0d3d9 | ||
|
|
8987c48abe | ||
|
|
492d34a9fa | ||
|
|
42ac8e6094 | ||
|
|
7dbe5b414d | ||
|
|
55c079d4ba | ||
|
|
a629866c28 | ||
|
|
6287f1a118 | ||
|
|
420d4ec064 | ||
|
|
908b164996 | ||
|
|
cfbf8edfa9 | ||
|
|
6f9aa2472b | ||
|
|
0ac56e9d04 | ||
|
|
544fd480b1 | ||
|
|
60318bb64c | ||
|
|
23ceaf7721 | ||
|
|
eb176edf8b | ||
|
|
9c1164b9bc | ||
|
|
036cfb187c | ||
|
|
c4948ee0cd | ||
|
|
4d56da4319 | ||
|
|
f718d4414e | ||
|
|
25c5740331 | ||
|
|
64fc35658d | ||
|
|
dac4575a91 | ||
|
|
58ffcd13c8 | ||
|
|
0ee960e3a3 | ||
|
|
7c8ccdedd4 | ||
|
|
ea35896484 | ||
|
|
dbf6daebdc | ||
|
|
3f0f07ac37 | ||
|
|
d25a99cd21 | ||
|
|
efae7418c4 | ||
|
|
34c2618ca0 | ||
|
|
84b7cf8ddd | ||
|
|
0d816b3cc2 | ||
|
|
ad4eeee55a | ||
|
|
ad74b55dbf | ||
|
|
5ffb2d8d69 | ||
|
|
5a91c0c70b | ||
|
|
3831af027e | ||
|
|
ee5c1894eb | ||
|
|
e31d91282b | ||
|
|
32b355595c | ||
|
|
b5b31c02d0 | ||
|
|
bcdb905ad6 | ||
|
|
3044b409fa | ||
|
|
747dd3d4bc | ||
|
|
49225cf685 | ||
|
|
0f4abf2237 | ||
|
|
657d03821f | ||
|
|
8fc2ecbb66 | ||
|
|
d78dcdddaf | ||
|
|
9bc0a4ca92 | ||
|
|
6aefade7f8 | ||
|
|
0226c5879a | ||
|
|
ee3ec4c1ea | ||
|
|
881c411a26 | ||
|
|
96a52b7354 | ||
|
|
f52eeb0d60 | ||
|
|
942a266184 | ||
|
|
1a1804d2be | ||
|
|
22fd6133f1 | ||
|
|
16b898f4e0 | ||
|
|
d67b4457e8 | ||
|
|
b54a7027fd | ||
|
|
72a35a5ea5 | ||
|
|
c9cad08ae7 | ||
|
|
b563e06527 | ||
|
|
88a647a3bb | ||
|
|
5a9a9ce51a | ||
|
|
0a5a6d0604 | ||
|
|
b92d697657 | ||
|
|
5e27368a48 | ||
|
|
2c740b1abf | ||
|
|
bae234867e | ||
|
|
9145e36457 | ||
|
|
e30f7e20a6 | ||
|
|
726f6e9132 | ||
|
|
43384e54e7 | ||
|
|
4ee2e49b27 | ||
|
|
a5a984922b | ||
|
|
34af405cbd | ||
|
|
648e0b1683 | ||
|
|
4ae9f81a68 | ||
|
|
94a55c73c6 | ||
|
|
a7c87e6392 | ||
|
|
bdf8bc6b33 | ||
|
|
4e3413fea5 | ||
|
|
5714450b60 | ||
|
|
2758c962b5 | ||
|
|
7b9bdec209 | ||
|
|
443a778ea6 | ||
|
|
29165bb1e2 | ||
|
|
1554818aa8 | ||
|
|
353b65e25b | ||
|
|
a8ccd1ca3c | ||
|
|
c772f6d795 | ||
|
|
e5622d2237 | ||
|
|
250d0c641c | ||
|
|
529d557a38 | ||
|
|
bbaf779e7a | ||
|
|
e59ff43490 | ||
|
|
ca27b4d76b | ||
|
|
bd43b86de8 | ||
|
|
d3d50d0f8c | ||
|
|
dd92699ca1 | ||
|
|
4f7a1efdfa | ||
|
|
08226c518c | ||
|
|
e919e723c7 | ||
|
|
52d03f43ef | ||
|
|
5ed59fb902 | ||
|
|
011fd67248 | ||
|
|
a6839cfbf7 | ||
|
|
6e71a23ed8 | ||
|
|
368cb06d77 | ||
|
|
d28622e749 | ||
|
|
84679f912d | ||
|
|
b1ef36c670 | ||
|
|
c28d6520d6 | ||
|
|
97078b42ac | ||
|
|
29eae92fcb | ||
|
|
124bcee596 | ||
|
|
92faf227b7 | ||
|
|
7280e03c12 | ||
|
|
dbb1e28b2f | ||
|
|
a8e245b28a | ||
|
|
a30ddc98bd | ||
|
|
6273313ce3 | ||
|
|
dd26ec1171 | ||
|
|
1d2a14f9e4 | ||
|
|
5be2ffa418 | ||
|
|
a30798a275 | ||
|
|
214fd4aff0 | ||
|
|
ddd7f165bf | ||
|
|
ae5f9060d4 | ||
|
|
362764f497 | ||
|
|
083f388176 | ||
|
|
813fc16986 | ||
|
|
86a9c17acd | ||
|
|
3d0bdbc71b | ||
|
|
119bedce30 | ||
|
|
1493c6be21 | ||
|
|
4d4d6970e3 | ||
|
|
3914d33968 | ||
|
|
c4f98b0cd8 | ||
|
|
6e728d0e2f | ||
|
|
3bd1101f7b | ||
|
|
c55126085b | ||
|
|
9a6db5fb86 | ||
|
|
8274718d0d | ||
|
|
5511defb1e | ||
|
|
894fbd6a4f | ||
|
|
5a26cb6601 | ||
|
|
2eb09f092c | ||
|
|
66081e97f6 | ||
|
|
08873b0ce7 | ||
|
|
6dce6d60e9 | ||
|
|
302e321da6 | ||
|
|
5d5d51c6f3 | ||
|
|
262209f5a3 | ||
|
|
aa4aae9e26 | ||
|
|
827b89d4e8 | ||
|
|
a1e7af81cc | ||
|
|
1db7e19037 | ||
|
|
c7db15fe9d | ||
|
|
502d3f7d94 | ||
|
|
bd0651165c | ||
|
|
af4f336bf5 | ||
|
|
bffc16ba29 | ||
|
|
7c53549076 | ||
|
|
0fe3a4af10 | ||
|
|
4d1d4ab1b6 | ||
|
|
2990de8366 | ||
|
|
76966ee1c3 | ||
|
|
4f9a932e77 | ||
|
|
f2603521e5 | ||
|
|
24f695c452 | ||
|
|
f5effd4dcd | ||
|
|
b5bb7d7c8b | ||
|
|
604365dd38 | ||
|
|
466d089fc0 | ||
|
|
e28a10f6a9 | ||
|
|
102be6cd90 | ||
|
|
6e1e1d061b | ||
|
|
43250d6d37 | ||
|
|
12f0c455d1 | ||
|
|
049c3c6f54 | ||
|
|
658ac94334 | ||
|
|
09a90099c7 | ||
|
|
051470f139 | ||
|
|
8f1cb88c11 | ||
|
|
3ef233a4c2 | ||
|
|
38fcd7e872 | ||
|
|
76f17c3a57 | ||
|
|
b5c2451525 | ||
|
|
ba2a854784 | ||
|
|
c9474cecc0 | ||
|
|
531be839c9 | ||
|
|
226486b973 | ||
|
|
5a137c95e5 | ||
|
|
e6154ceb99 | ||
|
|
1ea5d2fa6f | ||
|
|
97d5ebc21e | ||
|
|
442ec2a5d1 | ||
|
|
43ae672b44 | ||
|
|
84a54c9dbb | ||
|
|
6c53c3bf37 | ||
|
|
66686ab7f8 | ||
|
|
0c684a9bdb | ||
|
|
26dabffb96 | ||
|
|
ead077d16e | ||
|
|
a72fa3f79e | ||
|
|
33846dbce0 | ||
|
|
32fffaabe7 | ||
|
|
bf96b512cb | ||
|
|
32a42e797c | ||
|
|
29b8555c66 | ||
|
|
ab7698b16f | ||
|
|
cd0ef01fa1 | ||
|
|
41d97ddd21 | ||
|
|
a4386de00d | ||
|
|
28a2e8697a | ||
|
|
2ae623b15c | ||
|
|
8e7ce1c12b | ||
|
|
b5efe62739 | ||
|
|
e34ed3e882 | ||
|
|
658e35ebde | ||
|
|
1176f5ac8b | ||
|
|
4de01a9bc9 | ||
|
|
35a9a9ea2a | ||
|
|
e78e2488ff | ||
|
|
1c23ad92b3 | ||
|
|
32ba6ef81b | ||
|
|
a8559f84c1 | ||
|
|
0e07f65bc0 | ||
|
|
4046dd01a1 | ||
|
|
e51592898e | ||
|
|
9afbd1befd | ||
|
|
ccc1e998da | ||
|
|
3a51b36a05 | ||
|
|
e05cb0e0dc | ||
|
|
a892721306 | ||
|
|
950f6dfb66 | ||
|
|
9b6937650d | ||
|
|
2c63376782 | ||
|
|
f5356dbcb6 | ||
|
|
45ecacfb04 | ||
|
|
4327684f9f | ||
|
|
8997a24996 | ||
|
|
5a6a565b0f | ||
|
|
d39fff2e4a | ||
|
|
ab12e72cc5 | ||
|
|
8a2e015048 | ||
|
|
83de087b0b | ||
|
|
5dea28a3cb | ||
|
|
956841a76e | ||
|
|
3f03ffb27b | ||
|
|
5b685bc26d | ||
|
|
6b255eabec | ||
|
|
1da0bed725 | ||
|
|
a806bc7d0f | ||
|
|
e0484d6fd6 | ||
|
|
60a9463708 | ||
|
|
f476a62144 | ||
|
|
acd75771e1 | ||
|
|
0d2667432c | ||
|
|
9d70b1a9f6 | ||
|
|
7af6cae278 | ||
|
|
51f7202b93 | ||
|
|
c6c2a2fe5a | ||
|
|
116d70d08a | ||
|
|
fdf453d34e | ||
|
|
404fe069cd | ||
|
|
6c0b81b921 | ||
|
|
ca93874971 | ||
|
|
1423c51b41 | ||
|
|
2fb5214222 | ||
|
|
d72c69a59c | ||
|
|
219eca5190 | ||
|
|
253ce993c5 | ||
|
|
a3494d12e6 | ||
|
|
f1871cfb6d | ||
|
|
ae5813f7a5 | ||
|
|
4825c28643 | ||
|
|
4572086549 | ||
|
|
b4094bc98e | ||
|
|
745d0edc82 | ||
|
|
e88530da19 | ||
|
|
cad9f01722 | ||
|
|
f913bbb1f0 | ||
|
|
2f92c2c869 | ||
|
|
341b0252e4 | ||
|
|
085aba686e | ||
|
|
cb0e7cc67c | ||
|
|
71bedc89b1 | ||
|
|
adb385b710 | ||
|
|
679be6d208 | ||
|
|
7fae42087b | ||
|
|
132b5f2bf2 | ||
|
|
a36acadd04 | ||
|
|
a993f40532 | ||
|
|
27c3858e1a | ||
|
|
c8f314a7e4 | ||
|
|
56c5f2fb6d | ||
|
|
ceb540536c | ||
|
|
7668c26ce5 | ||
|
|
e689f5eaf4 | ||
|
|
768bb2b5a7 | ||
|
|
88f2b19765 | ||
|
|
871e8fcce7 | ||
|
|
fa7186b3d8 | ||
|
|
a145f83fa8 | ||
|
|
73f676a83d | ||
|
|
6d9347acec | ||
|
|
6c1c61a7ad | ||
|
|
ae6af54bda | ||
|
|
391cb1424a | ||
|
|
74826ea91d | ||
|
|
5e479b501e | ||
|
|
40986668de | ||
|
|
30ed19d540 | ||
|
|
8f4fae7995 | ||
|
|
7e4ef83906 | ||
|
|
564571f449 | ||
|
|
b6d17b1ff7 | ||
|
|
88e22d953c | ||
|
|
de6a463d2d | ||
|
|
632ebe5593 | ||
|
|
65a43ecd3e | ||
|
|
18601f04a2 | ||
|
|
073208836a | ||
|
|
58a745ec2f | ||
|
|
2b4e46ce4e | ||
|
|
902651a196 | ||
|
|
bc24c2b11d | ||
|
|
9fefa6c1ee | ||
|
|
368d648b65 | ||
|
|
37eed5fcfe | ||
|
|
fd82ad95b7 | ||
|
|
21821c31d2 | ||
|
|
0bfac990d2 | ||
|
|
bc4443fda9 | ||
|
|
bea81b0364 | ||
|
|
a616fc38e7 | ||
|
|
e8ad33c0f1 | ||
|
|
8d25577bdb | ||
|
|
fc7f10aef1 | ||
|
|
44a28e2afe | ||
|
|
818b2d1af5 | ||
|
|
9147e5c10c | ||
|
|
d5727a6a1b | ||
|
|
6c84a01950 | ||
|
|
f77249e8e9 | ||
|
|
6bce6f4874 | ||
|
|
0d080ffc38 | ||
|
|
568607231f | ||
|
|
88068613a1 | ||
|
|
1e09b3fb4d | ||
|
|
4d1e091af6 | ||
|
|
b22bf7485e | ||
|
|
bcdd9c0567 | ||
|
|
05b1f52171 | ||
|
|
edfb427a23 | ||
|
|
b7fafdbf02 | ||
|
|
f39faf6638 | ||
|
|
7e7d860c9e | ||
|
|
ae93efef57 | ||
|
|
3c7fb093db | ||
|
|
ec4a55e1f8 | ||
|
|
b0f3839426 | ||
|
|
a537f0f91d | ||
|
|
11f29c12c5 | ||
|
|
e7631ce9cc | ||
|
|
481163a756 | ||
|
|
281ec6693d | ||
|
|
9820bd5772 | ||
|
|
75f4f0c3e6 | ||
|
|
591193b748 | ||
|
|
2628ba7dd8 | ||
|
|
2fd0935bf5 | ||
|
|
7683b2675a | ||
|
|
ea7024aae4 | ||
|
|
be8cbce23e | ||
|
|
9c2b8426a9 | ||
|
|
beb4f94fd2 | ||
|
|
f39ca33aa5 | ||
|
|
7743ad968c | ||
|
|
7470df4cf6 | ||
|
|
aef8400841 | ||
|
|
babd7ad871 | ||
|
|
4000cc3d55 | ||
|
|
3fc7629b3a | ||
|
|
9dbd4cdd41 | ||
|
|
3d45363c8f | ||
|
|
e118cc1a20 | ||
|
|
bc8a26223b | ||
|
|
9e6998bc1a | ||
|
|
560c92cc0e | ||
|
|
699c42cce4 | ||
|
|
f6ba087539 | ||
|
|
5fb096865c | ||
|
|
ff69cbe259 | ||
|
|
be0668561f | ||
|
|
7af0aab07f | ||
|
|
07b2a74a66 | ||
|
|
07150962a2 | ||
|
|
bfee94c7bf | ||
|
|
810d959fbf | ||
|
|
639eb9a267 | ||
|
|
ec398760c6 | ||
|
|
7a8ac8bd9c | ||
|
|
86f9031b67 | ||
|
|
335c024e6d | ||
|
|
b66b05dcf6 | ||
|
|
32a9267af2 | ||
|
|
1338b43e10 | ||
|
|
ec8b14e8f1 | ||
|
|
47c03d03c8 | ||
|
|
fb7eeebfdb | ||
|
|
d74cf98f6f | ||
|
|
2cba5b94ec | ||
|
|
6bd199a0b3 | ||
|
|
4c2cb60412 | ||
|
|
b3ea7f0e8d | ||
|
|
c761608f27 | ||
|
|
7753202623 | ||
|
|
2cc545762e | ||
|
|
578c28df92 | ||
|
|
d93c46fe20 | ||
|
|
53d223b9c5 | ||
|
|
cf4c754e57 | ||
|
|
3e5c355543 | ||
|
|
59072ee932 | ||
|
|
ae2077ab7c | ||
|
|
02e0cd8717 | ||
|
|
d16b27cf3b | ||
|
|
253171c2b3 | ||
|
|
36a95ad57c | ||
|
|
f14d06b599 | ||
|
|
4baca9cfc9 | ||
|
|
0ae7c19c30 | ||
|
|
e525b32c18 | ||
|
|
e3d13d534e | ||
|
|
e73ea97ea0 | ||
|
|
fb9bbc3a51 | ||
|
|
bdfb810212 | ||
|
|
f1c6c1b321 | ||
|
|
6a218d109a | ||
|
|
a6dd6ab984 | ||
|
|
0c0c982bc2 | ||
|
|
bcf4c4d1a3 | ||
|
|
e4c36574b9 | ||
|
|
0be950c42a | ||
|
|
ad7c9688b9 | ||
|
|
ef257649a8 | ||
|
|
cd4d2e4f53 | ||
|
|
9caf32de38 | ||
|
|
43de5c69e9 | ||
|
|
85d52d15c2 | ||
|
|
832b0c4fe3 | ||
|
|
57ee00bf3e | ||
|
|
53181ea34c | ||
|
|
fa6bb8d27f | ||
|
|
1cbed758a9 | ||
|
|
a1774ee426 | ||
|
|
9df1fc731d | ||
|
|
2b0d509230 | ||
|
|
8e7a3a9157 | ||
|
|
600d1c209b | ||
|
|
d4f1916382 | ||
|
|
706505cc50 | ||
|
|
445baecb56 | ||
|
|
5dd5414bf1 | ||
|
|
833caf2f81 | ||
|
|
1d36f05abc | ||
|
|
8d12ade0bf | ||
|
|
58c4533939 | ||
|
|
d110dcaa35 | ||
|
|
e500e04418 | ||
|
|
886b559b50 | ||
|
|
b2ea2d4420 | ||
|
|
9e1f272e29 | ||
|
|
8612e0d1e9 | ||
|
|
894fce098f | ||
|
|
b4daad5c8d | ||
|
|
6dc1698817 | ||
|
|
56e91af8ab | ||
|
|
7ab405a2c2 | ||
|
|
59641cb952 | ||
|
|
3761110604 | ||
|
|
0e8b8da845 | ||
|
|
3eb3875de9 | ||
|
|
4c5a3aeabb | ||
|
|
34e1adddf9 | ||
|
|
58f97c65e1 | ||
|
|
4089dfa18b | ||
|
|
b903a25092 | ||
|
|
306b8a6171 | ||
|
|
9f15a61727 | ||
|
|
4aef6bb285 | ||
|
|
72dbe631ec | ||
|
|
a8e5894c95 | ||
|
|
e5509f607d | ||
|
|
dfbf4db57f | ||
|
|
f948575446 | ||
|
|
3dbf8446c2 | ||
|
|
4361efb956 | ||
|
|
6ba714e4e4 | ||
|
|
45b20dffda | ||
|
|
08996215b2 | ||
|
|
dfe932a4c5 | ||
|
|
a61b077d3f | ||
|
|
f36b84de3c | ||
|
|
01f10cfc09 | ||
|
|
9a9c1c312c | ||
|
|
a3f396ab19 | ||
|
|
14352ad21a | ||
|
|
e46efc1121 | ||
|
|
38ebe91674 | ||
|
|
684dbfdc0b | ||
|
|
58c2c2cd8f | ||
|
|
656af888c9 | ||
|
|
4798821192 | ||
|
|
8ee2840b45 | ||
|
|
93157bb577 | ||
|
|
b9aa9e3d3a | ||
|
|
a0ce296668 | ||
|
|
5f6cc6490c | ||
|
|
5dbd4ea616 | ||
|
|
9e899f1d8a | ||
|
|
d73176759f | ||
|
|
609aa386f0 | ||
|
|
d04872bac8 | ||
|
|
2ac1db0fac | ||
|
|
00b132d8b4 | ||
|
|
32aff6623f | ||
|
|
ef54bd7d52 | ||
|
|
7b5348ad40 | ||
|
|
a742603f54 | ||
|
|
433adbb0b4 | ||
|
|
57934c3e8b | ||
|
|
121de0b862 | ||
|
|
b48878a766 | ||
|
|
5d9b50ca55 | ||
|
|
081efe6898 | ||
|
|
249d793b5d | ||
|
|
8b64925407 | ||
|
|
fc804acdb0 | ||
|
|
2bed07f7c6 | ||
|
|
dbe3b34609 | ||
|
|
47395bf3ce | ||
|
|
5bd0a01d53 | ||
|
|
c2f9097983 | ||
|
|
57e63a4456 | ||
|
|
bc09603add | ||
|
|
5ecfc745da | ||
|
|
421adade52 | ||
|
|
c382001253 | ||
|
|
8b5325ba1c | ||
|
|
eeb8a78741 | ||
|
|
c5bc5c7f09 | ||
|
|
879865e625 | ||
|
|
2ec4510850 | ||
|
|
96c6ec658c | ||
|
|
a0f282a759 | ||
|
|
1cf50e863d | ||
|
|
11e3397421 | ||
|
|
5ca4553e70 | ||
|
|
3a9e205730 | ||
|
|
37eb6f85eb | ||
|
|
87e249f2a4 | ||
|
|
40af25998f | ||
|
|
0d80532bf1 | ||
|
|
424de1bf91 | ||
|
|
42752f8145 | ||
|
|
82a7061849 | ||
|
|
be561ec8dc | ||
|
|
8097b402aa | ||
|
|
b0f165a744 | ||
|
|
d005b97042 | ||
|
|
98d63904e9 | ||
|
|
aa06744c4b | ||
|
|
7e35ed7491 | ||
|
|
aef96da994 | ||
|
|
8edc9bee06 | ||
|
|
bd04471c6a | ||
|
|
3930dae56a | ||
|
|
d7faa543e2 | ||
|
|
47ca48e5a5 | ||
|
|
0a260348ed | ||
|
|
0503bd73ae | ||
|
|
d7462f2f9d | ||
|
|
8ce8f81830 | ||
|
|
7fdef3b40f | ||
|
|
adffeda273 | ||
|
|
c21f927f01 | ||
|
|
8bce5c11ba | ||
|
|
d89d667f8f | ||
|
|
ad98452cbf | ||
|
|
6f63c550a6 | ||
|
|
b3736dfe32 | ||
|
|
031644c1b0 | ||
|
|
28f1243fb4 | ||
|
|
7902dfb3ef | ||
|
|
8df8a1e657 | ||
|
|
83cda121c3 | ||
|
|
5500ee9250 | ||
|
|
bf8dc55deb | ||
|
|
ee6c2f68c6 | ||
|
|
ff71ee1081 | ||
|
|
0dbfca8c29 | ||
|
|
460f255fd4 | ||
|
|
43209411b9 | ||
|
|
cd241c2e74 | ||
|
|
0670ba8a2c | ||
|
|
443919ab31 | ||
|
|
be417381ed | ||
|
|
a069093314 | ||
|
|
e7dce71239 | ||
|
|
d06a83b623 | ||
|
|
3774a856cf | ||
|
|
5b6f39ab90 | ||
|
|
4080d07bcc | ||
|
|
39e63e302d | ||
|
|
30ed837ad8 | ||
|
|
1d4e246d6a | ||
|
|
eff1c1d031 | ||
|
|
1e7eaff92e | ||
|
|
eb30fba6d3 | ||
|
|
c59f7fdbc0 | ||
|
|
e449fc6e2e | ||
|
|
fbad844a08 | ||
|
|
f52f913043 | ||
|
|
346ef9c158 | ||
|
|
5038bd5cf7 | ||
|
|
b63cefa98b | ||
|
|
f8375a1155 | ||
|
|
34424a8f95 | ||
|
|
c883572de8 | ||
|
|
a53b4f9c94 | ||
|
|
d1bba0a8e2 | ||
|
|
d21e127bd7 | ||
|
|
a6bbd4ad30 | ||
|
|
9ce9fa76c6 | ||
|
|
f8bfcb87bc | ||
|
|
cfe05fe248 | ||
|
|
9b1592b3f1 | ||
|
|
cff3f102e1 | ||
|
|
f1a1557ca5 | ||
|
|
450623aa69 | ||
|
|
899342622e | ||
|
|
e3523066c3 | ||
|
|
c0cc10ecd7 | ||
|
|
5ca34a53d2 | ||
|
|
7fa62838ec | ||
|
|
3801696adc | ||
|
|
741c3251ea | ||
|
|
33285ed1b6 | ||
|
|
1e5d655fc6 | ||
|
|
dc7455c4e4 | ||
|
|
4f5ad8e8fc | ||
|
|
6516ab7ffd | ||
|
|
e64a10b9d6 | ||
|
|
e0358d784b | ||
|
|
b0e3606382 | ||
|
|
adf04ff4f6 | ||
|
|
ec227452e9 | ||
|
|
7e565b9029 | ||
|
|
9ae85f962a | ||
|
|
b90005dc11 | ||
|
|
70b05bf7fb | ||
|
|
178e6d9394 | ||
|
|
cb38a0921d | ||
|
|
fc951e5dc1 | ||
|
|
1443d8e559 | ||
|
|
b5e52ed087 | ||
|
|
a46cac8203 | ||
|
|
a679d1bcb5 | ||
|
|
127e11fe1f | ||
|
|
4f8df007e7 | ||
|
|
3074fd5911 | ||
|
|
b1e860dea2 | ||
|
|
2cbfeaee98 | ||
|
|
c06de3372d | ||
|
|
80623a8e46 | ||
|
|
5ad5341f5b | ||
|
|
ad539cd509 | ||
|
|
0446cc7833 | ||
|
|
02dd985e8f | ||
|
|
9377dc0844 | ||
|
|
9e2b0cc1ed | ||
|
|
dd5c4455fe | ||
|
|
f70b7ad3da | ||
|
|
1fa5320275 | ||
|
|
3d97bef79e | ||
|
|
2ba0b8ccdf | ||
|
|
bd7df38310 | ||
|
|
3c014999d8 | ||
|
|
c2d6ce83c0 | ||
|
|
f9d1f18ad1 | ||
|
|
fb40660650 | ||
|
|
125ef4bead | ||
|
|
0ee942db25 | ||
|
|
07661ea19a | ||
|
|
6a6fd4be1c | ||
|
|
ac5f43c15b | ||
|
|
c398a10064 | ||
|
|
bedca8087e | ||
|
|
d7611c066b | ||
|
|
ec009f1a8c | ||
|
|
78bba35f34 | ||
|
|
21d5273bb9 | ||
|
|
d5e73cf360 | ||
|
|
c0b2a779e0 | ||
|
|
e495f2ae5d | ||
|
|
6c3ed1fb80 | ||
|
|
9024856a77 | ||
|
|
b6f00f6f57 | ||
|
|
67fa20c45e | ||
|
|
6e48ffc6dc | ||
|
|
9db8e788ff | ||
|
|
28bf0458e4 | ||
|
|
5919dc41b9 | ||
|
|
0ce9704eee | ||
|
|
76086479ed | ||
|
|
0d3be81421 | ||
|
|
1b8e492f63 | ||
|
|
4bfb815297 | ||
|
|
cc502f6c95 | ||
|
|
faa820e992 | ||
|
|
3b58806c8a | ||
|
|
ab6a8ee717 | ||
|
|
9479062358 | ||
|
|
ba1a59622a | ||
|
|
0c5a2aa96d | ||
|
|
00a70c11a7 | ||
|
|
2dc98fa7f7 | ||
|
|
289058c25d | ||
|
|
c2951d0a0f | ||
|
|
9f42abf789 | ||
|
|
d0fb8aea03 | ||
|
|
856d6f523a | ||
|
|
47d1f973e4 | ||
|
|
0a8fe6d7ba | ||
|
|
d6ac283388 | ||
|
|
9bf8bd97b2 | ||
|
|
43c634f477 | ||
|
|
0feb6ac3f9 | ||
|
|
2dd185288d | ||
|
|
f273cd8fd1 | ||
|
|
3ac31a96a6 | ||
|
|
e340923623 | ||
|
|
9b3ef6da89 | ||
|
|
cbcce8d4e3 | ||
|
|
f35902c796 | ||
|
|
a576912e03 | ||
|
|
d6b7af889d | ||
|
|
a4fa3159ca | ||
|
|
283108dc28 | ||
|
|
236abce07b | ||
|
|
c1df4a3c3e | ||
|
|
4f4b1cc140 | ||
|
|
2c31564f5d | ||
|
|
69a0ddd03c | ||
|
|
bb9b7b74aa | ||
|
|
9887871d01 | ||
|
|
1300ae2521 | ||
|
|
a76ce8b0f6 | ||
|
|
a8712f9aba | ||
|
|
58a939f2ad | ||
|
|
428b61d6d4 | ||
|
|
1ebe5286f9 | ||
|
|
2abba4d266 | ||
|
|
32944f1548 | ||
|
|
a7f853e0f0 | ||
|
|
e59c73ae53 | ||
|
|
d9bc654fc7 | ||
|
|
bc5e4eb48f | ||
|
|
028b7d35db | ||
|
|
a091751e09 | ||
|
|
cc8dfc693b | ||
|
|
9a1c466368 | ||
|
|
88f26d8829 | ||
|
|
b0d0a79fc5 | ||
|
|
3146ec1c3b | ||
|
|
19fbed782d | ||
|
|
b1d6e0eb21 | ||
|
|
47181da49e | ||
|
|
3d83fed14f | ||
|
|
31f6b2ab12 | ||
|
|
8c6c13573b | ||
|
|
528f3d6a0b | ||
|
|
bb33bbcc39 | ||
|
|
b3d981c585 | ||
|
|
45f0fd503c | ||
|
|
933c9de691 | ||
|
|
8f6c989dd1 | ||
|
|
f034a9f4c9 | ||
|
|
5775505080 | ||
|
|
4e8040a000 | ||
|
|
403d5ae92e | ||
|
|
df1e759c8d | ||
|
|
0b906bda78 | ||
|
|
61d0d5ced6 | ||
|
|
77b1f5d814 | ||
|
|
a18dc63437 | ||
|
|
a4a9a51bea | ||
|
|
62aa34d905 | ||
|
|
5ec8badab4 | ||
|
|
0cc305bfc9 | ||
|
|
b368fd967b | ||
|
|
92779e0549 | ||
|
|
fbf30a3423 | ||
|
|
9046e083ee | ||
|
|
f77db8cb20 | ||
|
|
11e385e1c4 | ||
|
|
db2ba602a8 | ||
|
|
2324ef9f15 | ||
|
|
3152dcbe68 | ||
|
|
037bc0c3cf | ||
|
|
ed492568e6 | ||
|
|
5ac63e3b3b | ||
|
|
d7d5d116d7 | ||
|
|
d962cf9949 | ||
|
|
2ed55a22a6 | ||
|
|
4744a4cf6d | ||
|
|
59dcf4c037 | ||
|
|
d765b03365 | ||
|
|
1af129245c | ||
|
|
3fe702fe4d | ||
|
|
a9846855c4 | ||
|
|
81f7ae46d3 | ||
|
|
40b7fa67cb | ||
|
|
ceb595173f | ||
|
|
66575a5a34 | ||
|
|
39be73681d | ||
|
|
cdd7479f8c | ||
|
|
026b2b245f | ||
|
|
b711d3adc6 | ||
|
|
1f1307cf26 | ||
|
|
0bcd31512c | ||
|
|
0555196772 | ||
|
|
0fcad36c07 | ||
|
|
56eb600d1f | ||
|
|
590deef695 | ||
|
|
58f9b729fe | ||
|
|
3000649fb9 | ||
|
|
de7d68b52a | ||
|
|
c9859bba96 | ||
|
|
23bdc994d4 | ||
|
|
e9807343af | ||
|
|
87d513c51d | ||
|
|
f08c69f1e9 | ||
|
|
5380822841 | ||
|
|
71cf878e8b | ||
|
|
bb34403be8 | ||
|
|
698d19b305 | ||
|
|
6ac80edad7 | ||
|
|
eed29f503a | ||
|
|
ac382264c3 | ||
|
|
16ec5b36c1 | ||
|
|
9a17443b93 | ||
|
|
801533bf26 | ||
|
|
f9f95eeda1 | ||
|
|
4fee7fe7ad | ||
|
|
bd467736a5 | ||
|
|
0e19738798 | ||
|
|
771ea9974d | ||
|
|
a989b31954 | ||
|
|
ca426ea430 | ||
|
|
1166a79c19 | ||
|
|
b0c53ed068 | ||
|
|
142ac7356f | ||
|
|
f780eb9c33 | ||
|
|
ef09a30239 | ||
|
|
6414cb7129 | ||
|
|
958f0ac78b | ||
|
|
d4bcc2efe3 | ||
|
|
7a0cda82ff | ||
|
|
b6b68f701a | ||
|
|
d4139f0312 | ||
|
|
541bafd121 | ||
|
|
202a4d14fb | ||
|
|
2915c5861c | ||
|
|
01122c63fb | ||
|
|
89f653cc31 | ||
|
|
b504ac81d4 | ||
|
|
9b25a3c950 | ||
|
|
d3cca04c15 | ||
|
|
148e63e226 | ||
|
|
e6882a42d6 | ||
|
|
471de3a25f | ||
|
|
ab6d0a9040 | ||
|
|
da5acf20e4 | ||
|
|
702c37af32 | ||
|
|
0251d917b9 | ||
|
|
73b0dddaa1 | ||
|
|
d5cd9a0e1b | ||
|
|
58245ed8d2 | ||
|
|
9776a049df | ||
|
|
5c8e6dd5a4 | ||
|
|
9ce963f1cd | ||
|
|
0fcc3f7c0e | ||
|
|
fa956540ae | ||
|
|
7fbffb56ae | ||
|
|
6d05b86728 | ||
|
|
53241eb1be | ||
|
|
171da8bc68 | ||
|
|
e9b4443a9e | ||
|
|
465de39a53 | ||
|
|
dc78a44e9c | ||
|
|
ed6ea91528 | ||
|
|
09b6a095e4 | ||
|
|
96aee71ed8 | ||
|
|
7fb6c78784 | ||
|
|
5933c55c13 | ||
|
|
2241047976 | ||
|
|
434066aa6f | ||
|
|
1c5044b90d | ||
|
|
407fc98930 | ||
|
|
8bd7f187a3 | ||
|
|
798c5f8d85 | ||
|
|
aefe74e934 | ||
|
|
4f27b2c167 | ||
|
|
213151ed9d | ||
|
|
93637f5fec | ||
|
|
e233be5c78 | ||
|
|
137bd469dc | ||
|
|
62c55a9de1 | ||
|
|
07c90bc9b8 | ||
|
|
cc3f0de843 | ||
|
|
e533f722ff | ||
|
|
cdbd68254f | ||
|
|
eb94927370 | ||
|
|
0ba3eb8908 | ||
|
|
fe87e22b63 | ||
|
|
f0e360d2fd | ||
|
|
e0a750e253 | ||
|
|
182c8a4ff7 | ||
|
|
2f6021b0aa | ||
|
|
8c28dc9e89 | ||
|
|
54abd673f1 | ||
|
|
57635ff586 | ||
|
|
458f502184 | ||
|
|
3301ee5572 | ||
|
|
236b5dc5c7 | ||
|
|
4420d0df8c | ||
|
|
432ae29bcd | ||
|
|
3d472de5ac | ||
|
|
5e942de8bc | ||
|
|
41adb92790 | ||
|
|
3e125fdb91 | ||
|
|
8aaa7b7322 | ||
|
|
0f4b48bd4a | ||
|
|
52a399f0ed | ||
|
|
ae66e66aa8 | ||
|
|
ba48b736e0 | ||
|
|
9baed1ab90 | ||
|
|
b11f6b84d3 | ||
|
|
6a05a79824 | ||
|
|
6a68a28f76 | ||
|
|
e972fefa8b | ||
|
|
30639e67df | ||
|
|
a4b8e2134f | ||
|
|
7bd39acfdc | ||
|
|
3a03984db1 | ||
|
|
7886758127 | ||
|
|
280500cdf6 | ||
|
|
982ef2d355 | ||
|
|
d2e8f00e3f | ||
|
|
9e4cd6e68b | ||
|
|
c9171b9972 | ||
|
|
eedc5b7307 | ||
|
|
f9452241a3 | ||
|
|
6e9be15dac | ||
|
|
07381c9a7a | ||
|
|
bd4f5cee31 | ||
|
|
0a8ebf9950 | ||
|
|
73c5bc61fc | ||
|
|
7253b8fa9d | ||
|
|
42ebc081a8 | ||
|
|
6e5502628e | ||
|
|
b204671931 | ||
|
|
d035348896 | ||
|
|
72433745bc | ||
|
|
2436ada221 | ||
|
|
4a5141c15c | ||
|
|
1015537a91 | ||
|
|
89cafdaa0b | ||
|
|
3723517d7d | ||
|
|
c095bc7604 | ||
|
|
e312e3fe8d | ||
|
|
70aeebaf66 | ||
|
|
f9ca9cc74c | ||
|
|
d9646f939c | ||
|
|
8f0292d836 | ||
|
|
95b137ac13 | ||
|
|
b1fcaeb97f | ||
|
|
31def1147a | ||
|
|
0a80765589 | ||
|
|
e34a053dd0 | ||
|
|
5e790efdce | ||
|
|
005cdf53bd | ||
|
|
429f74a7c7 | ||
|
|
1f72765227 | ||
|
|
91f5e104d2 | ||
|
|
994741f323 | ||
|
|
a4ba3340e1 | ||
|
|
5852b2aaa6 | ||
|
|
257547acbd | ||
|
|
a1bfcdb587 | ||
|
|
ce24d867a2 | ||
|
|
0979c5dbbc | ||
|
|
7db203ca77 | ||
|
|
0a205087a4 | ||
|
|
ca6d34def5 | ||
|
|
32485d6e5a | ||
|
|
5fdeec7139 | ||
|
|
c61891fe2b | ||
|
|
fc28c2fb7d | ||
|
|
c607e1a4b1 | ||
|
|
a3adc1a33e | ||
|
|
d2a6e18452 | ||
|
|
59ad9b76df | ||
|
|
55891213b4 | ||
|
|
6e57e08280 | ||
|
|
a6ea91af40 | ||
|
|
c673db42aa | ||
|
|
cc7deaa5a3 | ||
|
|
5feef90401 | ||
|
|
61aeceb467 | ||
|
|
1e8fad2fda | ||
|
|
067de29750 | ||
|
|
61c4c601c0 | ||
|
|
1ea533da24 | ||
|
|
bfbf5cce61 | ||
|
|
e8aa5c93ee | ||
|
|
7cbfad9369 | ||
|
|
d2510f49ca | ||
|
|
4abac03238 | ||
|
|
f2093e2153 | ||
|
|
335ff49ef3 | ||
|
|
06090d7236 | ||
|
|
a65bac9b8a | ||
|
|
7981b42c23 | ||
|
|
5afc6cd7d0 | ||
|
|
9dff069011 | ||
|
|
b29a2bf7d8 | ||
|
|
6b5131bbde | ||
|
|
777bbfeef1 | ||
|
|
af73ce2f9c | ||
|
|
a4c47565be | ||
|
|
c1e2c7ec36 | ||
|
|
21e82c2379 | ||
|
|
bb9be72863 | ||
|
|
4a87be372d | ||
|
|
d2e0a38bf3 | ||
|
|
30a322f481 | ||
|
|
6b2f1edf0d | ||
|
|
850ea775de | ||
|
|
e7a9aba3c0 | ||
|
|
04105c3c5e | ||
|
|
1e59e5d712 | ||
|
|
eb163dee88 | ||
|
|
d8196c58ab | ||
|
|
d216114364 | ||
|
|
f95f245644 | ||
|
|
6e161ac83e | ||
|
|
e06402f468 | ||
|
|
25087e3cbf | ||
|
|
b7b868e6ba | ||
|
|
bc100ae8e2 | ||
|
|
c779267486 | ||
|
|
942606f82b | ||
|
|
c020106535 | ||
|
|
bf66df57b1 | ||
|
|
129b8efb39 | ||
|
|
ce2311c086 | ||
|
|
fcaac2ee0c | ||
|
|
f2fcee9605 | ||
|
|
8d15c9ef49 | ||
|
|
c8e58ad525 | ||
|
|
5dcc6d5f44 | ||
|
|
8c84901598 | ||
|
|
aa23cd5c64 | ||
|
|
4304e19cbb | ||
|
|
4e2dfd8a13 | ||
|
|
4a48d11b74 | ||
|
|
eb94ea5817 | ||
|
|
a49e918847 | ||
|
|
4337e5a964 | ||
|
|
187053c4e8 | ||
|
|
199da1f824 | ||
|
|
2d54e9f27f | ||
|
|
84f962346c | ||
|
|
bf69ac13b2 | ||
|
|
3229126f14 | ||
|
|
7f244453fc | ||
|
|
489923413f | ||
|
|
ddf5e8f5eb | ||
|
|
3bb8686024 | ||
|
|
e6b1cbd02a | ||
|
|
f07c1a5f24 | ||
|
|
2c5a7612f8 | ||
|
|
daae9ac98e | ||
|
|
9e6cafa9bd | ||
|
|
91cedcfc1a | ||
|
|
303af80dd7 | ||
|
|
82e0f0609a | ||
|
|
e1fcb6a985 | ||
|
|
d439cb88d5 | ||
|
|
1bf5a2dd9e | ||
|
|
da252b3d7e | ||
|
|
9dac7bc98d | ||
|
|
cbe04c223b | ||
|
|
2f6a8e8f72 | ||
|
|
62fb85ded9 | ||
|
|
d51d698036 | ||
|
|
e7add92b7c | ||
|
|
4c542e1867 | ||
|
|
afe9e7a85c | ||
|
|
82f30e1820 | ||
|
|
5f2af48c4e | ||
|
|
30aab09fe2 | ||
|
|
4993c217bb | ||
|
|
db8b994535 | ||
|
|
7f92d0a75a | ||
|
|
3fcde9994b | ||
|
|
44d6eebecc | ||
|
|
75227b7a42 | ||
|
|
7afc934919 | ||
|
|
0937be6d2e | ||
|
|
81e69b9844 | ||
|
|
4084ac4763 | ||
|
|
8bee4eaa7c | ||
|
|
e66bf0ef57 | ||
|
|
591dce5921 | ||
|
|
7cf96dde23 | ||
|
|
8908d3aa50 | ||
|
|
7ec4e86160 | ||
|
|
203d1ba701 | ||
|
|
96a307bafa | ||
|
|
f4cec5f210 | ||
|
|
a7874ca46e | ||
|
|
1bca252979 | ||
|
|
3ba805802a | ||
|
|
75a04bb354 | ||
|
|
883f406db6 | ||
|
|
81ea7d06d4 | ||
|
|
0edf37a239 | ||
|
|
1dce853e2a | ||
|
|
d6ca32fe3a | ||
|
|
b02374bdc1 | ||
|
|
c8d26461e6 | ||
|
|
36fe38c145 | ||
|
|
db0880ea8b | ||
|
|
20392e8e24 | ||
|
|
e6d6ca53df | ||
|
|
2abd1cb321 | ||
|
|
ff5c0543d5 | ||
|
|
1e6067d100 | ||
|
|
55100f7bc3 | ||
|
|
d21e6c4274 | ||
|
|
6641152100 | ||
|
|
d9ccd5c6a2 | ||
|
|
daf94bd66d | ||
|
|
b8f73482da | ||
|
|
fa36ab417b | ||
|
|
bdab8a62a3 | ||
|
|
dfd2830ceb | ||
|
|
36a84261b3 | ||
|
|
e5d4e91e61 | ||
|
|
5787c7d664 | ||
|
|
1518ea71f4 | ||
|
|
e235ac6fd6 | ||
|
|
69c8e6a0fd | ||
|
|
e395e0fa1b | ||
|
|
19fbad748c | ||
|
|
c9023353f6 | ||
|
|
921afb04a4 | ||
|
|
578ca15268 | ||
|
|
5f61efa26b | ||
|
|
92607e2eee | ||
|
|
78b1088b41 | ||
|
|
51f22680f4 | ||
|
|
5891063bff | ||
|
|
2ad591f784 | ||
|
|
6b12eed38b | ||
|
|
d0df3d5a52 | ||
|
|
ca289363c3 | ||
|
|
999519f85c | ||
|
|
21bc9da02e | ||
|
|
e05cdddab0 | ||
|
|
a07128fc2c | ||
|
|
e69979f0d6 | ||
|
|
ee1a5d0ac4 | ||
|
|
8a60cbd61f | ||
|
|
17f6291a1d | ||
|
|
71598f7dcc | ||
|
|
7e63561092 | ||
|
|
54e1ffa91d | ||
|
|
a82b05bc75 | ||
|
|
f862e184a6 | ||
|
|
5c19b0b58d | ||
|
|
2fa2865f29 | ||
|
|
9e04afc7a3 | ||
|
|
5ad1c6c323 | ||
|
|
3f4595f86e | ||
|
|
66fcc9e1e2 | ||
|
|
9e9d4f294a | ||
|
|
d01d804e89 | ||
|
|
eb843d94a5 | ||
|
|
969bcd0a48 | ||
|
|
982e194a98 | ||
|
|
f8be01fe59 | ||
|
|
c88bf27f3d | ||
|
|
a283824122 | ||
|
|
def1008e2d | ||
|
|
ff0a25b704 | ||
|
|
f456994b61 | ||
|
|
9988994129 | ||
|
|
98cf09f4e2 | ||
|
|
6941ec099c | ||
|
|
0c99d9b5ef | ||
|
|
0fe812f218 | ||
|
|
60acb71aa6 | ||
|
|
b28bc42504 | ||
|
|
bf859a826e | ||
|
|
70cc16ea8e | ||
|
|
9080fae09d | ||
|
|
c4e7f4e442 | ||
|
|
c5ce3af9fe | ||
|
|
f7fe355369 | ||
|
|
acde67213d | ||
|
|
28a0f69a52 | ||
|
|
9f9d2ee546 | ||
|
|
aabde4fb05 | ||
|
|
1f4f88ac13 | ||
|
|
8694d6a67b | ||
|
|
4dc0f5df8e | ||
|
|
1c09d40851 | ||
|
|
c9598e1612 | ||
|
|
1c37c15fc2 | ||
|
|
e068428601 | ||
|
|
1a3a8a09e1 | ||
|
|
f80fe998e8 | ||
|
|
974680e1a4 | ||
|
|
3b8202f207 | ||
|
|
f6da5047c2 | ||
|
|
27b03a7675 | ||
|
|
edf7c36145 | ||
|
|
4f049111b1 | ||
|
|
0df0d16fa4 | ||
|
|
0735388cb1 | ||
|
|
87088d016c | ||
|
|
a06b7b6b38 | ||
|
|
c84d500bd5 | ||
|
|
1ad8f0f5ff | ||
|
|
4ea3532fe1 | ||
|
|
a1e21546c8 | ||
|
|
f680b4592b | ||
|
|
b0ab43d19d | ||
|
|
60820e413d | ||
|
|
9e338aabbc | ||
|
|
6a8afc4282 | ||
|
|
54702d9092 | ||
|
|
120f15d645 | ||
|
|
6b306c98dc | ||
|
|
3da5eda339 | ||
|
|
2a701bd2b9 | ||
|
|
ed5740c24d | ||
|
|
d96d6831a2 | ||
|
|
5930552cdc | ||
|
|
84183910b7 | ||
|
|
48df87da98 | ||
|
|
51d4396088 | ||
|
|
78cd4ed095 | ||
|
|
69f60b7066 | ||
|
|
f0169277a0 | ||
|
|
ffdae9a05b | ||
|
|
47c5cc7ccb | ||
|
|
c664a65100 | ||
|
|
65c72a7871 | ||
|
|
76166c4aa3 | ||
|
|
ee20de3c3d | ||
|
|
3fca0657b5 | ||
|
|
7d7e57d6ee | ||
|
|
08947fd4a1 | ||
|
|
12ae2daeba | ||
|
|
fe77048619 | ||
|
|
9971dbd0ad | ||
|
|
b735567504 | ||
|
|
ba7eff60ef | ||
|
|
400598a0b1 | ||
|
|
dc6f46695a | ||
|
|
48f036d6a0 | ||
|
|
3a317daa87 | ||
|
|
8e67690f82 | ||
|
|
1594c5c08f | ||
|
|
fd4c96e4b3 | ||
|
|
37bd317391 | ||
|
|
2c53b4a8c5 | ||
|
|
5040df2416 | ||
|
|
8bc4c97215 | ||
|
|
a435d4ec18 | ||
|
|
bed6fa7eca | ||
|
|
dcd032856b | ||
|
|
bf95bc7078 | ||
|
|
ab2a982bf0 | ||
|
|
5cd1f77e2d | ||
|
|
a17a1da3b8 | ||
|
|
ecbce38f52 | ||
|
|
0693bb7a61 | ||
|
|
7f28047f82 | ||
|
|
d1fffc59cf | ||
|
|
8e799a678f | ||
|
|
a3f1733fd4 | ||
|
|
ea23c3f63d | ||
|
|
7d51ae1f07 | ||
|
|
469604dd28 | ||
|
|
3f77bc972b | ||
|
|
59263eae9e | ||
|
|
251967435d | ||
|
|
a93e50cc54 | ||
|
|
54bdabbf25 | ||
|
|
5b7445fe31 | ||
|
|
09ee6f2097 | ||
|
|
f240fabe77 | ||
|
|
bf6e493f89 | ||
|
|
75a3b82d2c | ||
|
|
9c8b442a46 | ||
|
|
1f3d8b492b | ||
|
|
5013533ad8 | ||
|
|
adc4b956dd | ||
|
|
219d1989d9 | ||
|
|
fa7f986319 | ||
|
|
ce75bc152a | ||
|
|
289e84b75d | ||
|
|
4da5a40419 | ||
|
|
7bf0b42afd | ||
|
|
5488b1d62e | ||
|
|
ef22f08115 | ||
|
|
e8c43f5979 | ||
|
|
e9bbbaf446 | ||
|
|
b932558ad6 | ||
|
|
376c64c892 | ||
|
|
548ed6e0f5 | ||
|
|
df916f1e4a | ||
|
|
847aef5b02 | ||
|
|
17654139ba | ||
|
|
e1974d9f81 | ||
|
|
fcff502d1a | ||
|
|
0e030dcb08 | ||
|
|
aa4e385b6b | ||
|
|
c9488c0384 | ||
|
|
bcf879b801 | ||
|
|
84072192b9 | ||
|
|
d786c6927f | ||
|
|
2a0113408c | ||
|
|
967d0dd730 | ||
|
|
af36549c7e | ||
|
|
6e2ce89d21 | ||
|
|
2d5fed3cd9 | ||
|
|
ba4eef0db9 | ||
|
|
872f7bdcbe | ||
|
|
8f6ca03240 | ||
|
|
35245078c9 | ||
|
|
fd8a55c57c | ||
|
|
8fce658dc1 | ||
|
|
df963fc035 | ||
|
|
ffab4a8c02 | ||
|
|
ebd1910bb8 | ||
|
|
10592ed243 | ||
|
|
3da1da968e | ||
|
|
bb2196900b | ||
|
|
8ef4460f00 | ||
|
|
a1bd202b51 | ||
|
|
3faf5cd404 | ||
|
|
d35abc991e | ||
|
|
7a29340efc | ||
|
|
cf6a346749 | ||
|
|
9f047b7dcf | ||
|
|
7a50336908 | ||
|
|
89efc6cb0a | ||
|
|
5b3b72b9aa | ||
|
|
a6d749a9c8 | ||
|
|
a570a266e5 | ||
|
|
0f5f14defe | ||
|
|
ab9a752286 | ||
|
|
8f06bf21b0 | ||
|
|
eaa099f9cc | ||
|
|
0642ceba40 | ||
|
|
0869fa55bb | ||
|
|
80b8f7b4d8 | ||
|
|
7c18b1d921 | ||
|
|
eec99dc76b | ||
|
|
6663a47d4a | ||
|
|
c654c3f5de | ||
|
|
5e48064497 | ||
|
|
9c8aba3dcd | ||
|
|
c9fe95c00c | ||
|
|
9bfa7b01b5 | ||
|
|
bbf646439a | ||
|
|
a710d5949e | ||
|
|
4abb3d2249 | ||
|
|
6cdc640977 | ||
|
|
aa662910b2 | ||
|
|
0e3faf45b1 | ||
|
|
8b25b0bbf3 | ||
|
|
dad9475005 | ||
|
|
00d3ba11d2 | ||
|
|
c7333caf7d | ||
|
|
0630b65713 | ||
|
|
69f9b05cbc | ||
|
|
74f6d1a85e | ||
|
|
e0bf7d011b | ||
|
|
12011c7208 | ||
|
|
280f0ca27f | ||
|
|
6ec0af3182 | ||
|
|
e99c40bc06 | ||
|
|
e181381bd3 | ||
|
|
6fa0e814de | ||
|
|
68191d2b47 | ||
|
|
81f7587958 | ||
|
|
d5e2acfd5b | ||
|
|
663243264b | ||
|
|
03ca00748c | ||
|
|
cbb1a4bc44 | ||
|
|
21f3ab23d3 | ||
|
|
18944d5ed8 | ||
|
|
5c6e5f7361 | ||
|
|
bd72aebd98 | ||
|
|
0278aea4f7 | ||
|
|
3c01004641 | ||
|
|
b8213569e5 | ||
|
|
4d27f9d741 | ||
|
|
3b56abf090 | ||
|
|
590ba6de1b | ||
|
|
4aa215e091 | ||
|
|
de175bff11 | ||
|
|
a6bc8d7105 | ||
|
|
e48e7caef1 | ||
|
|
015cdad2df | ||
|
|
ef6cf5fae1 | ||
|
|
797152da89 | ||
|
|
316ff45859 | ||
|
|
e0ac9ba424 | ||
|
|
09ca430b88 | ||
|
|
dda1dab6f3 | ||
|
|
fbf411c096 | ||
|
|
a3de3e221c | ||
|
|
4b0c6f2ca5 | ||
|
|
c32dc7ecd2 | ||
|
|
d6e14ca88c | ||
|
|
ebfc885745 | ||
|
|
89d7b29b12 | ||
|
|
6f5d20fd49 | ||
|
|
15bd0b2675 | ||
|
|
9132019cb3 | ||
|
|
a87cbfd7a3 | ||
|
|
d2c6c8b734 | ||
|
|
6c5be98173 | ||
|
|
d51838caf9 | ||
|
|
a61dd0ab87 | ||
|
|
d15b1f3c1e | ||
|
|
40d38b3961 | ||
|
|
addc318f29 | ||
|
|
ad124c9d95 | ||
|
|
4d48395c19 | ||
|
|
9eb0aa0de4 | ||
|
|
452b7e0e54 | ||
|
|
e10a16bc0d | ||
|
|
b26da26192 | ||
|
|
be55a26a94 | ||
|
|
22d4b22c53 | ||
|
|
00a86df321 | ||
|
|
b03cdba607 | ||
|
|
cce90e6ddc | ||
|
|
b6fc0e4db7 | ||
|
|
50ed1f0a64 | ||
|
|
f40b780b95 | ||
|
|
0f37364586 | ||
|
|
8cfff0e0bd | ||
|
|
e61963454c | ||
|
|
eac698d846 | ||
|
|
b536f98d94 | ||
|
|
469f94bddf | ||
|
|
7af0c64c30 | ||
|
|
8e6808ea61 | ||
|
|
153c0e2fc5 | ||
|
|
b18e946869 | ||
|
|
e3a341c88d | ||
|
|
7671266633 | ||
|
|
1e1f02c764 | ||
|
|
d3ec41d73f | ||
|
|
9982b1af34 | ||
|
|
133cce8bf8 | ||
|
|
bb78fc165b | ||
|
|
adfc235865 | ||
|
|
0392d60352 | ||
|
|
53ea662ef7 | ||
|
|
7a846fa458 | ||
|
|
273d7ce5d5 | ||
|
|
c378bf3842 | ||
|
|
e4de07d773 | ||
|
|
6dfb05e242 | ||
|
|
3e9d98233c | ||
|
|
8536634fa4 | ||
|
|
23b17b2635 | ||
|
|
afcf49b25d | ||
|
|
c54ad93db6 | ||
|
|
8d99a97a9e | ||
|
|
66003832b2 | ||
|
|
32b7af5834 | ||
|
|
b4f61e48de | ||
|
|
97e76a9cf2 | ||
|
|
52bfac98be | ||
|
|
0ebe4b4f0a | ||
|
|
1561525d47 | ||
|
|
d9c9e74cc8 | ||
|
|
e3193c54f4 | ||
|
|
90b0849308 | ||
|
|
01e3cc1374 | ||
|
|
e5294908ec | ||
|
|
3ed15335fe | ||
|
|
094fbb4ec8 | ||
|
|
190f1f0cb5 | ||
|
|
d908700a9c | ||
|
|
b669f81926 | ||
|
|
76c22cc896 | ||
|
|
d0d78d2953 | ||
|
|
8b5e26759f | ||
|
|
e4eb6d6fdd | ||
|
|
1a0ce0df7c | ||
|
|
c95f0fce88 | ||
|
|
2abd23b344 | ||
|
|
ccb1bc521c | ||
|
|
26163c62da | ||
|
|
8818d45d05 | ||
|
|
46941fe25a | ||
|
|
44ffc842d3 | ||
|
|
4641b8b590 | ||
|
|
148a5eebc2 | ||
|
|
523c1fadbc | ||
|
|
820652bd5e | ||
|
|
246e3b25a4 | ||
|
|
fe0e5a9101 | ||
|
|
d9a6bb5b2d | ||
|
|
c9f632c1b8 | ||
|
|
ab69ab8f80 | ||
|
|
297a95986c | ||
|
|
7c1bdbfa68 | ||
|
|
e712e8204d | ||
|
|
8e28e1a630 | ||
|
|
6d1742761c | ||
|
|
1c84a32a3c | ||
|
|
b07824489b | ||
|
|
619a8d39be | ||
|
|
9b8195d666 | ||
|
|
22d04ad729 | ||
|
|
bac3e38318 | ||
|
|
1d8e0fc3d7 | ||
|
|
086d1633df | ||
|
|
b260942e22 | ||
|
|
d7bf8b24fd | ||
|
|
0ded78eb06 | ||
|
|
c2d484a725 | ||
|
|
7ca3a9e377 | ||
|
|
2bd548fe41 | ||
|
|
d9d3076e2e | ||
|
|
b8254fdd36 | ||
|
|
562274a161 | ||
|
|
19f96241e5 | ||
|
|
d735a1fa91 | ||
|
|
40baf2627c | ||
|
|
5880636b3a | ||
|
|
531f569f3a | ||
|
|
00fcd74552 | ||
|
|
f594a0b5c0 | ||
|
|
94779133ec | ||
|
|
a2b1b38e0c | ||
|
|
cd3823f180 | ||
|
|
8451a71af7 | ||
|
|
455a2c005b | ||
|
|
4ad29e0ca5 | ||
|
|
52b19fc137 | ||
|
|
7958417f96 | ||
|
|
744618ac25 | ||
|
|
07296f19a6 | ||
|
|
db271db087 | ||
|
|
d30a24e768 | ||
|
|
2b359ea451 | ||
|
|
8af3faea16 | ||
|
|
0c5716fb81 | ||
|
|
d19a484cb0 | ||
|
|
38bf9bebc8 | ||
|
|
d79b89f79b | ||
|
|
7855d657fd | ||
|
|
67a52ae02c | ||
|
|
4b14c1e2f8 | ||
|
|
fc908f9d4a | ||
|
|
77bc3ced5d | ||
|
|
34dc835631 | ||
|
|
81b279be5f | ||
|
|
828c7bea19 | ||
|
|
b4a49636d7 | ||
|
|
1caa6d9aa5 | ||
|
|
ecc6df3301 | ||
|
|
0310e89c39 | ||
|
|
252af87d9b | ||
|
|
6732a69c2b | ||
|
|
3868f8e30f | ||
|
|
937408f3f6 | ||
|
|
e53a95e297 | ||
|
|
b74153290b | ||
|
|
0021c3522f | ||
|
|
367ad74fba | ||
|
|
0abf17cb6b | ||
|
|
be76e751e7 | ||
|
|
f8a893e6de | ||
|
|
89dfc86bfb | ||
|
|
bc894f8beb | ||
|
|
20120ecf27 | ||
|
|
a9c344d385 | ||
|
|
3cbfae7a8f | ||
|
|
90876532b9 | ||
|
|
641d4d0f87 | ||
|
|
7c12ad72b8 | ||
|
|
66e0dde1ed | ||
|
|
5a4877a141 | ||
|
|
f9b0f8c436 | ||
|
|
6552ec5f02 | ||
|
|
337b1aec53 | ||
|
|
33fff9e19b | ||
|
|
2cdaf4850d | ||
|
|
561da4b6ef | ||
|
|
3a8767ea5f | ||
|
|
4947b4c9a3 | ||
|
|
0f140b706e | ||
|
|
b4812e8182 | ||
|
|
7d94cad876 | ||
|
|
866e6987a2 | ||
|
|
524f34a461 | ||
|
|
949d93d546 | ||
|
|
bd638022df | ||
|
|
26e6d704f5 | ||
|
|
1be8b20b64 | ||
|
|
c8150ccdcc | ||
|
|
77bac52b07 | ||
|
|
3566289cb5 | ||
|
|
0b34cc3033 | ||
|
|
fdb71c6b0e | ||
|
|
ffea12305d | ||
|
|
e90f20e1d4 | ||
|
|
f58dbd71b6 | ||
|
|
b4c7a64631 | ||
|
|
e496655953 | ||
|
|
fea0e9b864 | ||
|
|
7a7fb01928 | ||
|
|
d4575841df | ||
|
|
d7e634fcfd | ||
|
|
b1e3df783d | ||
|
|
80dfcf5eaa | ||
|
|
c0d66ee649 | ||
|
|
93e8f6bbd6 | ||
|
|
cdbdaac913 | ||
|
|
9bec7a88fe | ||
|
|
50342e945d | ||
|
|
c087493f38 | ||
|
|
df3c554f27 | ||
|
|
e81994a748 | ||
|
|
0d1d75588d | ||
|
|
5ddedbbd50 | ||
|
|
fcc823c33a | ||
|
|
1a7f9d9ee0 | ||
|
|
1a2b527070 | ||
|
|
39a357fa57 | ||
|
|
d2c50df0ab | ||
|
|
5dc30c44ff | ||
|
|
01d705a3b5 | ||
|
|
fff86fd068 | ||
|
|
0fb9b51cc9 | ||
|
|
bda91cd9d5 | ||
|
|
0343430611 | ||
|
|
1df7da7836 | ||
|
|
dc018561a0 | ||
|
|
520b41215c | ||
|
|
3537680e45 | ||
|
|
d236035b72 | ||
|
|
e2e742aba2 | ||
|
|
3d8fc203f9 | ||
|
|
7b99f227cd | ||
|
|
1f68a45417 | ||
|
|
cc1619ab5d | ||
|
|
5c30c83341 | ||
|
|
d788ac4ad6 | ||
|
|
826802df21 | ||
|
|
3b4f96ab2f | ||
|
|
5a59eb6902 | ||
|
|
64293af6f7 | ||
|
|
8afd08a3d9 | ||
|
|
6a21a6fdb1 | ||
|
|
3e53787a62 | ||
|
|
9823353d8b | ||
|
|
d189221f10 | ||
|
|
271fa03cfc | ||
|
|
1fc2299801 | ||
|
|
7df278f7ed | ||
|
|
2f68f77f87 | ||
|
|
49a3974b34 | ||
|
|
7a00f3c67c | ||
|
|
e079732686 | ||
|
|
71f2680eef | ||
|
|
808a376c65 | ||
|
|
eff7cfc5fe | ||
|
|
bbb6ba4078 | ||
|
|
c10131aca8 | ||
|
|
49159a6d5c | ||
|
|
d80ba6b058 | ||
|
|
f2e188a86c | ||
|
|
2f03446c37 | ||
|
|
039b7ca85c | ||
|
|
507b27dbda | ||
|
|
78f54895e2 | ||
|
|
4ca172d40f | ||
|
|
81774ad352 | ||
|
|
ad32b31904 | ||
|
|
414bafde9c | ||
|
|
be1d8ec408 | ||
|
|
7f4effe4b6 | ||
|
|
7ca3396c8b | ||
|
|
853c204746 | ||
|
|
a22c5085d9 | ||
|
|
1021a78f46 | ||
|
|
637747ab53 | ||
|
|
15b8385e49 | ||
|
|
27d3b903d3 | ||
|
|
70b9f66f4c | ||
|
|
019779e425 | ||
|
|
951ff28688 | ||
|
|
d394702606 | ||
|
|
6f88c5d2d1 | ||
|
|
53332937c2 | ||
|
|
a79678a0cb | ||
|
|
f16b0526af | ||
|
|
808e186dae | ||
|
|
0a39cdef7c | ||
|
|
8a042cb110 | ||
|
|
2942ab3c08 | ||
|
|
1d269e9203 | ||
|
|
def0ed7a52 | ||
|
|
9d7c33228f | ||
|
|
54d5a747ba | ||
|
|
3b4c2f6d76 | ||
|
|
7968b79039 | ||
|
|
4c02f76187 | ||
|
|
ec90027c5e | ||
|
|
0588dbfd64 | ||
|
|
293c6b1de2 | ||
|
|
3f2dd0a60c | ||
|
|
89404cc649 | ||
|
|
2ade4030c8 | ||
|
|
7c81063b90 | ||
|
|
786903d57c | ||
|
|
395cc0a19d | ||
|
|
cc2c9044f3 | ||
|
|
d816bca7e0 | ||
|
|
87bcd7ccfb | ||
|
|
a9f136ae8a | ||
|
|
ef3b61ded7 | ||
|
|
c9d8623e4a | ||
|
|
13923b84f2 | ||
|
|
05df28ae72 | ||
|
|
f75e74b678 | ||
|
|
123cbfa644 | ||
|
|
5cc13cf77f | ||
|
|
56275abbaf | ||
|
|
6ccbdcbdfa | ||
|
|
ebbec7f0b2 | ||
|
|
a7d0719877 | ||
|
|
1831e3e2fa | ||
|
|
fc2c119b94 | ||
|
|
163b276f7e | ||
|
|
72ab38b9af | ||
|
|
991437ab2f | ||
|
|
57679238de | ||
|
|
d800c20905 | ||
|
|
2550b2fe41 | ||
|
|
8a72d253aa | ||
|
|
71558dca71 | ||
|
|
6dbc5bf6db | ||
|
|
98448b9572 | ||
|
|
79bd7794a5 | ||
|
|
3ab70ff9a8 | ||
|
|
e1894d5fb4 | ||
|
|
58646d1d08 | ||
|
|
2132f44812 | ||
|
|
62f56d7949 | ||
|
|
33ac98c2b3 | ||
|
|
8f962816ea | ||
|
|
e95363adc8 | ||
|
|
6250e9dfb2 | ||
|
|
0f57148418 | ||
|
|
9bd02871e2 | ||
|
|
f1fbe78f93 | ||
|
|
02c429993c | ||
|
|
beab17074d | ||
|
|
f608d6a8ce | ||
|
|
16c2ff8449 | ||
|
|
5c61ca688f | ||
|
|
095a5f38f3 | ||
|
|
696757003b | ||
|
|
9300004cbd | ||
|
|
9c13275aca | ||
|
|
5c6b4736be | ||
|
|
c566cc32fe | ||
|
|
8dc0e6b4bf | ||
|
|
f8f3f8abcb | ||
|
|
22414da6a8 | ||
|
|
150c94c0e9 | ||
|
|
d845853643 | ||
|
|
ffbf4a703b | ||
|
|
649378b695 | ||
|
|
8aa964bc78 | ||
|
|
6c89cd4a26 | ||
|
|
2ba4ffb4f8 | ||
|
|
38753ab8b0 | ||
|
|
9da8a28345 | ||
|
|
a4e79d4738 | ||
|
|
44cff2b498 | ||
|
|
5fe326aad8 | ||
|
|
b4a5c1504c | ||
|
|
270254c760 | ||
|
|
a71f24a1fa | ||
|
|
90bce607b0 | ||
|
|
1540d6b411 | ||
|
|
b51af13bb0 | ||
|
|
3eaeb4a0a1 | ||
|
|
aa6a03b5f9 | ||
|
|
3ca5b24e25 | ||
|
|
b074bf0690 | ||
|
|
3130c13c30 | ||
|
|
f0b60391a8 | ||
|
|
a4086122aa | ||
|
|
fe9ee85688 | ||
|
|
2cbe662019 | ||
|
|
be54733b13 | ||
|
|
053bc28e68 | ||
|
|
f38bea67ab | ||
|
|
8eec660d03 | ||
|
|
79e731e89c | ||
|
|
4f49ff3290 | ||
|
|
0dac5522fe | ||
|
|
a35ef0e735 | ||
|
|
c5515fc3ae | ||
|
|
2d40259c6e | ||
|
|
388e69cc38 | ||
|
|
d2df699ced | ||
|
|
be244cfe5a | ||
|
|
6ccf5053cd | ||
|
|
0f71de410b | ||
|
|
6b8f3b750e | ||
|
|
eebee9fb97 | ||
|
|
21e0496d6f | ||
|
|
9abc7f1a82 | ||
|
|
fa8354b133 | ||
|
|
b51c205538 | ||
|
|
73842430ea | ||
|
|
2b6f2980ce | ||
|
|
3d9a40beb9 | ||
|
|
2365fa9fbc | ||
|
|
0890180889 | ||
|
|
6b6339867d | ||
|
|
69405bda0f | ||
|
|
0f76a4814d | ||
|
|
81a02834de | ||
|
|
fa4315808b | ||
|
|
8acdb00570 | ||
|
|
d4a45ca006 | ||
|
|
d5225be720 | ||
|
|
8f7302f0ee | ||
|
|
446d198eca | ||
|
|
38111960f8 | ||
|
|
b83a9d94c6 | ||
|
|
a536c708ca | ||
|
|
53de112eb8 | ||
|
|
6662e0fa09 | ||
|
|
e90f188c63 | ||
|
|
e039ee1692 | ||
|
|
68fc9fb635 | ||
|
|
940a2ebc3f | ||
|
|
7f3d9fd9e7 | ||
|
|
5f552bb749 | ||
|
|
a233c6be8c | ||
|
|
0f3120e831 | ||
|
|
9c93a21421 | ||
|
|
8201b175bb | ||
|
|
78ee43347e | ||
|
|
7b23e4de11 | ||
|
|
7a7bd01717 | ||
|
|
7bb113d1f0 | ||
|
|
db5d318c74 | ||
|
|
139e7a8b25 | ||
|
|
390afc7e63 | ||
|
|
8fcf251916 | ||
|
|
cad9a299c3 | ||
|
|
3e53c9e338 | ||
|
|
8386b1b3e8 | ||
|
|
6c44ccf319 | ||
|
|
f0b96a1538 | ||
|
|
b490d91572 | ||
|
|
48bf0504e8 | ||
|
|
d15ee91ea0 | ||
|
|
af6fd8796d | ||
|
|
b7a5a878d6 | ||
|
|
68100bda86 | ||
|
|
a7d652ddca | ||
|
|
b8f54de530 | ||
|
|
8f86e40b5d | ||
|
|
aced6e170f | ||
|
|
988b7caf3d | ||
|
|
abb71a0feb | ||
|
|
26e1a1c58d | ||
|
|
4b1ff82756 | ||
|
|
f668a5c8f9 | ||
|
|
7f1a5eea20 | ||
|
|
b24f8e27fa | ||
|
|
aae3ed0872 | ||
|
|
6de445eaa1 | ||
|
|
18b4925dd4 | ||
|
|
7dc4bb728b | ||
|
|
61efc6b834 | ||
|
|
4cc687e2cd | ||
|
|
ff1795fe96 | ||
|
|
92e49efdc6 | ||
|
|
f7a19e8b14 | ||
|
|
1fa8d217f9 | ||
|
|
09ec1ad864 | ||
|
|
0eb1c7d419 | ||
|
|
9824e18dbf | ||
|
|
b95306348d | ||
|
|
de43cc6cd5 | ||
|
|
de435f8e7b | ||
|
|
f2e006fde9 | ||
|
|
5f7c3a41f1 | ||
|
|
3fbe8c0b6c | ||
|
|
3933f77968 | ||
|
|
68fc8cd6ed | ||
|
|
47fbae7e0d | ||
|
|
82a4ffdc12 | ||
|
|
6386f178d4 | ||
|
|
102d226269 | ||
|
|
b399247652 | ||
|
|
263db42602 | ||
|
|
8136387a75 | ||
|
|
e65991aa03 | ||
|
|
a7846a64d0 | ||
|
|
5dfc6a663f | ||
|
|
0c45a24f48 | ||
|
|
762d5de441 | ||
|
|
5bfb55a27d | ||
|
|
87bb2f38db | ||
|
|
fb1575d875 | ||
|
|
c153bef170 | ||
|
|
2fcf6c80e9 | ||
|
|
2e6e71e3b6 | ||
|
|
004b946716 | ||
|
|
6400722712 | ||
|
|
d9ec28459e | ||
|
|
407c1d24af | ||
|
|
de6d8d1153 | ||
|
|
3eb10fc05b | ||
|
|
1ab6f77f95 | ||
|
|
c1b15b59db | ||
|
|
3dae5a6d47 | ||
|
|
ec3e2ab870 | ||
|
|
a2810d65de | ||
|
|
1713c04834 | ||
|
|
dab2646054 | ||
|
|
03bc0d2f22 | ||
|
|
ad0485d651 | ||
|
|
7764c4bdd7 | ||
|
|
46bbbccdc9 | ||
|
|
ee28417a4c | ||
|
|
5332ab9cac | ||
|
|
746ac1eec7 | ||
|
|
13c763b0e8 | ||
|
|
8b67c4fdd1 | ||
|
|
c3e658d46a | ||
|
|
5d0419075b | ||
|
|
ebded1a73b | ||
|
|
cf879a5c23 | ||
|
|
99ed27ca61 | ||
|
|
4aa3e5b34d | ||
|
|
303e6066e2 | ||
|
|
861cd15240 | ||
|
|
d695ddb91a | ||
|
|
7abb2edb2f | ||
|
|
dfe8abd496 | ||
|
|
61b384ee56 | ||
|
|
d71a890430 | ||
|
|
2c85a85fff | ||
|
|
ce6074530f | ||
|
|
e20228153c | ||
|
|
e431170435 | ||
|
|
c671d1e389 | ||
|
|
31a5e70b26 | ||
|
|
0c68c72b29 | ||
|
|
2b158fdf57 | ||
|
|
dd005b31a4 | ||
|
|
0b467cc149 | ||
|
|
46e2fdca00 | ||
|
|
983b06266b | ||
|
|
cb8708d2d9 | ||
|
|
adbec11c04 | ||
|
|
404f00c02b | ||
|
|
5d346205fc | ||
|
|
db3f1a7c09 | ||
|
|
d2599f1f9a | ||
|
|
ed88aafdc1 | ||
|
|
d94deed341 | ||
|
|
4b49d87a81 | ||
|
|
4a6281ebf6 | ||
|
|
332443fe81 | ||
|
|
96c784704a | ||
|
|
b0d10919d7 | ||
|
|
b0e4681b5f | ||
|
|
2958f6ea7f | ||
|
|
4d46f94975 | ||
|
|
4cc7e9ca98 | ||
|
|
7688a11ef9 | ||
|
|
80b182cc54 | ||
|
|
b6936e7ca4 | ||
|
|
1590326fc1 | ||
|
|
1a1eb3264f | ||
|
|
3d80a8aa39 | ||
|
|
6cca084e05 | ||
|
|
1c2c496f7e | ||
|
|
8ab60be68b | ||
|
|
f1fe363083 | ||
|
|
db619790be | ||
|
|
608749ce1a | ||
|
|
1135744520 | ||
|
|
c8d616e657 | ||
|
|
3f8a6e04c8 | ||
|
|
851cd8e037 | ||
|
|
7b3dae8bea | ||
|
|
e04ec0a00b | ||
|
|
0a61c26cc1 | ||
|
|
ff35c58787 | ||
|
|
0a464fa93a | ||
|
|
a9958e88d0 | ||
|
|
d3eb5907a4 | ||
|
|
a2017cc4c7 | ||
|
|
87124fdaf4 | ||
|
|
394c2b54ce | ||
|
|
7117f1ad62 | ||
|
|
713e267c16 | ||
|
|
3932ec21f5 | ||
|
|
76dc50b052 | ||
|
|
73749aa34c | ||
|
|
897932f954 | ||
|
|
5a2b469e8a | ||
|
|
ad38e6c15e | ||
|
|
f5c6fc13a8 | ||
|
|
7c8625821a | ||
|
|
8a696ad088 | ||
|
|
3c1ca8b70f | ||
|
|
87b0cee53a | ||
|
|
a56aa7e308 | ||
|
|
98220c5e74 | ||
|
|
964c886fb6 | ||
|
|
f6536aa1d2 | ||
|
|
ec1c861b13 | ||
|
|
ae07ed9445 | ||
|
|
82b94db408 | ||
|
|
54d716e4b6 | ||
|
|
a0330465dd | ||
|
|
af026cfe66 | ||
|
|
b7d5f6655d | ||
|
|
964dedba0f | ||
|
|
f13537e812 | ||
|
|
037f1bf09f | ||
|
|
9ee4212060 | ||
|
|
e3c60cb4d8 | ||
|
|
6fa325065e | ||
|
|
cc88c99c45 | ||
|
|
9d36ed6b1b | ||
|
|
a6b8843c5c | ||
|
|
9cf4dbd710 | ||
|
|
589335f665 | ||
|
|
1a04cac47c | ||
|
|
417c6d09bf | ||
|
|
c36cb4a76a | ||
|
|
e65b786b46 | ||
|
|
713f1486c3 | ||
|
|
a0d3447202 | ||
|
|
286999599a | ||
|
|
9b6fae2523 | ||
|
|
c250279b46 | ||
|
|
f687df335e | ||
|
|
aeec7866b4 | ||
|
|
b49c47516e | ||
|
|
3bf854c6c3 | ||
|
|
b55edb8ae9 | ||
|
|
78bc66668c | ||
|
|
f965abe7f1 | ||
|
|
509cb2471d | ||
|
|
3c273d817b | ||
|
|
21817ca97a | ||
|
|
b31e712d2c | ||
|
|
8f1ee11ff2 | ||
|
|
0cb80ace3f | ||
|
|
295a2bb8b8 | ||
|
|
dd6757be5b | ||
|
|
e90e4b27a3 | ||
|
|
2932ca6c2b | ||
|
|
06a685fc31 | ||
|
|
e06c20d2f6 | ||
|
|
e5527cf825 | ||
|
|
6864af1b2f | ||
|
|
87ff59bfa7 | ||
|
|
ecd407d924 | ||
|
|
ce55e7eed5 | ||
|
|
f9b3fed403 | ||
|
|
484f77bffc | ||
|
|
814e697675 | ||
|
|
e469c04125 | ||
|
|
a33e2cbd88 | ||
|
|
4ecccd67bd | ||
|
|
8af25b4c67 | ||
|
|
d6c30caf1b | ||
|
|
7025efa6f8 | ||
|
|
d0877eb6bc | ||
|
|
87c62b4319 | ||
|
|
9d3382d773 | ||
|
|
5333e92c42 | ||
|
|
f2c6d0a6b9 | ||
|
|
a7e217152b | ||
|
|
91c993da13 | ||
|
|
5e7423bdce | ||
|
|
ba48e15f5f | ||
|
|
4e407fb0b9 | ||
|
|
5d1963e0ec | ||
|
|
c9bb6b25e9 | ||
|
|
3bf433992e | ||
|
|
a3a82b9fe7 | ||
|
|
513f04d41b | ||
|
|
5b318a8aaf | ||
|
|
c75de7a096 | ||
|
|
2cd5140600 | ||
|
|
eaca3d6cc8 | ||
|
|
2ce89bf24b | ||
|
|
97cbd76e8e | ||
|
|
683bb7eb41 | ||
|
|
8b0fd0af85 | ||
|
|
80d177aa92 | ||
|
|
dea4ccbe58 | ||
|
|
d156d53307 | ||
|
|
e1c6b720a4 | ||
|
|
4033e5d966 | ||
|
|
b677b9d46d | ||
|
|
91494aaf1c | ||
|
|
f1fd0521a3 | ||
|
|
21e96c32ce | ||
|
|
96db1ed6db | ||
|
|
c996f4aab5 | ||
|
|
eaf803fcc0 | ||
|
|
b7e1e26c14 | ||
|
|
f84e994b50 | ||
|
|
5473afac23 | ||
|
|
9762d74256 | ||
|
|
abedfedac6 | ||
|
|
cca5e22680 | ||
|
|
69c406c3d6 | ||
|
|
209428bdc7 | ||
|
|
853811d387 | ||
|
|
bb9711639c | ||
|
|
8f571d5800 | ||
|
|
f61bd68ad2 | ||
|
|
a0f5101ac5 | ||
|
|
6a14f85d22 | ||
|
|
1e678008a2 | ||
|
|
2bb183d675 | ||
|
|
2a5c5e5d69 | ||
|
|
0a51ad3725 | ||
|
|
031926efb7 | ||
|
|
ce8013124b | ||
|
|
b40ab8a551 | ||
|
|
b6d1ad3418 | ||
|
|
3556c66435 | ||
|
|
40813820da | ||
|
|
aa673cc361 | ||
|
|
b4269b9001 | ||
|
|
dfc9119bbc | ||
|
|
fea803d4ce | ||
|
|
7507f72ac0 | ||
|
|
2eb131fb0b | ||
|
|
a9f9e0263e | ||
|
|
200a721a61 | ||
|
|
45284a3845 | ||
|
|
32c56d718c | ||
|
|
1f709f9350 | ||
|
|
656f046efe | ||
|
|
ddf4afdd78 | ||
|
|
e699756093 | ||
|
|
e180074022 | ||
|
|
2010c3a5c7 | ||
|
|
c10c8ac7a7 | ||
|
|
40b80a21dd | ||
|
|
5ef7690578 | ||
|
|
7abae9d69e | ||
|
|
16d125aa20 | ||
|
|
006eb1b1e7 | ||
|
|
12bdf7541f | ||
|
|
b5abda5054 | ||
|
|
baf2bc9527 | ||
|
|
62db2aea7a | ||
|
|
3e8402b686 | ||
|
|
a3850551c5 | ||
|
|
9147e46856 | ||
|
|
e200b6080b | ||
|
|
8391e6fc2f | ||
|
|
fbaea7e419 | ||
|
|
2d8687a853 | ||
|
|
f8b6b05a25 | ||
|
|
3f2334a3ad | ||
|
|
d7cdfb2b5e | ||
|
|
9bd7b5a900 | ||
|
|
e6fad72a2a | ||
|
|
eb8f8ee1da | ||
|
|
7bec1c2025 | ||
|
|
2408524660 | ||
|
|
fd99c13ee7 | ||
|
|
7dc45bb438 | ||
|
|
a8ea2e6085 | ||
|
|
7b18c40781 | ||
|
|
923b049b85 | ||
|
|
59b36847f6 | ||
|
|
a78f8586f4 | ||
|
|
14395263aa | ||
|
|
60e96a73eb | ||
|
|
35107c20cb | ||
|
|
00d9b0ad55 | ||
|
|
00d8f60a02 | ||
|
|
0c6fe6f77c | ||
|
|
2656f9e641 | ||
|
|
da609c1747 | ||
|
|
41752dcac5 | ||
|
|
6a52500bd3 | ||
|
|
ebd9419a94 | ||
|
|
dac08aa448 | ||
|
|
c60c9fbd30 | ||
|
|
6f5671e41f | ||
|
|
ad79b576a5 | ||
|
|
e2b6884d46 | ||
|
|
3e91ecb8d5 | ||
|
|
f7678338bc | ||
|
|
5462f035f8 | ||
|
|
12edc9279c | ||
|
|
b1ef2d237d | ||
|
|
01b8628504 | ||
|
|
3bb11e11c3 | ||
|
|
bfae6d975c | ||
|
|
aa4721428f | ||
|
|
20cb086c76 | ||
|
|
92de61442a | ||
|
|
173242e2bb | ||
|
|
1c1d4697e5 | ||
|
|
d011bb9497 | ||
|
|
e43f9729a7 | ||
|
|
baafa12967 | ||
|
|
c3e33fa7f3 | ||
|
|
daf6d6aea8 | ||
|
|
02c9ec67c0 | ||
|
|
63d25a11ae | ||
|
|
a4e703f2fd | ||
|
|
360079d15e | ||
|
|
1473675094 | ||
|
|
a6e03680eb | ||
|
|
c99d3d37db | ||
|
|
b2fa05fa22 | ||
|
|
77070be769 | ||
|
|
3467e5070f | ||
|
|
5fb8fe86de | ||
|
|
afea93d327 | ||
|
|
53ec2f15b6 | ||
|
|
342186584e | ||
|
|
bd5d3c00f1 | ||
|
|
53eeb4e921 | ||
|
|
f2909fb3bd | ||
|
|
1039f1db38 | ||
|
|
741ae9eb1e | ||
|
|
76ff984b9c | ||
|
|
f89478bf67 | ||
|
|
f530c389a4 | ||
|
|
a1ab0512b7 | ||
|
|
3dad9896eb | ||
|
|
ff9b0c79c0 | ||
|
|
19ed3fb303 | ||
|
|
09dd3c94c1 | ||
|
|
e79afc87ca | ||
|
|
f3ff74b0df | ||
|
|
569ee488f5 | ||
|
|
68ebe2d503 | ||
|
|
8939e889f0 | ||
|
|
796a52625e | ||
|
|
0fbc5178f6 | ||
|
|
d1505287b2 | ||
|
|
8959adf9e0 | ||
|
|
5961462cd7 | ||
|
|
af0eeb710e | ||
|
|
75a75d78ec | ||
|
|
ddd8eb6da4 | ||
|
|
d9d8437b6d | ||
|
|
c2f2a589ed | ||
|
|
c3d09c486c | ||
|
|
897e817f3c | ||
|
|
491234b310 | ||
|
|
408206ace3 | ||
|
|
4ec493950c | ||
|
|
4f140893c9 | ||
|
|
9c7c44cb49 | ||
|
|
ba89f392d6 | ||
|
|
04308fbaea | ||
|
|
5d1021350d | ||
|
|
800dae11e8 | ||
|
|
ba5f816772 | ||
|
|
1651956cbd | ||
|
|
4a9967b8d0 | ||
|
|
109eb96c08 | ||
|
|
5d0807de4c | ||
|
|
2d7832b132 | ||
|
|
a7e2a05d80 | ||
|
|
d36ce36235 | ||
|
|
34c78dff52 | ||
|
|
bd8a2fb287 | ||
|
|
38770d9393 | ||
|
|
c65e747dd2 | ||
|
|
53f2baf52b | ||
|
|
5b9be518b8 | ||
|
|
e0de3b410b | ||
|
|
2b1f2fe019 | ||
|
|
37b5ab916c | ||
|
|
af261e126a | ||
|
|
2cbec90c96 | ||
|
|
01c5bd61ef | ||
|
|
e01291afd6 | ||
|
|
a53b3130c8 | ||
|
|
dea4818128 | ||
|
|
2609248564 | ||
|
|
5749879c1c | ||
|
|
1f3b3f15ab | ||
|
|
09c0f5143d | ||
|
|
025f994c62 | ||
|
|
ad04961d19 | ||
|
|
b5c5bd5980 | ||
|
|
bfe83dd653 | ||
|
|
5e32c09d9f | ||
|
|
b0f7a06749 | ||
|
|
9533671285 | ||
|
|
072bc0269c | ||
|
|
dcb3e79f64 | ||
|
|
d58101592b | ||
|
|
630152b91e | ||
|
|
b8ae7401a4 | ||
|
|
0d96889018 | ||
|
|
9cd2cf5cc3 | ||
|
|
658e7eac1c | ||
|
|
7c387db3e8 | ||
|
|
401085f231 | ||
|
|
fe9eb8884e | ||
|
|
bab0df47f0 | ||
|
|
b34fa5fb07 | ||
|
|
d88e3ec982 | ||
|
|
36cf513431 | ||
|
|
2530740066 | ||
|
|
0af85f8c03 | ||
|
|
31e67a84ec | ||
|
|
364ad230fd | ||
|
|
a69876325a | ||
|
|
ac85bdfd3e | ||
|
|
b6477b17d8 | ||
|
|
9406515f91 | ||
|
|
ce2e68ee32 | ||
|
|
8b04d2d202 | ||
|
|
963fb3ca3c | ||
|
|
f40f9c4803 | ||
|
|
ee275bf950 | ||
|
|
9e4f1f4c5b | ||
|
|
d234e6a701 | ||
|
|
48281e0158 | ||
|
|
e8592a6690 | ||
|
|
e780eee207 | ||
|
|
de14e8e935 | ||
|
|
8ea7b497ff | ||
|
|
d1098af7f0 | ||
|
|
daa34e5ed4 | ||
|
|
89243d03cd | ||
|
|
597dfb173d | ||
|
|
e1228844c7 | ||
|
|
481976a353 | ||
|
|
b1ef5770d7 | ||
|
|
f6f561841c | ||
|
|
0da5653fef | ||
|
|
8afb8ee204 | ||
|
|
d808e72d2a | ||
|
|
02a860ba19 | ||
|
|
2e1354cdb9 | ||
|
|
7640e05619 | ||
|
|
cb42d46131 | ||
|
|
f055b61e8e | ||
|
|
23f99999de | ||
|
|
39c956829a | ||
|
|
e281a18ec7 | ||
|
|
4476c802d5 | ||
|
|
c728bae55a | ||
|
|
20ff1dc446 | ||
|
|
3c40758c6a | ||
|
|
b0a432ce78 | ||
|
|
1891d36677 | ||
|
|
2bf5c98b5f | ||
|
|
d7cf35126b | ||
|
|
d765c7c655 | ||
|
|
0dc05978ce | ||
|
|
001427822c | ||
|
|
4c74517e9e | ||
|
|
e315ff24e1 | ||
|
|
fff8b3f532 | ||
|
|
8ee527a3d0 | ||
|
|
f14f87b54e | ||
|
|
505e192b66 | ||
|
|
5ed1ca6aa1 | ||
|
|
7b5a778bd8 | ||
|
|
39d090297e | ||
|
|
e36ed36a6e | ||
|
|
b5f32f1001 | ||
|
|
777b215c15 | ||
|
|
7bd5c1b41c | ||
|
|
fa70e8bd37 | ||
|
|
ec2badc74b | ||
|
|
500e62cbce | ||
|
|
4fa3f6736b | ||
|
|
1d03c01420 | ||
|
|
759061ffdb | ||
|
|
76180a43a8 | ||
|
|
5867ae2f93 | ||
|
|
e6552c8dda | ||
|
|
110d4e10bb | ||
|
|
6d458d3b16 | ||
|
|
40ce0b714e | ||
|
|
8a5b0928c5 | ||
|
|
7e55497e20 | ||
|
|
2d333a23a4 | ||
|
|
0a32810f36 | ||
|
|
c6cbf7941c | ||
|
|
33d8103335 | ||
|
|
3df1973ac9 | ||
|
|
d51391bb9b | ||
|
|
94714e4f39 | ||
|
|
12266179d6 | ||
|
|
a9f2bf2d54 | ||
|
|
3972a181e6 | ||
|
|
986661b6e8 | ||
|
|
99faa45d94 | ||
|
|
daad62d939 | ||
|
|
f775a12de9 | ||
|
|
ebc33723b0 | ||
|
|
2c8d2babdc | ||
|
|
7771b5af2d | ||
|
|
1729b553a4 | ||
|
|
4f10a12869 | ||
|
|
a0b372e7d9 | ||
|
|
daded49ce8 | ||
|
|
d5d101d3f8 | ||
|
|
e83b698df4 | ||
|
|
712cba1398 | ||
|
|
b954efe624 | ||
|
|
163d2c8d8f | ||
|
|
cf807ea93e | ||
|
|
0a9942d01f | ||
|
|
6d164511b4 | ||
|
|
441ea2000b | ||
|
|
64281776f4 | ||
|
|
a93fdf5a17 | ||
|
|
050ed71c00 | ||
|
|
7b029cc7bc | ||
|
|
07afc4810a | ||
|
|
ff339c3fb0 | ||
|
|
2e21bcc542 | ||
|
|
9a27b66661 | ||
|
|
ee91ea86ff | ||
|
|
5484aea042 | ||
|
|
4c7955b099 | ||
|
|
00654c168f | ||
|
|
8e789732f9 | ||
|
|
b69e8aebab | ||
|
|
d8265d4513 | ||
|
|
1b0c3a5d9a | ||
|
|
124d5e0cdb | ||
|
|
3b86f317d1 | ||
|
|
39fdda8958 | ||
|
|
0575373167 | ||
|
|
9466f6ee86 | ||
|
|
ad491edee3 | ||
|
|
4557d87ed9 | ||
|
|
ea245cd213 | ||
|
|
f9f126a842 | ||
|
|
65433172f3 | ||
|
|
3325dc0d9f | ||
|
|
00533fb956 | ||
|
|
0d499b3c25 | ||
|
|
eda9b1f20b | ||
|
|
b9eb13f033 | ||
|
|
391cb84117 | ||
|
|
8ed5b50c3d | ||
|
|
b93faff771 | ||
|
|
671a76bf86 | ||
|
|
d698c51ce0 | ||
|
|
ddb0a65957 | ||
|
|
10b6551ea3 | ||
|
|
713ceab89f | ||
|
|
ba864200ee | ||
|
|
98084457ff | ||
|
|
ba1411b9cd | ||
|
|
ff4fe92c9f | ||
|
|
8d3b9098c0 | ||
|
|
43da147d44 | ||
|
|
148c9661c2 | ||
|
|
f0e2a68abf | ||
|
|
d16a263480 | ||
|
|
d50f6001d8 | ||
|
|
bb5b0895a8 | ||
|
|
162e6abcc1 | ||
|
|
ce2e492632 | ||
|
|
03f6e61935 | ||
|
|
996f042961 | ||
|
|
55275b23aa | ||
|
|
188a6ea801 | ||
|
|
ab127daa35 | ||
|
|
c61112bc6d | ||
|
|
9b07fd528b | ||
|
|
1ba809825d | ||
|
|
09119f9d18 | ||
|
|
c78cafe605 | ||
|
|
1c49cffc66 | ||
|
|
452c19a7ea | ||
|
|
cc8a5cf367 | ||
|
|
5bbd881f01 | ||
|
|
1c2ddea3d4 | ||
|
|
096a28002f | ||
|
|
23a60e79c1 | ||
|
|
473698c744 | ||
|
|
b955be65f4 | ||
|
|
98668d5380 | ||
|
|
e057e952b6 | ||
|
|
e04cb679f9 | ||
|
|
fd1f2fa0c4 | ||
|
|
f1f80f3d57 | ||
|
|
7440f12117 | ||
|
|
2f8847b8fe | ||
|
|
8aaccf06b2 | ||
|
|
b83ec80e7c | ||
|
|
7ca57da6fe | ||
|
|
0cb7b0af95 | ||
|
|
7646c43f45 | ||
|
|
7cb1ae6d3c | ||
|
|
9454ab9d6c | ||
|
|
780b514cc0 | ||
|
|
7b124f1dc2 | ||
|
|
a500407dc3 | ||
|
|
d415bde66c | ||
|
|
8902f3202e | ||
|
|
314bdf61ef | ||
|
|
43c98b7ddd | ||
|
|
e065ccb7b7 | ||
|
|
eea9e060c8 | ||
|
|
3377885587 | ||
|
|
39f4f4f0ea | ||
|
|
85c54eda7d | ||
|
|
fc6d9ba67a | ||
|
|
ff25a5b432 | ||
|
|
fd8a56762d | ||
|
|
7e4c3c0df0 | ||
|
|
fae2187394 | ||
|
|
c17779b6d4 | ||
|
|
7f6c5f7211 | ||
|
|
45f49738f3 | ||
|
|
86390bde02 | ||
|
|
595aa9b062 | ||
|
|
3eed6de797 | ||
|
|
8655aa8c37 | ||
|
|
47c64661ec | ||
|
|
aa4646692e | ||
|
|
67ee00c3f8 | ||
|
|
52e18e5125 | ||
|
|
30a7bd49a9 | ||
|
|
654d35bc89 | ||
|
|
1ae11fef58 | ||
|
|
6023462bbd | ||
|
|
163cc6b6bd | ||
|
|
891e9bacaa | ||
|
|
c8796d9a54 | ||
|
|
0c918caed2 | ||
|
|
46f6d28fca | ||
|
|
7d4641c5ec | ||
|
|
fc1ec9123d | ||
|
|
220415f698 | ||
|
|
82389925bc | ||
|
|
7714ef83aa | ||
|
|
09ce9f3107 | ||
|
|
a409016f7a | ||
|
|
7585514868 | ||
|
|
99ab59f3a3 | ||
|
|
cf0662d0a4 | ||
|
|
7d20a9ed84 | ||
|
|
3878dcd27f | ||
|
|
9fb2e9d30d | ||
|
|
d6a1889e9f | ||
|
|
34b0c8e774 | ||
|
|
f11ae35b07 | ||
|
|
18d62429bf | ||
|
|
65d56afc02 | ||
|
|
71dde4d0dd | ||
|
|
576632fbbf | ||
|
|
f7995f6da7 | ||
|
|
6115bbabc8 | ||
|
|
dc1c166ac2 | ||
|
|
279849debe | ||
|
|
07c5474cf2 | ||
|
|
bd5fc861df | ||
|
|
6988060269 | ||
|
|
cf6ed8c382 | ||
|
|
d536f3e93c | ||
|
|
cc2262dbaf | ||
|
|
f3fa0eb849 | ||
|
|
7c9bca1325 | ||
|
|
493f299cce | ||
|
|
5d7248d4c7 | ||
|
|
d9e8fb3469 | ||
|
|
a5051e116a | ||
|
|
3358d0e3d7 | ||
|
|
ca183c7de6 | ||
|
|
b39961e43e | ||
|
|
59e8c120e2 | ||
|
|
382dcc8d0c | ||
|
|
beab1632b3 | ||
|
|
e84cb34b8d | ||
|
|
457c2131e4 | ||
|
|
35f38a116a | ||
|
|
054f628192 | ||
|
|
b844859799 | ||
|
|
ddaeec85d4 | ||
|
|
a84d62f307 | ||
|
|
b4724cff18 | ||
|
|
1e72461806 | ||
|
|
41617183ab | ||
|
|
9aa48b2645 | ||
|
|
20ab35fbf9 | ||
|
|
de0884d654 | ||
|
|
c285427fe2 | ||
|
|
61bbcbda37 | ||
|
|
7468f6304c | ||
|
|
ac915b0373 | ||
|
|
60e2cab249 | ||
|
|
12891ab238 | ||
|
|
c4480f208f | ||
|
|
4352051c6e | ||
|
|
39325539a2 | ||
|
|
1d909c661e | ||
|
|
1a94159bc9 | ||
|
|
951cdc2d51 | ||
|
|
74728b4544 | ||
|
|
7819b561ad | ||
|
|
cc0e18012d | ||
|
|
f7c0b04884 | ||
|
|
3de1673929 | ||
|
|
6bcaab91ef | ||
|
|
e246a6cd67 | ||
|
|
a16f311be7 | ||
|
|
8e316068ba | ||
|
|
87fc6c8a73 | ||
|
|
faf136756c | ||
|
|
8e64623592 | ||
|
|
5e256b9beb | ||
|
|
ec30e4c100 | ||
|
|
32ab4a660f | ||
|
|
079ec27a21 | ||
|
|
7a4afd947d | ||
|
|
bb7c400855 | ||
|
|
81fed8a1d8 | ||
|
|
023096477c | ||
|
|
df597e6452 | ||
|
|
68cf549df3 | ||
|
|
22060f90bf | ||
|
|
16f242da13 | ||
|
|
12cc944728 | ||
|
|
f9656c16bf | ||
|
|
62ee67ce80 | ||
|
|
1b97e5bc97 | ||
|
|
a97ff24035 | ||
|
|
dee0016836 | ||
|
|
6b306daf21 | ||
|
|
2593d2137b | ||
|
|
679c764403 | ||
|
|
6771b137ea | ||
|
|
a7e51408c2 | ||
|
|
eab83659ca | ||
|
|
a90c6c445c | ||
|
|
aae4f0520c | ||
|
|
e74cdc6ca0 | ||
|
|
df666813f3 | ||
|
|
4a8790e07f | ||
|
|
7bbe5a6f06 | ||
|
|
9f8dfddfa8 | ||
|
|
fbe81666bf | ||
|
|
9712ced2bf | ||
|
|
9dc0ce4b13 | ||
|
|
b71903e04b | ||
|
|
48ab77ef52 | ||
|
|
35b3ea2047 | ||
|
|
620f63e1f3 | ||
|
|
35243167b3 | ||
|
|
93d844b950 | ||
|
|
bc863f3f2c | ||
|
|
cc9b2cdaed | ||
|
|
1b091bb07f | ||
|
|
99b6ef9374 | ||
|
|
c1870fee32 | ||
|
|
61311bd3e6 | ||
|
|
9238244ea2 | ||
|
|
21cdc29f27 | ||
|
|
e4a567c63a | ||
|
|
adfa094153 | ||
|
|
f94d35519e | ||
|
|
69e12f40d7 | ||
|
|
a17966b8d4 | ||
|
|
053a8194a2 | ||
|
|
bdf7c84a35 | ||
|
|
b84f1e229b | ||
|
|
41938191c7 | ||
|
|
37a985c936 | ||
|
|
ebdc9368da | ||
|
|
e75e8d170d | ||
|
|
ec7a30141b | ||
|
|
5e3385e9f3 | ||
|
|
76e47e5356 | ||
|
|
8e9d885708 | ||
|
|
d93a7c0e91 | ||
|
|
93df13ff78 | ||
|
|
58d83d8f92 | ||
|
|
cc52ec2b71 | ||
|
|
0f442ae743 | ||
|
|
dcd6f0085b | ||
|
|
fab823b957 | ||
|
|
dccee58476 | ||
|
|
a3af69c978 | ||
|
|
b92c098ef1 | ||
|
|
1cc5cd1b1d | ||
|
|
2345e144cf | ||
|
|
ceb0e97610 | ||
|
|
c3585ed714 | ||
|
|
bd5f52b4e2 | ||
|
|
e6c7c30bdd | ||
|
|
1026350cbd | ||
|
|
7e897c2a72 | ||
|
|
940500c992 | ||
|
|
9ff353cbcf | ||
|
|
1db5acdf7b | ||
|
|
cb100e5bb6 | ||
|
|
4d6893dc49 | ||
|
|
40b5866806 | ||
|
|
59e64499fb | ||
|
|
a024c509c6 | ||
|
|
1b72cc2114 | ||
|
|
c0d732da7c | ||
|
|
1b8891a59b | ||
|
|
6f9e489ba5 | ||
|
|
2c82d44b64 | ||
|
|
7364062e8c | ||
|
|
0044b0206a | ||
|
|
82a98b8dd3 | ||
|
|
435484482f | ||
|
|
1ad71ab5ae | ||
|
|
a4cdfc34ea | ||
|
|
bf31cc24d6 | ||
|
|
baa4402a62 | ||
|
|
638c7c7420 | ||
|
|
08bd479cf9 | ||
|
|
18d0900b32 | ||
|
|
e24fd97370 | ||
|
|
a64adb6b16 | ||
|
|
cf431e1e4b | ||
|
|
57071d21a7 | ||
|
|
13694d711d | ||
|
|
973d6f64e2 | ||
|
|
48a7e81906 | ||
|
|
ba81ad5bce | ||
|
|
bf34c9a9c3 | ||
|
|
10ae6491c9 | ||
|
|
1609569dc9 | ||
|
|
63c52cc40a | ||
|
|
ebaa39e17e | ||
|
|
327c8f5a57 | ||
|
|
492556a424 | ||
|
|
8c0e4a09d1 | ||
|
|
ee16ce65ec | ||
|
|
2affdf680f | ||
|
|
84bbb4ba63 | ||
|
|
b8baca2100 | ||
|
|
15a056b466 | ||
|
|
205803c1be | ||
|
|
a66afafe31 | ||
|
|
657cb4c4cd | ||
|
|
7df6378872 | ||
|
|
c81cf324b8 | ||
|
|
57a33beb81 | ||
|
|
a6e446e5cf | ||
|
|
19bb1a1ce1 | ||
|
|
68a3096683 | ||
|
|
c857541666 | ||
|
|
4abca2f9b5 | ||
|
|
cbbae1e26a | ||
|
|
c855ea5838 | ||
|
|
6df2c97cc5 | ||
|
|
a6a7f1ab4c | ||
|
|
690ae8641e | ||
|
|
950df83558 | ||
|
|
08baf5ae87 | ||
|
|
2835104029 | ||
|
|
cf3de23515 | ||
|
|
664daf4f84 | ||
|
|
baff7cb947 | ||
|
|
e2775c17de | ||
|
|
dba5771f3f | ||
|
|
948abc60d4 | ||
|
|
febeeb96f0 | ||
|
|
e38edc1be0 | ||
|
|
0f6bd9c806 | ||
|
|
415031230c | ||
|
|
dfac1c1b98 | ||
|
|
0579c7affa | ||
|
|
06e9a93d5e | ||
|
|
c708d0ccf2 | ||
|
|
76071aeda0 | ||
|
|
bbe385dfa0 | ||
|
|
5034dd3f02 | ||
|
|
b31475c913 | ||
|
|
d67b0d3f57 | ||
|
|
9bf97e78e5 | ||
|
|
fdc8fd1b01 | ||
|
|
fdb26de664 | ||
|
|
668e30aebe | ||
|
|
a8c39f9db8 | ||
|
|
eddc804a92 | ||
|
|
4bc5e41c35 | ||
|
|
9d9d2d7d50 | ||
|
|
c322051ddd | ||
|
|
7b6b69356c | ||
|
|
2140029a4a | ||
|
|
944e7cb60a | ||
|
|
8783c469be | ||
|
|
3c323519a8 | ||
|
|
c71cea87cc | ||
|
|
a0d2770d70 | ||
|
|
ff14d2b32e | ||
|
|
05a97971b1 | ||
|
|
3986fa875d | ||
|
|
06a29292cc | ||
|
|
b068e9729a | ||
|
|
e6166c7512 | ||
|
|
ceefc07609 | ||
|
|
fceb1e85a6 | ||
|
|
cad5703185 | ||
|
|
beb7873c5d | ||
|
|
91e97143c9 | ||
|
|
6ffe5fd249 | ||
|
|
3da54549ea | ||
|
|
a6ec05da49 | ||
|
|
47cb4e488f | ||
|
|
3649d7f111 | ||
|
|
8372671b70 | ||
|
|
945eec6931 | ||
|
|
2c92c61015 | ||
|
|
d56f4962bf | ||
|
|
34355d8e00 | ||
|
|
27dc41dd9e | ||
|
|
8080e2fe47 | ||
|
|
a716c99152 | ||
|
|
df30fcf37b | ||
|
|
71d2bfab38 | ||
|
|
62a7e70ebe | ||
|
|
c7bd7d0bf6 | ||
|
|
6b3e0c4ac4 | ||
|
|
8e6b4515ed | ||
|
|
4d364acc1d | ||
|
|
894d237841 | ||
|
|
123128bfc7 | ||
|
|
59c559de14 | ||
|
|
852d928860 | ||
|
|
6abd7ea690 | ||
|
|
6bbf42c000 | ||
|
|
73d1ccb257 | ||
|
|
3c3efde2e6 | ||
|
|
f6de1520e2 | ||
|
|
a0da6da320 | ||
|
|
d5516fae89 | ||
|
|
0917cc82e0 | ||
|
|
cabd426801 | ||
|
|
534627fd11 | ||
|
|
60be486095 | ||
|
|
be6cd98cec | ||
|
|
3b3d5292e5 | ||
|
|
06ac821c52 | ||
|
|
a5e34fc9a5 | ||
|
|
af663d3656 | ||
|
|
25b41f8bb6 | ||
|
|
e1b57df990 | ||
|
|
1eb04862fc | ||
|
|
e3bcffdd6b | ||
|
|
1aea93a57b | ||
|
|
697db429f6 | ||
|
|
ca11631531 | ||
|
|
7a6398db45 | ||
|
|
d9960e8a5e | ||
|
|
93e267cb95 | ||
|
|
206e395f13 | ||
|
|
7537a13640 | ||
|
|
6a92bbcb52 | ||
|
|
5bfb7c63ac | ||
|
|
e13b78833d | ||
|
|
5884fee7ac | ||
|
|
aec9c9d34b | ||
|
|
89bb3a7f2c | ||
|
|
8813c5174e | ||
|
|
47824d8bca | ||
|
|
bf91ffddf3 | ||
|
|
1a293fc5ff | ||
|
|
786a377ada | ||
|
|
12e2781668 | ||
|
|
5ace391a61 | ||
|
|
03cd059a6f | ||
|
|
1298c67d1b | ||
|
|
31f5762efd | ||
|
|
b393979d53 | ||
|
|
fae7eaed93 | ||
|
|
c27a26eee4 | ||
|
|
46ff0020bb | ||
|
|
869c2eb8b2 | ||
|
|
422bc5baf3 | ||
|
|
76d872cbe5 | ||
|
|
d003a31353 | ||
|
|
425d0ea951 | ||
|
|
721e121ebe | ||
|
|
07ede1b96b | ||
|
|
48879fb6a0 | ||
|
|
855c36280b | ||
|
|
31ef8d2ec9 | ||
|
|
a5ae4077cf | ||
|
|
d6acd4deb8 | ||
|
|
5f7283531f | ||
|
|
ab836eb762 | ||
|
|
22cc24e9f8 | ||
|
|
4f41aab3fa | ||
|
|
539535e66f | ||
|
|
320fd57d8a | ||
|
|
8b98469936 | ||
|
|
d16992f5b2 | ||
|
|
9f6fbc5e57 | ||
|
|
aebc2c9660 | ||
|
|
23d9487ca7 | ||
|
|
bd4f9788cc | ||
|
|
40a843200f | ||
|
|
22cad83c8f | ||
|
|
3319420c31 | ||
|
|
580e3596b2 | ||
|
|
42c93a7fc4 | ||
|
|
c4b4aa6287 | ||
|
|
2c9358ca07 | ||
|
|
d35fcabf92 | ||
|
|
e387652c8b | ||
|
|
4ce9385fd5 | ||
|
|
6f612d62cf | ||
|
|
ee0bcfc413 | ||
|
|
17b72bc8fd | ||
|
|
908c8114bb | ||
|
|
48badb83cf | ||
|
|
6600e60498 | ||
|
|
c058950119 | ||
|
|
7cf0e05f70 | ||
|
|
f2460549e0 | ||
|
|
290aa09f89 | ||
|
|
f37e80535a | ||
|
|
be2a44dab9 | ||
|
|
b5c889ab01 | ||
|
|
84bf229944 | ||
|
|
2dbd80f539 | ||
|
|
7990bfefad | ||
|
|
d457e6fc76 | ||
|
|
871a16cb5b | ||
|
|
d2ee1507d9 | ||
|
|
c76066c99b | ||
|
|
1961969a82 | ||
|
|
0e8646d592 | ||
|
|
3708b86e58 | ||
|
|
1475d3daee | ||
|
|
508812914f | ||
|
|
988056e59c | ||
|
|
b79d6a7347 | ||
|
|
1c83609b8c | ||
|
|
4605b4f3ca | ||
|
|
dd9c57a1d2 | ||
|
|
2898dc497a | ||
|
|
06a03cd4ca | ||
|
|
bf6f0b19fd | ||
|
|
da04a7a629 | ||
|
|
523066598e | ||
|
|
d16ae38b28 | ||
|
|
f0976bc582 | ||
|
|
527b8a39f8 | ||
|
|
64cadfe37a | ||
|
|
5527aaebe9 | ||
|
|
8dfffc6ac0 | ||
|
|
302331bc7d | ||
|
|
d2477b5f8a | ||
|
|
8f1b7723c8 | ||
|
|
e353d48af8 | ||
|
|
3a5a0be013 | ||
|
|
1f6233c1e1 | ||
|
|
19b7eacfc4 | ||
|
|
4824404636 | ||
|
|
23697a8930 | ||
|
|
1e624ae580 | ||
|
|
8eaceb49cf | ||
|
|
459a37fc59 | ||
|
|
02342e2806 | ||
|
|
48a5891c91 | ||
|
|
5620e8d1ac | ||
|
|
0545b4b24e | ||
|
|
5937338348 | ||
|
|
5e25b0ade9 | ||
|
|
26a59ee1c1 | ||
|
|
16e0b5f319 | ||
|
|
6d63d56fdd | ||
|
|
5e0b684b53 | ||
|
|
7b67a08dd6 | ||
|
|
23fb79c9a3 | ||
|
|
071b7d2857 | ||
|
|
0666d18f06 | ||
|
|
b65fbb53c8 | ||
|
|
c401dfabdc | ||
|
|
25407369de | ||
|
|
63109b4337 | ||
|
|
365214d7f9 | ||
|
|
d9fc1e81cd | ||
|
|
f5a2206004 | ||
|
|
ff0c707061 | ||
|
|
ece702ec86 | ||
|
|
5fba4cf081 | ||
|
|
9d2192def1 | ||
|
|
f0f58844b8 | ||
|
|
feda757c81 | ||
|
|
8ca765cce0 | ||
|
|
7758b14f26 | ||
|
|
846b24603e | ||
|
|
42dbff273f | ||
|
|
b1b83ae32a | ||
|
|
24d8e7a5d7 | ||
|
|
ff1c57c5a3 | ||
|
|
01d9fc31c1 | ||
|
|
88fbae4bec | ||
|
|
ffbe58b808 | ||
|
|
eea432418e | ||
|
|
d9c8609d43 | ||
|
|
aa70c1bd54 | ||
|
|
20b04937c9 | ||
|
|
5fa7d9cc6e | ||
|
|
7b21cf5971 | ||
|
|
5a367fdad0 | ||
|
|
f0eeec83ee | ||
|
|
9c47e2a35b | ||
|
|
ba3eca5629 | ||
|
|
792c562a35 | ||
|
|
0cdc7351df | ||
|
|
093074a9fc | ||
|
|
61190233fc | ||
|
|
b55e0eb1d3 | ||
|
|
275f8d1531 | ||
|
|
da1a032c96 | ||
|
|
d5cea8bb0e | ||
|
|
07b70efd19 | ||
|
|
9bad51b94e | ||
|
|
b8aa560d52 | ||
|
|
e39419af25 | ||
|
|
3e89b1dae6 | ||
|
|
c47c140489 | ||
|
|
2b17b5bd72 | ||
|
|
faff428afb | ||
|
|
031043f2f2 | ||
|
|
e7175149d0 | ||
|
|
4975ff6fdc | ||
|
|
d81745eef2 | ||
|
|
20ede93eb1 | ||
|
|
7b41eb753d | ||
|
|
00de303335 | ||
|
|
7129e9d73b | ||
|
|
384e268516 | ||
|
|
1ad8a9b7f1 | ||
|
|
4cbf5740e7 | ||
|
|
ab33aae127 | ||
|
|
307becf086 | ||
|
|
9c11e19db8 | ||
|
|
4bca6a8306 | ||
|
|
d3a04d043b | ||
|
|
89d1f7a731 | ||
|
|
773a65a87e | ||
|
|
3f22bd4e79 | ||
|
|
5259fa7cbd | ||
|
|
9dd58ce0a4 | ||
|
|
877d2d1d16 | ||
|
|
097b7fb262 | ||
|
|
7975494bd6 | ||
|
|
fd9a754209 | ||
|
|
c2f4d7cd86 | ||
|
|
5ff6d80dc8 | ||
|
|
cd8a8b6a97 | ||
|
|
3413399dfa | ||
|
|
93ab8babbc | ||
|
|
8d8c9e8a01 | ||
|
|
aec9ef390c | ||
|
|
6e5a56bed5 | ||
|
|
175d12cf42 | ||
|
|
6d9fd13fbe | ||
|
|
9870047d05 | ||
|
|
010f9acb54 | ||
|
|
a1a9f645f5 | ||
|
|
db5dd9ba7f | ||
|
|
30f1def143 | ||
|
|
b9dd0c6bf1 | ||
|
|
d158472709 | ||
|
|
cb9c7d5c48 | ||
|
|
f580e53fc2 | ||
|
|
c68456310c | ||
|
|
8d156192d5 | ||
|
|
0ab41a84bd | ||
|
|
a3e1033c11 | ||
|
|
ebcd656e70 | ||
|
|
68ea69bad6 | ||
|
|
4f9feeb953 | ||
|
|
7f99691e92 | ||
|
|
4f37352afe | ||
|
|
32c001d06d | ||
|
|
b81e1a3c70 | ||
|
|
d32950a1b9 | ||
|
|
da13e238ac | ||
|
|
3c58f91d28 | ||
|
|
c004cd47f0 | ||
|
|
6db11763f6 | ||
|
|
1e99b8cf36 | ||
|
|
fea9987b02 | ||
|
|
67a6d9c844 | ||
|
|
b2d476659e | ||
|
|
8381fba596 | ||
|
|
5342837f0a | ||
|
|
2787546f89 | ||
|
|
34c9d808f8 | ||
|
|
02f1f52c2f | ||
|
|
8d2e0b0a89 | ||
|
|
a408449e2c | ||
|
|
c19748bbbe | ||
|
|
b6063c0831 | ||
|
|
00682ed150 | ||
|
|
af24ff6049 | ||
|
|
e0376b88f5 | ||
|
|
188fea025d | ||
|
|
d69cc7edf4 | ||
|
|
f9ec71ba58 | ||
|
|
1c59a6d461 | ||
|
|
29a0707bcd | ||
|
|
d4a9f9058d | ||
|
|
5c2274f429 | ||
|
|
ca57fa391d | ||
|
|
9c7c8fc227 | ||
|
|
d1471d197f | ||
|
|
add4576f0a | ||
|
|
acacf0885c | ||
|
|
7deaecc123 | ||
|
|
b82b0322a1 | ||
|
|
c6a92c2670 | ||
|
|
1d9c2f878e | ||
|
|
dd7233c81e | ||
|
|
d4dd298ef8 | ||
|
|
53e015a7aa | ||
|
|
9203918788 | ||
|
|
b9ae18a0ca | ||
|
|
d548b8cb6d | ||
|
|
3931f8195b | ||
|
|
7077a01dad | ||
|
|
26b3195bdd | ||
|
|
9b79e3c1ac | ||
|
|
405b2180cf | ||
|
|
462f354a9d | ||
|
|
d3f14bd9c3 | ||
|
|
d9939ea9be | ||
|
|
9c5ae70562 | ||
|
|
cfa03fe1f9 | ||
|
|
d96655d6b7 | ||
|
|
df745e1b43 | ||
|
|
b863045a8f | ||
|
|
ac53d731e9 | ||
|
|
fa62827717 | ||
|
|
5423aee3d5 | ||
|
|
74a4d982a5 | ||
|
|
a7184adc4d | ||
|
|
3fba559323 | ||
|
|
d41f0d7cf4 | ||
|
|
9ebfc973f3 | ||
|
|
9850c977be | ||
|
|
7fc4c03659 | ||
|
|
9c9627573b | ||
|
|
abedcd8896 | ||
|
|
63fcbc73a5 | ||
|
|
a724f9c6f2 | ||
|
|
c67440a940 | ||
|
|
d996db31d6 | ||
|
|
504faad077 | ||
|
|
c0eeab939b | ||
|
|
ca4952c02c | ||
|
|
952385f362 | ||
|
|
343bfe12fd | ||
|
|
ac600ad91b | ||
|
|
acfdb5b191 | ||
|
|
ca1e0ffdea | ||
|
|
a3bebadff8 | ||
|
|
22a042d35d | ||
|
|
0def2c24c8 | ||
|
|
a09f3ab32c | ||
|
|
5f7fcd57d2 | ||
|
|
952c02d3d6 | ||
|
|
355d98eb53 | ||
|
|
3972f3e2a7 | ||
|
|
c3f22ec7eb | ||
|
|
8330b31a6d | ||
|
|
c89e953b6e | ||
|
|
1536f5805e | ||
|
|
a640509e04 | ||
|
|
ea0a808e15 | ||
|
|
20f3a4128c | ||
|
|
f6bad14087 | ||
|
|
83f8975a50 | ||
|
|
ce7c1f797f | ||
|
|
bb9a97496d | ||
|
|
b94b5b2d90 | ||
|
|
b523f3d24e | ||
|
|
79966cb5ed | ||
|
|
c9f97665be | ||
|
|
d618181dc7 | ||
|
|
e2b6054b17 | ||
|
|
0f6bdcd88d | ||
|
|
74c9923f0b | ||
|
|
a86bb5197d | ||
|
|
6c7b15eeca | ||
|
|
4c44f874b9 | ||
|
|
4efc2cd05f | ||
|
|
839d5ce1f9 | ||
|
|
7c2d35d746 | ||
|
|
eff0b040a2 | ||
|
|
eede41fb18 | ||
|
|
a66abd037e | ||
|
|
7edce1967f | ||
|
|
6c028d8511 | ||
|
|
ef32e5f990 | ||
|
|
ba435d9c14 | ||
|
|
f6db693407 | ||
|
|
0f446a5435 | ||
|
|
0b17ceda90 | ||
|
|
f000af56e7 | ||
|
|
d06d684c96 | ||
|
|
24063ad883 | ||
|
|
3aa2109986 | ||
|
|
5c3c9f3dfa | ||
|
|
07a9aabe20 | ||
|
|
4702b8ffed | ||
|
|
b071c7ff11 | ||
|
|
9d8b8458bf | ||
|
|
73bc2382bb | ||
|
|
4a4c8a7b2b | ||
|
|
0a9f88a2fb | ||
|
|
8bed8e2cf7 | ||
|
|
c8b396b99d | ||
|
|
afc636a20f | ||
|
|
bd0b012bce | ||
|
|
86b0a9dac2 | ||
|
|
f344c0d41d | ||
|
|
f70c599afd | ||
|
|
08cf77eb23 | ||
|
|
25910c5189 | ||
|
|
09d17f2cfe | ||
|
|
c9cf757964 | ||
|
|
98b64e2fad | ||
|
|
fbfab42e8b | ||
|
|
c44c63d5ce | ||
|
|
1e3b1a6605 | ||
|
|
ef2a2a5efc | ||
|
|
ccfe709789 | ||
|
|
43563ccff7 | ||
|
|
db2673cf27 | ||
|
|
351cc884ec | ||
|
|
d6823beb95 | ||
|
|
dfede695a7 | ||
|
|
b0354fa8b9 | ||
|
|
41cecd4947 | ||
|
|
dd5a59a1cb | ||
|
|
ee86bff81c | ||
|
|
9fb04e4f7c | ||
|
|
74a4efddf1 | ||
|
|
10906f91f5 | ||
|
|
816d6887ad | ||
|
|
e950e012ed | ||
|
|
4fdd0993d7 | ||
|
|
8e783f948f | ||
|
|
e6313c4d5f | ||
|
|
7de3843cd9 | ||
|
|
425d334f8b | ||
|
|
609854c28d | ||
|
|
fd09bd2092 | ||
|
|
1aa00bfa2a | ||
|
|
d757c36569 | ||
|
|
899567b305 | ||
|
|
59bf54001e | ||
|
|
c50b9cd555 | ||
|
|
92fc0f4044 | ||
|
|
7b90548f88 | ||
|
|
c0d64f91c0 | ||
|
|
cd86c556a9 | ||
|
|
c909421090 | ||
|
|
b66b46b8a0 | ||
|
|
d94aff97ea | ||
|
|
191597e333 | ||
|
|
270af0ff00 | ||
|
|
2f1e292e06 | ||
|
|
dd5461273c | ||
|
|
818100e3d8 | ||
|
|
1dbc492aac | ||
|
|
5c0e99008b | ||
|
|
60553b996c | ||
|
|
5886241e8d | ||
|
|
bdcc36c321 | ||
|
|
9fd989106d | ||
|
|
f99f6f4ea7 | ||
|
|
62df1fbc59 | ||
|
|
a512948eb0 | ||
|
|
2aaf3f82e6 | ||
|
|
af79354d46 | ||
|
|
f6d3b4d868 | ||
|
|
20882f65cc | ||
|
|
922e909a7f | ||
|
|
98c5f0efb7 | ||
|
|
509ede1f98 | ||
|
|
e0ea3b5866 | ||
|
|
aa67693b8d | ||
|
|
f70f27fc94 | ||
|
|
1b2eb4a92d | ||
|
|
661916eac6 | ||
|
|
e9c662cbf7 | ||
|
|
f123e0534b | ||
|
|
9160111e20 | ||
|
|
1318341451 | ||
|
|
e9456ac073 | ||
|
|
5865b9fd2d | ||
|
|
e1c3bac43a | ||
|
|
7e5be9f0b8 | ||
|
|
e3e7eec78a | ||
|
|
f5bffa4b24 | ||
|
|
0978259d2e | ||
|
|
d6a140ea7d | ||
|
|
33744a4a73 | ||
|
|
3bb64df473 | ||
|
|
9775e1c75d | ||
|
|
225ab67a50 | ||
|
|
838569e386 | ||
|
|
040a8fad5b | ||
|
|
143218913d | ||
|
|
2b7580f186 | ||
|
|
babdc9568f | ||
|
|
e4103c9d4a | ||
|
|
dff60ee6ef | ||
|
|
14664bd38f | ||
|
|
f61feb54d4 | ||
|
|
bbeb8aa884 | ||
|
|
864879eabe | ||
|
|
d10ce64f2d | ||
|
|
c93263ccea | ||
|
|
37092f0359 | ||
|
|
e26ff172c8 | ||
|
|
619f979232 | ||
|
|
1710ebae19 | ||
|
|
50a48cdf24 | ||
|
|
997384e832 | ||
|
|
1f43997088 | ||
|
|
097404b3d1 | ||
|
|
8562cfb813 | ||
|
|
70cd0f90c7 | ||
|
|
8981160627 | ||
|
|
e01af2fe97 | ||
|
|
a5d1537b75 | ||
|
|
a035b6f1c6 | ||
|
|
18f84476ef | ||
|
|
ed7735e3b8 | ||
|
|
859ff6c088 | ||
|
|
a3c78e2387 | ||
|
|
87153390c8 | ||
|
|
a679bcc669 | ||
|
|
2d3727670c | ||
|
|
be4e05f1e5 | ||
|
|
81b1ee1bf6 | ||
|
|
eb330dc484 | ||
|
|
2b0c6c6f73 | ||
|
|
88c0d896a5 | ||
|
|
c41f4392ca | ||
|
|
a40a91c0a7 | ||
|
|
c613abc5fc | ||
|
|
66c8d003d9 | ||
|
|
d294ebb872 | ||
|
|
6d6f3751e3 | ||
|
|
62e165b9ac | ||
|
|
ec5b4abab9 | ||
|
|
2309e1085f | ||
|
|
0e5107181c | ||
|
|
62f4172258 | ||
|
|
981ac1f23a | ||
|
|
335fb757ab | ||
|
|
5ea8fd169c | ||
|
|
f55c534659 | ||
|
|
6c9fb9b3bb | ||
|
|
46c8d6d3e4 | ||
|
|
301490a341 | ||
|
|
e9936865d9 | ||
|
|
c003a2594b | ||
|
|
a14220c12d | ||
|
|
b94e4dcff1 | ||
|
|
604d0da2d5 | ||
|
|
d7c8bc246b | ||
|
|
e6b6f0fc7a | ||
|
|
f7f87131cd | ||
|
|
59f9b9967e | ||
|
|
c7a80d5c6e | ||
|
|
73f932fade | ||
|
|
2d4f9d4d7b | ||
|
|
203163de43 | ||
|
|
98fa56eed5 | ||
|
|
3ecd929125 | ||
|
|
5c00c8f1ab | ||
|
|
5fcb120811 | ||
|
|
2fc67fae18 | ||
|
|
591460d2d7 | ||
|
|
697532d5b4 | ||
|
|
dce081ce62 | ||
|
|
6207d5ebf5 | ||
|
|
dd33e152fc | ||
|
|
18b64c3999 | ||
|
|
fbd81f431e | ||
|
|
a962533301 | ||
|
|
379ccdf33d | ||
|
|
70cbc6033b | ||
|
|
4c5279e5eb | ||
|
|
3d61e4ed68 | ||
|
|
0191bf4279 | ||
|
|
2473c38e57 | ||
|
|
e868d8a67f | ||
|
|
cfe3ea22dd | ||
|
|
34e5e6c151 | ||
|
|
3aaed105cc | ||
|
|
d9813e2b03 | ||
|
|
049a0f8729 | ||
|
|
e84e774fcf | ||
|
|
57b16da239 | ||
|
|
795e71a27a | ||
|
|
c915fe63b6 | ||
|
|
a0481737aa | ||
|
|
16c76723fe | ||
|
|
d26e51c434 | ||
|
|
8e953abe94 | ||
|
|
3b3db4c1d2 | ||
|
|
81de13e251 | ||
|
|
8770178c9b | ||
|
|
1152699be6 | ||
|
|
3359d3969c | ||
|
|
99f774a2f8 | ||
|
|
8da63bc3c6 | ||
|
|
c2b77d96fb | ||
|
|
e27f558146 | ||
|
|
dcfe4464b6 | ||
|
|
9bfd96a9dd | ||
|
|
c51b2f3267 | ||
|
|
344cf8379c | ||
|
|
cbc342ce1a | ||
|
|
9b8b9f5e14 | ||
|
|
cd34782bd5 | ||
|
|
6c4af27ec6 | ||
|
|
0333413505 | ||
|
|
4124a3c8fe | ||
|
|
6db088328b | ||
|
|
57b2adb81f | ||
|
|
f33df61860 | ||
|
|
ee965e4b74 | ||
|
|
d0911cd0c7 | ||
|
|
0b91608bbe | ||
|
|
e0a5070cdc | ||
|
|
49ce111c33 | ||
|
|
fa3d3420f6 | ||
|
|
b0c2416efb | ||
|
|
88548eda88 | ||
|
|
0d3058783e | ||
|
|
3e34d123c0 | ||
|
|
c06e51641e | ||
|
|
89a682fc14 | ||
|
|
edb6dc9248 | ||
|
|
501fd5943e | ||
|
|
8a695bc1e2 | ||
|
|
d840f0ed94 | ||
|
|
859fe6cfe5 | ||
|
|
b9f0d39d1c | ||
|
|
bb96eb1a8d | ||
|
|
4e720eb4d2 | ||
|
|
136a0ecbf7 | ||
|
|
f20b70c35d | ||
|
|
75cbb0eeb2 | ||
|
|
21dde671de | ||
|
|
22a0884203 | ||
|
|
76cc2fdb25 | ||
|
|
b67ff738cb | ||
|
|
6291e65165 | ||
|
|
6b2239212c | ||
|
|
9aa0ac9396 | ||
|
|
a16040073f | ||
|
|
f1a16f2eb2 | ||
|
|
5a9f29bd9d | ||
|
|
d9417a9aa9 | ||
|
|
3a2d168c0c | ||
|
|
4abe2cdb6d | ||
|
|
83cb4553ad | ||
|
|
aac415d1fa | ||
|
|
1e51804b74 | ||
|
|
d5573be1e9 | ||
|
|
728cd96cfa | ||
|
|
bc6c6ce66d | ||
|
|
20b5ef02b9 | ||
|
|
a37b6d46e8 | ||
|
|
4c6b802cb9 | ||
|
|
6ced8bd137 | ||
|
|
374eb82d40 | ||
|
|
9581020e33 | ||
|
|
476b400315 | ||
|
|
0e45e0a843 | ||
|
|
f93f4985b3 | ||
|
|
67f3da6be2 | ||
|
|
9ff2cf35c6 | ||
|
|
86a3a06bb1 | ||
|
|
f81835cc60 | ||
|
|
8ab4f8bd93 | ||
|
|
ae5526c928 | ||
|
|
335cd41eca | ||
|
|
4c1fa34f2c | ||
|
|
f94d3f91cf | ||
|
|
2b1224b3df | ||
|
|
5e77f44e05 | ||
|
|
6e4bd83a69 | ||
|
|
5de241c2c6 | ||
|
|
729f61b84c | ||
|
|
100f7f4147 | ||
|
|
7dfa6d55ba | ||
|
|
22515592f0 | ||
|
|
0a5db20cb8 | ||
|
|
d91c9dc41f | ||
|
|
711f189e0e | ||
|
|
1d579d12d2 | ||
|
|
624fde5b46 | ||
|
|
87a3c923a6 | ||
|
|
c38c82bf6a | ||
|
|
cd03077b77 | ||
|
|
871f320de7 | ||
|
|
3ab089c264 | ||
|
|
d993ab7b48 | ||
|
|
b1103ab227 | ||
|
|
2217959242 | ||
|
|
d38274acae | ||
|
|
08e4b07364 | ||
|
|
8c129ab512 | ||
|
|
32e9d6fe72 | ||
|
|
dd8ba803d4 | ||
|
|
6f90cd5b04 | ||
|
|
59e6d18c68 | ||
|
|
81099e6141 | ||
|
|
9bf6b6ec4a | ||
|
|
abdbec2523 | ||
|
|
be62ec31d8 | ||
|
|
a62bbd1aed | ||
|
|
d916d8f8df | ||
|
|
4ce8ae67bc | ||
|
|
225a18c2ab | ||
|
|
b23ba4f66d | ||
|
|
d30b713c74 | ||
|
|
2dba594954 | ||
|
|
c419189ffa | ||
|
|
aa2a2bf9fe | ||
|
|
1fd231b96c | ||
|
|
21cd1c4e40 | ||
|
|
bdf46c5d96 | ||
|
|
13726e1e8a | ||
|
|
766c16dc3c | ||
|
|
cd2df06a10 | ||
|
|
9a7f2fadf3 | ||
|
|
2a68f479ed | ||
|
|
a486bd262b | ||
|
|
a7247f16f7 | ||
|
|
39a5483c96 | ||
|
|
fc12649028 | ||
|
|
b4b26979de | ||
|
|
73e9b64926 | ||
|
|
2307c68ab2 | ||
|
|
2ce0eae82e | ||
|
|
45b0e0a7ab | ||
|
|
317dd69db3 | ||
|
|
3435f06696 | ||
|
|
dcfebe6595 | ||
|
|
b9a759de53 | ||
|
|
5135d1167c | ||
|
|
51e30c6a13 | ||
|
|
b464c0abc5 | ||
|
|
7469230d59 | ||
|
|
7ba7e7a319 | ||
|
|
0dc41eedb0 | ||
|
|
72a7a6b3c8 | ||
|
|
533533b639 | ||
|
|
0cd26250b9 | ||
|
|
1d545c10c4 | ||
|
|
d352fab5cd | ||
|
|
1bb95040ff | ||
|
|
c0d83be019 | ||
|
|
1c3f55568b | ||
|
|
15850f4302 | ||
|
|
c328eaed0e | ||
|
|
d42e647d50 | ||
|
|
0e8f7e6fe3 | ||
|
|
380f322eda | ||
|
|
017462c4c1 | ||
|
|
3e83ebc680 | ||
|
|
989eca40ec | ||
|
|
51bd1445a5 | ||
|
|
0c8378e22a | ||
|
|
5b219deae2 | ||
|
|
a311328b38 | ||
|
|
03fbfc8f7a | ||
|
|
4bb43cb9b5 | ||
|
|
e7ee77ad62 | ||
|
|
d2d8d3d8c2 | ||
|
|
d3875f5e36 | ||
|
|
24fec75821 | ||
|
|
dc4d1c6497 | ||
|
|
d0fed20d28 | ||
|
|
1e26314776 | ||
|
|
448a072e8e | ||
|
|
0f89478df6 | ||
|
|
0b96093ae5 | ||
|
|
52f85f9452 | ||
|
|
c88dbd3f02 | ||
|
|
b6b45165ca | ||
|
|
f53843f9b0 | ||
|
|
41f94f2be5 | ||
|
|
23a1bc2595 | ||
|
|
2afb9b1456 | ||
|
|
a389621cf1 | ||
|
|
aa72ea805f | ||
|
|
a943b4ef6d | ||
|
|
3642893618 | ||
|
|
9e5758c905 | ||
|
|
4f13432df4 | ||
|
|
8f5d9f2d18 | ||
|
|
9b2d1f853d | ||
|
|
f484cb393a | ||
|
|
a2f29cc817 | ||
|
|
87976fc845 | ||
|
|
819c818976 | ||
|
|
87d6b55022 | ||
|
|
f086bf9284 | ||
|
|
144d7276ef | ||
|
|
c5abd39116 | ||
|
|
b42adebc39 | ||
|
|
35c1ee5a79 | ||
|
|
89c9823b5d | ||
|
|
da2f87660f | ||
|
|
19be833058 | ||
|
|
3c08e16ef2 | ||
|
|
d2b17fbc6d | ||
|
|
e526cb462f | ||
|
|
1237bbebcd | ||
|
|
65e7a71dff | ||
|
|
ef28b60bfc | ||
|
|
f6c9ca0202 | ||
|
|
403ca48661 | ||
|
|
3d96420db7 | ||
|
|
afc011c5c8 | ||
|
|
681c4a0a0a | ||
|
|
faac26138a | ||
|
|
8a799e0971 | ||
|
|
ec14d1f0fe | ||
|
|
a6e289c21f | ||
|
|
7ea0630973 | ||
|
|
e86a8cee10 | ||
|
|
1fa90eb865 | ||
|
|
2cb16a8ad8 | ||
|
|
f241bfb7b8 | ||
|
|
075482b417 | ||
|
|
2a76a50400 | ||
|
|
9c3c64eb1d | ||
|
|
bd2c676c31 | ||
|
|
f6ef53b565 | ||
|
|
3c496b5694 | ||
|
|
50320d9d9c | ||
|
|
d9748cb69b | ||
|
|
842451c747 | ||
|
|
cbcb5cfdd6 | ||
|
|
433df89238 | ||
|
|
598ede6b37 | ||
|
|
78b32002d7 | ||
|
|
579ef3db36 | ||
|
|
255f8f8fbd | ||
|
|
e9f03a5455 | ||
|
|
f2423edb66 | ||
|
|
44824761f8 | ||
|
|
93f38ced01 | ||
|
|
b08c58e6d2 | ||
|
|
3bd356019f | ||
|
|
70c0fff557 | ||
|
|
59a84c3b98 | ||
|
|
48fdde5640 | ||
|
|
42175496be | ||
|
|
dabbd693b6 | ||
|
|
67556eba74 | ||
|
|
d6411dc480 | ||
|
|
86840ee0f5 | ||
|
|
182de8ef6d | ||
|
|
c52bffc619 | ||
|
|
50a432b176 | ||
|
|
c5a0ec3919 | ||
|
|
9f18e58c69 | ||
|
|
20c16af6d3 | ||
|
|
a1debe45cf | ||
|
|
80b2079c19 | ||
|
|
9dfe3dcf79 | ||
|
|
ea05cf02b4 | ||
|
|
1b25275333 | ||
|
|
f90bc04b1a | ||
|
|
2a06601e3a | ||
|
|
bcb5e3950b | ||
|
|
a2478e68c6 | ||
|
|
e9cf610299 | ||
|
|
82b1dbb01b | ||
|
|
701094596f | ||
|
|
c66899741a |
@@ -1,3 +1,7 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
|
||||
1
.formal-git/template
Normal file
@@ -0,0 +1 @@
|
||||
{bugId}: {message}
|
||||
7
.gitattributes
vendored
@@ -1 +1,8 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
*.patch linguist-language=C++
|
||||
*.d.ts linguist-language=TypeScript
|
||||
|
||||
src/zen/tests/*.js linguist-language=Test
|
||||
|
||||
2
.github/FUNDING.yml
vendored
@@ -1,2 +0,0 @@
|
||||
patreon: zen_browser
|
||||
ko_fi: zen_browser
|
||||
113
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -4,42 +4,82 @@ body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for filing a bug report.
|
||||
<p align="center">
|
||||
<a href="https://zen-browser.app">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-light.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-dark.svg">
|
||||
<img src="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-light.svg" alt="Zen Logo" width="64" height="64">
|
||||
</picture>
|
||||
<img src="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-browser.svg" alt="Zen Browser Text" width="156" height="64">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Important
|
||||
- Please search existing issues to avoid creating duplicates.
|
||||
- For enhancement requests, please use GitHub Discussions.
|
||||
- Please fill out the template below to the best of your ability.
|
||||
<p align="center"><em>Thank you for filing a bug report!</em></p>
|
||||
|
||||
> [!IMPORTANT]
|
||||
> - Please provide descriptive titles. Bad titles do more harm than good.
|
||||
> - Please search existing issues to avoid creating duplicates.
|
||||
> - For enhancement requests, please use GitHub Discussions.
|
||||
> - Please fill out the template below to the best of your ability.
|
||||
> - Please describe the issue as much as possible and provide steps to reproduce it along with visual aids if possible.
|
||||
- type: checkboxes
|
||||
id: captchas
|
||||
attributes:
|
||||
label: Captchas
|
||||
description: Just making sure you did actually read the instructions.
|
||||
label: Preliminary Checks
|
||||
description: Please confirm the following before submitting a bug report. This helps us triage and resolve issues more efficiently.
|
||||
options:
|
||||
- label: I have read the instructions.
|
||||
- label: I have read and understood the important section above.
|
||||
required: true
|
||||
- label: I have searched existing issues and avoided creating duplicates.
|
||||
required: true
|
||||
- label: I am not filing an enhancement request.
|
||||
required: true
|
||||
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||
required: true
|
||||
- label: I have checked that this issue can be reproduced once I removed all my Mods and Custom CSS.
|
||||
required: true
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: Also tell us, what did you expect to happen?
|
||||
description: Describe the bug clearly and concisely.
|
||||
placeholder: Tell us what you see!
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: firefox
|
||||
- type: input
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Reproducible?
|
||||
description: Is this issue reproducible on Firefox?
|
||||
options:
|
||||
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||
label: Expected behavior
|
||||
description: Please write a description of what was supposed to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: actual-behavior
|
||||
attributes:
|
||||
label: Actual behavior
|
||||
description: Please write a description of what actually happened.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: how-to-reproduce
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please Provide numbered steps to reproduce this issue so developers can replicate them easily.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Screenshots and videos
|
||||
description: |
|
||||
If applicable, add screenshots or videos to help explain your problem.
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of our software are you running? Please DO NOT report Classic bugs.
|
||||
placeholder: 1.0.0
|
||||
description: What version of our software are you running? Please do not use "latest" or "newest" as version numbers. Go to `Help -> About Zen` to find the version number.
|
||||
placeholder: 1.0.0b
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -48,15 +88,48 @@ body:
|
||||
label: What platform are you seeing the problem on?
|
||||
multiple: true
|
||||
options:
|
||||
- Linux
|
||||
- Linux (AppImage)
|
||||
- Linux (Flatpak)
|
||||
- Linux (Tarball)
|
||||
- macOS - aarch64
|
||||
- macOS - Intel
|
||||
- Windows
|
||||
- Windows - aarch64
|
||||
- Windows - x64
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: component
|
||||
attributes:
|
||||
label: What component is this issue related to?
|
||||
options:
|
||||
- Other
|
||||
- Bookmarks
|
||||
- Compact Mode
|
||||
- Customizable UI / Toolbars
|
||||
- Extensions
|
||||
- Glance
|
||||
- Keyboard Shortcuts
|
||||
- Localization
|
||||
- Media Controler
|
||||
- Mods / Themes
|
||||
- Performance
|
||||
- Privacy
|
||||
- Security
|
||||
- Settings
|
||||
- Split View
|
||||
- Sync
|
||||
- Tab Folders
|
||||
- Tab unloading
|
||||
- Tabs
|
||||
- URL Bar
|
||||
- Workspaces
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
label: Relevant log output if applicable
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
|
||||
58
.github/advanced-issue-labeler.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
policy:
|
||||
- section:
|
||||
- id: [component]
|
||||
label:
|
||||
# Make sure it's in sync with the dropdown in the issue template
|
||||
- name: "component: sync"
|
||||
keys: ["Sync"]
|
||||
- name: "component: compact-mode"
|
||||
keys: ["Compact Mode"]
|
||||
- name: "component: workspaces"
|
||||
keys: ["Workspaces"]
|
||||
- name: "component: mods-themes"
|
||||
keys: ["Mods / Themes"]
|
||||
- name: "component: bookmarks"
|
||||
keys: ["Bookmarks"]
|
||||
- name: "component: glance"
|
||||
keys: ["Glance"]
|
||||
- name: "component: url-bar"
|
||||
keys: ["URL Bar"]
|
||||
- name: "component: tabs"
|
||||
keys: ["Tabs"]
|
||||
- name: "component: settings"
|
||||
keys: ["Settings"]
|
||||
- name: "component: privacy"
|
||||
keys: ["Privacy"]
|
||||
- name: "component: split-view"
|
||||
keys: ["Split View"]
|
||||
- name: "component: performance"
|
||||
keys: ["Performance"]
|
||||
- name: "component: media-controller"
|
||||
keys: ["Media Controler"]
|
||||
- name: "component: tab-unloading"
|
||||
keys: ["Tab unloading"]
|
||||
- name: "component: tab-folders"
|
||||
keys: ["Tab Folders"]
|
||||
- name: "component: keyboard-shortcuts"
|
||||
keys: ["Keyboard Shortcuts"]
|
||||
- name: "component: security"
|
||||
keys: ["Security"]
|
||||
- name: "component: extensions"
|
||||
keys: ["Extensions"]
|
||||
- name: "component: customizable-ui-toolbars"
|
||||
keys: ["Customizable UI / Toolbars"]
|
||||
- name: "component: localization"
|
||||
keys: ["Localization"]
|
||||
- name: "component: other"
|
||||
keys: ["Other"]
|
||||
|
||||
- id: [platform]
|
||||
block-list: ["Other"]
|
||||
label:
|
||||
# Make sure it's in sync with the dropdown in the issue template
|
||||
- name: "platform: linux"
|
||||
keys: ["Linux (AppImage)", "Linux (Flatpak)", "Linux (Tarball)"]
|
||||
- name: "platform: macOS"
|
||||
keys: ["macOS - aarch64", "macOS - Intel"]
|
||||
- name: "platform: windows"
|
||||
keys: ["Windows - x64", "Windows - aarch64"]
|
||||
479
.github/workflows/build.yml
vendored
@@ -4,92 +4,130 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_release:
|
||||
description: 'Create a new release for this build'
|
||||
description: "Create a new release for this build"
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
type: "boolean"
|
||||
update_version:
|
||||
description: 'Update the version number'
|
||||
description: "Update the version number"
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
type: "boolean"
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
description: "Update branch with new version"
|
||||
required: true
|
||||
default: 'beta'
|
||||
type: 'choice'
|
||||
default: "release"
|
||||
type: "choice"
|
||||
options:
|
||||
- 'beta'
|
||||
- 'twilight'
|
||||
- "release"
|
||||
- "twilight"
|
||||
use-sccache:
|
||||
description: "Use sccache"
|
||||
required: true
|
||||
type: "boolean"
|
||||
default: false
|
||||
workflow_call:
|
||||
inputs:
|
||||
create_release:
|
||||
description: 'Create a new release for this build'
|
||||
description: "Create a new release for this build"
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
type: "boolean"
|
||||
update_version:
|
||||
description: 'Update the version number'
|
||||
description: "Update the version number"
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
type: "boolean"
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
description: "Update branch with new version"
|
||||
required: true
|
||||
default: 'beta'
|
||||
type: 'string'
|
||||
default: "release"
|
||||
type: "string"
|
||||
use-sccache:
|
||||
description: "Use sccache"
|
||||
required: true
|
||||
type: "boolean"
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
debug-inputs:
|
||||
name: Debug inputs
|
||||
buildid:
|
||||
name: Generate build ID
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
echo "update_version: ${{ inputs.update_version }}"
|
||||
echo "update_branch: ${{ inputs.update_branch }}"
|
||||
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
check-build-is-correct:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [debug-inputs]
|
||||
outputs:
|
||||
buildids: ${{ steps.get.outputs.bid }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
fetch-depth: 0
|
||||
|
||||
- id: get
|
||||
shell: bash -xe {0}
|
||||
run: |
|
||||
bdat=`date +"%Y%m%d%I%M%S"`
|
||||
echo "bid=${bdat}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
echo "update_version: ${{ inputs.update_version }}"
|
||||
echo "use sccache: ${{ inputs.use-sccache }}"
|
||||
echo "update_branch: ${{ inputs.update_branch }}"
|
||||
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Check if correct branch
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
echo "Checking if we are on the correct branch"
|
||||
git branch
|
||||
git status
|
||||
git branch --show-current
|
||||
branch="${{ inputs.update_branch }}"
|
||||
if [[ $branch == "beta" ]]; then
|
||||
branch="stable"
|
||||
elif [[ $branch == "twilight" ]]; then
|
||||
if [[ $branch == "twilight" ]]; then
|
||||
branch="dev"
|
||||
elif [[ $branch == "release" ]]; then
|
||||
branch="stable"
|
||||
fi
|
||||
if [[ $(git branch --show-current) != $branch ]]; then
|
||||
echo ">>> Branch mismatch"
|
||||
exit 1
|
||||
# exit 1
|
||||
else
|
||||
echo ">>> Branch matches"
|
||||
fi
|
||||
|
||||
start-self-host:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
sudo ./aws/install --update
|
||||
|
||||
- name: Start self-hosted runner
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Starting self-hosted runner"
|
||||
echo "${{ secrets.SELF_HOSTED_RUNNER_START_SCRIPT }}" | base64 -d > start.sh
|
||||
sudo chmod +x start.sh
|
||||
bash ./start.sh
|
||||
|
||||
- name: Remove self-hosted runner script
|
||||
if: always() && ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Removing self-hosted runner script"
|
||||
rm start.sh || true
|
||||
|
||||
build-data:
|
||||
permissions:
|
||||
contents: write
|
||||
name: Generate build data
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-build-is-correct
|
||||
needs: buildid
|
||||
outputs:
|
||||
build_date: ${{ steps.data.outputs.builddate }}
|
||||
version: ${{ steps.data.outputs.version }}
|
||||
@@ -102,36 +140,27 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
|
||||
- name: Setup Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Bump version
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'beta' }}
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||
npm run surfer -- ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||
|
||||
- name: Bump version without new version
|
||||
if: ${{ !inputs.update_version || inputs.update_branch == 'twilight' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }}
|
||||
npm run surfer -- ci --brand ${{ inputs.update_branch }}
|
||||
|
||||
- name: Debug
|
||||
run: |
|
||||
@@ -166,22 +195,13 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
|
||||
- name: Setup Surfer
|
||||
run: |
|
||||
@@ -189,15 +209,14 @@ jobs:
|
||||
|
||||
- name: Activate Surfer CLI
|
||||
run: |
|
||||
echo "There's a bug in the Surfer CLI, we run this so that Surfer sets everything up correctly"
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
npm run surfer -- ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Check version
|
||||
run: |
|
||||
echo "$(pwd)"
|
||||
ls .
|
||||
echo "version=$(pnpm surfer get version | xargs)" >> $GITHUB_OUTPUT
|
||||
if [[ $(pnpm surfer get version | xargs) == ${{ needs.build-data.outputs.version }} ]]; then
|
||||
echo $(npm run --silent surfer -- get version | xargs)
|
||||
echo "version=$(npm run --silent surfer -- get version | xargs)" >> $GITHUB_OUTPUT
|
||||
if [[ $(npm run --silent surfer -- get version | xargs) == ${{ needs.build-data.outputs.version }} ]]; then
|
||||
echo ">>> Version matches"
|
||||
else
|
||||
echo ">>> Version mismatch"
|
||||
@@ -218,62 +237,60 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
run: npm run surfer -- ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download --verbose
|
||||
run: npm run download --verbose
|
||||
|
||||
- name: Import
|
||||
run: pnpm surfer import --verbose
|
||||
run: npm run import -- --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Compress
|
||||
run: |
|
||||
cd engine
|
||||
tar --use-compress-program=zstd -hcf ../zen.source.tar.gz *
|
||||
cd ..
|
||||
tar \
|
||||
--exclude='./.git' \
|
||||
--use-compress-program=zstd \
|
||||
-hcf zen.source.tar.zst \
|
||||
-C engine .
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.source.tar.gz
|
||||
path: ./zen.source.tar.gz
|
||||
name: zen.source.tar.zst
|
||||
path: ./zen.source.tar.zst
|
||||
|
||||
windows-step-1:
|
||||
name: Windows build step 1 (PGO build)
|
||||
uses: ./.github/workflows/windows-release-build.yml
|
||||
needs: [build-data]
|
||||
needs: [build-data, buildid]
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
with:
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: true
|
||||
profile-data-path-archive: zen-windows-profile-data-and-jarlog.zip
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
|
||||
windows-step-2:
|
||||
name: Windows build step 2 (Generate profile data)
|
||||
@@ -293,11 +310,13 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data, windows-step-2]
|
||||
needs: [build-data, windows-step-2, start-self-host, buildid]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: false
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
linux:
|
||||
name: Linux build
|
||||
@@ -305,10 +324,12 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
needs: [build-data, start-self-host, buildid]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
mac:
|
||||
name: macOS build
|
||||
@@ -316,7 +337,20 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
needs: [build-data, buildid]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
mac-uni:
|
||||
name: macOS build (Universal)
|
||||
uses: ./.github/workflows/macos-universal-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data, mac]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
@@ -329,7 +363,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
needs: [linux]
|
||||
needs: [linux, build-data]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
@@ -338,48 +372,57 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
npm install -g pnpm
|
||||
npm ci
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libfuse2 desktop-file-utils appstream
|
||||
|
||||
- name: Download Linux build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
name: zen.linux-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: Execute AppImage build
|
||||
run: |
|
||||
set -eux
|
||||
rm AppDir/.DirIcon || true
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
export ARCH=${{ matrix.arch }}
|
||||
UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-$ARCH.AppImage.zsync"
|
||||
rm build/AppDir/.DirIcon || true
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png build/AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png build/AppDir/zen.png && ln -s zen.png build/AppDir/.DirIcon
|
||||
|
||||
if [ "${{ inputs.update_branch }}" = "twilight" ]; then
|
||||
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen-beta/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' build/AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen/StartupWMClass=zen-twilight/g' build/AppDir/zen.desktop
|
||||
fi
|
||||
|
||||
APPDIR=AppDir
|
||||
sed -i -e 's/\$VERSION/${{ needs.build-data.outputs.version }}/g' build/AppDir/zen.desktop
|
||||
|
||||
APPDIR=build/AppDir
|
||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||
mv zen/* $APPDIR/
|
||||
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
wget "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
|
||||
wget "https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-squashfs-lite-$ARCH"
|
||||
chmod +x *.AppImage
|
||||
chmod +x ./AppDir/AppRun
|
||||
chmod +x ./uruntime-appimage-squashfs-lite-"$ARCH"
|
||||
chmod +x ./build/AppDir/AppRun
|
||||
|
||||
# keep the uruntime mountpoint (massively speeds up launch time)
|
||||
sed -i 's|URUNTIME_MOUNT=[0-9]|URUNTIME_MOUNT=0|' ./uruntime-appimage-squashfs-lite-"$ARCH"
|
||||
|
||||
echo "AppDir: $APPDIR"
|
||||
ls -al
|
||||
find .
|
||||
ls -al "$APPDIR"
|
||||
ARCH=${{ matrix.arch }} ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
|
||||
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.arch }}.AppImage.zsync" \
|
||||
"$APPDIR" zen-${{ matrix.arch }}.AppImage
|
||||
./appimagetool-x86_64.AppImage -u "$UPINFO" "$APPDIR" zen-"$ARCH".AppImage --runtime-file ./uruntime-appimage-squashfs-lite-"$ARCH"
|
||||
mkdir dist
|
||||
mv zen*AppImage* dist/.
|
||||
unset ARCH
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -395,14 +438,50 @@ jobs:
|
||||
name: zen-${{ matrix.arch }}.AppImage.zsync
|
||||
path: ./dist/zen-${{ matrix.arch }}.AppImage.zsync
|
||||
|
||||
stop-self-hosted:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [windows-step-3, linux]
|
||||
if: always()
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
sudo ./aws/install --update
|
||||
|
||||
- name: Stop self-hosted runner
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Stopping self-hosted runner"
|
||||
echo "${{ secrets.SELF_HOSTED_RUNNER_STOP_SCRIPT }}" | base64 -d > stop.sh
|
||||
sudo chmod +x stop.sh
|
||||
bash ./stop.sh > /dev/null
|
||||
|
||||
- name: Remove self-hosted runner script
|
||||
if: always() && ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Removing self-hosted runner script"
|
||||
rm stop.sh || true
|
||||
|
||||
release:
|
||||
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
|
||||
permissions: write-all
|
||||
name: Release
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
[
|
||||
build-data,
|
||||
linux,
|
||||
windows-step-3,
|
||||
check-release,
|
||||
mac-uni,
|
||||
appimage,
|
||||
source,
|
||||
stop-self-hosted,
|
||||
]
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
environment:
|
||||
name: ${{ inputs.update_branch == 'beta' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
name: ${{ inputs.update_branch == 'release' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -411,16 +490,9 @@ jobs:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Git pull
|
||||
run: |
|
||||
git pull
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
|
||||
- name: List
|
||||
run: find .
|
||||
|
||||
- name: Checkout updates repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -429,19 +501,39 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download object files
|
||||
if: ${{ inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object --depth 1
|
||||
|
||||
- name: Sign MAR files
|
||||
env:
|
||||
SIGNMAR: ${{ github.workspace }}/linux-bin-x86_64/signmar
|
||||
ZEN_MAR_SIGNING_PASSWORD: ${{ secrets.ZEN_MAR_SIGNING_PASSWORD }}
|
||||
ZEN_SIGNING_CERT_PEM_BASE64: ${{ secrets.ZEN_SIGNING_CERT_PEM_BASE64 }}
|
||||
ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64: ${{ secrets.ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64 }}
|
||||
run: |
|
||||
bash scripts/mar_sign.sh -s
|
||||
|
||||
- name: Verify MARs and update manifests
|
||||
env:
|
||||
SIGNMAR: ${{ github.workspace }}/linux-bin-x86_64/signmar
|
||||
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||
run: |
|
||||
bash scripts/mar_verify.sh
|
||||
|
||||
- name: Copy update manifests
|
||||
env:
|
||||
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||
run: |
|
||||
# IMPORTANT: If changing any of these names,
|
||||
# make sure to also update the paths in the mar_sign.sh script
|
||||
|
||||
cd updates-server
|
||||
mkdir -p updates
|
||||
cp -a ../linux_update_manifest_x86_64/. updates/
|
||||
cp -a ../linux_update_manifest_aarch64/. updates/
|
||||
|
||||
if [[ $RELEASE_BRANCH == 'beta' ]]; then
|
||||
if [[ $RELEASE_BRANCH == 'release' ]]; then
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-x86_64/update_manifest/. updates/
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-arm64/update_manifest/. updates/
|
||||
else
|
||||
@@ -449,8 +541,7 @@ jobs:
|
||||
cp -a ../windows_update_manifest_arm64/. updates/
|
||||
fi
|
||||
|
||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||
cp -a ../macos_update_manifest_x86_64/. updates/
|
||||
cp -a ../macos_update_manifest/. updates/
|
||||
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
@@ -460,70 +551,73 @@ jobs:
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
repository: ./updates-server
|
||||
|
||||
- name: Generate Release Notes
|
||||
env:
|
||||
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||
run: bash .github/workflows/src/generate_release_notes.sh
|
||||
|
||||
# If we are on Twilight, we want to just update the Twilight tag's release
|
||||
- name: Update Twilight tag
|
||||
if: ${{ inputs.update_branch == 'twilight' }}
|
||||
uses: marvinpinto/action-automatic-releases@master
|
||||
uses: softprops/action-gh-release@v2.2.2
|
||||
with:
|
||||
body_path: release_notes.md
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-x86_64.tar.bz2
|
||||
zen.linux-aarch64.tar.bz2
|
||||
zen-x86_64.AppImage
|
||||
zen-x86_64.AppImage.zsync
|
||||
zen-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
zen.win-x86_64.zip
|
||||
zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-aarch64.mar
|
||||
windows.mar
|
||||
windows-arm64.mar
|
||||
macos-x86_64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer-arm64.exe
|
||||
zen.macos-x86_64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
automatic_release_tag: 'twilight'
|
||||
title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})'
|
||||
./zen.source.tar.zst/*
|
||||
./zen.linux-x86_64.tar.xz/*
|
||||
./zen.linux-aarch64.tar.xz/*
|
||||
./zen-x86_64.AppImage/*
|
||||
./zen-x86_64.AppImage.zsync/*
|
||||
./zen-aarch64.AppImage/*
|
||||
./zen-aarch64.AppImage.zsync/*
|
||||
./linux.mar/*
|
||||
./linux-aarch64.mar/*
|
||||
./windows.mar/*
|
||||
./windows-arm64.mar/*
|
||||
./macos.mar/*
|
||||
./zen.installer.exe/*
|
||||
./zen.installer-arm64.exe/*
|
||||
./zen.macos-universal.dmg/*
|
||||
tag_name: "twilight-1"
|
||||
name: "Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})"
|
||||
draft: false
|
||||
generate_release_notes: false
|
||||
prerelease: true
|
||||
repo_token: ${{ github.token }}
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
fail_on_unmatched_files: false
|
||||
env:
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
|
||||
- name: Release
|
||||
uses: marvinpinto/action-automatic-releases@master
|
||||
if: ${{ inputs.update_branch == 'beta' }}
|
||||
uses: softprops/action-gh-release@v2.2.2
|
||||
if: ${{ inputs.update_branch == 'release' }}
|
||||
with:
|
||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
tag_name: ${{ needs.build-data.outputs.version }}
|
||||
prerelease: false
|
||||
title: 'Beta build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
||||
fail_on_unmatched_files: false
|
||||
generate_release_notes: false
|
||||
name: "Release build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})"
|
||||
body_path: release_notes.md
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-x86_64.tar.bz2
|
||||
zen.linux-aarch64.tar.bz2
|
||||
zen-x86_64.AppImage
|
||||
zen-x86_64.AppImage.zsync
|
||||
zen-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip
|
||||
.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-aarch64.mar
|
||||
.github/workflows/object/windows-x64-signed-x86_64/windows.mar
|
||||
.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar
|
||||
macos-x86_64.mar
|
||||
macos-aarch64.mar
|
||||
.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe
|
||||
.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe
|
||||
zen.macos-x86_64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
./zen.source.tar.zst/*
|
||||
./zen.linux-x86_64.tar.xz/*
|
||||
./zen.linux-aarch64.tar.xz/*
|
||||
./zen-x86_64.AppImage/*
|
||||
./zen-x86_64.AppImage.zsync/*
|
||||
./zen-aarch64.AppImage/*
|
||||
./zen-aarch64.AppImage.zsync/*
|
||||
./linux.mar/*
|
||||
./linux-aarch64.mar/*
|
||||
./.github/workflows/object/windows-x64-signed-x86_64/windows.mar
|
||||
./.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar
|
||||
./macos.mar/*
|
||||
./.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe
|
||||
./.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe
|
||||
./zen.macos-universal.dmg/*
|
||||
|
||||
prepare-flatpak:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'beta' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
permissions: write-all
|
||||
name: Prepare Flatpak
|
||||
needs: [release, linux, build-data]
|
||||
@@ -540,7 +634,7 @@ jobs:
|
||||
run: |
|
||||
git pull
|
||||
sudo apt-get update
|
||||
npm install
|
||||
npm ci
|
||||
|
||||
- name: Generate new Flatpak release
|
||||
run: |
|
||||
@@ -566,14 +660,14 @@ jobs:
|
||||
pwd
|
||||
ls .
|
||||
ls ..
|
||||
mv releases.xml ./flatpak/io.github.zen_browser.zen.metainfo.xml
|
||||
mv releases.xml ./flatpak/app.zen_browser.zen.metainfo.xml
|
||||
# output the version to the file
|
||||
echo -n ${{ needs.build-data.outputs.version }} > ./flatpak/version
|
||||
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: '[release]: Update Flatpak manifest'
|
||||
commit_message: "[release]: Update Flatpak manifest"
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
repository: ./flatpak
|
||||
@@ -582,7 +676,7 @@ jobs:
|
||||
run: sleep 120
|
||||
|
||||
release-flatpak:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'beta' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
permissions: write-all
|
||||
name: Release Flatpak
|
||||
needs: [prepare-flatpak, build-data]
|
||||
@@ -592,13 +686,18 @@ jobs:
|
||||
- name: Checkout Flatpak repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: flathub/io.github.zen_browser.zen
|
||||
repository: flathub/app.zen_browser.zen
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download Linux x86_64 build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-x86_64.tar.bz2
|
||||
name: zen.linux-x86_64.tar.xz
|
||||
|
||||
- name: Download Linux aarch64 build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-aarch64.tar.xz
|
||||
|
||||
- name: Update repository
|
||||
uses: actions/checkout@v4
|
||||
@@ -620,27 +719,29 @@ jobs:
|
||||
python3 ./zen-browser/scripts/prepare-flatpak-release.py \
|
||||
--flatpak-archive archive.tar \
|
||||
--version ${{ needs.build-data.outputs.version }} \
|
||||
--linux-archive zen.linux-x86_64.tar.bz2 \
|
||||
--output io.github.zen_browser.zen.yml \
|
||||
--template-root ./zen-browser/flatpak
|
||||
--linux-archive zen.linux-x86_64.tar.xz \
|
||||
--linux-aarch64-archive zen.linux-aarch64.tar.xz \
|
||||
--output app.zen_browser.zen.yml \
|
||||
--template-root ./zen-browser/build/flatpak
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
git add io.github.zen_browser.zen.yml
|
||||
git add app.zen_browser.zen.yml
|
||||
git commit -m "Update to version ${{ needs.build-data.outputs.version }}"
|
||||
|
||||
- name: Clean up
|
||||
run: |
|
||||
rm -rf zen-browser
|
||||
rm -rf archive.tar
|
||||
rm -rf zen.linux-x86_64.tar.bz2
|
||||
rm -rf zen.linux-x86_64.tar.xz
|
||||
rm -rf zen.linux-aarch64.tar.xz
|
||||
|
||||
- name: Upload Flatpak manifest
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: io.github.zen_browser.zen.yml
|
||||
path: ./io.github.zen_browser.zen.yml
|
||||
name: app.zen_browser.zen.yml
|
||||
path: ./app.zen_browser.zen.yml
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
@@ -649,8 +750,8 @@ jobs:
|
||||
GIT_CURL_VERBOSE: 1
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
commit-message: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||
title: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||
commit-message: Update to version `${{ needs.build-data.outputs.version }}`
|
||||
title: Update to version `${{ needs.build-data.outputs.version }}`
|
||||
body: |
|
||||
This PR updates the Zen Browser Flatpak package to version ${{ needs.build-data.outputs.version }}.
|
||||
|
||||
|
||||
34
.github/workflows/check-candidate-release.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Check Firefox Candidate Release
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "59 4 * * 2"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check_candidates:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Check for any updates
|
||||
env:
|
||||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
DISCORD_PING_IDS: ${{ secrets.DISCORD_PING_IDS }}
|
||||
run: |
|
||||
python3 scripts/check_rc_response.py
|
||||
|
||||
sync-upstream:
|
||||
name: Sync Upstream
|
||||
uses: ./.github/workflows/sync-upstream.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [check_candidates]
|
||||
with:
|
||||
release_candidate: true
|
||||
25
.github/workflows/clear-all-cache.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Cleanup cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
permissions: write-all
|
||||
steps:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
echo "Fetching list of cache key"
|
||||
cacheKeysForPR=$(gh cache list --limit 1000 --json id --jq '.[].id')
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
echo "Deleting caches..."
|
||||
for cacheKey in $cacheKeysForPR
|
||||
do
|
||||
gh cache delete $cacheKey
|
||||
done
|
||||
echo "Done"
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GH_REPO: ${{ github.repository }}
|
||||
33
.github/workflows/clear-cache.yml
vendored
@@ -1,33 +0,0 @@
|
||||
name: Clear cache
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
|
||||
jobs:
|
||||
clear-cache:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clear cache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
console.log("About to clear")
|
||||
const caches = await github.rest.actions.getActionsCacheList({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
})
|
||||
|
||||
for (const cache of caches.data.actions_caches) {
|
||||
console.log(cache)
|
||||
await github.rest.actions.deleteActionsCacheById({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
cache_id: cache.id,
|
||||
})
|
||||
}
|
||||
|
||||
console.log("Clear completed")
|
||||
34
.github/workflows/issue-labeler.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Issue labeler
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
label-component:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
# required for all workflows
|
||||
issues: write
|
||||
|
||||
# only required for workflows in private repositories
|
||||
actions: read
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Parse issue form
|
||||
uses: stefanbuck/github-issue-parser@v3
|
||||
id: issue-parser
|
||||
with:
|
||||
template-path: .github/ISSUE_TEMPLATE/bug_report.yml
|
||||
|
||||
- name: Set labels based on animals field
|
||||
uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
|
||||
with:
|
||||
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
90
.github/workflows/issue-metrics.yml
vendored
@@ -1,8 +1,11 @@
|
||||
name: Monthly issue metrics
|
||||
permissions:
|
||||
contents: write
|
||||
issues: read
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '3 2 1 * *'
|
||||
- cron: "3 2 1 * *"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -10,56 +13,55 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
- name: Get dates for last month
|
||||
shell: bash
|
||||
run: |
|
||||
# Get the current date
|
||||
current_date=$(date +'%Y-%m-%d')
|
||||
|
||||
- name: Get dates for last month
|
||||
shell: bash
|
||||
run: |
|
||||
# Get the current date
|
||||
current_date=$(date +'%Y-%m-%d')
|
||||
# Calculate the previous month
|
||||
previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d')
|
||||
|
||||
# Calculate the previous month
|
||||
previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d')
|
||||
# Extract the year and month from the previous date
|
||||
previous_year=$(date -d "$previous_date" +'%Y')
|
||||
previous_month=$(date -d "$previous_date" +'%m')
|
||||
|
||||
# Extract the year and month from the previous date
|
||||
previous_year=$(date -d "$previous_date" +'%Y')
|
||||
previous_month=$(date -d "$previous_date" +'%m')
|
||||
# Calculate the first day of the previous month
|
||||
first_day=$(date -d "$previous_year-$previous_month-01" +'%Y-%m-%d')
|
||||
|
||||
# Calculate the first day of the previous month
|
||||
first_day=$(date -d "$previous_year-$previous_month-01" +'%Y-%m-%d')
|
||||
# Calculate the last day of the previous month
|
||||
last_day=$(date -d "$first_day +1 month -1 day" +'%Y-%m-%d')
|
||||
|
||||
# Calculate the last day of the previous month
|
||||
last_day=$(date -d "$first_day +1 month -1 day" +'%Y-%m-%d')
|
||||
echo "$first_day..$last_day"
|
||||
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
|
||||
echo "last_month_year=$previous_year" >> "$GITHUB_ENV"
|
||||
|
||||
echo "$first_day..$last_day"
|
||||
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
|
||||
echo "last_month_year=$previous_year" >> "$GITHUB_ENV"
|
||||
- name: Run issue-metrics tool
|
||||
uses: github-community-projects/issue-metrics@v2
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
|
||||
HIDE_AUTHOR: true
|
||||
HIDE_TIME_TO_ANSWER: true
|
||||
SEARCH_QUERY: "repo:zen-browser/desktop is:issue created:${{ env.last_month }}"
|
||||
|
||||
- name: Run issue-metrics tool
|
||||
uses: github/issue-metrics@v2
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
|
||||
HIDE_AUTHOR: true
|
||||
HIDE_TIME_TO_ANSWER: true
|
||||
SEARCH_QUERY: 'repo:zen-browser/desktop is:issue created:${{ env.last_month }} -reason:"not planned"'
|
||||
- name: Move metrics to docs folder
|
||||
run: |
|
||||
mkdir -p docs/issue-metrics
|
||||
rm -f docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
mv issue_metrics.md docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
|
||||
- name: Move metrics to docs folder
|
||||
run: |
|
||||
mkdir -p docs/issue-metrics
|
||||
rm -f docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
mv issue_metrics.md docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
- name: Remove metrisc JSON
|
||||
run: |
|
||||
rm -f issue_metrics.json
|
||||
|
||||
- name: Remove metrisc JSON
|
||||
run: |
|
||||
rm -f issue_metrics.json
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: 'Update monthly issue metrics'
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "docs: Update monthly issue metrics, b=(no bug), c={docs}"
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
|
||||
150
.github/workflows/linux-release-build.yml
vendored
@@ -4,23 +4,37 @@ on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
description: "The version to build"
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
description: "The branch to build"
|
||||
required: true
|
||||
type: string
|
||||
MOZ_BUILD_DATE:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
use-sccache:
|
||||
description: "Use sccache"
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
# aarch64 does not need full 16x
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
CARGO_INCREMENTAL: 0
|
||||
name: Build Linux - ${{ matrix.arch }}
|
||||
|
||||
steps:
|
||||
@@ -36,69 +50,48 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
- name: Expose actions cache variables
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
set -x
|
||||
sudo apt-get update --fix-missing
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Setup sccache
|
||||
env:
|
||||
LINK: https://github.com/mozilla/sccache/releases/download
|
||||
SCCACHE_VERSION: 0.2.13
|
||||
run: |
|
||||
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
||||
mkdir -p $HOME/.local/bin
|
||||
curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
||||
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Save sccache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /home/runner/.cache/sccache
|
||||
key: ${{ runner.os }}-sccache
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
sudo apt-get install -y python3 python3-pip dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
run: npm run download
|
||||
|
||||
- name: Fix Rust version
|
||||
run: |
|
||||
# Install a rust version compatible with LLVM 18
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
@@ -110,7 +103,11 @@ jobs:
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import
|
||||
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
|
||||
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
|
||||
run: |
|
||||
. "$HOME/.cargo/env"
|
||||
npm run import
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
@@ -122,40 +119,73 @@ jobs:
|
||||
./mach --no-interactive bootstrap --application-choice browser
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
- name: Build (PGO stage 1 - generate)
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
ZEN_GA_GENERATE_PROFILE: 1
|
||||
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
|
||||
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
|
||||
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
sh .github/workflows/src/release-build.sh
|
||||
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
|
||||
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
|
||||
fi
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
- name: Generate PGO profile data
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
set -x
|
||||
export DISPLAY=:2
|
||||
export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
|
||||
export JARLOG_FILE=en-US.log
|
||||
mkdir -p "$HOME/artifact"
|
||||
cd engine
|
||||
./mach python ../scripts/download_pgo_extended_corpus.py
|
||||
./mach package
|
||||
./mach python build/pgo/profileserver.py --extended-corpus ./pgo-extended-corpus
|
||||
mv merged.profdata "$HOME/artifact/merged.profdata"
|
||||
mv en-US.log "$HOME/artifact/en-US.log"
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
|
||||
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
|
||||
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
sh .github/workflows/src/release-build.sh
|
||||
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
|
||||
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
|
||||
fi
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
pnpm package
|
||||
export ZEN_RELEASE=1
|
||||
npm run package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.arch }}.tar.bz2"
|
||||
mv dist/zen-*.tar.xz "zen.linux-${{ matrix.arch }}.tar.xz"
|
||||
mv dist/output.mar linux${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
|
||||
- name: Upload build artifact (binary)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
name: zen.linux-${{ matrix.arch }}.tar.xz
|
||||
path: ./zen.linux-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -170,3 +200,11 @@ jobs:
|
||||
retention-days: 5
|
||||
name: linux_update_manifest_${{ matrix.arch }}
|
||||
path: ./dist/update
|
||||
|
||||
- name: Upload linux bin
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: linux-bin-x86_64
|
||||
path: engine/obj-x86_64-pc-linux-gnu/dist/bin/
|
||||
|
||||
189
.github/workflows/macos-release-build.yml
vendored
@@ -1,27 +1,41 @@
|
||||
name: macOS Release Build
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
description: "The version to build"
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
description: "The branch to build"
|
||||
required: true
|
||||
type: string
|
||||
MOZ_BUILD_DATE:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
use-sccache:
|
||||
description: "Use sccache"
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
runs-on: macos-14
|
||||
runs-on: ${{ (inputs.release-branch == 'release') && 'blacksmith-6vcpu-macos-latest' || 'macos-26' }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
CARGO_INCREMENTAL: 0
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
@@ -32,7 +46,20 @@ jobs:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
- name: Expose actions cache variables
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
@@ -40,13 +67,13 @@ jobs:
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install cairo sccache gnu-tar mercurial
|
||||
brew install cairo gnu-tar mercurial
|
||||
sudo pip install setuptools
|
||||
|
||||
brew uninstall --ignore-dependencies python3.12 -f
|
||||
@@ -62,7 +89,7 @@ jobs:
|
||||
|
||||
brew install watchman
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
@@ -77,119 +104,115 @@ jobs:
|
||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zsh
|
||||
source ~/.bash_profile
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
run: npm run download
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
|
||||
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
|
||||
run: npm run import
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
# Always exist with 0, even if bootstrap fails
|
||||
./mach --no-interactive bootstrap --application-choice browser --exclude macos-sdk || true
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Build Zen
|
||||
- name: Build Zen (PGO stage 1 - generate)
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
ZEN_GA_GENERATE_PROFILE: 1
|
||||
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
|
||||
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
|
||||
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
|
||||
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
|
||||
fi
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Generate PGO profile data
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
if test "${{ matrix.arch }}" = "x86_64"; then
|
||||
export ZEN_DISABLE_LTO=1
|
||||
fi
|
||||
sh .github/workflows/src/release-build.sh
|
||||
set -x
|
||||
export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
|
||||
export JARLOG_FILE=en-US.log
|
||||
mkdir -p "$HOME/artifact"
|
||||
cd engine
|
||||
./mach python ../scripts/download_pgo_extended_corpus.py
|
||||
./mach package
|
||||
./mach python build/pgo/profileserver.py --extended-corpus ./pgo-extended-corpus
|
||||
mv merged.profdata "$HOME/artifact/merged.profdata"
|
||||
mv en-US.log "$HOME/artifact/en-US.log"
|
||||
|
||||
- name: Rebuild Zen if failed
|
||||
if: failure()
|
||||
- name: Build Zen
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
|
||||
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
|
||||
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||
uses: Apple-Actions/import-codesign-certs@v3
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.macOS_CERTIFICATES_P12_For_App_BASE64 }}
|
||||
p12-password: ${{ secrets.macOS_CERTIFICATES_P12_PASSWORD }}
|
||||
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
|
||||
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
|
||||
fi
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
|
||||
pnpm package
|
||||
export ZEN_RELEASE=1
|
||||
npm run package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Sign .dmg
|
||||
run: |
|
||||
echo "Tarballing DMG"
|
||||
set -ex
|
||||
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||
xattr -cr zen.macos-${{ matrix.arch }}.dmg
|
||||
codesign -s "${{ secrets.macOS_AppleDeveloperId }}" zen.macos-${{ matrix.arch }}.dmg
|
||||
xcrun notarytool submit "zen.macos-${{ matrix.arch }}.dmg" \
|
||||
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||
mv ./dist/*.dmg ./zen-${{ matrix.arch }}-apple-darwin-dist.dmg
|
||||
mv ./engine/obj-${{ matrix.arch }}-apple-darwin/dist/host/bin/mar ./zen-macos-host-mar
|
||||
mv ./engine/obj-${{ matrix.arch }}-apple-darwin/dist/bin/platform.ini ./platform.ini
|
||||
|
||||
- name: Sign .dmg again if failed
|
||||
if: failure()
|
||||
run: |
|
||||
set -ex
|
||||
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||
xattr -cr zen.macos-${{ matrix.arch }}.dmg
|
||||
codesign -s "${{ secrets.macOS_AppleDeveloperId }}" zen.macos-${{ matrix.arch }}.dmg
|
||||
xcrun notarytool submit "zen.macos-${{ matrix.arch }}.dmg" \
|
||||
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||
|
||||
- name: Upload build artifact
|
||||
- name: Upload dist dmg
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.macos-${{ matrix.arch }}.dmg
|
||||
path: ./zen.macos-${{ matrix.arch }}.dmg
|
||||
retention-days: 1
|
||||
name: zen-${{ matrix.arch }}-apple-darwin-dist.dmg
|
||||
path: ./zen-${{ matrix.arch }}-apple-darwin-dist.dmg
|
||||
|
||||
- name: Upload build artifact (.mar)
|
||||
- name: Upload host mar
|
||||
uses: actions/upload-artifact@v4
|
||||
if: matrix.arch == 'aarch64'
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos-${{ matrix.arch }}.mar
|
||||
path: ./macos-${{ matrix.arch }}.mar
|
||||
retention-days: 1
|
||||
name: zen-macos-host-mar
|
||||
path: ./zen-macos-host-mar
|
||||
|
||||
- name: Upload build artifact (update manifests)
|
||||
- name: Upload platform.ini
|
||||
uses: actions/upload-artifact@v4
|
||||
if: matrix.arch == 'x86_64'
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos_update_manifest_${{ matrix.arch }}
|
||||
path: ./dist/update
|
||||
retention-days: 1
|
||||
name: platform.ini
|
||||
path: ./platform.ini
|
||||
|
||||
264
.github/workflows/macos-universal-release-build.yml
vendored
Normal file
@@ -0,0 +1,264 @@
|
||||
name: macOS Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: "The version to build"
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: "The branch to build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Unify macOS (Universal)
|
||||
runs-on: "macos-26"
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
# note: This will use the version defined in '.python-version' by default
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install cairo gnu-tar mercurial
|
||||
sudo pip install setuptools
|
||||
|
||||
brew uninstall --ignore-dependencies python3.12 -f
|
||||
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
python3 -m pip install --user mercurial
|
||||
|
||||
rm '/usr/local/bin/2to3-3.11' '/usr/local/bin/2to3-3.12' '/usr/local/bin/2to3'
|
||||
rm '/usr/local/bin/idle3.11' '/usr/local/bin/idle3.12' '/usr/local/bin/idle3'
|
||||
rm '/usr/local/bin/pydoc3.11' '/usr/local/bin/pydoc3.12' '/usr/local/bin/pydoc3'
|
||||
rm '/usr/local/bin/python3.11' '/usr/local/bin/python3.12' '/usr/local/bin/python3'
|
||||
rm '/usr/local/bin/python3.11-config' '/usr/local/bin/python3.12-config' '/usr/local/bin/python3-config'
|
||||
|
||||
brew install watchman
|
||||
|
||||
cargo install apple-codesign
|
||||
|
||||
- name: Force usage of gnu-tar
|
||||
run: |
|
||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zsh
|
||||
source ~/.bash_profile
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download Firefox source and dependencies
|
||||
run: npm run download
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes || true
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
run: npm run import
|
||||
|
||||
- name: Populate mozconfig
|
||||
env:
|
||||
SURFER_MOZCONFIG_ONLY: true
|
||||
ZEN_RELEASE: 1
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
npm run build
|
||||
cd engine
|
||||
./mach configure
|
||||
|
||||
- name: Download x86_64 DMG from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen-x86_64-apple-darwin-dist.dmg
|
||||
|
||||
- name: Download aarch64 DMG from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen-aarch64-apple-darwin-dist.dmg
|
||||
|
||||
- name: Remove any existing .app folders
|
||||
run: |
|
||||
set -x
|
||||
cd engine
|
||||
rm -rf "./obj-x86_64-apple-darwin/" || true
|
||||
rm -rf "./obj-aarch64-apple-darwin/" || true
|
||||
|
||||
- name: Extract .app from dmg
|
||||
run: |
|
||||
set -ex
|
||||
cd engine
|
||||
echo "Extracting x86_64 .app from dmg"
|
||||
mkdir -p ./obj-x86_64-apple-darwin/dist
|
||||
mkdir -p ./obj-aarch64-apple-darwin/dist
|
||||
./mach python -m mozbuild.action.unpack_dmg \
|
||||
../zen-x86_64-apple-darwin-dist.dmg \
|
||||
./obj-x86_64-apple-darwin/dist
|
||||
echo "Extracting aarch64 .app from dmg"
|
||||
./mach python -m mozbuild.action.unpack_dmg \
|
||||
../zen-aarch64-apple-darwin-dist.dmg \
|
||||
./obj-aarch64-apple-darwin/dist
|
||||
|
||||
- name: Find first .app folder name
|
||||
run: |
|
||||
cd engine/obj-x86_64-apple-darwin/dist
|
||||
export APP_NAME=${{ inputs.release-branch == 'twilight' && 'Twilight' || 'Zen' }}
|
||||
echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
|
||||
echo "APP_NAME=$APP_NAME"
|
||||
|
||||
- name: List .app folders
|
||||
run: |
|
||||
ls engine/
|
||||
echo "--------------------"
|
||||
cd engine/obj-x86_64-apple-darwin/dist
|
||||
find . -maxdepth 1 -name "*.app" -type d
|
||||
cd ../..
|
||||
|
||||
- name: create .p12 for codesign 🖊️
|
||||
run: |
|
||||
cd engine
|
||||
echo "${{ secrets.macOS_CERTIFICATES_P12_For_App_BASE64 }}" > cert.txt
|
||||
base64 --decode -i cert.txt -o zenCert.p12
|
||||
echo "${{ secrets.macOS_CERTIFICATES_P12_PASSWORD }}" > zenpCertPassword.passwd
|
||||
|
||||
- name: Remove certificate sensitive information
|
||||
run: |
|
||||
rm engine/cert.txt || true
|
||||
|
||||
- name: Import provisioning profile for .app
|
||||
run: |
|
||||
echo "${{ secrets.macOS_PROVISIONING_PROFILE }}" | base64 --decode > ./engine/Zen_Browser.provisionprofile
|
||||
ls -la
|
||||
|
||||
- name: Unify architectures
|
||||
run: |
|
||||
cd engine
|
||||
./mach python "./toolkit/mozapps/installer/unify.py" "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app" "./obj-aarch64-apple-darwin/dist/${{ env.APP_NAME }}.app"
|
||||
echo "Merged aaarch64 into x86_64!"
|
||||
|
||||
- name: Import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||
uses: Apple-Actions/import-codesign-certs@v3
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.macOS_CERTIFICATES_P12_For_App_BASE64 }}
|
||||
p12-password: ${{ secrets.macOS_CERTIFICATES_P12_PASSWORD }}
|
||||
|
||||
- name: Copy provisioning profile for .app (embedded in .app)
|
||||
run: |
|
||||
cd engine
|
||||
echo "Copying provisioning profile for .app on both architectures (${{ env.APP_NAME }})"
|
||||
cp ./Zen_Browser.provisionprofile "./embedded.provisionprofile"
|
||||
|
||||
- name: Sign .app
|
||||
run: |
|
||||
cd engine
|
||||
# TODO: Change it to "production" once we figure out the issue with the webauth
|
||||
./mach macos-sign -v -r -c "release" -e "production" -a "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app" --rcodesign-p12-file zenCert.p12 --rcodesign-p12-password-file zenpCertPassword.passwd
|
||||
|
||||
- name: Create DMG
|
||||
run: |
|
||||
cd engine
|
||||
./mach python -m mozbuild.action.make_dmg \
|
||||
--volume-name "${{ env.APP_NAME }}" \
|
||||
--background ./browser/branding/${{ inputs.release-branch }}/background.png \
|
||||
--icon ./browser/branding/${{ inputs.release-branch }}/firefox.icns \
|
||||
--dsstore ./browser/branding/${{ inputs.release-branch }}/dsstore \
|
||||
./obj-x86_64-apple-darwin/dist/ ../zen-macOS-universal-temp.dmg
|
||||
|
||||
- name: Remove sensitive information
|
||||
run: |
|
||||
rm -f ./engine/Zen_Browser.provisionprofile
|
||||
|
||||
- name: Sign .dmg
|
||||
run: |
|
||||
set -ex
|
||||
hdiutil convert zen-macOS-universal-temp.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-universal.dmg
|
||||
codesign -s "${{ secrets.macOS_AppleDeveloperId }}" zen.macos-universal.dmg
|
||||
xcrun notarytool submit "zen.macos-universal.dmg" \
|
||||
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||
--no-s3-acceleration \
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-universal.dmg"
|
||||
|
||||
- name: Download host mar
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen-macos-host-mar
|
||||
|
||||
- name: Upload build artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.macos-universal.dmg
|
||||
path: ./zen.macos-universal.dmg
|
||||
|
||||
- name: Download platform.ini
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: platform.ini
|
||||
|
||||
- name: Package for mar
|
||||
env:
|
||||
JUST_MAR: true
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
# we don't need it anymore
|
||||
set -ex
|
||||
rm -rf ./engine/obj-aarch64-apple-darwin
|
||||
mkdir -p ./engine/obj-x86_64-apple-darwin/dist/bin
|
||||
mv ./platform.ini ./engine/obj-x86_64-apple-darwin/dist/bin/platform.ini
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export ZEN_RELEASE=1
|
||||
# full path to zen-macos-host-mar
|
||||
export MAR=$(pwd)/zen-macos-host-mar
|
||||
chmod +x $MAR
|
||||
echo "MAR=$MAR"
|
||||
npm run package -- --verbose
|
||||
mv ./dist/output.mar ./macos.mar
|
||||
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos.mar
|
||||
path: ./macos.mar
|
||||
|
||||
- name: Upload build artifact (update manifests)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos_update_manifest
|
||||
path: ./dist/update
|
||||
38
.github/workflows/pr-test.yml
vendored
@@ -1,10 +1,16 @@
|
||||
name: Pull request test
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
pr-test:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -17,16 +23,34 @@ jobs:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Install Surfer
|
||||
run: npm i -g @zen-browser/surfer
|
||||
- name: Restore Surfer engine cache
|
||||
id: surfer-engine-cache
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: .surfer/engine/
|
||||
key: surfer-engine-${{ hashFiles('surfer.json') }}
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
run: surfer download
|
||||
run: npm run download
|
||||
|
||||
- name: Run Bootstrap
|
||||
run: npm run bootstrap
|
||||
|
||||
- name: Add .hgignore file to the engine dir
|
||||
run: touch engine/.hgignore
|
||||
|
||||
- name: Import patches
|
||||
run: surfer i
|
||||
run: npm run import
|
||||
|
||||
- name: Run linting
|
||||
run: npm run lint
|
||||
|
||||
79
.github/workflows/src/generate_release_notes.sh
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
RELEASE_NOTES_URL="https://raw.githubusercontent.com/zen-browser/www/refs/heads/main/src/release-notes/stable.json"
|
||||
|
||||
if [ "$RELEASE_BRANCH" = "release" ]; then
|
||||
RELEASE_TYPE="Stable"
|
||||
|
||||
echo "Fetching release notes from GitHub..."
|
||||
RELEASE_NOTES_JSON=$(curl -s --retry 5 --retry-delay 5 "$RELEASE_NOTES_URL")
|
||||
|
||||
if [ -z "$RELEASE_NOTES_JSON" ]; then
|
||||
echo "Error: Failed to fetch release notes from GitHub"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LATEST_RELEASE=$(echo "$RELEASE_NOTES_JSON" | jq -r 'last')
|
||||
EXTRA_NOTES=$(echo "$LATEST_RELEASE" | jq -r '.extra // ""')
|
||||
else
|
||||
RELEASE_TYPE="Twilight"
|
||||
fi
|
||||
|
||||
{
|
||||
echo "# Zen ${RELEASE_TYPE} Release"
|
||||
|
||||
if [ "$RELEASE_TYPE" = "Twilight" ]; then
|
||||
echo
|
||||
echo "> [!NOTE]"
|
||||
echo "> You're currently in Twilight mode, this means you're downloading the latest experimental features and updates."
|
||||
echo ">"
|
||||
echo "> If you encounter any issues, please report them on the [issues page](https://github.com/zen-browser/desktop/issues)."
|
||||
fi
|
||||
|
||||
if [ "$RELEASE_TYPE" = "Stable" ]; then
|
||||
echo "${EXTRA_NOTES}"
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '.security != null and .security != ""' > /dev/null; then
|
||||
echo
|
||||
echo "## Security"
|
||||
echo "$LATEST_RELEASE" | jq -r 'if (.security | type) == "string" then "- " + .security else .security[] | "- " + . end'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.features // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## New Features"
|
||||
echo "$LATEST_RELEASE" | jq -r '.features[] | "- " + .'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.fixes // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## Fixes"
|
||||
echo "$LATEST_RELEASE" | jq -r '.fixes[] | if type=="object" then "- " + .description + " ([#" + (.issue|tostring) + "](" + "https://github.com/zen-browser/desktop/issues/" + (.issue|tostring) + "))" else "- " + . end'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.breakingChanges // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## Breaking Changes"
|
||||
echo "$LATEST_RELEASE" | jq -r '.breakingChanges[] | if type=="string" then "- " + . else "- " + .description + " [Learn more](" + .link + ")" end'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.themeChanges // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## Theme Changes"
|
||||
echo "$LATEST_RELEASE" | jq -r '.themeChanges[] | "- " + .'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.changes // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## Changes"
|
||||
echo "$LATEST_RELEASE" | jq -r '.changes[] | "- " + .'
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.knownIssues // []) | length > 0' > /dev/null; then
|
||||
echo
|
||||
echo "## Known Issues"
|
||||
echo "$LATEST_RELEASE" | jq -r '.knownIssues[] | "- " + .'
|
||||
fi
|
||||
fi
|
||||
} > "release_notes.md"
|
||||
|
||||
echo "Release notes generated: release_notes.md"
|
||||
29
.github/workflows/src/release-build.sh
vendored
@@ -1,27 +1,40 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
set -xe
|
||||
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo apt-get install python3-launchpadlib
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb
|
||||
sudo apt-get install -y xvfb libnvidia-egl-wayland1 mesa-utils libgl1-mesa-dri
|
||||
fi
|
||||
|
||||
mkdir -p ~/.zen-keys
|
||||
echo "$ZEN_SAFEBROWSING_API_KEY" > ~/.zen-keys/safebrowsing.dat
|
||||
echo "$ZEN_MOZILLA_API_KEY" > ~/.zen-keys/mozilla.dat
|
||||
echo "$ZEN_GOOGLE_LOCATION_SERVICE_API_KEY" > ~/.zen-keys/google_location_service.dat
|
||||
|
||||
. $HOME/.cargo/env
|
||||
|
||||
bash ./scripts/mar_sign.sh -i
|
||||
|
||||
ulimit -n 4096
|
||||
|
||||
if ! command -v Xvfb &> /dev/null; then
|
||||
if command -v Xvfb &> /dev/null; then
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
Xvfb :2 -screen 0 1024x768x24 &
|
||||
Xvfb :2 -nolisten tcp -noreset -screen 0 1024x768x24 &
|
||||
export LLVM_PROFDATA=$HOME/.mozbuild/clang/bin/llvm-profdata
|
||||
export DISPLAY=:2
|
||||
fi
|
||||
export ZEN_RELEASE=1
|
||||
pnpm build
|
||||
npm run build
|
||||
else
|
||||
echo "Xvfb could not be found, running without it"
|
||||
echo "ASSUMING YOU ARE RUNNING THIS ON MACOS"
|
||||
|
||||
|
||||
set -v
|
||||
export ZEN_RELEASE=1
|
||||
pnpm build
|
||||
npm run build
|
||||
fi
|
||||
|
||||
echo "Build complete, removing API keys"
|
||||
rm -rf ~/.zen-keys
|
||||
|
||||
82
.github/workflows/sync-external-patches.yml
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
name: Sync External Patches
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
check_candidates:
|
||||
name: Sync External Patches
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
# note: This will use the version defined in '.python-version' by defaultç
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install requirements
|
||||
run: pip3 install -r requirements.txt
|
||||
|
||||
- name: Import external patches
|
||||
run: python3 scripts/update_external_patches.py
|
||||
|
||||
- name: Check if any files changed
|
||||
id: git-check
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "files_changed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "files_changed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
run: npm ci
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
run: npm run download
|
||||
|
||||
- name: Check if patches got applied
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
id: check-patches
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "Checking if patches apply cleanly..."
|
||||
npm run import
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
env:
|
||||
GIT_TRACE: 1
|
||||
GIT_CURL_VERBOSE: 1
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
commit-message: "chore: Sync external patches"
|
||||
branch: "chore/sync-external-patches-${{ github.run_id }}"
|
||||
title: "Sync external patches"
|
||||
body: |
|
||||
This PR syncs the external patches automatically.
|
||||
|
||||
* ${{ steps.check-patches.outcome == 'failure' && '⚠️ Some patches did not apply cleanly. Please review them carefully.' || '✅ All patches applied cleanly.' }}
|
||||
|
||||
@${{ github.actor }} please review and merge this PR. Generated from workflow run [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}), branch ${{ github.head_ref }}.
|
||||
base: dev
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
141
.github/workflows/sync-upstream.yml
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
name: Sync Upstream Firefox Releases
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_candidate:
|
||||
description: "Set to true to sync release candidates"
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
workflow_call:
|
||||
inputs:
|
||||
release_candidate:
|
||||
description: "Set to true to sync release candidates"
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
check_candidates:
|
||||
name: Sync Upstream
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Check if upstream branch already exists
|
||||
id: check-upstream-branch
|
||||
run: |
|
||||
if git ls-remote --heads origin chore/upstream-sync | grep -sw "refs/heads/chore/upstream-sync" > /dev/null; then
|
||||
echo "branch_exists=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "branch_exists=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
with:
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
run: npm ci
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Setup surfer CI
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
run: |
|
||||
if [ "${{ github.event.inputs.release_candidate }}" = "false" ]; then
|
||||
npm run surfer -- ci --brand release
|
||||
fi
|
||||
|
||||
- name: Restore Surfer engine cache
|
||||
id: surfer-engine-cache
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: .surfer/engine/
|
||||
key: surfer-engine-${{ hashFiles('surfer.json') }}
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
run: npm run download
|
||||
|
||||
- name: Sync Upstream Releases
|
||||
if: steps.check-upstream-branch.outputs.branch_exists == 'false'
|
||||
run: |
|
||||
if [ "${{ github.event.inputs.release_candidate }}" = "true" ]; then
|
||||
npm run sync:rc
|
||||
else
|
||||
npm run sync
|
||||
fi
|
||||
|
||||
- name: Install requirements
|
||||
run: pip3 install -r requirements.txt
|
||||
|
||||
- name: Check if any files changed
|
||||
id: git-check
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "files_changed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "files_changed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Get Firefox Version
|
||||
id: build-data
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
run: |
|
||||
if [ "${{ github.event.inputs.release_candidate }}" = "true" ]; then
|
||||
VERSION=$(node -pe "require('./surfer.json').version.candidate")
|
||||
else
|
||||
VERSION=$(node -pe "require('./surfer.json').version.version")
|
||||
fi
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Import external patches
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
run: python3 scripts/update_external_patches.py || true
|
||||
|
||||
- name: Check if patches got applied
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
id: check-patches
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "Checking if patches apply cleanly..."
|
||||
npm run import
|
||||
|
||||
- name: Import external tests
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
run: python3 scripts/import_external_tests.py || true
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
if: steps.git-check.outputs.files_changed == 'true'
|
||||
env:
|
||||
GIT_TRACE: 1
|
||||
GIT_CURL_VERBOSE: 1
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
commit-message: "chore: Sync upstream to `Firefox ${{ steps.build-data.outputs.version }}`"
|
||||
branch: "chore/upstream-sync"
|
||||
title: "no-bug: Sync upstream Firefox to version ${{ steps.build-data.outputs.version }}"
|
||||
body: |
|
||||
This PR syncs the upstream Firefox to version ${{ steps.build-data.outputs.version }}.
|
||||
|
||||
* ${{ steps.check-patches.outcome == 'failure' && '⚠️ Some patches did not apply cleanly. Please review them carefully.' || '✅ All patches applied cleanly.' }}
|
||||
|
||||
@${{ github.actor }} please review and merge this PR.
|
||||
base: dev
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
15
.github/workflows/twilight-release-schedule.yml
vendored
@@ -2,8 +2,14 @@ name: Zen Twilight Scheduled Releases
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
- cron: "0 23 */2 * *"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_release:
|
||||
description: "Whether to do a release"
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
@@ -12,8 +18,9 @@ jobs:
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/build.yml
|
||||
with:
|
||||
create_release: true
|
||||
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
||||
update_branch: twilight
|
||||
use-sccache: true
|
||||
update_version: false
|
||||
|
||||
post-build:
|
||||
@@ -27,6 +34,4 @@ jobs:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
# TODO:
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
31
.github/workflows/update-submodules.yml
vendored
@@ -1,31 +0,0 @@
|
||||
name: Update Components Submodules
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
update-submodules:
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Update submodules
|
||||
run: |
|
||||
git submodule update --remote --merge
|
||||
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "[skip ci] 📦 Update submodules"
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
36
.github/workflows/windows-profile-build.yml
vendored
@@ -1,18 +1,21 @@
|
||||
name: Windows PGO Builds
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
description: "The version to build"
|
||||
required: true
|
||||
type: string
|
||||
profile-data-path-archive:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
description: "The path to the zip archive containing the profile data"
|
||||
required: false
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
description: "The branch to build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
@@ -25,7 +28,7 @@ jobs:
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
|
||||
runs-on: windows-latest
|
||||
runs-on: ${{ inputs.release-branch == 'release' && 'windows-latest' || 'windows-latest' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -34,19 +37,19 @@ jobs:
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mr-cheff@users.noreply.github.com"
|
||||
git config --global user.name "mr-cheff"
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install Surfer
|
||||
run: npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download artifact
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
uses: actions/download-artifact@v4
|
||||
@@ -71,13 +74,13 @@ jobs:
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
git config --global core.safecrlf false
|
||||
pnpm surfer download
|
||||
npm run download
|
||||
|
||||
- name: Import patches
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
env:
|
||||
SURFER_NO_BRANDING_PATCH: true
|
||||
run: pnpm surfer import
|
||||
run: npm run import
|
||||
|
||||
- name: Generate
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
@@ -90,15 +93,10 @@ jobs:
|
||||
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
|
||||
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
|
||||
echo 'ls /c/Users/runneradmin/.mozbuild/clang/bin' '' >> mozilla-build-run.sh
|
||||
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||
echo './mach python ../scripts/download_pgo_extended_corpus.py' '' >> mozilla-build-run.sh
|
||||
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe --extended-corpus ./pgo-extended-corpus --' '' >> mozilla-build-run.sh
|
||||
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move profile data
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
|
||||
207
.github/workflows/windows-release-build.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Windows Release Build
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -8,22 +11,35 @@ on:
|
||||
type: boolean
|
||||
default: false
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
description: "The version to build"
|
||||
required: true
|
||||
type: string
|
||||
profile-data-path-archive:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
description: "The path to the zip archive containing the profile data"
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
description: "The branch to build"
|
||||
required: true
|
||||
type: string
|
||||
MOZ_BUILD_DATE:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
use-sccache:
|
||||
description: "Use sccache"
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
name: Build Windows - ${{ matrix.arch }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# aarch64 does not need full 16x, and we also dont use full LTO when generating GPO
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
CARGO_INCREMENTAL: 0
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -32,6 +48,7 @@ jobs:
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
with:
|
||||
tool-cache: false
|
||||
|
||||
@@ -42,67 +59,126 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
node-version-file: ".nvmrc"
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
- name: Expose actions cache variables
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
npm ci
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3 python3-pip dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm --fix-missing
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
run: pnpm surfer download
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: npm run download
|
||||
|
||||
- name: win-cross Cache
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
uses: actions/cache@v4
|
||||
uses: useblacksmith/cache@v5
|
||||
with:
|
||||
path: ${HOME}/win-cross
|
||||
key: win-cross
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Setup for Windows
|
||||
if: steps.cache-win-cross.outputs.cache-hit != 'true'
|
||||
if: steps.cache-win-cross.outputs.cache-hit != 'true' && !(inputs.generate-gpo && matrix.arch == 'aarch64')
|
||||
run: |
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
sudo apt-get install python3-launchpadlib
|
||||
sudo add-apt-repository ppa:savoury1/backports
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip autoconf \
|
||||
autoconf2.13 \
|
||||
automake \
|
||||
bison \
|
||||
build-essential \
|
||||
cabextract \
|
||||
curl \
|
||||
cmake \
|
||||
flex \
|
||||
gawk \
|
||||
gcc-multilib \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libbz2-dev \
|
||||
libexpat1-dev \
|
||||
libffi-dev \
|
||||
libncursesw5-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libtool \
|
||||
libucl-dev \
|
||||
libxml2-dev \
|
||||
msitools \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
p7zip-full \
|
||||
pkg-config \
|
||||
procps \
|
||||
python3-requests \
|
||||
python3-toml \
|
||||
scons \
|
||||
subversion \
|
||||
tar \
|
||||
unzip \
|
||||
uuid \
|
||||
uuid-dev \
|
||||
wget \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
aria2
|
||||
echo Setup wine
|
||||
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
||||
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
||||
tar --zstd -xf wine.tar.zst -C ~/win-cross
|
||||
rm wine.tar.zst
|
||||
echo Setup Visual Studio
|
||||
sudo apt install -y msitools python3-pip
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2026.yaml ~/win-cross/vs2026
|
||||
|
||||
- name: Import
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
|
||||
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
|
||||
run: |
|
||||
. "$HOME/.cargo/env"
|
||||
npm run import -- --verbose
|
||||
|
||||
- name: Bootstrap
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
set -x
|
||||
cd engine/
|
||||
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
|
||||
chmod -R +x "$(echo ~)/win-cross/vs2026" || true
|
||||
cd ..
|
||||
npm install -g pnpm
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm surfer bootstrap
|
||||
npm run bootstrap
|
||||
cd engine/
|
||||
ls ~/.mozbuild/clang/lib/clang/
|
||||
echo "export LIB=\"$(cd ~/.mozbuild/clang/lib/clang/* && cd lib/windows && pwd)\"" >> ../configs/common/mozconfig
|
||||
@@ -110,30 +186,29 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install dos2unix
|
||||
ls ~/win-cross/wine || true
|
||||
ls ~/win-cross/vs2022 || true
|
||||
ls ~/win-cross/vs2026 || true
|
||||
|
||||
- name: Setup Rust
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
cd engine/
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
else
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
fi
|
||||
cargo install cargo-download
|
||||
cargo download -x windows=0.58.0
|
||||
# Stored in build/windows/.windows-rs-version
|
||||
WINDOWS_RS_VERSION=$(cat build/windows/.windows-rs-version)
|
||||
cd engine/
|
||||
cargo install cargo-download --locked
|
||||
cargo download -x windows=$WINDOWS_RS_VERSION
|
||||
export CARGO_INCREMENTAL=0
|
||||
echo "" >> ../configs/common/mozconfig
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import --verbose
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-$WINDOWS_RS_VERSION" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Build language packs
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Download artifact (if use profdata)
|
||||
@@ -156,6 +231,10 @@ jobs:
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
|
||||
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
|
||||
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
|
||||
run: |
|
||||
set -x
|
||||
dos2unix configs/windows/mozconfig
|
||||
@@ -164,25 +243,26 @@ jobs:
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/release-build.sh
|
||||
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
|
||||
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
|
||||
fi
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
set -x
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm package
|
||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
|
||||
export ZEN_CROSS_COMPILING=1
|
||||
export ZEN_RELEASE=1
|
||||
npm run package
|
||||
mv ./dist/zen-$(npm run --silent surfer -- get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
|
||||
ls ./dist
|
||||
ls .
|
||||
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
@@ -200,7 +280,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
with:
|
||||
retention-days: 5
|
||||
retention-days: 2
|
||||
name: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.profile-data-path-archive }}
|
||||
path: ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
@@ -208,29 +288,24 @@ jobs:
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
else
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
fi
|
||||
mkdir obj-${{ matrix.arch }}-pc-windows-msvc/
|
||||
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/_tests
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/config/autoconf.mk
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/config.statusd/substs/
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/dist/install
|
||||
|
||||
find engine/obj-${{ matrix.arch }}-pc-windows-msvc/dist -maxdepth 1 -type f -name "*.zip" -delete
|
||||
|
||||
cp -r --no-dereference engine/obj-${{ matrix.arch }}-pc-windows-msvc/* obj-${{ matrix.arch }}-pc-windows-msvc/ || true
|
||||
|
||||
- name: Upload dist object
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
retention-days: 2
|
||||
name: windows-x64-obj-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
path: engine/obj-${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }}-pc-windows-msvc/
|
||||
|
||||
- name: Upload artifact (if Twilight branch, binary)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
|
||||
path: ./zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
|
||||
path: obj-${{ matrix.arch }}-pc-windows-msvc
|
||||
|
||||
- name: Upload artifact (if Twilight branch, installer)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
|
||||
28
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
.dotbuild/
|
||||
engine/
|
||||
@@ -8,4 +11,27 @@ node_modules/
|
||||
__pycache__/
|
||||
dist/
|
||||
|
||||
windsign-temp/
|
||||
windsign-temp/
|
||||
venv/
|
||||
|
||||
!firefox-cache/
|
||||
win-cross/
|
||||
|
||||
!firefox-patches/
|
||||
target/
|
||||
.vscode/
|
||||
|
||||
locales/firefox-l10n/
|
||||
|
||||
!src/toolkit/themes/shared/design-system/dist/
|
||||
.DS_Store
|
||||
|
||||
mozconfig
|
||||
|
||||
build/signing/env/
|
||||
build/signing/nss_config/
|
||||
build/signing/cert.pem
|
||||
build/signing/private_key.pem
|
||||
build/signing/private_key.p12
|
||||
|
||||
bloat-dump.log
|
||||
|
||||
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "l10n"]
|
||||
path = l10n
|
||||
url = https://github.com/zen-browser/l10n-packs
|
||||
@@ -1 +1 @@
|
||||
# npx lint-staged
|
||||
npx lint-staged
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
engine/
|
||||
|
||||
**/*.html
|
||||
**/*.xhtml
|
||||
**/*.inc.xhtml
|
||||
|
||||
**/*.svg
|
||||
|
||||
src/browser/app/profile/*.js
|
||||
pnpm-lock.yaml
|
||||
|
||||
**/engine/
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"bracketSameLine": true,
|
||||
"endOfLine": "lf",
|
||||
"trailingComma": "es5",
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"jsxSingleQuote": false,
|
||||
"semi": true,
|
||||
"printWidth": 128,
|
||||
"plugins": []
|
||||
}
|
||||
1
.rust-toolchain
Normal file
@@ -0,0 +1 @@
|
||||
1.90
|
||||
30
.vscode/settings.json
vendored
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.inc": "cpp",
|
||||
"typeindex": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"functional": "cpp",
|
||||
"array": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"memory": "cpp",
|
||||
"future": "cpp",
|
||||
"istream": "cpp",
|
||||
"tuple": "cpp",
|
||||
"utility": "cpp",
|
||||
"variant": "cpp",
|
||||
"compare": "cpp",
|
||||
"thread": "cpp",
|
||||
"string": "cpp",
|
||||
"string_view": "cpp",
|
||||
"span": "cpp",
|
||||
"vector": "cpp",
|
||||
"charconv": "cpp",
|
||||
"chrono": "cpp",
|
||||
"optional": "cpp",
|
||||
"format": "cpp",
|
||||
"ratio": "cpp",
|
||||
"system_error": "cpp",
|
||||
"regex": "cpp",
|
||||
"type_traits": "cpp"
|
||||
}
|
||||
}
|
||||
1
.well-known/funding-manifest-urls
Normal file
@@ -0,0 +1 @@
|
||||
https://zen-browser.app/funding.json
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
SELF=$(readlink -f "$0")
|
||||
HERE=${SELF%/*}
|
||||
export PATH="${HERE}:${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"
|
||||
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"
|
||||
export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles
|
||||
DEFAULT_XDG_DATA_DIRS='./share/:/usr/share/gnome:/usr/local/share/:/usr/share/'
|
||||
export XDG_DATA_DIRS="${HERE}/usr/share/:${XDG_DATA_DIRS:-$DEFAULT_XDG_DATA_DIRS}"
|
||||
export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"
|
||||
export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
|
||||
export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"
|
||||
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
|
||||
exec "${EXEC}" "$@"
|
||||
@@ -1,26 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Comment=Experience tranquillity while browsing the web without people tracking you!
|
||||
Exec=zen %u
|
||||
Icon=zen
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
||||
StartupWMClass=zen-beta
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
X-MultipleArgs=false
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Actions=new-window;new-private-window;profilemanager;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
Exec=zen %u
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=Open a New Private Window
|
||||
Exec=zen --private-window %u
|
||||
|
||||
[Desktop Action profilemanager]
|
||||
Name=Open the Profile Manager
|
||||
Exec=zen --ProfileManager %u
|
||||
@@ -1 +1 @@
|
||||
* @mr-cheff
|
||||
* @mr-cheffy
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
<!--
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
@@ -17,23 +23,23 @@ diverse, inclusive, and healthy community.
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
- Demonstrating empathy and kindness toward other people
|
||||
- Being respectful of differing opinions, viewpoints, and experiences
|
||||
- Giving and gracefully accepting constructive feedback
|
||||
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
- Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
- The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
- Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
@@ -106,7 +112,7 @@ Violating these terms may lead to a permanent ban.
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
|
||||
128
README.md
@@ -1,3 +1,9 @@
|
||||
<!--
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
<!-- TODO: Get a job -->
|
||||
<img src="./docs/assets/zen-dark.svg" width="100px" align="left">
|
||||
|
||||
### `Zen Browser`
|
||||
@@ -6,8 +12,7 @@
|
||||
[](https://crowdin.com/project/zen-browser)
|
||||
[](https://github.com/zen-browser/desktop/actions/workflows/build.yml)
|
||||
|
||||
|
||||
✨ Experience tranquillity while browsing the web without people tracking you! Zen is a privacy-focused browser that blocks trackers, ads, and other unwanted content while offering the best browsing experience!
|
||||
Zen is a firefox-based browser with the aim of pushing your productivity to a new level!
|
||||
|
||||
<div flex="true">
|
||||
<a href="https://zen-browser.app/download">
|
||||
@@ -27,122 +32,21 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## 🖥️ Compatibility
|
||||
### Firefox Versions
|
||||
|
||||
Zen is currently built using firefox version `133.0.3`! 🚀
|
||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `151.0.1`! 🚀
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 151.0.1`!
|
||||
|
||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||
### Contributing
|
||||
|
||||
## 🤝 Contribution
|
||||
If you'd like to report a bug, please do so on our [GitHub Issues page](https://github.com/zen-browser/desktop/issues/) and for feature requests, you can use [GitHub Discussions](https://github.com/zen-browser/desktop/discussions).
|
||||
|
||||
Zen is an open-source project, and we welcome contributions from the community! Please take a look at the [contribution guidelines](./docs/contribute.md) before getting started!
|
||||
|
||||
### Issue metrics
|
||||
#### Partners
|
||||
|
||||
We keep track of how many issues are closed at the end of the month in [docs/issue-metrics](./docs/issue-metrics). This is to keep track of how many issues are being closed, because who doesn't like to see progress? 📈
|
||||
Thanks to all the partners of Zen for their support and contributions:
|
||||
|
||||
### Versioning
|
||||
|
||||
Zen uses [Semantic Versioning](https://semver.org/) for versioning. Meaning, versions are displayed as `a.b.c-d.e` where:
|
||||
|
||||
- `a` is the major version
|
||||
- `b` is the minor version
|
||||
- `c` is the patch version
|
||||
- `d` is the branch prefix
|
||||
- `e` is the build number
|
||||
|
||||
### Branches
|
||||
|
||||
Zen is divided into 2 main branches. We use `dev` for development and `stable` for stable releases. The `dev` branch is where all the new features are added and where `twilight` builds are generated. The `stable` branch is where the stable releases are generated.
|
||||
|
||||
We divide into 2 branches in case there's any really important security update (for example) that needs to be released before the next stable release. This allows us to do patches without releasing unstable versions to the public.
|
||||
|
||||
## ⚡ Performance
|
||||
|
||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible! Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||
|
||||
## 📥 Installation
|
||||
|
||||
### Supported Operating Systems
|
||||
|
||||
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
||||
|
||||
If you dont see your OS listed below, that's because we already have it in our [downloads page](https://zen-browser.app/download)! Make sure to check it out!
|
||||
|
||||
#### Windows
|
||||
|
||||
##### Winget
|
||||
|
||||
```ps
|
||||
winget install --id Zen-Team.Zen-Browser
|
||||
```
|
||||
|
||||
#### macOS
|
||||
|
||||
- Requires macOS 10.15 or later
|
||||
- Available for ARM and Intel architectures
|
||||
|
||||
You can also install Zen using Homebrew:
|
||||
|
||||
```
|
||||
brew install --cask zen-browser
|
||||
```
|
||||
|
||||
#### Linux
|
||||
|
||||
##### Arch-based distributions
|
||||
|
||||
```sh
|
||||
yay -S zen-browser-bin
|
||||
```
|
||||
|
||||
##### Other Linux distributions (AppImage with automated system integration)
|
||||
|
||||
- `native` tarball install:
|
||||
```bash <(curl -s https://updates.zen-browser.app/install.sh)```
|
||||
|
||||
- `zsync` is required for the Update feature of the script below
|
||||
|
||||
```sh
|
||||
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
||||
```
|
||||
|
||||
* Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄
|
||||
|
||||
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
||||
|
||||
## 👨💻 Development and Contributing
|
||||
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/browser/base/zen-components).
|
||||
|
||||
#### `Run Locally`
|
||||
|
||||
In order to download and run zen locally, please follow [these instructions](https://docs.zen-browser.app/contribute/desktop).
|
||||
|
||||
#### `Special Thanks`
|
||||
|
||||
Special thanks to... EVERYONE 🎉! Checkout the team and contributors page [here](https://zen-browser.app/about)
|
||||
|
||||
#### `Third Party Code`
|
||||
|
||||
Zen couldn't be in its current state without the help of these amazing projects! 🙏
|
||||
|
||||
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
||||
- Gradient image extracted from [Arc Palette](https://github.com/neurokitti/Arc_Palette)
|
||||
|
||||
### 🖥️ Comparison with other browsers
|
||||
|
||||
As you can see, chromium based browsers are the most popular browsers, help us change that by starring the project and spreading the word! 🌟
|
||||
|
||||
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chromium/chromium,zen-browser/desktop,brave/brave-browser&type=Date" />
|
||||
</picture>
|
||||
<a href="https://blacksmith.sh">
|
||||
<img src="./docs/assets/blacksmith-yellow.png" width="350px"/>
|
||||
</a>
|
||||
|
||||
## 📄 License
|
||||
|
||||
Zen browser is under the [MPL LICENSE](./LICENSE). All the code is open-source and free to use! Attributions are appreciated but not required.
|
||||
|
||||
@@ -3,4 +3,9 @@
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 -960 960 960"><path d="M200-446.667v-66.666h560v66.666H200Z"/></svg>
|
||||
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report security vulnerabilities [here](https://github.com/zen-browser/desktop/security/advisories/new)
|
||||
|
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 380 B |
3
babel.config.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"presets": ["@babel/preset-typescript"]
|
||||
}
|
||||
10
build/AppDir/AppRun
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
CURRENTDIR="$(dirname "$(readlink -f "$0")")"
|
||||
export PATH="${CURRENTDIR}:${PATH}"
|
||||
export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles
|
||||
export MOZ_APP_LAUNCHER="${APPIMAGE}" # Allows setting as default browser
|
||||
exec "${CURRENTDIR}/zen" "$@"
|
||||
698
build/AppDir/zen.desktop
Normal file
@@ -0,0 +1,698 @@
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Comment=A fast, private and secure web browser built to improve your day-to-day experience.
|
||||
Exec=zen %u
|
||||
Icon=zen
|
||||
Type=Application
|
||||
MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/x-xpinstall;application/xhtml+xml;application/xml;audio/flac;audio/ogg;audio/webm;image/avif;image/gif;image/jpeg;image/png;image/svg+xml;image/webp;text/html;text/xml;video/ogg;video/webm;x-scheme-handler/chrome;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/mailto;
|
||||
StartupWMClass=zen
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
X-MultipleArgs=false
|
||||
GenericName=Web Browser
|
||||
GenericName[ach]=Web Browser
|
||||
GenericName[af]=Web Browser
|
||||
GenericName[an]=Web Browser
|
||||
GenericName[ar]=متصفح الوِب
|
||||
GenericName[ast]=Web Browser
|
||||
GenericName[az]=Web Browser
|
||||
GenericName[be]=Вэб-браўзер
|
||||
GenericName[bg]=Уеб браузър
|
||||
GenericName[bn]=ওয়েব ব্রাউজার
|
||||
GenericName[bqi]=گشت گر وب
|
||||
GenericName[br]=Merdeer Web
|
||||
GenericName[brx]=Web Browser
|
||||
GenericName[bs]=Web pretraživač
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[ca_valencia]=Web Browser
|
||||
GenericName[cak]=Web Okik'amaya'l
|
||||
GenericName[ckb]=Web Browser
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
GenericName[cy]=Porwr Gwe
|
||||
GenericName[da]=Webbrowser
|
||||
GenericName[de]=Internet-Browser
|
||||
GenericName[dsb]=Webwobglědowak
|
||||
GenericName[el]=Πρόγραμμα περιήγησης
|
||||
GenericName[en_CA]=Web Browser
|
||||
GenericName[en_GB]=Web Browser
|
||||
GenericName[eo]=Retumilo
|
||||
GenericName[es_AR]=Navegador web
|
||||
GenericName[es_CL]=Navegador Web
|
||||
GenericName[es_ES]=Navegador web
|
||||
GenericName[es_MX]=Navegador Web
|
||||
GenericName[et]=Web Browser
|
||||
GenericName[eu]=Web nabigatzailea
|
||||
GenericName[fa]=مرورگر وب
|
||||
GenericName[ff]=Web Browser
|
||||
GenericName[fi]=Verkkoselain
|
||||
GenericName[fr]=Navigateur web
|
||||
GenericName[fur]=Navigadôr Web
|
||||
GenericName[fy_NL]=Webbrowser
|
||||
GenericName[ga_IE]=Web Browser
|
||||
GenericName[gd]=Brabhsair-lìn
|
||||
GenericName[gl]=Navegador web
|
||||
GenericName[gn]=Ñanduti Kundahára
|
||||
GenericName[gu_IN]=Web Browser
|
||||
GenericName[he]=דפדפן אינטרנט
|
||||
GenericName[hi_IN]=Web Browser
|
||||
GenericName[hr]=Web preglednik
|
||||
GenericName[hsb]=Webwobhladowak
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[hy_AM]=Վեբ դիտարկիչ
|
||||
GenericName[hye]=Web Browser
|
||||
GenericName[ia]=Navigator web
|
||||
GenericName[id]=Peramban Web
|
||||
GenericName[is]=Vafri
|
||||
GenericName[it]=Browser web
|
||||
GenericName[ja]=ウェブブラウザー
|
||||
GenericName[ka]=ბრაუზერი
|
||||
GenericName[kab]=Iminig web
|
||||
GenericName[kk]=Веб-браузері
|
||||
GenericName[km]=Web Browser
|
||||
GenericName[kn]=Web Browser
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[lij]=Navegatô Web
|
||||
GenericName[lo]=ຕົວທ່ອງເວັບເວັບໄຊຕ໌
|
||||
GenericName[lt]=Web Browser
|
||||
GenericName[ltg]=Web Browser
|
||||
GenericName[lv]=Tīmekļa pārlūks
|
||||
GenericName[meh]=Web Browser
|
||||
GenericName[mk]=Web Browser
|
||||
GenericName[ml]=ഗോളാന്തരവല അന്വേഷിയന്ത്രം
|
||||
GenericName[mr]=Web Browser
|
||||
GenericName[ms]=Web Browser
|
||||
GenericName[my]=Web Browser
|
||||
GenericName[nb_NO]=Nettleser
|
||||
GenericName[ne_NP]=वेब ब्राउजर
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn_NO]=Nettlesar
|
||||
GenericName[oc]=Navegador Web
|
||||
GenericName[pa_IN]=ਵੈੱਬ ਬਰਾਊਜ਼ਰ
|
||||
GenericName[pl]=Przeglądarka internetowa
|
||||
GenericName[pt_BR]=Navegador web
|
||||
GenericName[pt_PT]=Navegador Web
|
||||
GenericName[rm]=Navigatur web
|
||||
GenericName[ro]=Browser web
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sat]=ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ
|
||||
GenericName[sc]=Navigadore web
|
||||
GenericName[sco]=Web Browser
|
||||
GenericName[si]=වියමන අතිරික්සුව
|
||||
GenericName[sk]=Webový prehliadač
|
||||
GenericName[skr]=ویب براؤزر
|
||||
GenericName[sl]=Spletni brskalnik
|
||||
GenericName[son]=Web Browser
|
||||
GenericName[sq]=Shfletues
|
||||
GenericName[sr]=Веб прегледач
|
||||
GenericName[sv_SE]=Webbläsare
|
||||
GenericName[szl]=Web Browser
|
||||
GenericName[ta]=Web Browser
|
||||
GenericName[te]=జాల విహారిణి
|
||||
GenericName[tg]=Браузери веб
|
||||
GenericName[th]=เว็บเบราว์เซอร์
|
||||
GenericName[tl]=Web Browser
|
||||
GenericName[tr]=Web Tarayıcısı
|
||||
GenericName[trs]=Web riña gāchē nu’
|
||||
GenericName[uk]=Браузер
|
||||
GenericName[ur]=Web Browser
|
||||
GenericName[uz]=Web Browser
|
||||
GenericName[vi]=Trình duyệt web
|
||||
GenericName[wo]=Web Browser
|
||||
GenericName[xh]=Web Browser
|
||||
GenericName[zh_CN]=Web 浏览器
|
||||
GenericName[zh_TW]=網頁瀏覽器
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ach]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[af]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[an]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ar]=إنترنت;WWW;متصفح;ويب;مستكشف;
|
||||
Keywords[ast]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[az]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[be]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[bg]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[bn]=ইন্টারনেট;WWW;ব্রাউজার;ওয়েব;এক্সপ্লোরার;
|
||||
Keywords[bqi]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[br]=Internet;WWW;Merdeer;Web;Ergerzhout;
|
||||
Keywords[brx]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[bs]=Internet;WWW;Pretraživač;Web;Istraživač;
|
||||
Keywords[ca]=Internet;WWW;Browser;Web;Explorador;Navegador;
|
||||
Keywords[ca_valencia]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[cak]=K'amaya'l;WWW;Okik'amaya'l;Kanob'äl;
|
||||
Keywords[ckb]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[cs]=internet;WWW;prohlížeč;web;
|
||||
Keywords[cy]=Rhyngrwyd;WWW;Porwr;Gwe;Archwiliwr;
|
||||
Keywords[da]=Internet;WWW;Browser;Nettet;Explorer;
|
||||
Keywords[de]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[dsb]=Internet;WWW;wobglědowak;Web;Explorer;
|
||||
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Ιστός;Ίντερνετ;
|
||||
Keywords[en_CA]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[en_GB]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[eo]=Interreto;Retumilo;TTT;Teksaĵo;Reto;Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[es_AR]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[es_CL]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[es_ES]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[es_MX]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[et]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[eu]=Internet;WWW;Nabigatzailea;Web;Arakatzailea;
|
||||
Keywords[fa]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ff]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;netti;webbi;selain;
|
||||
Keywords[fr]=Internet;WWW;Navigateur;Web;Explorer;
|
||||
Keywords[fur]=Internet;WWW;Browser;Navigadôr;Web;Esploradôr;Explorer;
|
||||
Keywords[fy_NL]=Ynternet;WWW;Browser;Web;Ferkenner;
|
||||
Keywords[ga_IE]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[gd]=Internet;WWW;Browser;Web;Explorer;eadar-lìon;brabhsair;brobhsair;lìon;taisgealaiche;
|
||||
Keywords[gl]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[gn]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[gu_IN]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[he]=אינטרנט;WWW;דפדפן;רשת;סייר;מרשתת;
|
||||
Keywords[hi_IN]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[hr]=Internet;WWW;Preglednik;Web;Istraživač;
|
||||
Keywords[hsb]=Internet;WWW;wobhladowak;Web;Explorer;
|
||||
Keywords[hu]=Internet;WWW;Böngésző;Web;Világháló;
|
||||
Keywords[hy_AM]=Համացանց,WWW,Զննիչ,Վեբ,Ցանցախույզ:
|
||||
Keywords[hye]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ia]=Internet;WWW;Navigator;Web;Explorator;
|
||||
Keywords[id]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[is]=Internet;WWW; Vafri; Vefur; Explorer;
|
||||
Keywords[it]=Internet;WWW;Browser;Web;Explorer;Navigatore;
|
||||
Keywords[ja]=Internet;WWW;Browser;Web;Explorer;インターネット;ブラウザー;ウェブ;
|
||||
Keywords[ka]=ინტერნეტი;WWW;ბრაუზერი;ქსელი;ქსელთან წვდომა;
|
||||
Keywords[kab]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[kk]=Internet;WWW;Browser;Web;Explorer;Интернет;Ғаламтор;Браузер;Желі;Шолғыш;
|
||||
Keywords[km]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[kn]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ko]=인터넷;브라우저;웹;탐색기;Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[lij]=Internet;WWW;Browser;Web;Explorer;Navegatô;
|
||||
Keywords[lo]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[lt]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ltg]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[lv]=Internets;WWW;Pārlūkprogramma;Tīmeklis;
|
||||
Keywords[meh]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[mk]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ml]=ഗോളാന്തരവല;WWW;അന്വേഷിയന്ത്രം;ഗോളാന്തരവല;ആരായൻ;
|
||||
Keywords[mr]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ms]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[my]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[nb_NO]=Internett;WWW;Nettleser;Web;Utforsker;
|
||||
Keywords[ne_NP]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[nl]=Internet;WWW;Browser;Web;Verkenner;
|
||||
Keywords[nn_NO]=Internett;WWW;Nettlesar;Web;Utforskar;
|
||||
Keywords[oc]=Internet;WWW;Navegador;Navigador;Navegator;Navigator;Web;Explorer;
|
||||
Keywords[pa_IN]=ਇੰਟਰਨੈੱਟ;WWW;ਬਰਾਊਜ਼ਰ;ਵੈੱਬ;ਐਕਸਪਲਰੋਰ;ਵੈਬ;ਇੰਟਰਨੈਟ;
|
||||
Keywords[pl]=Internet;WWW;Przeglądarka;Browser;Wyszukiwarka;Web;Sieć;Explorer;Eksplorer;Strony;Witryny;internetowe;
|
||||
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorer;Navegador;
|
||||
Keywords[pt_PT]=Internet;WWW;Navegador;Web;Explorador;
|
||||
Keywords[rm]=Internet;WWW;Browser;Web;Explorer;navigatur;
|
||||
Keywords[ro]=Internet; WWW; Browser; Web; Explorer;
|
||||
Keywords[ru]=Сеть;Интернет;Браузер;Доступ в Интернет;
|
||||
Keywords[sat]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[sc]=Internet;WWW;Navigadore;Web;Explorer;
|
||||
Keywords[sco]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[si]=අන්තර්ජාලය;අතිරික්සුව;පිරික්සන්න;ගවේශකය;Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[sk]=Internet;WWW;Prehliadač;Web;Prieskumník;
|
||||
Keywords[skr]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[sl]=internet;www;brskalnik;splet;
|
||||
Keywords[son]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[sq]=Internet;WWW;Shfletues;Web;Eksplorues;
|
||||
Keywords[sr]=Internet;WWW;Browser;Web;Explorer;интернет;њњњ;веб;мрежа;прегледач;експлорер;internet;pregledač;veb;mreža;pregledač;eksplorer;
|
||||
Keywords[sv_SE]=Internet;WWW;Webbläsare;Webb;Utforskare;
|
||||
Keywords[szl]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ta]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[te]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[tg]=Интернет;WWW;Браузер;Сомона;Ҷустуҷӯгар;
|
||||
Keywords[th]=อินเทอร์เน็ต;เบราว์เซอร์;เว็บ;Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[tl]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[tr]=Internet;WWW;Browser;Web;Explorer;İnternet;Tarayıcı;
|
||||
Keywords[trs]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[uk]=Інтернет;WWW;Браузер;Веб;Переглядач;
|
||||
Keywords[ur]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[uz]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[vi]=Internet;WWW;Trình duyệt;Web;Duyệt web;
|
||||
Keywords[wo]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[xh]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[zh_TW]=網際網路;網路;瀏覽器;網頁;上網;Internet;WWW;Browser;Web;Explorer;
|
||||
Actions=new-window;new-blank-window;new-private-window;profilemanager;
|
||||
X-AppImage-Version=$VERSION
|
||||
|
||||
[Desktop Action new-window]
|
||||
Exec=zen %u
|
||||
Name=New Window
|
||||
Name[ach]=New Window
|
||||
Name[af]=New Window
|
||||
Name[an]=New Window
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[ast]=New Window
|
||||
Name[az]=New Window
|
||||
Name[be]=Новае акно
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn]=নতুন উইন্ডো
|
||||
Name[bqi]=نیمدری نۊ
|
||||
Name[br]=Prenestr nevez
|
||||
Name[brx]=New Window
|
||||
Name[bs]=Novi prozor
|
||||
Name[ca]=Finestra nova
|
||||
Name[ca_valencia]=New Window
|
||||
Name[cak]=K'ak'a' Tzuwäch
|
||||
Name[ckb]=New Window
|
||||
Name[cs]=Nové okno
|
||||
Name[cy]=Ffenestr Newydd
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=Neues Fenster
|
||||
Name[dsb]=Nowe wokno
|
||||
Name[el]=Νέο παράθυρο
|
||||
Name[en_CA]=New Window
|
||||
Name[en_GB]=New Window
|
||||
Name[eo]=Nova fenestro
|
||||
Name[es_AR]=Nueva ventana
|
||||
Name[es_CL]=Nueva ventana
|
||||
Name[es_ES]=Nueva ventana
|
||||
Name[es_MX]=Nueva ventana
|
||||
Name[et]=New Window
|
||||
Name[eu]=Leiho berria
|
||||
Name[fa]=پنجره جدید
|
||||
Name[ff]=New Window
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fr]=Nouvelle fenêtre
|
||||
Name[fur]=Gnûf barcon
|
||||
Name[fy_NL]=Nij finster
|
||||
Name[ga_IE]=New Window
|
||||
Name[gd]=Uinneag ùr
|
||||
Name[gl]=Nova xanela
|
||||
Name[gn]=Ovetã pyahu
|
||||
Name[gu_IN]=New Window
|
||||
Name[he]=חלון חדש
|
||||
Name[hi_IN]=New Window
|
||||
Name[hr]=Novi prozor
|
||||
Name[hsb]=Nowe wokno
|
||||
Name[hu]=Új ablak
|
||||
Name[hy_AM]=Նոր պատուհան
|
||||
Name[hye]=New Window
|
||||
Name[ia]=Nove fenestra
|
||||
Name[id]=Jendela Baru
|
||||
Name[is]=Nýr gluggi
|
||||
Name[it]=Nuova finestra
|
||||
Name[ja]=新しいウィンドウ
|
||||
Name[ka]=ახალი ფანჯარა
|
||||
Name[kab]=Asfaylu amaynut
|
||||
Name[kk]=Жаңа терезе
|
||||
Name[km]=បង្អួចថ្មី
|
||||
Name[kn]=New Window
|
||||
Name[ko]=새 창
|
||||
Name[lij]=Neuvo Barcon
|
||||
Name[lo]=ວິນໂດໃໝ່
|
||||
Name[lt]=New Window
|
||||
Name[ltg]=New Window
|
||||
Name[lv]=Jauns logs
|
||||
Name[meh]=New Window
|
||||
Name[mk]=New Window
|
||||
Name[ml]=പുതിയ ജാലകം
|
||||
Name[mr]=New Window
|
||||
Name[ms]=New Window
|
||||
Name[my]=New Window
|
||||
Name[nb_NO]=Nytt vindu
|
||||
Name[ne_NP]=नयाँ सञ्झ्याल
|
||||
Name[nl]=Nieuw venster
|
||||
Name[nn_NO]=Nytt vindauge
|
||||
Name[oc]=Fenèstra novèla
|
||||
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt_BR]=Nova janela
|
||||
Name[pt_PT]=Nova janela
|
||||
Name[rm]=Nova fanestra
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sat]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ
|
||||
Name[sc]=Ventana noa
|
||||
Name[sco]=New Window
|
||||
Name[si]=නව කවුළුව
|
||||
Name[sk]=Nové okno
|
||||
Name[skr]=نویں ونڈو
|
||||
Name[sl]=Novo okno
|
||||
Name[son]=New Window
|
||||
Name[sq]=Dritare e Re
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv_SE]=Nytt fönster
|
||||
Name[szl]=New Window
|
||||
Name[ta]=New Window
|
||||
Name[te]=కొత్త కిటికీ
|
||||
Name[tg]=Равзанаи нав
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tl]=New Window
|
||||
Name[tr]=Yeni pencere
|
||||
Name[trs]=Bēntanâ nākàa
|
||||
Name[uk]=Нове вікно
|
||||
Name[ur]=New Window
|
||||
Name[uz]=New Window
|
||||
Name[vi]=Cửa sổ mới
|
||||
Name[wo]=New Window
|
||||
Name[xh]=New Window
|
||||
Name[zh_CN]=新建窗口
|
||||
Name[zh_TW]=開新視窗
|
||||
|
||||
[Desktop Action new-blank-window]
|
||||
Exec=zen --blank-window %u
|
||||
Name=New Blank Window
|
||||
Name[ach]=New Blank Window
|
||||
Name[af]=New Blank Window
|
||||
Name[an]=New Blank Window
|
||||
Name[ar]=نافذة فارغة جديدة
|
||||
Name[ast]=New Blank Window
|
||||
Name[az]=New Blank Window
|
||||
Name[be]=Новае пустое акно
|
||||
Name[bg]=Нов празен прозорец
|
||||
Name[bn]=নতুন ফাঁকা উইন্ডো
|
||||
Name[bqi]=نیمدری نۊ خالی
|
||||
Name[br]=Prenestr goulloù nevez
|
||||
Name[brx]=New Blank Window
|
||||
Name[bs]=Novi prazni prozor
|
||||
Name[ca]=Finestra en blanc nova
|
||||
Name[ca_valencia]=New Blank Window
|
||||
Name[cak]=K'ak'a' Tzuwäch K'axk'ol
|
||||
Name[ckb]=New Blank Window
|
||||
Name[cs]=Nové prázdné okno
|
||||
Name[cy]=Ffenestr Wag Newydd
|
||||
Name[da]=Nyt tomt vindue
|
||||
Name[de]=Neues leeres Fenster
|
||||
Name[dsb]=Nowe prázdne wokno
|
||||
Name[el]=Νέο κενό παράθυρο
|
||||
Name[en_CA]=New Blank Window
|
||||
Name[en_GB]=New Blank Window
|
||||
Name[eo]=Nova malplena fenestro
|
||||
Name[es_AR]=Nueva ventana en blanco
|
||||
Name[es_CL]=Nueva ventana en blanco
|
||||
Name[es_ES]=Nueva ventana en blanco
|
||||
Name[es_MX]=Nueva ventana en blanco
|
||||
Name[et]=New Blank Window
|
||||
Name[eu]=Leiho huts berri
|
||||
Name[fa]=پنجره خالی جدید
|
||||
Name[ff]=New Blank Window
|
||||
Name[fi]=Uusi tyhjä ikkuna
|
||||
Name[fr]=Nouvelle fenêtre vierge
|
||||
Name[fur]=Gnûf barcon vuot
|
||||
Name[fy_NL]=Nij leeg finster
|
||||
Name[ga_IE]=New Blank Window
|
||||
Name[gd]=Uinneag bhàn ùr
|
||||
Name[gl]=Nova xanela en branco
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu_IN]=New Blank Window
|
||||
Name[he]=חלון ריק חדש
|
||||
Name[hi_IN]=New Blank Window
|
||||
Name[hr]=Novi prazni prozor
|
||||
Name[hsb]=Nowe prázdne wokno
|
||||
Name[hu]=Új üres ablak
|
||||
Name[hy_AM]=Նոր դատարկ պատուհան
|
||||
Name[hye]=New Blank Window
|
||||
Name[ia]=Nove fenestra vacue
|
||||
Name[id]=Jendela Kosong Baru
|
||||
Name[is]=Nýr tómur gluggi
|
||||
Name[it]=Nuova finestra vuota
|
||||
Name[ja]=新しい空白のウィンドウ
|
||||
Name[ka]=ახალი ცარიელი ფანჯარა
|
||||
Name[kab]=Asfaylu amaynut n tunigin tusligt
|
||||
Name[kk]=Жаңа бос терезе
|
||||
Name[km]=បង្អួចថ្មីឯកជន
|
||||
Name[kn]=New Blank Window
|
||||
Name[ko]=새 빈 창
|
||||
Name[lij]=Neuvo Barcon Vuot
|
||||
Name[lo]=ວິນໂດແອ່ງໃໝ່
|
||||
Name[lt]=New Blank Window
|
||||
Name[ltg]=New Blank Window
|
||||
Name[lv]=Jauns tukšais logs
|
||||
Name[meh]=New Blank Window
|
||||
Name[mk]=New Blank Window
|
||||
Name[ml]=പുതിയ ശൂന്യ ജാലകം
|
||||
Name[mr]=New Blank Window
|
||||
Name[ms]=New Blank Window
|
||||
Name[my]=New Blank Window
|
||||
Name[nb_NO]=Nytt tomt vindu
|
||||
Name[ne_NP]=नयाँ खाली सञ्झ्याल
|
||||
Name[nl]=Nieuw leeg venster
|
||||
Name[nn_NO]=Nytt tomt vindauge
|
||||
Name[oc]=Fenèstra en blanc novèla
|
||||
Name[pa_IN]=ਨਵੀਂ ਖਾਲੀ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe puste okno
|
||||
Name[pt_BR]=Nova janela em branco
|
||||
Name[pt_PT]=Nova janela em branco
|
||||
Name[rm]=Nova fanestra vacue
|
||||
Name[ro]=Fereastră nouă și goală
|
||||
Name[ru]=Новое пустое окно
|
||||
Name[sat]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ ᱵᱽᱨᱟᱣᱡᱚᱨ
|
||||
Name[sc]=Ventana en blanc noa
|
||||
Name[sco]=New Blank Window
|
||||
Name[si]=නව හිස් කවුළුව
|
||||
Name[sk]=Nové prázdné okno
|
||||
Name[skr]=نویں خالی ونڈو
|
||||
Name[sl]=Novo prazno okno
|
||||
Name[son]=New Blank Window
|
||||
Name[sq]=Dritare e Re e Pafajshme
|
||||
Name[sr]=Нови празни прозор
|
||||
Name[sv_SE]=Nytt tomt fönster
|
||||
Name[szl]=New Blank Window
|
||||
Name[ta]=New Blank Window
|
||||
Name[te]=కొత్త ఖాళీ కిటికీ
|
||||
Name[tg]=Равзанаи холӣ нав
|
||||
Name[th]=หน้าต่างว่างเปล่าใหม่
|
||||
Name[tl]=New Blank Window
|
||||
Name[tr]=Yeni boş pencere
|
||||
Name[trs]=Bēntanâ huì nākàa
|
||||
Name[uk]=Нове порожнє вікно
|
||||
Name[ur]=New Blank Window
|
||||
Name[uz]=New Blank Window
|
||||
Name[vi]=Cửa sổ trống mới
|
||||
Name[wo]=New Blank Window
|
||||
Name[xh]=New Blank Window
|
||||
Name[zh_CN]=新建空白窗口
|
||||
Name[zh_TW]=開新空白視窗
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Exec=zen --private-window %u
|
||||
Name=New Private Window
|
||||
Name[ach]=New Private Window
|
||||
Name[af]=New Private Window
|
||||
Name[an]=New Private Window
|
||||
Name[ar]=نافذة خاصة جديدة
|
||||
Name[ast]=New Private Window
|
||||
Name[az]=New Private Window
|
||||
Name[be]=Новае прыватнае акно
|
||||
Name[bg]=Нов личен прозорец
|
||||
Name[bn]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[bqi]=نیمدری سیخومی نۊ
|
||||
Name[br]=Prenestr prevez nevez
|
||||
Name[brx]=New Private Window
|
||||
Name[bs]=Novi privatni prozor
|
||||
Name[ca]=Finestra privada nova
|
||||
Name[ca_valencia]=New Private Window
|
||||
Name[cak]=K'ak'a' Ichinan Tzuwäch
|
||||
Name[ckb]=New Private Window
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[cy]=Ffenestr Breifat Newydd
|
||||
Name[da]=Nyt privat vindue
|
||||
Name[de]=Neues privates Fenster
|
||||
Name[dsb]=Nowe priwatne wokno
|
||||
Name[el]=Νέο ιδιωτικό παράθυρο
|
||||
Name[en_CA]=New Private Window
|
||||
Name[en_GB]=New Private Window
|
||||
Name[eo]=Nova privata fenestro
|
||||
Name[es_AR]=Nueva ventana privada
|
||||
Name[es_CL]=Nueva ventana privada
|
||||
Name[es_ES]=Nueva ventana privada
|
||||
Name[es_MX]=Nueva ventana privada
|
||||
Name[et]=New Private Window
|
||||
Name[eu]=Leiho pribatu berria
|
||||
Name[fa]=پنجره ناشناس جدید
|
||||
Name[ff]=New Private Window
|
||||
Name[fi]=Uusi yksityinen ikkuna
|
||||
Name[fr]=Nouvelle fenêtre privée
|
||||
Name[fur]=Gnûf barcon privât
|
||||
Name[fy_NL]=Nij priveefinster
|
||||
Name[ga_IE]=New Private Window
|
||||
Name[gd]=Uinneag phrìobhaideach ùr
|
||||
Name[gl]=Nova xanela privada
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu_IN]=New Private Window
|
||||
Name[he]=חלון פרטי חדש
|
||||
Name[hi_IN]=New Private Window
|
||||
Name[hr]=Novi privatni prozor
|
||||
Name[hsb]=Nowe priwatne wokno
|
||||
Name[hu]=Új privát ablak
|
||||
Name[hy_AM]=Նոր գաղտնի պատուհան
|
||||
Name[hye]=New Private Window
|
||||
Name[ia]=Nove fenestra private
|
||||
Name[id]=Jendela Mode Pribadi Baru
|
||||
Name[is]=Nýr huliðsgluggi
|
||||
Name[it]=Nuova finestra anonima
|
||||
Name[ja]=新しいプライベートウィンドウ
|
||||
Name[ka]=ახალი პირადი ფანჯარა
|
||||
Name[kab]=Asfaylu amaynut n tunigin tusligt
|
||||
Name[kk]=Жаңа жекелік терезе
|
||||
Name[km]=បង្អួចឯកជនថ្មី
|
||||
Name[kn]=New Private Window
|
||||
Name[ko]=새 사생활 보호 창
|
||||
Name[lij]=Neuvo Barcon Privòu
|
||||
Name[lo]=ວິນໂດສ່ວນຕົວໃໝ່
|
||||
Name[lt]=New Private Window
|
||||
Name[ltg]=New Private Window
|
||||
Name[lv]=Jauns privātais logs
|
||||
Name[meh]=New Private Window
|
||||
Name[mk]=New Private Window
|
||||
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
Name[mr]=New Private Window
|
||||
Name[ms]=New Private Window
|
||||
Name[my]=New Private Window
|
||||
Name[nb_NO]=Nytt privat vindu
|
||||
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||
Name[nl]=Nieuw privévenster
|
||||
Name[nn_NO]=Nytt privat vindauge
|
||||
Name[oc]=Fenèstra privada novèla
|
||||
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno prywatne
|
||||
Name[pt_BR]=Nova janela privativa
|
||||
Name[pt_PT]=Nova janela privada
|
||||
Name[rm]=Nova fanestra privata
|
||||
Name[ro]=Fereastră privată nouă
|
||||
Name[ru]=Новое приватное окно
|
||||
Name[sat]=ᱱᱟᱶᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱣᱤᱱᱰᱳ
|
||||
Name[sc]=Ventana privada noa
|
||||
Name[sco]=New Private Window
|
||||
Name[si]=නව පෞද්. කවුළුව
|
||||
Name[sk]=Nové súkromné okno
|
||||
Name[skr]=نویں نجی ونڈو
|
||||
Name[sl]=Novo zasebno okno
|
||||
Name[son]=New Private Window
|
||||
Name[sq]=Dritare e Re Private
|
||||
Name[sr]=Нови приватни прозор
|
||||
Name[sv_SE]=Nytt privat fönster
|
||||
Name[szl]=New Private Window
|
||||
Name[ta]=New Private Window
|
||||
Name[te]=కొత్త ఆంతరంగిక కిటికీ
|
||||
Name[tg]=Равзанаи хусусии нав
|
||||
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
Name[tl]=New Private Window
|
||||
Name[tr]=Yeni gizli pencere
|
||||
Name[trs]=Bēntanâ huì nākàa
|
||||
Name[uk]=Приватне вікно
|
||||
Name[ur]=New Private Window
|
||||
Name[uz]=New Private Window
|
||||
Name[vi]=Cửa sổ riêng tư mới
|
||||
Name[wo]=New Private Window
|
||||
Name[xh]=New Private Window
|
||||
Name[zh_CN]=新建隐私窗口
|
||||
Name[zh_TW]=開新隱私視窗
|
||||
|
||||
[Desktop Action profilemanager]
|
||||
Exec=zen --ProfileManager %u
|
||||
Name=Open Profile Manager
|
||||
Name[ach]=Open Profile Manager
|
||||
Name[af]=Open Profile Manager
|
||||
Name[an]=Open Profile Manager
|
||||
Name[ar]=افتح مدير الملف الشخصي
|
||||
Name[ast]=Open Profile Manager
|
||||
Name[az]=Open Profile Manager
|
||||
Name[be]=Адкрыць менеджар профіляў
|
||||
Name[bg]=Отваряне на мениджъра на профили
|
||||
Name[bn]=Open Profile Manager
|
||||
Name[bqi]=گۊشیڌن دؽوۉداری پوروفایل
|
||||
Name[br]=Digeriñ an ardoer aeladoù
|
||||
Name[brx]=Open Profile Manager
|
||||
Name[bs]=Otvori Menadžera profila
|
||||
Name[ca]=Obre el gestor de perfils
|
||||
Name[ca_valencia]=Open Profile Manager
|
||||
Name[cak]=Open Profile Manager
|
||||
Name[ckb]=Open Profile Manager
|
||||
Name[cs]=Otevřít Správce profilů
|
||||
Name[cy]=Agorwch y Rheolwr Proffil
|
||||
Name[da]=Åbn profilhåndtering
|
||||
Name[de]=Profilverwaltung öffnen
|
||||
Name[dsb]=Profilowy zastojnik wócyniś
|
||||
Name[el]=Άνοιγμα Διαχείρισης προφίλ
|
||||
Name[en_CA]=Open Profile Manager
|
||||
Name[en_GB]=Open Profile Manager
|
||||
Name[eo]=Malfermi administranton de profiloj
|
||||
Name[es_AR]=Abrir administrador de perfiles
|
||||
Name[es_CL]=Abrir administrador de perfiles
|
||||
Name[es_ES]=Abrir administrador de perfiles
|
||||
Name[es_MX]=Abrir administrador de perfiles
|
||||
Name[et]=Open Profile Manager
|
||||
Name[eu]=Ireki profilen kudeatzailea
|
||||
Name[fa]=گشودن مدیر نمایه
|
||||
Name[ff]=Open Profile Manager
|
||||
Name[fi]=Avaa profiilien hallinta
|
||||
Name[fr]=Ouvrir le gestionnaire de profils
|
||||
Name[fur]=Vierç gjestôr profîi
|
||||
Name[fy_NL]=Profylbehearder iepenje
|
||||
Name[ga_IE]=Open Profile Manager
|
||||
Name[gd]=Fosgail manaidsear nam pròifilean
|
||||
Name[gl]=Abrir o xestor de perfís
|
||||
Name[gn]=Embojuruja mba’ete ñangarekoha
|
||||
Name[gu_IN]=Open Profile Manager
|
||||
Name[he]=פתיחת מנהל הפרופילים
|
||||
Name[hi_IN]=Open Profile Manager
|
||||
Name[hr]=Otvori upravljač profila
|
||||
Name[hsb]=Zrjadowak profilow wočinić
|
||||
Name[hu]=Profilkezelő megnyitása
|
||||
Name[hy_AM]=Բացեք պրոֆիլի կառավարիչը
|
||||
Name[hye]=Open Profile Manager
|
||||
Name[ia]=Aperir le gestor de profilo
|
||||
Name[id]=Buka Pengelola Profil
|
||||
Name[is]=Opna umsýslu notandasniða
|
||||
Name[it]=Apri gestore profili
|
||||
Name[ja]=プロファイルマネージャーを開く
|
||||
Name[ka]=პროფილის მმართველის გახსნა
|
||||
Name[kab]=Ldi amsefrak n umaɣnu
|
||||
Name[kk]=Профильдер бақарушысын ашу
|
||||
Name[km]=Open Profile Manager
|
||||
Name[kn]=Open Profile Manager
|
||||
Name[ko]=프로필 관리자 열기
|
||||
Name[lij]=Open Profile Manager
|
||||
Name[lo]=ເປີດຕົວຈັດການໂປຣໄຟລ໌
|
||||
Name[lt]=Open Profile Manager
|
||||
Name[ltg]=Open Profile Manager
|
||||
Name[lv]=Atvērt profilu pārvaldnieku
|
||||
Name[meh]=Open Profile Manager
|
||||
Name[mk]=Open Profile Manager
|
||||
Name[ml]=രൂപരേഖ മാനേചർ
|
||||
Name[mr]=Open Profile Manager
|
||||
Name[ms]=Open Profile Manager
|
||||
Name[my]=Open Profile Manager
|
||||
Name[nb_NO]=Åpne profilbehandler
|
||||
Name[ne_NP]=Open Profile Manager
|
||||
Name[nl]=Profielbeheerder openen
|
||||
Name[nn_NO]=Opne profilhandsaming
|
||||
Name[oc]=Dobrir lo gestionari de perfils
|
||||
Name[pa_IN]=ਪਰੋਫ਼ਾਈਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ
|
||||
Name[pl]=Menedżer profili
|
||||
Name[pt_BR]=Abrir gerenciador de perfis
|
||||
Name[pt_PT]=Abrir o Gestor de Perfis
|
||||
Name[rm]=Avrir l'administraziun da profils
|
||||
Name[ro]=Deschide managerul de profiluri
|
||||
Name[ru]=Открыть менеджер профилей
|
||||
Name[sat]=ᱢᱮᱫᱦᱟᱸ ᱢᱮᱱᱮᱡᱚᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ
|
||||
Name[sc]=Aberi su gestore de profilos
|
||||
Name[sco]=Open Profile Manager
|
||||
Name[si]=පැතිකඩ කළමනාකරු අරින්න
|
||||
Name[sk]=Otvoriť Správcu profilov
|
||||
Name[skr]=پروفائل منیجر کھولو
|
||||
Name[sl]=Odpri upravitelja profilov
|
||||
Name[son]=Open Profile Manager
|
||||
Name[sq]=Hapni Përgjegjës Profilesh
|
||||
Name[sr]=Отворите управљач профила
|
||||
Name[sv_SE]=Öppna Profilhanteraren
|
||||
Name[szl]=Open Profile Manager
|
||||
Name[ta]=Open Profile Manager
|
||||
Name[te]=Open Profile Manager
|
||||
Name[tg]=Кушодани мудири профилҳо
|
||||
Name[th]=เปิดตัวจัดการโปรไฟล์
|
||||
Name[tl]=Open Profile Manager
|
||||
Name[tr]=Profil yöneticisini aç
|
||||
Name[trs]=Sa nīkāj ñu’ūnj nej perfî huā nì’nï̀nj ïn
|
||||
Name[uk]=Відкрити менеджер профілів
|
||||
Name[ur]=Open Profile Manager
|
||||
Name[uz]=Open Profile Manager
|
||||
Name[vi]=Mở trình quản lý hồ sơ
|
||||
Name[wo]=Open Profile Manager
|
||||
Name[xh]=Open Profile Manager
|
||||
Name[zh_CN]=打开配置文件管理器
|
||||
Name[zh_TW]=開啟設定檔管理員
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!--
|
||||
Entitlements to apply to the main browser process executable during
|
||||
codesigning of production channel builds.
|
||||
-->
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<!-- Firefox needs to create executable pages (without MAP_JIT) -->
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
|
||||
|
||||
<!-- Firefox needs to create executable pages with MAP_JIT on aarch64 -->
|
||||
<key>com.apple.security.cs.allow-jit</key><true/>
|
||||
|
||||
<!-- Allow loading third party libraries. Needed for Flash and CDMs -->
|
||||
<key>com.apple.security.cs.disable-library-validation</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the microphone on sites the user allows -->
|
||||
<key>com.apple.security.device.audio-input</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the camera on sites the user allows -->
|
||||
<key>com.apple.security.device.camera</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the location on sites the user allows -->
|
||||
<key>com.apple.security.personal-information.location</key><true/>
|
||||
|
||||
<!-- Allow Firefox to send Apple events to other applications. Needed
|
||||
for native messaging webextension helper applications launched by
|
||||
Firefox which rely on Apple Events to signal other processes. -->
|
||||
<key>com.apple.security.automation.apple-events</key><true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,169 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# Runs codesign commands to codesign a Firefox .app bundle and enable macOS
|
||||
# Hardened Runtime. Intended to be manually run by developers working on macOS
|
||||
# 10.14+ who want to enable Hardened Runtime for manual testing. This is
|
||||
# provided as a stop-gap until automated build tooling is available that signs
|
||||
# binaries with a certificate generated during builds (bug 1522409). This
|
||||
# script requires macOS 10.14 because Hardened Runtime is only available for
|
||||
# applications running on 10.14 despite support for the codesign "-o runtime"
|
||||
# option being available in 10.13.6 and newer.
|
||||
#
|
||||
# The script requires an identity string (-i option) from an Apple Developer
|
||||
# ID certificate. This can be found in the macOS KeyChain after configuring an
|
||||
# Apple Developer ID certificate.
|
||||
#
|
||||
# Example usage on macOS 10.14:
|
||||
#
|
||||
# $ ./mach build
|
||||
# $ ./mach build package
|
||||
# $ open </PATH/TO/DMG/FILE.dmg>
|
||||
# <Drag Nightly.app to ~>
|
||||
# $ ./security/mac/hardenedruntime/codesign.bash \
|
||||
# -a ~/Nightly.app \
|
||||
# -i <MY-IDENTITY-STRING> \
|
||||
# -b security/mac/hardenedruntime/browser.developer.entitlements.xml
|
||||
# -p security/mac/hardenedruntime/plugin-container.developer.entitlements.xml
|
||||
# $ open ~/Nightly.app
|
||||
#
|
||||
|
||||
usage ()
|
||||
{
|
||||
echo "Usage: $0 "
|
||||
echo " -a <PATH-TO-BROWSER.app>"
|
||||
echo " -i <IDENTITY>"
|
||||
echo " -b <ENTITLEMENTS-FILE>"
|
||||
echo " -p <CHILD-ENTITLEMENTS-FILE>"
|
||||
echo " [-o <OUTPUT-DMG-FILE>]"
|
||||
exit -1
|
||||
}
|
||||
|
||||
# Make sure we are running on macOS with the sw_vers command available.
|
||||
SWVERS=/usr/bin/sw_vers
|
||||
if [ ! -x ${SWVERS} ]; then
|
||||
echo "ERROR: macOS 10.14 or later is required"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# Require macOS 10.14 or newer.
|
||||
#OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
||||
#if [ ${OSVERSION} \< 14 ]; then
|
||||
# echo "ERROR: macOS 10.14 or later is required"
|
||||
# exit -1
|
||||
#fi
|
||||
|
||||
while getopts "a:i:b:o:p:" opt; do
|
||||
case ${opt} in
|
||||
a ) BUNDLE=$OPTARG ;;
|
||||
i ) IDENTITY=$OPTARG ;;
|
||||
b ) BROWSER_ENTITLEMENTS_FILE=$OPTARG ;;
|
||||
p ) PLUGINCONTAINER_ENTITLEMENTS_FILE=$OPTARG ;;
|
||||
o ) OUTPUT_DMG_FILE=$OPTARG ;;
|
||||
\? ) usage; exit -1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${BUNDLE}" ] ||
|
||||
[ -z "${IDENTITY}" ] ||
|
||||
[ -z "${PLUGINCONTAINER_ENTITLEMENTS_FILE}" ] ||
|
||||
[ -z "${BROWSER_ENTITLEMENTS_FILE}" ]; then
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ ! -d "${BUNDLE}" ]; then
|
||||
echo "Invalid bundle. Bundle should be a .app directory"
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ ! -e "${PLUGINCONTAINER_ENTITLEMENTS_FILE}" ]; then
|
||||
echo "Invalid entitlements file"
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ ! -e "${BROWSER_ENTITLEMENTS_FILE}" ]; then
|
||||
echo "Invalid entitlements file"
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# DMG file output flag is optional
|
||||
if [ ! -z "${OUTPUT_DMG_FILE}" ] &&
|
||||
[ -e "${OUTPUT_DMG_FILE}" ]; then
|
||||
echo "Output dmg file ${OUTPUT_DMG_FILE} exists. Please delete it first."
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
echo "-------------------------------------------------------------------------"
|
||||
echo "bundle: $BUNDLE"
|
||||
echo "identity: $IDENTITY"
|
||||
echo "browser entitlements file: $BROWSER_ENTITLEMENTS_FILE"
|
||||
echo "plugin-container entitlements file: $PLUGINCONTAINER_ENTITLEMENTS_FILE"
|
||||
echo "output dmg file (optional): $OUTPUT_DMG_FILE"
|
||||
echo "-------------------------------------------------------------------------"
|
||||
|
||||
set -x
|
||||
|
||||
# Clear extended attributes which cause codesign to fail
|
||||
xattr -cr "${BUNDLE}"
|
||||
|
||||
# Sign these binaries first. Signing of some binaries has an ordering
|
||||
# requirement where other binaries must be signed first.
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" \
|
||||
"${BUNDLE}/Contents/Library/LaunchServices/org.mozilla.updater" \
|
||||
"${BUNDLE}/Contents/MacOS/XUL" \
|
||||
"${BUNDLE}/Contents/MacOS/pingsender" \
|
||||
"${BUNDLE}/Contents/MacOS/*.dylib" \
|
||||
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||
"${BUNDLE}"/Contents/MacOS/updater.app
|
||||
|
||||
# Sign zen main executable
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||
--entitlements ${BROWSER_ENTITLEMENTS_FILE} \
|
||||
"${BUNDLE}"/Contents/MacOS/zen
|
||||
|
||||
# Sign Library/LaunchServices
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||
"${BUNDLE}"/Contents/Library/LaunchServices/org.mozilla.updater
|
||||
|
||||
# Sign gmp-clearkey files
|
||||
find "${BUNDLE}"/Contents/Resources/gmp-clearkey -type f -exec \
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" {} \;
|
||||
|
||||
# Sign the main bundle
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" \
|
||||
--entitlements ${BROWSER_ENTITLEMENTS_FILE} "${BUNDLE}"
|
||||
|
||||
# Sign the plugin-container bundle with deep
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||
--entitlements ${PLUGINCONTAINER_ENTITLEMENTS_FILE} \
|
||||
"${BUNDLE}"/Contents/MacOS/plugin-container.app
|
||||
|
||||
# Validate
|
||||
codesign -vvv --deep --strict "${BUNDLE}"
|
||||
|
||||
# Create a DMG
|
||||
if [ ! -z "${OUTPUT_DMG_FILE}" ]; then
|
||||
DISK_IMAGE_DIR=`mktemp -d`
|
||||
TEMP_FILE=`mktemp`
|
||||
TEMP_DMG=${TEMP_FILE}.dmg
|
||||
NAME=`basename "${BUNDLE}"`
|
||||
|
||||
ditto "${BUNDLE}" "${DISK_IMAGE_DIR}/${NAME}"
|
||||
hdiutil create -size 400m -fs HFS+ \
|
||||
-volname Firefox -srcfolder "${DISK_IMAGE_DIR}" "${TEMP_DMG}"
|
||||
hdiutil convert -format UDZO \
|
||||
-o "${OUTPUT_DMG_FILE}" "${TEMP_DMG}"
|
||||
|
||||
rm ${TEMP_FILE}
|
||||
rm ${TEMP_DMG}
|
||||
rm -rf "${DISK_IMAGE_DIR}"
|
||||
fi
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!--
|
||||
Entitlements to apply to the plugin-container.app bundle during
|
||||
codesigning of production channel builds.
|
||||
-->
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<!-- Firefox needs to create executable pages (without MAP_JIT) -->
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
|
||||
|
||||
<!-- Firefox needs to create executable pages with MAP_JIT on aarch64 -->
|
||||
<key>com.apple.security.cs.allow-jit</key><true/>
|
||||
|
||||
<!-- Allow loading third party libraries. Needed for Flash and CDMs -->
|
||||
<key>com.apple.security.cs.disable-library-validation</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the microphone on sites the user allows -->
|
||||
<key>com.apple.security.device.audio-input</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the camera on sites the user allows -->
|
||||
<key>com.apple.security.device.camera</key><true/>
|
||||
|
||||
<!-- Firefox needs to access the location on sites the user allows -->
|
||||
<key>com.apple.security.personal-information.location</key><true/>
|
||||
|
||||
<!-- Allow Firefox to send Apple events to other applications. Needed
|
||||
for native messaging webextension helper applications launched by
|
||||
Firefox which rely on Apple Events to signal other processes. -->
|
||||
<key>com.apple.security.automation.apple-events</key><true/>
|
||||
</dict>
|
||||
</plist>
|
||||
1
build/firefox-cache/l10n-last-commit-hash
Normal file
@@ -0,0 +1 @@
|
||||
10b4efc5a79c2ab80de3b22771b1d36b9b225920
|
||||
77
build/flatpak/app.zen_browser.zen.yml.template
Normal file
@@ -0,0 +1,77 @@
|
||||
app-id: app.zen_browser.zen
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '25.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
base: org.mozilla.firefox.BaseApp
|
||||
base-version: '25.08'
|
||||
add-extensions:
|
||||
app.zen_browser.zen.systemconfig:
|
||||
directory: etc/zen
|
||||
no-autodownload: true
|
||||
command: launch-script.sh
|
||||
finish-args:
|
||||
- --allow=devel
|
||||
- --share=ipc
|
||||
- --share=network
|
||||
- --socket=pulseaudio
|
||||
- --socket=wayland
|
||||
- --socket=fallback-x11
|
||||
- --socket=pcsc
|
||||
- --socket=cups
|
||||
- --persist=.zen
|
||||
- --env=DICPATH=/usr/share/hunspell
|
||||
- --filesystem=xdg-download:rw
|
||||
- --filesystem=/run/.heim_org.h5l.kcm-socket
|
||||
- --filesystem=xdg-run/speech-dispatcher:ro
|
||||
- --device=all
|
||||
- --talk-name=org.freedesktop.FileManager1
|
||||
- --system-talk-name=org.freedesktop.NetworkManager
|
||||
- --talk-name=org.a11y.Bus
|
||||
- --talk-name=org.gtk.vfs.*
|
||||
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
||||
- --own-name=org.mozilla.zen.*
|
||||
cleanup:
|
||||
- /include
|
||||
- /lib/pkgconfig
|
||||
- /share/pkgconfig
|
||||
- /share/aclocal
|
||||
- /share/gtk-doc
|
||||
- /share/doc
|
||||
- /share/info
|
||||
- /man
|
||||
- /share/man
|
||||
- '*.la'
|
||||
- '*.a'
|
||||
modules:
|
||||
- name: zen_browser
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- mv zen /app/
|
||||
- mkdir -p /app/etc/zen
|
||||
|
||||
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
||||
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
||||
- install -Dm0644 metadata/icons/${{FLATPAK_ID}}.svg ${{FLATPAK_DEST}}/share/icons/hicolor/scalable/apps/${{FLATPAK_ID}}.svg
|
||||
- install -Dm0644 metadata/${{FLATPAK_ID}}.metainfo.xml ${{FLATPAK_DEST}}/share/metainfo/${{FLATPAK_ID}}.metainfo.xml
|
||||
- install -Dm0644 metadata/${{FLATPAK_ID}}.desktop ${{FLATPAK_DEST}}/share/applications/${{FLATPAK_ID}}.desktop
|
||||
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/desktop/releases/download/{version}/zen.linux-x86_64.tar.xz
|
||||
sha256: {linux_sha256}
|
||||
strip-components: 0
|
||||
only-arches:
|
||||
- x86_64
|
||||
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/desktop/releases/download/{version}/zen.linux-aarch64.tar.xz
|
||||
sha256: {linux_aarch64_sha256}
|
||||
strip-components: 0
|
||||
only-arches:
|
||||
- aarch64
|
||||
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/flatpak/releases/download/{version}/archive.tar
|
||||
sha256: {flatpak_sha256}
|
||||
strip-components: 0
|
||||
dest: metadata
|
||||
BIN
build/signing/public_key.der
Normal file
14
build/ts/transform-ts.js
Normal file
@@ -0,0 +1,14 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
const fs = require("fs");
|
||||
const MJS_FILES = ["src/zen/split-view/ZenViewSplitter.ts"];
|
||||
|
||||
for (const file of MJS_FILES) {
|
||||
const code = fs.readFileSync(file, "utf8");
|
||||
require("@babel/core").transformSync(code, {
|
||||
presets: ["@babel/preset-typescript"],
|
||||
filename: file,
|
||||
});
|
||||
}
|
||||
1
build/windows/.windows-rs-version
Normal file
@@ -0,0 +1 @@
|
||||
0.62.2
|
||||
13
build/windows/bootstrap.ps1
Normal file
@@ -0,0 +1,13 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe", "C:\MozillaBuildSetup-Latest.exe")
|
||||
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
|
||||
cd engine
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2026.yaml ../win-cross/vs2026
|
||||
cd ..
|
||||
15
build/windows/firefox_update.ps1
Normal file
@@ -0,0 +1,15 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
Remove-Item -Recurse -Force engine
|
||||
Remove-Item -Recurse -Force .surfer
|
||||
|
||||
npm run init
|
||||
|
||||
$job = Start-Job -ScriptBlock {
|
||||
npm run build
|
||||
}
|
||||
|
||||
# Wait for job to complete with timeout (in seconds)
|
||||
$job | Wait-Job -Timeout 5
|
||||
236
build/windows/sign.ps1
Normal file
@@ -0,0 +1,236 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
param(
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity,
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentityIssuer,
|
||||
[string][Parameter(Mandatory=$true)]$GithubRunId
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
echo "Preparing environment"
|
||||
git pull origin dev --recurse
|
||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
|
||||
# Download in parallel
|
||||
|
||||
#show output too
|
||||
#Start-Job -Name "DownloadGitObjectsRepo" -ScriptBlock {
|
||||
# param($PWD)
|
||||
# echo "Downloading git objects repo to $PWD\windsign-temp\windows-binaries"
|
||||
# git clone https://github.com/zen-browser/windows-binaries.git $PWD\windsign-temp\windows-binaries
|
||||
# echo "Downloaded git objects repo to"
|
||||
#} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
$env:SURFER_MOZCONFIG_ONLY="1"
|
||||
$env:SURFER_SIGNING_MODE=""
|
||||
|
||||
$env:SURFER_CERT_PATCH_ISSUER=$SignIdentityIssuer
|
||||
$env:SURFER_CERT_PATCH_NAME=$SignIdentity
|
||||
|
||||
Start-Job -Name "DownloadGitl10n" -ScriptBlock {
|
||||
param($PWD)
|
||||
cd $PWD
|
||||
$env:ZEN_L10N_CURR_DIR=[regex]::replace($PWD, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
||||
C:\mozilla-build\start-shell.bat $PWD\scripts\download-language-packs.sh
|
||||
echo "Fetched l10n and Firefox's one"
|
||||
} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
$surferJson = Get-Content surfer.json | ConvertFrom-Json
|
||||
$version = $surferJson.brands.release.release.displayVersion
|
||||
npm run ci -- $version
|
||||
npm run import -- --verbose
|
||||
npm run build
|
||||
|
||||
echo "Downloading artifacts info"
|
||||
$artifactsInfo=gh api repos/zen-browser/desktop/actions/runs/$GithubRunId/artifacts
|
||||
$token = gh auth token
|
||||
|
||||
function New-TemporaryDirectory {
|
||||
$tmp = [System.IO.Path]::GetTempPath() # Not $env:TEMP, see https://stackoverflow.com/a/946017
|
||||
$name = (New-Guid).ToString("N")
|
||||
New-Item -ItemType Directory -Path (Join-Path $tmp $name)
|
||||
}
|
||||
|
||||
function DownloadFile($url, $targetFile) {
|
||||
$uri = New-Object "System.Uri" "$url"
|
||||
$request = [System.Net.HttpWebRequest]::Create($uri)
|
||||
$request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
||||
$request.Headers.Add("Authorization", "Bearer $token")
|
||||
$response = $request.GetResponse()
|
||||
$totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
|
||||
$responseStream = $response.GetResponseStream()
|
||||
$targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList $targetFile, Create
|
||||
$buffer = new-object byte[] 10KB
|
||||
$count = $responseStream.Read($buffer,0,$buffer.length)
|
||||
$downloadedBytes = $count
|
||||
|
||||
while ($count -gt 0) {
|
||||
$targetStream.Write($buffer, 0, $count)
|
||||
$count = $responseStream.Read($buffer,0,$buffer.length)
|
||||
$downloadedBytes = $downloadedBytes + $count
|
||||
Write-Progress -activity "Downloading file '$($url.split('/') | Select -Last 1)'" -status "Downloaded ($([System.Math]::Floor($downloadedBytes/1024))K of $($totalLength)K): " -PercentComplete ((([System.Math]::Floor($downloadedBytes/1024)) / $totalLength) * 100)
|
||||
}
|
||||
|
||||
Write-Progress -activity "Finished downloading file '$($url.split('/') | Select -Last 1)'"
|
||||
|
||||
$targetStream.Flush()
|
||||
$targetStream.Close()
|
||||
$targetStream.Dispose()
|
||||
$responseStream.Dispose()
|
||||
}
|
||||
|
||||
function DownloadArtifacts($name) {
|
||||
echo "Downloading artifacts for $name"
|
||||
$artifactUrl=$($artifactsInfo | jq -r --arg NAME "windows-x64-obj-$name" '.artifacts[] | select(.name == $NAME) | .archive_download_url')
|
||||
echo "Artifact URL: $artifactUrl"
|
||||
|
||||
# download the artifact
|
||||
$outputPath="$PWD\windsign-temp\windows-x64-obj-$name"
|
||||
$tempDir = New-TemporaryDirectory
|
||||
$tempFile = Join-Path $tempDir "artifact-$($name).zip"
|
||||
|
||||
echo "Downloading artifact to $tempFile"
|
||||
DownloadFile $artifactUrl $tempFile
|
||||
|
||||
Start-Job -Name "UnzipArtifact$name" -ScriptBlock {
|
||||
param($tempFile, $outputPath)
|
||||
echo "Unzipping artifact to $outputPath"
|
||||
Expand-Archive -Path $tempFile -DestinationPath $outputPath -Force
|
||||
echo "Unzipped artifact to $outputPath"
|
||||
} -ArgumentList $tempFile, $outputPath -Verbose -Debug
|
||||
}
|
||||
|
||||
DownloadArtifacts arm64
|
||||
DownloadArtifacts x86_64
|
||||
|
||||
# Wait for the jobs to finish
|
||||
Wait-Job -Name "UnzipArtifactarm64"
|
||||
Wait-Job -Name "UnzipArtifactx86_64"
|
||||
|
||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||
|
||||
# Collect all .exe and .dll files into a list
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-obj-x86_64\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-x86_64\ -Recurse -Include *.dll
|
||||
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-arm64\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-arm64\ -Recurse -Include *.dll
|
||||
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
|
||||
$env:ZEN_RELEASE="true"
|
||||
$env:SURFER_SIGNING_MODE="true"
|
||||
$env:SCCACHE_GHA_ENABLED="false"
|
||||
Wait-Job -Name "DownloadGitl10n"
|
||||
|
||||
function SignAndPackage($name) {
|
||||
echo "Executing on $name"
|
||||
rmdir .\dist -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir engine\obj-$name-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
$objName=$name
|
||||
# instead of arm, use aarch64
|
||||
if ($name -eq "arm64") {
|
||||
$objName="aarch64"
|
||||
}
|
||||
|
||||
echo "Removing old obj dir"
|
||||
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Creating new obj dir"
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-$objName-pc-windows-msvc\ -Recurse
|
||||
|
||||
echo "Copying setup.exe into obj dir"
|
||||
$env:ZEN_SETUP_EXE_PATH="$PWD\windsign-temp\windows-x64-obj-$name\browser\installer\windows\instgen\setup.exe"
|
||||
|
||||
if ($name -eq "arm64") {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2026\VC\Redist\MSVC\14.50.35710\arm64\Microsoft.VC145.CRT"
|
||||
} else {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2026\VC\Redist\MSVC\14.50.35710\x64\Microsoft.VC145.CRT"
|
||||
}
|
||||
|
||||
$env:MAR="..\\build\\windows\\mar.exe"
|
||||
if ($name -eq "arm64") {
|
||||
$env:SURFER_COMPAT="aarch64"
|
||||
} else {
|
||||
$env:SURFER_COMPAT="x86_64"
|
||||
}
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
|
||||
# Configure each time since we are cloning from a linux environment into
|
||||
# a windows environment, and the build system is not smart enough to detect that
|
||||
# we are on a different platform.
|
||||
cd .\engine
|
||||
echo "Configuring for $name"
|
||||
.\mach configure
|
||||
cd ..
|
||||
|
||||
echo "Packaging $name"
|
||||
npm run package -- --verbose
|
||||
|
||||
# In the release script, we do the following:
|
||||
# tar -xvf .github/workflows/object/windows-x64-signed-x86_64.tar.gz -C windows-x64-signed-x86_64
|
||||
# We need to create a tar with the same structure and no top-level directory
|
||||
# Inside, we need:
|
||||
# - update_manifest/*
|
||||
# - windows.mar
|
||||
# - zen.installer.exe
|
||||
echo "Creating tar for $name"
|
||||
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mkdir windsign-temp\windows-x64-signed-$name
|
||||
|
||||
# Move the MAR, add the `-arm64` suffix if needed
|
||||
echo "Moving MAR for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows-$name.mar
|
||||
} else {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows.mar
|
||||
}
|
||||
|
||||
# Move the installer
|
||||
echo "Moving installer for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-$name.exe
|
||||
} else {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||
}
|
||||
|
||||
# Move the manifest
|
||||
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
|
||||
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
|
||||
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Finished $name"
|
||||
}
|
||||
|
||||
SignAndPackage arm64
|
||||
SignAndPackage x86_64
|
||||
|
||||
$files = Get-ChildItem .\windsign-temp\windows-binaries -Recurse -Include *.exe
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
cd windsign-temp\windows-binaries
|
||||
git add .
|
||||
git commit -m "Sign and package windows artifacts"
|
||||
git push
|
||||
cd ..\..
|
||||
|
||||
# Cleaning up
|
||||
|
||||
echo "All done!"
|
||||
echo "All the artifacts (x86_64 and arm46) are signed and packaged, get a rest now!"
|
||||
Read-Host "Press Enter to continue"
|
||||
|
||||
echo "Cleaning up"
|
||||
rmdir windsign-temp\windows-x64-obj-x86_64 -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir windsign-temp\windows-x64-obj-arm64 -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Opening visual studio code"
|
||||
code .
|
||||
@@ -1,136 +0,0 @@
|
||||
param(
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity,
|
||||
[string][Parameter(Mandatory=$true)]$GithubRunId
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
echo "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
|
||||
# Download in parallel
|
||||
|
||||
#show output too
|
||||
#Start-Job -Name "DownloadGitObjectsRepo" -ScriptBlock {
|
||||
# param($PWD)
|
||||
# echo "Downloading git objects repo to $PWD\windsign-temp\windows-binaries"
|
||||
# git clone https://github.com/zen-browser/windows-binaries.git $PWD\windsign-temp\windows-binaries
|
||||
# echo "Downloaded git objects repo to"
|
||||
#} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
gh run download $GithubRunId --name windows-x64-obj-arm64 -D windsign-temp\windows-x64-obj-arm64
|
||||
echo "Downloaded arm64 artifacts"
|
||||
gh run download $GithubRunId --name windows-x64-obj-x86_64 -D windsign-temp\windows-x64-obj-x86_64
|
||||
echo "Downloaded x86_64 artifacts"
|
||||
|
||||
|
||||
#Wait-Job -Name "DownloadGitObjectsRepo"
|
||||
|
||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||
|
||||
pnpm surfer ci --brand beta
|
||||
|
||||
function SignAndPackage($name) {
|
||||
echo "Executing on $name"
|
||||
rmdir .\dist -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir engine\obj-x86_64-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-x86_64-pc-windows-msvc\ -Recurse
|
||||
echo "Signing $name"
|
||||
|
||||
# Collect all .exe and .dll files into a list
|
||||
$files = Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.dll
|
||||
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
echo "Packaging $name"
|
||||
$env:SURFER_SIGNING_MODE="sign"
|
||||
$env:MAR="$PWD\\build\\winsign\\mar.exe"
|
||||
if ($name -eq "arm64") {
|
||||
$env:SURFER_COMPAT="aarch64"
|
||||
} else {
|
||||
$env:SURFER_COMPAT="x86_64"
|
||||
}
|
||||
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
pnpm surfer package --verbose
|
||||
|
||||
# In the release script, we do the following:
|
||||
# tar -xvf .github/workflows/object/windows-x64-signed-x86_64.tar.gz -C windows-x64-signed-x86_64
|
||||
# We need to create a tar with the same structure and no top-level directory
|
||||
# Inside, we need:
|
||||
# - update_manifest/*
|
||||
# - windows.mar
|
||||
# - zen.installer.exe
|
||||
# - zen.win-x86_64.zip
|
||||
echo "Creating tar for $name"
|
||||
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mkdir windsign-temp\windows-x64-signed-$name
|
||||
|
||||
# Move the MAR, add the `-arm64` suffix if needed
|
||||
echo "Moving MAR for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows-$name.mar
|
||||
} else {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows.mar
|
||||
}
|
||||
|
||||
# Move the installer
|
||||
echo "Moving installer for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-$name.exe
|
||||
} else {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||
}
|
||||
|
||||
# Move the zip
|
||||
echo "Moving zip for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv (Get-Item .\dist\*.en-US.win64-aarch64.zip) windsign-temp\windows-x64-signed-$name\zen.win-arm64.zip
|
||||
} else {
|
||||
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
}
|
||||
|
||||
# Extract the zip, sign everything inside, and repackage it
|
||||
Expand-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name.zip -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name
|
||||
rm windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.dll
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
Compress-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
rmdir windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
# Move the manifest
|
||||
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
|
||||
|
||||
echo "Invoking tar for $name"
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
|
||||
|
||||
echo "Finished $name"
|
||||
}
|
||||
|
||||
SignAndPackage arm64
|
||||
SignAndPackage x86_64
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
cd windsign-temp\windows-binaries
|
||||
git add .
|
||||
git commit -m "Sign and package windows artifacts"
|
||||
git push
|
||||
cd ..\..
|
||||
|
||||
# Cleaning up
|
||||
|
||||
echo "All done!"
|
||||
echo "All the artifacts (x86_64 and arm46) are signed and packaged, get a rest now!"
|
||||
Read-Host "Press Enter to continue"
|
||||
|
||||
echo "Cleaning up"
|
||||
rmdir windsign-temp\windows-x64-obj-x86_64 -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir windsign-temp\windows-x64-obj-arm64 -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Opening visual studio code"
|
||||
code .
|
||||
|
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 824 B After Width: | Height: | Size: 824 B |
|
Before Width: | Height: | Size: 957 B After Width: | Height: | Size: 957 B |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
BIN
configs/branding/release/wizWatermark.bmp
Normal file
|
After Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 1.8 MiB |
BIN
configs/branding/twilight/wizWatermark.bmp
Normal file
|
After Width: | Height: | Size: 201 KiB |
@@ -1,18 +1,19 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# Browser branding
|
||||
ac_add_options --with-app-name=${binName}
|
||||
ac_add_options --with-app-basename=Zen
|
||||
ac_add_options --enable-official-branding
|
||||
|
||||
# Localization
|
||||
ac_add_options --with-l10n-base="$PWD/browser/locales"
|
||||
# Localization (Must be an absolute path)
|
||||
ac_add_options --with-l10n-base="${topsrcdir}/browser/locales"
|
||||
|
||||
export MOZ_USER_DIR="${name}"
|
||||
export MOZ_APP_BASENAME=Zen
|
||||
export MOZ_APP_PROFILE=${binName}
|
||||
export MOZ_APP_DISPLAYNAME="${name}"
|
||||
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
||||
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
||||
export MOZ_DISTRIBUTION_ID=${appId}
|
||||
|
||||
ac_add_options --with-distribution-id=app.zen-browser
|
||||
|
||||
# Uncomment if builds are too resource hungry
|
||||
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
||||
@@ -25,9 +26,36 @@ export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
if test "$SCCACHE_GHA_ENABLED" = "true"; then
|
||||
if test -x "$(command -v sccache)"; then
|
||||
ac_add_options --with-ccache=sccache
|
||||
elif test -f "$HOME/.mozbuild/sccache/sccache"; then
|
||||
ac_add_options --with-ccache="$HOME"/.mozbuild/sccache/sccache
|
||||
fi
|
||||
|
||||
mk_add_options 'export RUSTC_WRAPPER=sccache'
|
||||
mk_add_options 'export CCACHE_CPP2=yes'
|
||||
fi
|
||||
|
||||
# add API keys if it exists on a file
|
||||
if test -f "$HOME/.zen-keys/safebrowsing.dat"; then
|
||||
ac_add_options --with-google-safebrowsing-api-keyfile="$HOME/.zen-keys/safebrowsing.dat"
|
||||
fi
|
||||
|
||||
if test -f "$HOME/.zen-keys/mozilla.dat"; then
|
||||
ac_add_options --with-mozilla-api-keyfile="$HOME/.zen-keys/mozilla.dat"
|
||||
fi
|
||||
|
||||
if test -f "$HOME/.zen-keys/google_location_service.dat"; then
|
||||
ac_add_options --with-google-location-service-api-keyfile="$HOME/.zen-keys/google_location_service.dat"
|
||||
fi
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
|
||||
ac_add_options --enable-clang-plugin
|
||||
ac_add_options --enable-bootstrap
|
||||
ac_add_options --enable-bootstrap=-sccache
|
||||
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --disable-debug
|
||||
@@ -35,59 +63,42 @@ if test "$ZEN_RELEASE"; then
|
||||
ac_add_options --disable-debug-js-modules
|
||||
ac_add_options --disable-tests
|
||||
|
||||
ac_add_options --disable-vtune
|
||||
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-wasm-simd
|
||||
|
||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||
|
||||
ac_add_options --enable-proxy-bypass-protection
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --disable-profiling
|
||||
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-geckodriver
|
||||
ac_add_options --disable-rust-tests
|
||||
|
||||
# Done by vlad, if something fails, it's his fault
|
||||
ac_add_options --disable-default-browser-agent
|
||||
|
||||
if ! test "$ZEN_DISABLE_LTO"; then
|
||||
export MOZ_LTO=cross,thin
|
||||
ac_add_options --enable-lto=cross,thin
|
||||
# only enable full LTO when ZEN_RELEASE_BRANCH is 'release'
|
||||
if test "$ZEN_RELEASE_BRANCH" = "release"; then
|
||||
# TODO: make it "full" once we have the resources to build it
|
||||
export MOZ_LTO=cross,full
|
||||
ac_add_options --enable-lto=cross,full
|
||||
else
|
||||
export MOZ_LTO=cross,thin
|
||||
ac_add_options --enable-lto=cross,thin
|
||||
fi
|
||||
fi
|
||||
|
||||
ac_add_options --enable-jemalloc
|
||||
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
MOZILLA_OFFICIAL=1
|
||||
export MOZILLA_OFFICIAL=1
|
||||
|
||||
mk_add_options MOZ_OPTIMIZE=2
|
||||
MOZ_OPTIMIZE=2
|
||||
export MOZ_OPTIMIZE=2
|
||||
|
||||
export OPT_LEVEL="3"
|
||||
ac_add_options OPT_LEVEL="3"
|
||||
|
||||
export RUSTC_OPT_LEVEL="3"
|
||||
ac_add_options RUSTC_OPT_LEVEL="3"
|
||||
|
||||
mk_add_options AUTOCLOBBER=1
|
||||
export AUTOCLOBBER=1
|
||||
|
||||
ac_add_options --enable-updater
|
||||
|
||||
export MOZ_PACKAGE_JSSHELL=1
|
||||
|
||||
ac_add_options --disable-crashreporter
|
||||
|
||||
# Experimental flag, enabled only on nightly for Firefox.
|
||||
# Should bring in some nice performance improvements,
|
||||
# but may cause stability issues.
|
||||
ac_add_options --enable-replace-malloc
|
||||
fi
|
||||
|
||||
ac_add_options --enable-unverified-updates
|
||||
|
||||
ac_add_options --enable-raw
|
||||
ac_add_options --enable-webrtc
|
||||
ac_add_options --enable-jxl
|
||||
ac_add_options --enable-av1
|
||||
|
||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||
|
||||
@@ -95,10 +106,9 @@ mk_add_options MOZ_DATA_REPORTING=
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
||||
|
||||
ac_add_options MOZ_DATA_REPORTING=
|
||||
ac_add_options MOZ_TELEMETRY_REPORTING=
|
||||
|
||||
# Allow loading unsigned extensions
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
mk_add_options MOZ_REQUIRE_SIGNING=
|
||||
|
||||
# Sorry ptr, I didnt mean to!
|
||||
# Edit: ok, ill remove it, goodbye top #1 on fastest browsers benchmark :[
|
||||
# ac_add_options --without-wasm-sandboxed-libraries
|
||||
|
||||
19
configs/dumps/search-config-v2.json
Normal file
@@ -0,0 +1,19 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
{
|
||||
"remove": {
|
||||
"identifiers": [
|
||||
// Firefox adds Perplexity by default, we don't want it as
|
||||
// its not very privacy focused.
|
||||
"perplexity",
|
||||
|
||||
// These are not search engines, Firefox adds them by default
|
||||
// but we don't want them.
|
||||
"wikipedia",
|
||||
"wikipedia-*",
|
||||
"ebay",
|
||||
"ebay-*"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# Setting the compiler based on the existence of clang bin directory
|
||||
if test -d "$HOME/.mozbuild/clang/bin"; then
|
||||
export CC="$HOME/.mozbuild/clang/bin/clang"
|
||||
@@ -7,59 +11,36 @@ else
|
||||
export CXX=clang++
|
||||
fi
|
||||
|
||||
if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
ac_add_options --target=x86_64-pc-linux
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
# Enable Profile Guided Optimization
|
||||
export MOZ_PGO=1
|
||||
ac_add_options MOZ_PGO=1
|
||||
|
||||
# Optimization flags for SURFER_COMPAT
|
||||
ac_add_options --enable-optimize="-O3 -march=x86-64"
|
||||
|
||||
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64"
|
||||
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
|
||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1 -Clink-args=--icf=safe"
|
||||
elif test "$SURFER_COMPAT" = "aarch64"; then
|
||||
ac_add_options --target=aarch64-linux-gnu
|
||||
|
||||
ac_add_options --enable-optimize="-O3"
|
||||
|
||||
export CFLAGS="$CFLAGS -O3"
|
||||
export CPPFLAGS="$CPPFLAGS -O3"
|
||||
export CXXFLAGS="$CXXFLAGS -O3"
|
||||
export LDFLAGS="$LDFLAGS -Wl,-O3"
|
||||
export RUSTFLAGS="$RUSTFLAGS -C codegen-units=1 -Clink-args=--icf=safe"
|
||||
fi
|
||||
|
||||
export VERBOSE=1
|
||||
# Uncomment if you want to enable Polly optimizations
|
||||
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
|
||||
# Common options
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --enable-pulseaudio
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
ac_add_options --target=x86_64-pc-linux
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
# Enable Profile Guided Optimization
|
||||
if ! test "$ZEN_GA_DISABLE_PGO"; then
|
||||
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||
mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||
ac_add_options --enable-profile-generate=cross
|
||||
else
|
||||
ac_add_options --enable-profile-use=cross
|
||||
ac_add_options --with-pgo-profile-path="$(echo ~)/artifact/merged.profdata"
|
||||
ac_add_options --with-pgo-jarlog="$(echo ~)/artifact/en-US.log"
|
||||
fi
|
||||
fi
|
||||
elif test "$SURFER_COMPAT" = "aarch64"; then
|
||||
ac_add_options --target=aarch64-linux-gnu
|
||||
|
||||
# override LTO settings
|
||||
export MOZ_LTO=cross,thin
|
||||
ac_add_options --enable-lto=cross,thin
|
||||
fi
|
||||
|
||||
# Disable DMD and ELF hacks, enable linker lld
|
||||
ac_add_options --disable-dmd
|
||||
ac_add_options --enable-linker=lld
|
||||
ac_add_options --disable-elf-hack
|
||||
ac_add_options --disable-necko-wifi
|
||||
|
||||
# Stripping options for release builds
|
||||
ac_add_options --enable-install-strip
|
||||
ac_add_options --enable-strip
|
||||
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
||||
|
||||
# Using sccache if available
|
||||
if [ -f /home/runner/.mozbuild/sccache/sccache ]; then
|
||||
mk_add_options 'export RUSTC_WRAPPER=/home/runner/.mozbuild/sccache/sccache'
|
||||
mk_add_options 'export CCACHE_CPP2=yes'
|
||||
ac_add_options --with-ccache=/home/runner/.mozbuild/sccache/sccache
|
||||
mk_add_options 'export SCCACHE_GHA_ENABLED=on'
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,42 +1,58 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
unset MOZ_STDCXX_COMPAT
|
||||
|
||||
ac_add_options --disable-dmd
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
export MOZ_MACBUNDLE_ID=${appId}
|
||||
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
||||
if test "$ZEN_RELEASE"; then
|
||||
ac_add_options --with-macos-sdk=/Library/Developer/CommandLineTools/SDKs/MacOSX26.4.sdk
|
||||
fi
|
||||
|
||||
export MOZ_PGO=1
|
||||
ac_add_options MOZ_PGO=1
|
||||
if test "$ZEN_RELEASE"; then
|
||||
if ! test "$ZEN_GA_DISABLE_PGO"; then
|
||||
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||
mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||
ac_add_options --enable-profile-generate=cross
|
||||
else
|
||||
ac_add_options --enable-profile-use=cross
|
||||
ac_add_options --with-pgo-profile-path="$(echo ~)/artifact/merged.profdata"
|
||||
ac_add_options --with-pgo-jarlog="$(echo ~)/artifact/en-US.log"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
ac_add_options --target=x86_64-apple-darwin
|
||||
ac_add_options --target=x86_64-apple-darwin
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
ac_add_options --enable-wasm-avx
|
||||
ac_add_options --enable-optimize="-march=nehalem -mtune=haswell -O3 -w"
|
||||
|
||||
export CFLAGS="-O3 -march=nehalem"
|
||||
export CPPFLAGS="-O3 -march=nehalem"
|
||||
export CXXFLAGS="-O3 -march=nehalem"
|
||||
export LDFLAGS="-Wl,-O3 -march=nehalem"
|
||||
export RUSTFLAGS="-Ctarget-cpu=nehalem -C codegen-units=1"
|
||||
# override LTO settings
|
||||
export MOZ_LTO=cross,thin
|
||||
ac_add_options --enable-lto=cross,thin
|
||||
fi
|
||||
else
|
||||
ac_add_options --target=aarch64-apple-darwin
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
||||
ac_add_options --target=aarch64-apple-darwin
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
# As of Clang 13, the default is -mcpu=apple-m1 when using a aarch64-apple-macos target,
|
||||
# but we're using apple64-apple-darwin, which defaults to -mcpu=apple-a7, which disables
|
||||
# a bunch of # performance-enabling CPU features.
|
||||
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export LDFLAGS="-Wl,-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
||||
# TODO: We'll want to switch to aarch64-apple-macos eventually.
|
||||
export CFLAGS="$CFLAGS -mcpu=apple-m1"
|
||||
export CXXFLAGS="$CXXFLAGS -mcpu=apple-m1"
|
||||
fi
|
||||
fi
|
||||
|
||||
export VERBOSE=1
|
||||
|
||||
# Enable polly for macos, since they have a more stable set of GPU drivers,
|
||||
# unlike Linux, which has a lot of different drivers.
|
||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
# Keep using ld64 on PGO/LTO builds because of performance regressions when using lld.
|
||||
# Mozilla sets "MOZ_LD64_KNOWN_GOOD" to true when they do automated builds with PGO/LTO on macOS.
|
||||
# See https://searchfox.org/firefox-main/rev/e61d59b5c9a651fd7bf28043f87c0dc669833496/build/moz.configure/lto-pgo.configure#261
|
||||
# export MOZ_LD64_KNOWN_GOOD=1
|
||||
# ac_add_options --enable-linker=ld64
|
||||
#
|
||||
# if test "$ZEN_RELEASE"; then
|
||||
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
||||
# fi
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
if test "$ZEN_CROSS_COMPILING"; then
|
||||
|
||||
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
||||
export WINSYSROOT="$(echo ~)/win-cross/vs2026"
|
||||
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine"
|
||||
export WINEDEBUG=-all
|
||||
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
@@ -13,59 +16,36 @@ if test "$ZEN_CROSS_COMPILING"; then
|
||||
CROSS_COMPILE=1
|
||||
|
||||
if test "$SURFER_COMPAT" = "aarch64"; then
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/arm64/Microsoft.VC143.CRT"
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2026/VC/Redist/MSVC/14.50.35710/arm64/Microsoft.VC145.CRT"
|
||||
else
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2026/VC/Redist/MSVC/14.50.35710/x64/Microsoft.VC145.CRT"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||
#? https://phabricator.services.mozilla.com/D170170
|
||||
ac_add_options --disable-maintenance-service
|
||||
ac_add_options --disable-bits-download
|
||||
|
||||
ac_add_options --disable-clang-plugin
|
||||
|
||||
if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
# FIXME: For some reason, the clang plugin is not working on generic x86_64 builds
|
||||
ac_add_options --disable-clang-plugin
|
||||
|
||||
ac_add_options --target=x86_64-pc-windows-msvc
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize"
|
||||
|
||||
export CFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export CPPFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export CXXFLAGS="-flto=thin -mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export LDFLAGS="-Wl,-O2"
|
||||
export RUSTFLAGS="-Clink-args=--icf=safe -C codegen-units=1 -Ctarget-cpu=x86-64"
|
||||
ac_add_options --enable-eme=widevine,wmfcdm
|
||||
elif test "$SURFER_COMPAT" = "aarch64"; then
|
||||
ac_add_options --target=aarch64-pc-windows-msvc
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
ac_add_options --enable-optimize="-O2 -mtune=cortex-a55 -march=armv8.2-a+simd"
|
||||
|
||||
export CFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
|
||||
export CPPFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
|
||||
export CXXFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
|
||||
export LDFLAGS="-Wl,-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
|
||||
export RUSTFLAGS="-C target-feature=+v8.2a -C codegen-units=1 -Ctarget-cpu=cortex-a55"
|
||||
# override LTO settings
|
||||
export MOZ_LTO=cross,thin
|
||||
ac_add_options --enable-lto=cross,thin
|
||||
fi
|
||||
|
||||
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
export VERBOSE=1
|
||||
|
||||
if test "$ZEN_CROSS_COMPILING"; then
|
||||
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||
export CXXFLAGS="$CXXFLAGS -fprofile-generate -mllvm -enable-name-compression=false -mllvm -pgo-temporal-instrumentation -fprofile-update=atomic"
|
||||
mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||
ac_add_options --enable-profile-generate=cross
|
||||
elif test "$SURFER_COMPAT" = "x86_64"; then
|
||||
# Dont use PGO on aarch64 builds
|
||||
ac_add_options --enable-profile-use=cross
|
||||
ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
||||
ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
||||
# Dont use PGO on aarch64 builds and the ZEN_GA_DISABLE_PGO flag is not set
|
||||
if test "$ZEN_GA_DISABLE_PGO"; then
|
||||
export ZEN_DUMMY=1
|
||||
else
|
||||
ac_add_options --enable-profile-use=cross
|
||||
ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
||||
ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
24
crowdin.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
base_path: locales
|
||||
files:
|
||||
- source: en-US/browser/browser/zen-general.ftl
|
||||
translation: browser/browser/zen-general.ftl
|
||||
- source: en-US/browser/browser/zen-split-view.ftl
|
||||
translation: browser/browser/zen-split-view.ftl
|
||||
- source: en-US/browser/browser/zen-menubar.ftl
|
||||
translation: browser/browser/zen-menubar.ftl
|
||||
- source: en-US/browser/browser/zen-vertical-tabs.ftl
|
||||
translation: browser/browser/zen-vertical-tabs.ftl
|
||||
- source: en-US/browser/browser/zen-welcome.ftl
|
||||
translation: browser/browser/zen-welcome.ftl
|
||||
- source: en-US/browser/browser/zen-workspaces.ftl
|
||||
translation: browser/browser/zen-workspaces.ftl
|
||||
- source: en-US/browser/browser/preferences/zen-preferences.ftl
|
||||
translation: browser/browser/preferences/zen-preferences.ftl
|
||||
- source: en-US/browser/browser/zen-folders.ftl
|
||||
translation: browser/browser/zen-folders.ftl
|
||||
- source: en-US/browser/browser/zen-boosts.ftl
|
||||
translation: browser/browser/zen-boosts.ftl
|
||||
BIN
docs/assets/blacksmith-yellow.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
19
docs/assets/zen-browser.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 156 64" height="64" width="156">
|
||||
<defs>
|
||||
<style>
|
||||
.label {
|
||||
font-size: 1.5rem;
|
||||
font-family: sans-serif;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
fill: #1f1f1f;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.label {
|
||||
fill: #d1cfc0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<text class="label" y="38" x="5">Zen Browser</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 454 B |
@@ -1,14 +0,0 @@
|
||||
## Changed things that should be tested each release
|
||||
|
||||
- Workspaces
|
||||
- Sidebar
|
||||
- Split views
|
||||
- Vertical tabs (expanded and not expanded)
|
||||
- Tab groups
|
||||
- Welcome Page
|
||||
- Overall performance
|
||||
- Overall stability
|
||||
- Pinning tabs (Grid layout)
|
||||
- Overall UX
|
||||
- Themes Page
|
||||
- Settings Page
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
# Branch Structure
|
||||
|
||||
@@ -7,31 +12,21 @@ The repository is structured as follows:
|
||||
dev (main branch)
|
||||
| |
|
||||
| \--->-- stable (release branch)
|
||||
| ^
|
||||
| ^
|
||||
^ |
|
||||
| \-<- Hotfix (hotfixes directly from stable)
|
||||
|
|
||||
\-<- (features branches)
|
||||
```
|
||||
|
||||
The `central` branch is the main branch of the repository, and it is the default branch for the repository. The `twilight` branch is the feature branch, and it is branched off from the `central` branch. The `stable` branch is the release branch, and it is branched off from the `central` branch.
|
||||
The `dev` branch is the main branch of the repository, and it is the default branch for the repository. The `twilight` branch is the feature branch, and it is branched off from the `dev` branch. The `stable` branch is the release branch, and it is branched off from the `dev` branch.
|
||||
|
||||
The `stable` branch may have hotfixes directly from the `stable` branch, and the `twilight` branch may have feature branches branched off from the `twilight` branch. This is done so that we can apply hotfixes like security patches directly to the `stable` branch without having to merge the changes from the `twilight` branch.
|
||||
|
||||
# Local Development Setup
|
||||
|
||||
Before you set up your local development environment, **read our [Building Guidelines](https://docs.zen-browser.app/guides/building)**. Skipping them can lead to avoidable build errors.
|
||||
|
||||
# Code Of Conduct
|
||||
|
||||
Please read our [Code of Conduct](../CODE_OF_CONDUCT.md) before contributing.
|
||||
|
||||
# Releasing/Merging branches
|
||||
|
||||
To merge zen twilight branch from the central branch, you can use the following command:
|
||||
|
||||
```bash
|
||||
sh ./scripts/merge-to-branch.sh twilight
|
||||
```
|
||||
|
||||
To merge zen stable branch from the twilight branch, you can use the following command:
|
||||
|
||||
```bash
|
||||
sh ./scripts/merge-to-branch.sh stable
|
||||
```
|
||||