Compare commits
2499 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b495e37130 | |||
| 8875f85336 | |||
| e43e5e8beb | |||
| b5d6d46ed8 | |||
| 6c6b592502 | |||
| 672ca18dde | |||
| cb24e7d085 | |||
| 6b985764f8 | |||
| e7ef873935 | |||
| 628b2c714f | |||
| 01fc8ea1c1 | |||
| 6dd4af8ad5 | |||
| c2bc02928b | |||
| b69ff3f862 | |||
| 5739a37c7f | |||
| 8639936e45 | |||
| 89d9270ea6 | |||
| e52aa98a9f | |||
| af24830233 | |||
| bece15eaac | |||
| e762ec4631 | |||
| 7341c05d36 | |||
| b1bf68b830 | |||
| 1a071c5c6b | |||
| 6de7e7f4a8 | |||
| 632a14e65a | |||
| 321576658f | |||
| fac241b87e | |||
| 39bd52c1e2 | |||
| e55f394db5 | |||
| 00d7eeb742 | |||
| bcfa106959 | |||
| fe3c545455 | |||
| 885d431d65 | |||
| a103047e03 | |||
| b04866a2fc | |||
| 28434f4bee | |||
| 53324d5494 | |||
| 66645ce523 | |||
| 06caf65a6a | |||
| 5026b07626 | |||
| 8cfa722966 | |||
| f31337ecb5 | |||
| f468666973 | |||
| 590421daaa | |||
| e1248ba0b2 | |||
| 89b15142ef | |||
| 57b22d2ad2 | |||
| d51dd1cdb5 | |||
| 6418af0ada | |||
| 08d6e8c7eb | |||
| cf7ae1adf2 | |||
| 691f796df6 | |||
| 2775074113 | |||
| bf9014342c | |||
| fb9a456b59 | |||
| e36e52fd9e | |||
| f076793fa6 | |||
| 0116f098f8 | |||
| fc728e7a13 | |||
| 5114c9a58e | |||
| 3bd896b8fa | |||
| dddefc3904 | |||
| fc0cbaadd5 | |||
| 6b862688cb | |||
| 767eedaa76 | |||
| 1578c3c09d | |||
| 9496ebd19e | |||
| b4e8d580d0 | |||
| d48a40fa5f | |||
| 1ea2d936b5 | |||
| 6ce7641971 | |||
| 98f5247126 | |||
| bf36718c93 | |||
| 11c193b699 | |||
| 5c1604fc53 | |||
| 4c545181ad | |||
| 5ee8100274 | |||
| 86351f48d6 | |||
| 6996e410d5 | |||
| 5d6994f170 | |||
| beb4fafdf3 | |||
| 3e22cb6d0a | |||
| 849def7e75 | |||
| 1a4195f7e2 | |||
| 0b4a718afe | |||
| b53ca51d37 | |||
| 60c9707a64 | |||
| 08a979e638 | |||
| 629158fedb | |||
| f15e99ce1d | |||
| 18f9c040e0 | |||
| 7f6baa0fdc | |||
| bb9a112677 | |||
| 7952d2688e | |||
| 0f41fd1356 | |||
| 8c3a8a7d20 | |||
| dbbe4b9398 | |||
| e0b0f00621 | |||
| 516d6cf11e | |||
| 673db168ac | |||
| 496e96d00a | |||
| 88fdc16070 | |||
| df98cdb127 | |||
| 68b245c3d6 | |||
| 0248c8d8c0 | |||
| 3ac517b716 | |||
| 8414c3e382 | |||
| 9f8dc1d7d3 | |||
| 56927d2780 | |||
| a027284826 | |||
| e0159c32cc | |||
| 9cc30741d9 | |||
| 863752e974 | |||
| cb76031165 | |||
| c45cf07b06 | |||
| d35d425918 | |||
| d4a3a53484 | |||
| 5d90b12a08 | |||
| e3ce190f4e | |||
| ffd50c5582 | |||
| c758f05a7a | |||
| 9263c08068 | |||
| 703f77ac93 | |||
| 32bdb5a519 | |||
| d8484a7b2b | |||
| eca8dfb0ec | |||
| 29b714dd5f | |||
| 3f3b2cb2ba | |||
| c31d9ded27 | |||
| 03df5b8546 | |||
| 03e1e5cca9 | |||
| 10d5cc0d24 | |||
| 506c8ff73c | |||
| 924e9a21b5 | |||
| 2f528a9853 | |||
| 7f58650794 | |||
| b9a109c146 | |||
| 9fb4f4b556 | |||
| 52d78ef724 | |||
| 7ce7b88a40 | |||
| 4a43dfd091 | |||
| 52cc76636c | |||
| f0a3ddb184 | |||
| b172c9a3b2 | |||
| 6cfda1dd43 | |||
| cc7c14a529 | |||
| 60a73c3915 | |||
| 77e300b551 | |||
| 2ae31f7285 | |||
| 412c06160a | |||
| c27c47dd52 | |||
| 6ea30feb18 | |||
| a7be550550 | |||
| a279f0a296 | |||
| 1c4f663941 | |||
| 94f9321db9 | |||
| ae70b10cea | |||
| 4f685552e7 | |||
| e085a76165 | |||
| 30bd3ed013 | |||
| 25edab4c94 | |||
| 3aa241d825 | |||
| 9b867af7fd | |||
| 0df3be8630 | |||
| 542326af8f | |||
| ea5052e69e | |||
| 2dd96b2269 | |||
| 627152e2a9 | |||
| f01c93ed58 | |||
| 6fe61ed58a | |||
| 43347f671c | |||
| 0b67fa65f2 | |||
| 65b3a36984 | |||
| b08cf75f0b | |||
| 0cc21e5ca2 | |||
| 48f9a92cc3 | |||
| 939882ef68 | |||
| 52084cf0ae | |||
| f06f654191 | |||
| 356d20542e | |||
| 31ea4cfe80 | |||
| 1e89ee4e50 | |||
| 6fccbf036c | |||
| 41d206e354 | |||
| 23880ac6c1 | |||
| 4439cbf553 | |||
| f506f1b830 | |||
| feb1ea6502 | |||
| fea80b4919 | |||
| 373bb8d74c | |||
| 3ddefd78ba | |||
| d62e4da163 | |||
| 8c60863e11 | |||
| d5be8c8989 | |||
| 255b30e88a | |||
| d2dd124be0 | |||
| 1053b30a6d | |||
| e7c1073e13 | |||
| 0480c6a4af | |||
| c70a49c0f3 | |||
| 7840fd481a | |||
| 2a8b491c95 | |||
| 39c4344047 | |||
| cdb58e4ebd | |||
| 972325fb6d | |||
| 933b6bedc9 | |||
| 2db8a5d00a | |||
| be043ea349 | |||
| e531abf31b | |||
| a6af680e59 | |||
| 8292334c9b | |||
| f20c5a1d3c | |||
| d1e2ec0309 | |||
| fe91cae8bc | |||
| 7bb30bc4a8 | |||
| 2d41d5903b | |||
| df672ffaf5 | |||
| cb100623fb | |||
| 30ef7270b3 | |||
| 91694a69eb | |||
| cb07bcf0db | |||
| a31e384409 | |||
| 4829c6d028 | |||
| ccf6a3fb97 | |||
| 2005814fca | |||
| 7319665bda | |||
| d74074a21b | |||
| 113115f58c | |||
| e84799283d | |||
| 71272ed2ec | |||
| 6787c338ac | |||
| 774a44ac7e | |||
| 29cdd358cc | |||
| b9b1bd5e58 | |||
| 59814aaeb0 | |||
| fd52b3c23b | |||
| 6e75a41ee6 | |||
| 84266aef2c | |||
| 40a7f8ea50 | |||
| 7c4fcdd9cb | |||
| 92e87852c1 | |||
| 73c4da2b21 | |||
| 9f4da7e890 | |||
| 8b23457373 | |||
| ab2fd7c749 | |||
| 040a6ddf3a | |||
| 55afe0912f | |||
| ee48127094 | |||
| 445576d568 | |||
| 8f1d40892e | |||
| 766db9660c | |||
| 68665ec1f2 | |||
| b400964aa1 | |||
| 317530cfa3 | |||
| e8fba23b59 | |||
| ef749e695e | |||
| 712ef33d6b | |||
| 0441b7dbc3 | |||
| 3ee0dcbacd | |||
| 57411b962f | |||
| 4eee00d95e | |||
| 957a08962f | |||
| 21c82f5fe1 | |||
| 27964993f6 | |||
| 14e296e1f9 | |||
| 23c0ff934f | |||
| c64ef1e20e | |||
| ed97619c6c | |||
| 924ec592b1 | |||
| 669c581701 | |||
| e97ae3d537 | |||
| 08800b68f4 | |||
| a59db6529c | |||
| 02a54ceea6 | |||
| f0a7c547e8 | |||
| ecfb343690 | |||
| c65472c9b3 | |||
| c42864d35e | |||
| b02ce599e6 | |||
| 1ae5495b91 | |||
| c4fbb8c199 | |||
| 313872dacc | |||
| ef15136a3b | |||
| 4342c8d761 | |||
| 644744ac9e | |||
| cbc03d1e45 | |||
| 7f56192b97 | |||
| 6590f3b741 | |||
| c0bbb669e0 | |||
| 63014adfef | |||
| 1ad055c8c8 | |||
| 9b558564e9 | |||
| 476e66d027 | |||
| fc11d81673 | |||
| 629754a353 | |||
| 147dbee051 | |||
| 7204c3c25d | |||
| b412241d25 | |||
| f9883afd61 | |||
| 181f811f18 | |||
| 2f0bd3c085 | |||
| a9d8332766 | |||
| f5036171cf | |||
| cdc8b8e473 | |||
| ab404c5452 | |||
| 0585f9d667 | |||
| 19225c7dd3 | |||
| 8c1844b1c0 | |||
| af63d86e24 | |||
| 1f2fd3ad96 | |||
| f41fdcdb98 | |||
| f78a9b4220 | |||
| 06b3ce58ed | |||
| 7c70d8b1c2 | |||
| 2b1e032a9b | |||
| 4f5d6a2fd5 | |||
| c3b90aa492 | |||
| bb2daac007 | |||
| bc2449c3f9 | |||
| 0bf50de77a | |||
| 473bc32b71 | |||
| e5e143dcf8 | |||
| 2de08746ac | |||
| ae6833b4d5 | |||
| f1fe5f6a71 | |||
| 5054d0615e | |||
| 4f5007ea64 | |||
| 233f6ed13b | |||
| f15b883471 | |||
| 312d5f0121 | |||
| 75a1657c49 | |||
| 667d92100e | |||
| a88ddbac2c | |||
| 537268ed63 | |||
| 8ff4bc8cff | |||
| c310b14421 | |||
| b025209c31 | |||
| 656b262648 | |||
| a063ce3c45 | |||
| c554372ba4 | |||
| c1769b9ba2 | |||
| 04c9d92b4a | |||
| 0babef5a09 | |||
| cd52407723 | |||
| 68c0aa7fb9 | |||
| f1622c40a4 | |||
| 688e7316eb | |||
| ef5ec47797 | |||
| 147ad4a773 | |||
| 9752145b49 | |||
| 662b862d2f | |||
| 6d469509a4 | |||
| 0dfbb8a5ae | |||
| 1e12ecda70 | |||
| 035087987c | |||
| 18422c4193 | |||
| f1f9fe27a9 | |||
| 10667e14e2 | |||
| b04c7efdf4 | |||
| 0119731360 | |||
| 8f337684d5 | |||
| dae93552f0 | |||
| 351bbb240f | |||
| 5716de2e6e | |||
| 14295d59d1 | |||
| df0849473c | |||
| 9736706894 | |||
| 12343a5c31 | |||
| a7f046a617 | |||
| 67bf796f1e | |||
| 22d632abc3 | |||
| 25094c1ee6 | |||
| 5b71ad0456 | |||
| 9146ba996f | |||
| 42900787e1 | |||
| ba10c10a94 | |||
| 3f37e9ca6f | |||
| c5ea86b474 | |||
| 76720092a5 | |||
| 7a75c80b27 | |||
| b2dcbebb5b | |||
| aadc81279a | |||
| febd6dd18f | |||
| 1236b35aaf | |||
| 41a9a25823 | |||
| 55ae81524d | |||
| a9cf5dd6f2 | |||
| 1e45692ba4 | |||
| 997cff63a8 | |||
| 5db513cc55 | |||
| 4a7280be5e | |||
| 59826d492f | |||
| 85c2a5fd75 | |||
| 33dd3342e8 | |||
| 94fc50f793 | |||
| 1e79f4a9a5 | |||
| f56825c526 | |||
| d7c0f9dee8 | |||
| a71c59beae | |||
| 5f729433f6 | |||
| a1d37475c9 | |||
| 9275dfce70 | |||
| ff9afdae3e | |||
| 12a2dcf484 | |||
| c3f5f69c2a | |||
| 1320e7ac2f | |||
| ae6b0dd753 | |||
| e43830c08e | |||
| 4a5cdbcfb2 | |||
| 9b599644d9 | |||
| cab93600dd | |||
| 0e5e4ca7ea | |||
| a293134b5e | |||
| 3831860943 | |||
| 1f8214e658 | |||
| 58d2e2ece2 | |||
| 424f416fdd | |||
| 95c12a0b8e | |||
| 45d42c8c31 | |||
| 5b94095c78 | |||
| 605ad0a01c | |||
| 10b8dc3595 | |||
| 432f6aeae6 | |||
| 6702ff3c55 | |||
| 8f205f13d8 | |||
| 22a133b182 | |||
| bc61175e79 | |||
| 874e344f91 | |||
| f832e31c7b | |||
| 4cdd793e0c | |||
| 0d11cb603f | |||
| 1e197ae66c | |||
| 2a88103b5f | |||
| 49caea416b | |||
| 5bfe270f24 | |||
| e8f10f2b45 | |||
| 834986410c | |||
| deffbcf231 | |||
| 2d720a8349 | |||
| 182d45b7ea | |||
| 3cd68842bf | |||
| 861ada351e | |||
| e32d863daa | |||
| 81fc652dc1 | |||
| b72deb1a0e | |||
| cab38f00c2 | |||
| 137594ccee | |||
| 449f7fb2a3 | |||
| 2a5bea7e4e | |||
| ea309caa22 | |||
| 89bc58ab29 | |||
| 2d754c93a7 | |||
| 1017d4cda3 | |||
| 68dab26be5 | |||
| 8eb0ec9f7a | |||
| 1da47f62fc | |||
| 70939c4b9c | |||
| 491ad744ea | |||
| a1565c7fff | |||
| 496dbfb2f0 | |||
| 0e44dac208 | |||
| 2b808933d2 | |||
| ba0f682e3a | |||
| ef49652415 | |||
| 8e30ee1192 | |||
| 74a676026f | |||
| af93c2ee49 | |||
| 6b05d253a7 | |||
| 797b2a5085 | |||
| b898cf4fde | |||
| 1c17432f70 | |||
| a6c96df51f | |||
| d7abe73753 | |||
| 1b84063dd3 | |||
| ed5b7fe3e6 | |||
| 699ac83729 | |||
| 1e1ce492e6 | |||
| 7afb9f1fc8 | |||
| 7bfe418c3e | |||
| 94c1388b6a | |||
| 90f53cba31 | |||
| a675fca607 | |||
| bf58171f64 | |||
| e619bd4acc | |||
| 5f5b7ffb66 | |||
| 2216e75cab | |||
| a61d73f48a | |||
| ecdca38d9e | |||
| a34bc7cc89 | |||
| d12a0be66c | |||
| 890421e00e | |||
| dc57886b68 | |||
| 832fb023e8 | |||
| af8c171b1a | |||
| 58264f8b57 | |||
| eb7d614566 | |||
| c11cab858d | |||
| 18438b17a5 | |||
| f2464df96f | |||
| 5ee0a2fea2 | |||
| 1296505d01 | |||
| 332b70a27d | |||
| c4d5d52b96 | |||
| 7a5554202e | |||
| df2c426096 | |||
| b33cdc581b | |||
| 3cd213b9bf | |||
| aebb37b516 | |||
| d016c80ba5 | |||
| 882f1c4d1a | |||
| 3ffdf8d281 | |||
| c183243711 | |||
| eeb2c953ad | |||
| bfb2f3015a | |||
| 9c54f53613 | |||
| 257c7af2f3 | |||
| 4ed256814a | |||
| 1f8ea32388 | |||
| 69403e7967 | |||
| 7cc4c76c54 | |||
| cf74a81d07 | |||
| 417d151f2c | |||
| ff42b7f61a | |||
| 658c2a0a78 | |||
| 90d6899577 | |||
| 5db0e53c0c | |||
| 7dea4f36fb | |||
| 6fea6393c6 | |||
| 53f063fe16 | |||
| 6ee72b9c32 | |||
| 5faefa7997 | |||
| b0726cd31a | |||
| 64f5fa8dc3 | |||
| ad300f5eae | |||
| 7331160e22 | |||
| 6af82e5ae5 | |||
| 9b2347171f | |||
| c60629c17d | |||
| 353e18e8e3 | |||
| f069df285d | |||
| 6c5f8dffa6 | |||
| 4a77e23b54 | |||
| 942e53b59b | |||
| 21a6a256b9 | |||
| 99567d3a53 | |||
| eddad6b690 | |||
| d02a8cbca1 | |||
| 3b079aa29a | |||
| df5307dd32 | |||
| 65891508e0 | |||
| b5f4e40c3e | |||
| a427730acd | |||
| d7639a1ab6 | |||
| 01a140ea29 | |||
| 6e0ff9b6a0 | |||
| fb14eeeb1e | |||
| 0c701d9d95 | |||
| f1ceb1c95a | |||
| 6bd41a07a1 | |||
| 2b78bb6e79 | |||
| 7e5d5ddafe | |||
| 150c25c81a | |||
| 95319bdaca | |||
| d982835b50 | |||
| 6f040aa0b5 | |||
| 080ecece66 | |||
| 31ece2c26e | |||
| 9a20f4b935 | |||
| ea61fd22f5 | |||
| c77f8f9f41 | |||
| ad758c51c2 | |||
| 8ac7fd14ec | |||
| ed7c5e97cb | |||
| fb928a15a6 | |||
| f60155e7b8 | |||
| 7c28b1a6a6 | |||
| a300f4662e | |||
| 354ef0fc58 | |||
| e624b238b2 | |||
| 369fe832ea | |||
| 4a7552fdab | |||
| aa57a17af6 | |||
| 926c6a55ce | |||
| 3d005e8e87 | |||
| 3ff376774f | |||
| e16c05385f | |||
| 6e8825cdd5 | |||
| 1c19895ce7 | |||
| e62a4b065a | |||
| ba363285a7 | |||
| 679c932697 | |||
| 581ec70bf3 | |||
| 4d2700ab1c | |||
| b365136639 | |||
| f23153e1ac | |||
| 26cb931dcf | |||
| 42d2190d17 | |||
| 63ad80200e | |||
| 68e9c63693 | |||
| 542ff88d3b | |||
| bf7f73e472 | |||
| c9f195be90 | |||
| 715da30a72 | |||
| 4e9f2aaadd | |||
| 71cbb037ce | |||
| 35ea9070e4 | |||
| 67c5ff4939 | |||
| 4e8a6f4098 | |||
| 66a4b1a9f1 | |||
| 9e43972313 | |||
| 4a8bb75851 | |||
| 80dce3b65a | |||
| 056534fb41 | |||
| e444b82683 | |||
| b59115e27c | |||
| d9e4f686fb | |||
| 2cd224af98 | |||
| 4af1ca65ed | |||
| a50141ac8a | |||
| f11b36cdb1 | |||
| f30af1c4ed | |||
| 45def31826 | |||
| a22afce820 | |||
| af874bebfd | |||
| 7cdb651538 | |||
| 5e1752bcbc | |||
| eb295cb19c | |||
| ace42226b6 | |||
| 5e1b4b4e6a | |||
| f009fa9e47 | |||
| f08c00557d | |||
| a0e0d95775 | |||
| a4acab983d | |||
| 5237a7977d | |||
| eb285bc1ac | |||
| 7d97cd25ab | |||
| 55f4a99824 | |||
| 34373836b9 | |||
| 1509891ec0 | |||
| 877ef7d78f | |||
| 8f26a24f78 | |||
| 6abd4bae58 | |||
| f8844750f5 | |||
| de984d44ac | |||
| babcefeb23 | |||
| 71a55290ab | |||
| 8ef0b88633 | |||
| f9c3415aa7 | |||
| deb7d5914f | |||
| 469e4394bd | |||
| 1bcf9dda0a | |||
| 02fafde09d | |||
| de5e1b3452 | |||
| 4381db691b | |||
| bd879262c2 | |||
| da88b4c475 | |||
| 276a18cddd | |||
| 6eb54e55a5 | |||
| e7fa330215 | |||
| 27ed160a40 | |||
| 180b614c86 | |||
| e2e6b64632 | |||
| be46aacbe5 | |||
| 3bd46f3415 | |||
| 7e6e2960bd | |||
| 9df4377450 | |||
| 294ab035f0 | |||
| f96554e271 | |||
| 2c1fdbe55b | |||
| b5bce29514 | |||
| 97557b85d9 | |||
| 8a5cc70d9b | |||
| d5075891b2 | |||
| 4df778f4e9 | |||
| 3cda66f1f3 | |||
| e0991d9376 | |||
| 8c94742070 | |||
| 419b2b02bc | |||
| b4998527dd | |||
| 8ac8598b20 | |||
| f7ddf8b024 | |||
| 18f1563829 | |||
| 20ba35c0a7 | |||
| de4764c1c7 | |||
| 31bb8a3ac5 | |||
| e0156abe7c | |||
| 7d02e92843 | |||
| 80aef75ea5 | |||
| c940062787 | |||
| 4b3b9ad140 | |||
| 1bb2efc346 | |||
| 0b699b45b1 | |||
| 3c0487db81 | |||
| f62869e4df | |||
| fce459f612 | |||
| 6a003114db | |||
| 39ed5cab0d | |||
| 4b67c8f4bb | |||
| 65604add65 | |||
| 3e69f65d1c | |||
| 0b26dbbc9e | |||
| 152d943f3d | |||
| 7fffd1d318 | |||
| 5d875341f4 | |||
| 61dbd4c4c2 | |||
| 5f42011c7b | |||
| 7e56174ba9 | |||
| 0a83b3f58c | |||
| 71fec23311 | |||
| 2ba3035a13 | |||
| 7a653a8e1b | |||
| a93b32fb53 | |||
| d82cc350c0 | |||
| 5997a7d48a | |||
| 7641fb6712 | |||
| dfaf9b9d43 | |||
| 6147b0eec0 | |||
| 2eefef3649 | |||
| 1905a67e6c | |||
| 38ab18f6fb | |||
| ddcc20c8a7 | |||
| f3c6763058 | |||
| 91a11d2e74 | |||
| fb880481a4 | |||
| 9e6703f02f | |||
| da5435d1cb | |||
| db0726364b | |||
| 944b2de852 | |||
| 53927502af | |||
| 828d8ea051 | |||
| f2e345b39f | |||
| 6f625a899c | |||
| 28bc8c3bf3 | |||
| ef30949943 | |||
| 4f888bc418 | |||
| 34caf6967e | |||
| a728c783d9 | |||
| 934d232653 | |||
| 4fbc7771c9 | |||
| 571ab422bf | |||
| 9592f4de6e | |||
| c126d99fd0 | |||
| 11c8a272ec | |||
| f7170b8c50 | |||
| 9ce28f4cb7 | |||
| 522a457d98 | |||
| 9e9ffaa27b | |||
| 9ab4a8ab6e | |||
| 5c784081c2 | |||
| 9c84c0afe9 | |||
| accc5e8b10 | |||
| 1e0c71a411 | |||
| 663687884b | |||
| ade2bdcafd | |||
| 9e01e64f63 | |||
| 7cc0fd879d | |||
| 42bd835800 | |||
| ef7b5cb8e7 | |||
| 2651d79b63 | |||
| ddc12c3f71 | |||
| 9c3c2e9fa7 | |||
| 564f9ac38d | |||
| 1b49bd0843 | |||
| 831d79d912 | |||
| d61f809cca | |||
| 130176fd7e | |||
| 1ea9be9877 | |||
| e3b56aa05b | |||
| 4f4195c88a | |||
| 1d9a8af174 | |||
| 8b1e7e1fa9 | |||
| eeb0b62bfa | |||
| 0a114bbe4a | |||
| 474458e4c3 | |||
| c6b73631d8 | |||
| bce318c48e | |||
| 9e4ac1c835 | |||
| 53933db077 | |||
| 4156d8e908 | |||
| 6491d83085 | |||
| 6259d30e2b | |||
| 3ee7a0dc16 | |||
| 43d8723e35 | |||
| d59ab17ac5 | |||
| d26cda097f | |||
| 6daa58b596 | |||
| d0920d9eb9 | |||
| fbd353501b | |||
| 9876aa64e0 | |||
| b8ccf7b3d4 | |||
| c15b5914b2 | |||
| 73aebb8890 | |||
| f9270710be | |||
| 0b63abf5b4 | |||
| 51ae4af83e | |||
| 4832982988 | |||
| b4d49715dc | |||
| 0de7b4eb39 | |||
| 3e88451ea8 | |||
| 5468fde492 | |||
| f17e13cad0 | |||
| f511449273 | |||
| bbe65e212a | |||
| ab9dbbab70 | |||
| 51a7739436 | |||
| 4cfe4153b1 | |||
| af6b0cb189 | |||
| df2a069371 | |||
| 5ebd0df15f | |||
| 66a34bcb89 | |||
| acad1d4175 | |||
| c8a096537c | |||
| 716fade52a | |||
| 3b9312d9ac | |||
| f87d072c79 | |||
| b61724019a | |||
| 3ffdb1ee56 | |||
| 5fbf280e4a | |||
| f787e0fa1d | |||
| 0d33b92d24 | |||
| 8e5d0c66db | |||
| ba1d4e97bb | |||
| 6e8ac60399 | |||
| f8bd80109c | |||
| de89d349ad | |||
| dbc9beaa19 | |||
| 1f171c4ed1 | |||
| 2e03888505 | |||
| ab5eafbe68 | |||
| 73014a33fe | |||
| 7bdbe0ef77 | |||
| d4dbad4649 | |||
| 24b23bbb5a | |||
| abab44a02b | |||
| b9c07e644f | |||
| ce9c3b4ef8 | |||
| 13862bd561 | |||
| 856d38df49 | |||
| 27a5e13107 | |||
| a71c24f803 | |||
| 758ec52b91 | |||
| 96418bb9f1 | |||
| f750d94b2d | |||
| 6eb9695e1e | |||
| 33bbad8053 | |||
| 3ea34461b2 | |||
| b6a202b721 | |||
| 4d8cb022c5 | |||
| 3046318de5 | |||
| c351598f13 | |||
| ab9c47e4bc | |||
| 20e5e7cdbd | |||
| d0dd95c198 | |||
| 28d554af82 | |||
| 02084be583 | |||
| e117d08b2c | |||
| 58783170cd | |||
| 9ba2426c02 | |||
| 2cbaa7b03d | |||
| 836a0f3a73 | |||
| e9977f551f | |||
| 78abe362cd | |||
| 47c2922d55 | |||
| 690f3fecbb | |||
| d9242db7b3 | |||
| a9b5e22b37 | |||
| 7b8f1704dc | |||
| de88ddf42b | |||
| b1e707c346 | |||
| 36b7b3a7cd | |||
| d44349d612 | |||
| 53919be913 | |||
| 8dd7d04fff | |||
| 384f6d9a31 | |||
| d51195a537 | |||
| 10bedad9bf | |||
| 4027d3c07f | |||
| c11b4131bc | |||
| ec78d3b83b | |||
| acf61c24bd | |||
| 338183e647 | |||
| 59e0de85e3 | |||
| 2e6941c23f | |||
| e1c33aa87b | |||
| 70d8cede9b | |||
| 7587bbd4bc | |||
| 668f0498ed | |||
| 32ff331744 | |||
| bc90463893 | |||
| 7fb486d8d2 | |||
| 538df0e67c | |||
| 60bb93170e | |||
| 766370221b | |||
| 8007e6d354 | |||
| 443053b927 | |||
| b6000bc1a8 | |||
| 8bdf8d42d9 | |||
| c084396f8f | |||
| b29877554c | |||
| a2d17f6f3f | |||
| 54018aec90 | |||
| 2699f9bcf6 | |||
| 094890622a | |||
| bee4ec5ddf | |||
| 29f533b170 | |||
| 296c2a7b5b | |||
| c4decce7f0 | |||
| a396f507f8 | |||
| eb96fd1b97 | |||
| 8cc7d80121 | |||
| d59139202d | |||
| a3cd4a55de | |||
| 0cb7388ee0 | |||
| 2700e9b326 | |||
| d36d5b2980 | |||
| 028437549d | |||
| 1f17551bf4 | |||
| cd301c9df2 | |||
| ce43aab4cd | |||
| 86d1ab00e0 | |||
| 93b2a52f34 | |||
| d3da830ef8 | |||
| ec4deb87c6 | |||
| d832a0a186 | |||
| 65800e17a5 | |||
| 9c5dd452dd | |||
| 78940413a0 | |||
| cc2f459f26 | |||
| d1c98eb22a | |||
| 1fe9a0ee5a | |||
| 80a87f963a | |||
| 2c0051b083 | |||
| 4a938170e1 | |||
| f3a27c4fcb | |||
| f43b11fd6a | |||
| 93d382c416 | |||
| 48e4060d62 | |||
| bbc7ef100c | |||
| c22468c943 | |||
| 7d538ea080 | |||
| aad1ff95be | |||
| 72f0fb6892 | |||
| a0baad4942 | |||
| 5e40d60e34 | |||
| 314f787042 | |||
| 7f340da0ec | |||
| acafa2bcad | |||
| 404d8da1a3 | |||
| 26be7840b4 | |||
| 520b84f967 | |||
| e7f6a8a476 | |||
| 0f3ef4b35c | |||
| 60d88693ec | |||
| ff6e2b6d31 | |||
| bc52ad7bf2 | |||
| daa24de171 | |||
| 68f0e25227 | |||
| 320f2bea7b | |||
| 666692e341 | |||
| 304cc33b76 | |||
| e0f4aca336 | |||
| ccdff5baef | |||
| 16fe056c99 | |||
| fb5c155f7e | |||
| eccbb0df7a | |||
| 0bcfcb4ea4 | |||
| b6b4d5c387 | |||
| bb7bfe95e5 | |||
| ac1e5a08d8 | |||
| 4a05f0fd05 | |||
| f1dff4d0b7 | |||
| 96343603cd | |||
| 9dccab915d | |||
| 0decf928f0 | |||
| 44faef3027 | |||
| 52a590334c | |||
| 8ea9709305 | |||
| 751c7e05f9 | |||
| ebe0aa27e4 | |||
| 4ef7f0dd24 | |||
| 4779c036f5 | |||
| 1480a4e270 | |||
| 6a167a4b0f | |||
| 9b43f57dfa | |||
| fc74840b55 | |||
| f408b1bb11 | |||
| 7a3e16b92f | |||
| 939045d606 | |||
| b3ee80e495 | |||
| 1c17a76b80 | |||
| 08a55721bf | |||
| 42991bfa2c | |||
| 46897689d3 | |||
| 9b3acf7162 | |||
| 4436e3ba69 | |||
| 78b3f21e7a | |||
| e2ae0a7a4f | |||
| 5ed8f0baa5 | |||
| f1d4e48c59 | |||
| 48ac431134 | |||
| d6a27c04b9 | |||
| 388e9cec09 | |||
| b01f70176b | |||
| e7b4a5db61 | |||
| d5a1d28779 | |||
| e0da4159ae | |||
| 0eef766ea1 | |||
| aebd53363c | |||
| f18bb1c780 | |||
| eecb7c0622 | |||
| 84c0b46266 | |||
| fb030b3520 | |||
| 42aac81fd8 | |||
| 09175d2b6b | |||
| 46f64f75c7 | |||
| 9b5425de14 | |||
| 7b1135ecd4 | |||
| 2ca63ae324 | |||
| 5b02323487 | |||
| cf99eef9c9 | |||
| c54e05d220 | |||
| a651853534 | |||
| a1a81b812a | |||
| e74d0ef4e2 | |||
| ca4caec819 | |||
| 900c12d1d0 | |||
| 4d61701790 | |||
| 4fd0e734ea | |||
| b4d1ba07a6 | |||
| 6974c511ea | |||
| d30dd7450f | |||
| f877e653e9 | |||
| 699ffc8b50 | |||
| 135b81bbb4 | |||
| d9f5c2d16e | |||
| 2e0f04ce93 | |||
| 8ebb084f0f | |||
| f2bc07458d | |||
| b4daca860f | |||
| ac6919680a | |||
| c6749f2d5c | |||
| 47fd936306 | |||
| e2d772dd3a | |||
| afd7679028 | |||
| da668a7905 | |||
| 78dd5511c7 | |||
| f4171402b7 | |||
| 68d227bf72 | |||
| e842780a31 | |||
| 2ee8fe532d | |||
| decef2ca9e | |||
| f1bf1275b8 | |||
| b3dc9d1de1 | |||
| 43e2b4d85f | |||
| d2c6c5b14a | |||
| 8e895bb78d | |||
| 89ae7cfca2 | |||
| d0ca602f3f | |||
| 147439ad34 | |||
| 8ad26c0426 | |||
| 1a3eb0f209 | |||
| acd2c514ce | |||
| fccff0c03a | |||
| 7cf8483f9a | |||
| 63bad22ac4 | |||
| b009f06375 | |||
| 8aa5ebf621 | |||
| 53ac770772 | |||
| fbfe47528b | |||
| 71443f7def | |||
| a1b1165039 | |||
| c060243201 | |||
| 93f84e2b65 | |||
| 9cd971a53f | |||
| b22b819683 | |||
| 8779ac3ec3 | |||
| 16ec935feb | |||
| e59d229097 | |||
| 9028d9a339 | |||
| 6999a1b5e4 | |||
| 7ef6d33ea9 | |||
| 3824f19ce5 | |||
| 930268ed0d | |||
| cb0a3fdb6e | |||
| 4c0a2b1d3d | |||
| 6fd34dee5a | |||
| 1c56c4dfe5 | |||
| 53321160c4 | |||
| 5b29d3bb72 | |||
| 4796a3116a | |||
| 6183569dc2 | |||
| 3296a2addb | |||
| 235cb0c574 | |||
| 570fbd9a00 | |||
| e205b521fd | |||
| ce15754575 | |||
| 18085bae70 | |||
| 61536b42c9 | |||
| 532f166b22 | |||
| c1d3a78316 | |||
| e524d9694d | |||
| 1efa889913 | |||
| c73788da24 | |||
| 5ec277b2ed | |||
| e327e1bc9c | |||
| e38fbf814b | |||
| 67c946f24a | |||
| 2647cefdcc | |||
| c1e5d2a781 | |||
| 9cf11ff45d | |||
| d2272ec75e | |||
| 37c5c1dc98 | |||
| 156e1a00d3 | |||
| 3aa9a2f2c0 | |||
| e1f5b57fd3 | |||
| cf757b6c7b | |||
| bd2da8d632 | |||
| 01b7e387eb | |||
| 60bf6b1f70 | |||
| 7839c6294c | |||
| f8b0d788a2 | |||
| 3e0ee584aa | |||
| 698e4a0af4 | |||
| 20cadfad29 | |||
| 2b93362a57 | |||
| 5476f297e1 | |||
| b79fbe2123 | |||
| d9a76fdd9a | |||
| 721a69f2b1 | |||
| a49b3e67d0 | |||
| 297600ca6d | |||
| 15019051c0 | |||
| 2b7e8bf449 | |||
| 928798dc16 | |||
| 1a01ec17d6 | |||
| 69da4d749b | |||
| b1fc95b1d9 | |||
| 0b7f104c95 | |||
| 912974cb80 | |||
| 9bbb8ef31c | |||
| e01f53a58c | |||
| 82c69a03ef | |||
| f8aa79aaf5 | |||
| 700ae79b93 | |||
| 8dd8ab6366 | |||
| 28d19a99e1 | |||
| 6627de6460 | |||
| 795d452493 | |||
| 2d7f52972d | |||
| 5b7926c590 | |||
| 1f6d0b143c | |||
| 8558af8189 | |||
| 28ceb0bed2 | |||
| 41523b03d1 | |||
| 4a46207fa5 | |||
| dfb9ac91e9 | |||
| 6229c0020c | |||
| 8db1bf9052 | |||
| 2740c5db23 | |||
| 512e6de39b | |||
| e3c328c7e3 | |||
| 9eb5ea599e | |||
| 929032d598 | |||
| 09fb42291d | |||
| e6665a8305 | |||
| a785d83791 | |||
| 08a64f0dc0 | |||
| 0babad837d | |||
| fb1f70f5de | |||
| d4dd1b7ba0 | |||
| 82c921d739 | |||
| 180a570f99 | |||
| 9960a7a7e4 | |||
| 2164d08c3c | |||
| 4b2d0d1a67 | |||
| d0341d191b | |||
| 10237a2d90 | |||
| 59390ddaa1 | |||
| 312c94f386 | |||
| d697677fab | |||
| bf484b5518 | |||
| 74b530259d | |||
| 4052c3d101 | |||
| 86262333a4 | |||
| 3419b49381 | |||
| ec5725d8de | |||
| 9df98352a8 | |||
| c0c5ad21b6 | |||
| 4a23da6ce1 | |||
| 6d1e5243d8 | |||
| c52a31384e | |||
| 36447eb1e3 | |||
| 811dfee42c | |||
| b075bb9f4e | |||
| 00919f3232 | |||
| 6dcd52deb5 | |||
| edc70e9acb | |||
| 4ad12b6862 | |||
| d63f3b6da1 | |||
| 84c70a0905 | |||
| 8f65a7ac19 | |||
| c78262be91 | |||
| cb51238bfc | |||
| 87f873c8b6 | |||
| a37528b377 | |||
| 51a58182ee | |||
| cc4b768f54 | |||
| b016be6eb5 | |||
| 881d73d4ab | |||
| 8859e352f9 | |||
| 5b0fc5b97b | |||
| 76cc59acab | |||
| e792088ceb | |||
| 1dc70d5a8d | |||
| e876a0f6bd | |||
| 50450de3e4 | |||
| c8abc84c3c | |||
| 1f3996032c | |||
| b868cfdca9 | |||
| d51944e6a5 | |||
| 4419ba55e8 | |||
| 9e8ae54821 | |||
| 4ed266780a | |||
| 46886b4dcc | |||
| 1e2531f0b1 | |||
| 0e43fd4d00 | |||
| 10448bcc3d | |||
| 4f1c2788b8 | |||
| dbaa7b5e67 | |||
| 6211b7733d | |||
| 0d6ea0845e | |||
| b8e10fb34b | |||
| b9c6e595d7 | |||
| 7d701d3e9c | |||
| 92d9c3c92b | |||
| 7007977891 | |||
| 9f5d24bbc9 | |||
| 2834a83eec | |||
| eb82473395 | |||
| 4a33d3227e | |||
| 235456e18e | |||
| 1f9e532fbc | |||
| 8bc2d3184a | |||
| 9ef54d1218 | |||
| 7e48cb97b0 | |||
| a226f0b58c | |||
| 65fd47a082 | |||
| 600b7d1d54 | |||
| b8f4d4877e | |||
| 6a114e1275 | |||
| 5d3d8640e3 | |||
| f09d2d22eb | |||
| 94ccd8f8b6 | |||
| c96ce890d6 | |||
| de55be397b | |||
| 1420714cae | |||
| b15305bc69 | |||
| db25b111e0 | |||
| eeea9932ed | |||
| c710e9a54d | |||
| 62613e7da1 | |||
| 946b597471 | |||
| 691c55bedd | |||
| 8387969467 | |||
| 90d21375c8 | |||
| 86daf2a9dc | |||
| 90473957cb | |||
| 3549c00141 | |||
| 1c1d13545b | |||
| f1b3db89fb | |||
| 8c77baca6f | |||
| 36a40d97a7 | |||
| 1eb9b40607 | |||
| 05c10e3f57 | |||
| 0cf3325655 | |||
| 48525de714 | |||
| 7e15722eab | |||
| 719c209c7b | |||
| d05ad44b84 | |||
| b352c97479 | |||
| 063085a6bb | |||
| b4bca16109 | |||
| 03770c52fe | |||
| 10fe5cdd5d | |||
| 57d459b917 | |||
| fe26594f12 | |||
| 0d8065fc1f | |||
| a3cdae1e94 | |||
| 29d77b649b | |||
| 9e190cee81 | |||
| 687bfd0f17 | |||
| 7d7df4f749 | |||
| 958dede319 | |||
| 76e814944d | |||
| fbc1d75e9a | |||
| b3c7ce05dc | |||
| feea881e09 | |||
| b978bc4876 | |||
| f84181e7a5 | |||
| 313ae0f86c | |||
| a39c018359 | |||
| a09f57d908 | |||
| 596828cf78 | |||
| 44843aa9cd | |||
| 5f930cc4d1 | |||
| 7defad5d95 | |||
| 707af8a295 | |||
| e0fb9ffbb0 | |||
| d614de6f5e | |||
| 86b94b4723 | |||
| 5070300050 | |||
| 1919546441 | |||
| 1c3cd8d44b | |||
| 292296266f | |||
| a3e8848bc8 | |||
| ced146fc63 | |||
| 6ed79f6a0d | |||
| 15e4d86e92 | |||
| 5a29a7d2a3 | |||
| 034740ce46 | |||
| a2847246e6 | |||
| 04479ad660 | |||
| 35d2fff593 | |||
| 2b93fe9a30 | |||
| 5c33a2bd5c | |||
| a28f113105 | |||
| eb7976a2ef | |||
| 15db1c0c30 | |||
| 2b83c95869 | |||
| 273d5596d7 | |||
| b423dab152 | |||
| 1b104bcf29 | |||
| 5cad9a8c44 | |||
| ec8a475a2c | |||
| e656cb8118 | |||
| 7f2a0b6630 | |||
| f9bf40a771 | |||
| 96360619e1 | |||
| 4cefc21819 | |||
| 192a56ee15 | |||
| cf16472dd0 | |||
| b2fb2d5821 | |||
| c939eda7bb | |||
| 428e059895 | |||
| 1b4ea2e9c6 | |||
| d60bfa238f | |||
| cc98f7da36 | |||
| 87cdc22990 | |||
| 60f6ea3252 | |||
| 86cffae001 | |||
| 77cec0e338 | |||
| ee85bb9a1b | |||
| bf0b85afd1 | |||
| 5473696491 | |||
| 0bc59a82ba | |||
| a8430d8ecf | |||
| 9672b2ec23 | |||
| 60447f073f | |||
| 62329c104c | |||
| 536884bb46 | |||
| efb213fb9f | |||
| 02b43c9375 | |||
| 9a2679efaa | |||
| 00a396c3e7 | |||
| b4272c306d | |||
| b876605e93 | |||
| 7f896a9f40 | |||
| a96874ac55 | |||
| 1f8d3ed911 | |||
| 56be0ef4be | |||
| 67079545b3 | |||
| 54b8811843 | |||
| 0bbfe20089 | |||
| 667822ca08 | |||
| 051b8c4b63 | |||
| c2f5e7eb45 | |||
| 45ebf7b5c6 | |||
| 2ccdcf8a92 | |||
| 88d9fd42c4 | |||
| 6d81636d1e | |||
| 22fb456d13 | |||
| 62c9666013 | |||
| e1b2f940ad | |||
| d2c0ec12f3 | |||
| 61bdbdb5d6 | |||
| a28ca46460 | |||
| 719179c1c2 | |||
| 1851e0c02d | |||
| 5d7ae16b4a | |||
| 3bb8cb52f8 | |||
| 3d4d3b000e | |||
| e3e97db101 | |||
| 057b8d9e74 | |||
| 003e42a2ae | |||
| baf932dd8b | |||
| e2acab67e1 | |||
| 095b171db3 | |||
| 9d36d7119b | |||
| 507bcbd332 | |||
| 71a15b7202 | |||
| 1718a123e8 | |||
| b5c1046dca | |||
| 608481df38 | |||
| 4aab5da7ae | |||
| 79650cf318 | |||
| 170544f68d | |||
| 9bc26b0068 | |||
| 9765319027 | |||
| 3b1c7dc5e1 | |||
| 2a50d0856b | |||
| 23c0fcada6 | |||
| aa499eab61 | |||
| 985324ac12 | |||
| 3c89907403 | |||
| 953487bb65 | |||
| 677891d0ff | |||
| 8d2a7b00dc | |||
| d4d4f3c082 | |||
| c26e8a69ca | |||
| 1c251a308a | |||
| c8015898ff | |||
| a1e36594c2 | |||
| 043bc754ae | |||
| 472d9dd467 | |||
| f6a3662b0e | |||
| fb777d0c3a | |||
| 2a3ee968ff | |||
| 0b2661ad45 | |||
| 1dfe68e9f3 | |||
| 64b824671a | |||
| 4940d85b29 | |||
| d458748a7a | |||
| 7f346ef606 | |||
| ca544dbbae | |||
| 5704a07b68 | |||
| 5b1739246d | |||
| 8ead33bc59 | |||
| 2f3792a3ee | |||
| 86d306632d | |||
| cc79c2cb49 | |||
| 26b3b13bc4 | |||
| bc20e65aae | |||
| d458bf6be3 | |||
| 58375f06e5 | |||
| cd39853dc8 | |||
| c94a44aeb8 | |||
| 237d7c1ec1 | |||
| a80b67fdc9 | |||
| de44c57ada | |||
| 448356f534 | |||
| 2b16b0fc7c | |||
| 22515c8c29 | |||
| bf050a2d5e | |||
| 74065714cb | |||
| b95a39dc10 | |||
| bcdd202ef9 | |||
| 20ce2ead75 | |||
| a81b9344cf | |||
| a7fe004344 | |||
| 66e8f9865a | |||
| 1cb4413869 | |||
| be6dbefe7c | |||
| f655297052 | |||
| 232c797507 | |||
| 25d4a9c7a6 | |||
| 65e3111e35 | |||
| 048d995922 | |||
| dcac27e072 | |||
| b754ad5248 | |||
| 321c7120df | |||
| 4b85c9e2df | |||
| 62aec34507 | |||
| 427487c598 | |||
| ccb8c43961 | |||
| fee892f9a2 | |||
| 9b990728f6 | |||
| 9b490c9552 | |||
| 133effef0e | |||
| 15706a7af8 | |||
| 2a15faf12e | |||
| 9149792846 | |||
| c90c53c878 | |||
| e6387738ce | |||
| 3882690ee1 | |||
| 4c049d0d75 | |||
| e070af3163 | |||
| 1c35a91d13 | |||
| 4c20e79d1f | |||
| 669f46d6a1 | |||
| ea89a9f706 | |||
| 918985449b | |||
| 18ab93a9f6 | |||
| a6a8363527 | |||
| 90edb0903d | |||
| ba1274ff3a | |||
| 60f91bff50 | |||
| ef2e9406c7 | |||
| 3d6783597f | |||
| 7cab32f71b | |||
| 78a72b42b0 | |||
| 157039946f | |||
| 09083beed0 | |||
| 8aa6c4582c | |||
| aeb610ff70 | |||
| 1586386d6c | |||
| 2eee51f891 | |||
| adf46969ca | |||
| bd6ee188f8 | |||
| 57893bdbf8 | |||
| 7a37ab1b25 | |||
| 72618f98d1 | |||
| d98e6fd51e | |||
| 608bcf7d42 | |||
| 06d8d14ad7 | |||
| aef400db0f | |||
| cdfdaf9f5f | |||
| 5270f155ff | |||
| 0514f13af0 | |||
| e6a6763228 | |||
| 38c74bf2cf | |||
| a770e47575 | |||
| c998352ab7 | |||
| 3683fa3814 | |||
| e62881e08b | |||
| 01e313e56b | |||
| 2dd5f80468 | |||
| 275fb3e96a | |||
| 3463916b9b | |||
| a20de2515a | |||
| 79ea992a0f | |||
| 0132436dc8 | |||
| a285c1abec | |||
| 1c41e01f0d | |||
| f2e53ea490 | |||
| bff86b90fb | |||
| b5c9b6f552 | |||
| 23f5102f1b | |||
| bf51e911b8 | |||
| 4039d7ab71 | |||
| 77a09a0e59 | |||
| 154c777788 | |||
| 628c36c87d | |||
| a746b7abcf | |||
| 64184e6c90 | |||
| ecc955d2ce | |||
| f7e1b2c70c | |||
| 284cbda7c0 | |||
| e5ca9e4c39 | |||
| 02aaa71e78 | |||
| f56b5ea03e | |||
| 6afd4dcdd1 | |||
| 52bb189996 | |||
| aafdac6da4 | |||
| bd202fce21 | |||
| f450001edb | |||
| 8ff6f9af45 | |||
| 36bb1d0cf3 | |||
| c7c8e39e20 | |||
| 8e9630459b | |||
| 1c53fca925 | |||
| 7d78de0673 | |||
| f8acc55365 | |||
| c3157fe90d | |||
| 35b129287b | |||
| d05155a403 | |||
| e5ca216c99 | |||
| 13a96ee1d3 | |||
| 12879207ef | |||
| e097a5de58 | |||
| 0cd2617576 | |||
| 6c303b8f87 | |||
| 91224d8a1c | |||
| 48e961392d | |||
| 5b08a1adfb | |||
| 3bbb9daa34 | |||
| 3f5f17705d | |||
| f0aca45b11 | |||
| d205e3b4a3 | |||
| 8b40a77297 | |||
| a7e87cc722 | |||
| 09f106bd49 | |||
| 8a0869fb75 | |||
| 7ccf26310d | |||
| e1420ba26c | |||
| c693c9cd44 | |||
| e698557092 | |||
| 1238c90450 | |||
| e991dca5a0 | |||
| 37093c9f33 | |||
| 1dd4f62ece | |||
| 9ec27aad53 | |||
| f1d3a946d5 | |||
| fd24f7045e | |||
| 33671e7737 | |||
| 13ecc6a56b | |||
| 20815eecbc | |||
| f2f5ffd861 | |||
| b0971601b1 | |||
| 7253d764d2 | |||
| 71f3a1f7cf | |||
| 950659b29d | |||
| b4392d0e3c | |||
| 4571302642 | |||
| 5121f04d66 | |||
| 77642d2876 | |||
| ef69796798 | |||
| 869854fbc2 | |||
| 4584d912cc | |||
| ddd3d38dac | |||
| fcba6bc7d7 | |||
| a147c0fb4f | |||
| c3cc3fa9bd | |||
| 0f0e14132a | |||
| a2c2ed0b4a | |||
| 8bebca4502 | |||
| e9a550d458 | |||
| bee567f2b1 | |||
| 0fd7061671 | |||
| 96951576c1 | |||
| a665d7cc3c | |||
| 9b989329d4 | |||
| eccfd75a83 | |||
| 7e8a152eef | |||
| 44810f95a5 | |||
| bcd42dbb6a | |||
| 6e77126a65 | |||
| 735bbef655 | |||
| 7006a07dd3 | |||
| 7284926db4 | |||
| b506bf9506 | |||
| 3fea28f8b0 | |||
| cc6649667c | |||
| 24121fbbce | |||
| ef280dae3e | |||
| 49f580a36b | |||
| a56d2b1313 | |||
| f083180401 | |||
| 7b870edefa | |||
| a293fa1de6 | |||
| 3a8898dd24 | |||
| b97c8b9a17 | |||
| a0a8d76441 | |||
| 9199612cf7 | |||
| abfd37c045 | |||
| ac243136b9 | |||
| c93e948bb3 | |||
| 388803ffdb | |||
| a809ccf229 | |||
| d1796a515e | |||
| a11d3efed6 | |||
| a8fb7cd225 | |||
| 9d7aab4326 | |||
| a3b76fed4c | |||
| 21f5f96d69 | |||
| 70d3061d59 | |||
| 8f7a66a21a | |||
| cd8e944751 | |||
| 66e05594f6 | |||
| d06a9e2e5c | |||
| 64df9222dd | |||
| 900ac46583 | |||
| fda1c8399f | |||
| c2cd4fc75f | |||
| ef5a9eb777 | |||
| 8e3100acdd | |||
| 50d74fcf25 | |||
| 140862ce5a | |||
| 966453dd8f | |||
| fcd37adc38 | |||
| 6a3989488e | |||
| fbfdef8f9a | |||
| b66c61573f | |||
| 9186b28b60 | |||
| 915a1b105c | |||
| 12b9b3ce71 | |||
| deb4c48551 | |||
| 9dfaac8582 | |||
| bd5b9f5347 | |||
| ff4b9a3cfe | |||
| e844d7ed89 | |||
| f3ae8f7f75 | |||
| f137eddbf9 | |||
| c70f75b21a | |||
| 141fb875f9 | |||
| 344d47e7dd | |||
| 4840a9094b | |||
| 6f305c8974 | |||
| c83bae3bb5 | |||
| 4c1b962486 | |||
| b929e2a7b2 | |||
| 1ecd7aa7cf | |||
| 881aed50ea | |||
| 6272b79f70 | |||
| 0fa50f1951 | |||
| dc19f2e76c | |||
| 498116c3f6 | |||
| e29dcf7489 | |||
| ec28eea7f0 | |||
| ebce4d0f31 | |||
| bf9492e083 | |||
| cb987c1baf | |||
| e4a4be1f53 | |||
| f6d1fe6c04 | |||
| 7e5a29a5cc | |||
| 8dbc175c02 | |||
| 0473374d51 | |||
| b2d7342b9e | |||
| b965aecc6c | |||
| 9290c90bdc | |||
| d83a80ec53 | |||
| 248fe1b53f | |||
| bf217bf7aa | |||
| e5de8e22b7 | |||
| 5666e84d92 | |||
| a97d1b8669 | |||
| 06db13a0ab | |||
| 9832af7cce | |||
| cf4a617f2b | |||
| 5a6a5fd4d1 | |||
| e6ebc19b4f | |||
| 2250fe75c4 | |||
| e27b1840c6 | |||
| 717d197998 | |||
| 02dd0dbbef | |||
| 2e4a437d32 | |||
| 63e1d6dab6 | |||
| 23133499c7 | |||
| 67bd87b50c | |||
| 6d31a4246f | |||
| d4f38b6d66 | |||
| 959229f143 | |||
| 22f9b1a0b1 | |||
| a8fc5a722f | |||
| 69420f5750 | |||
| 20976ac9f9 | |||
| dc33accae7 | |||
| 29d1f1f14a | |||
| 6102119673 | |||
| 0c635a05ff | |||
| 307a7791df | |||
| 49b056a0ce | |||
| af58ffadcb | |||
| dcbda7b3af | |||
| 553cc0c6ae | |||
| 067dcbfbeb | |||
| 759258bb39 | |||
| 3667ef551c | |||
| a3308087a5 | |||
| bfb4652425 | |||
| 03c24e2906 | |||
| dc61faace1 | |||
| 73ea86ceeb | |||
| 9a622ab466 | |||
| 65cfd6c81c | |||
| 08681ac1b9 | |||
| f9acb5d19b | |||
| e9e187c58b | |||
| 3bc20c3550 | |||
| 4b25406d14 | |||
| 265b7904a8 | |||
| fb2274c58d | |||
| 3cfdc9d897 | |||
| 11986ac698 | |||
| a08436ecd2 | |||
| e92adf94a7 | |||
| d25356917d | |||
| 0adb3b062f | |||
| 9316480884 | |||
| 4e5082f6c6 | |||
| 16d5dbe71c | |||
| 133d7874e3 | |||
| 4659d5db5d | |||
| af061125dd | |||
| 5c4b1f6638 | |||
| ee3d70f879 | |||
| 7dadaa1b28 | |||
| a72782e232 | |||
| 8654ffb6fb | |||
| 90e445eec9 | |||
| 910b6d8879 | |||
| 8d1c2f832d | |||
| 158d2a4124 | |||
| 66473738d6 | |||
| 6a43107bb2 | |||
| 28e7afa412 | |||
| 8dc151e14d | |||
| a330a3f2eb | |||
| 8f7195d3b2 | |||
| a4e4502d50 | |||
| 902da90100 | |||
| d775760f98 | |||
| dfb6600104 | |||
| 41ed487d5e | |||
| d156de05a5 | |||
| f4582ddf36 | |||
| 7f7b764f7b | |||
| dd8fdfc3d4 | |||
| 6c80d443b9 | |||
| cd05586d51 | |||
| dfc1ec3ccf | |||
| ffe6786ad1 | |||
| 6068678fa1 | |||
| 50b761fab2 | |||
| 0d43f16db2 | |||
| 3278de9ba1 | |||
| abe1962002 | |||
| 5b15f377cd | |||
| d0e5ea78a5 | |||
| 853757e611 | |||
| c3860cfe72 | |||
| 90b2c077a6 | |||
| fdce4bada7 | |||
| 4c8ff1c7ec | |||
| 2a153214f6 | |||
| d7c964afc5 | |||
| 5943052cd1 | |||
| 8512154b45 | |||
| 0e5419c60b | |||
| 1d26482298 | |||
| 126749f04c | |||
| e0e69ce740 | |||
| 72b57924b7 | |||
| fdbdeeb956 | |||
| 3dbdecf73d | |||
| 7dc8943840 | |||
| 646b852717 | |||
| 075f754a71 | |||
| f65556acb7 | |||
| b2c01991a6 | |||
| 4bc5e81513 | |||
| 2b24fe95c2 | |||
| 358e64f2cc | |||
| 5dc50b6d96 | |||
| b91a040a32 | |||
| 76db55ff19 | |||
| e17bf18350 | |||
| 43b4499125 | |||
| c6d43a802c | |||
| 21f8403357 | |||
| 40053e3388 | |||
| abcf7e3a47 | |||
| f8913bf9b9 | |||
| 51878ab38e | |||
| d3f9a84a0a | |||
| 23eedb468f | |||
| 9cb89fff45 | |||
| 79f0b22276 | |||
| 8b2a728a0d | |||
| b4120b156e | |||
| 1ae3122c20 | |||
| 727acca217 | |||
| 5f8d662d67 | |||
| 81b432140c | |||
| adc1ee71a9 | |||
| 5ac373d4aa | |||
| 5b9e24f3f4 | |||
| 0e44de2fe3 | |||
| b0125e8165 | |||
| a532067a93 | |||
| f456071c08 | |||
| 3896f0995c | |||
| 56ff5808a3 | |||
| 15c817dd15 | |||
| 7246c3f304 | |||
| e4f59f1ec4 | |||
| 5f0e9538cf | |||
| 73649128f3 | |||
| edc84731ac | |||
| 108b116b06 | |||
| dda587dc6f | |||
| 4a9dd43598 | |||
| a64cfe661a | |||
| 7e418a16ae | |||
| ecf1fa2bbd | |||
| a6157a34bc | |||
| 8e37e66706 | |||
| dd6a4931e5 | |||
| 2d000e826b | |||
| c1028e7408 | |||
| 28b54fac37 | |||
| 845fddf5f2 | |||
| e3e2a477c1 | |||
| bf4442ecf5 | |||
| 3be793032f | |||
| 0fab18e8e8 | |||
| ab6375ef2a | |||
| 2535b6e08c | |||
| 2f003d416a | |||
| 579b358f8b | |||
| 231a583bf7 | |||
| f0cfbacb4f | |||
| ae45189436 | |||
| ff8292b863 | |||
| ebe45f73a0 | |||
| c91f41e988 | |||
| 3c7f3e8740 | |||
| 3a9899529a | |||
| 88ce676c46 | |||
| 426cc2798e | |||
| 5a015888d4 | |||
| 1d2df63652 | |||
| be378eaacb | |||
| 631f5a1043 | |||
| 353e9adec1 | |||
| e572da4927 | |||
| d22afa36c3 | |||
| a7296f15ac | |||
| b20caee548 | |||
| 519832edd7 | |||
| a2cea1e5bc | |||
| b3c198f0d2 | |||
| b45a696b5d | |||
| a2b3fe6411 | |||
| 13d4f37726 | |||
| 71f34f4e31 | |||
| 018f147de6 | |||
| da012cbf8b | |||
| 3907a103fc | |||
| efb566bcc7 | |||
| 53e8df3542 | |||
| a00d262773 | |||
| b64db54793 | |||
| 97c0e3d4a9 | |||
| ba31bbace8 | |||
| 606dfd29d3 | |||
| 9411d0781b | |||
| 7aea200860 | |||
| 5d8ac95d07 | |||
| cd0ebb41aa | |||
| eb028b0dad | |||
| 61803f7516 | |||
| 50bfed79be | |||
| 1c77ae818e | |||
| 66ede6037d | |||
| 01452b7309 | |||
| b5f2470b79 | |||
| 49403e9fee | |||
| 66d512f26f | |||
| 2ba0ebf3e8 | |||
| bbcd27d3c2 | |||
| 837a3528cd | |||
| f39662588f | |||
| 4b12f52029 | |||
| f2920ddefb | |||
| ce010653d5 | |||
| ce764c862f | |||
| 60d821ae3e | |||
| 8f7f8fc0b5 | |||
| ec45041a66 | |||
| 67a666b282 | |||
| d9404fc566 | |||
| bcd899c641 | |||
| ec61ac29ea | |||
| 180e663a43 | |||
| ae1711a685 | |||
| 9c3b62574d | |||
| a3637c12d6 | |||
| cae192682b | |||
| 6c68bacaef | |||
| ee7a2b564b | |||
| fb25d90b48 | |||
| 9075a521f0 | |||
| 00a0e595ff | |||
| 694ff32b01 | |||
| a74635ff56 | |||
| 8c6f3d66b5 | |||
| a49cb06d77 | |||
| f96f478470 | |||
| 1d2f713673 | |||
| 57d24d0fbf | |||
| 584e55a89c | |||
| 4560a83441 | |||
| f4658728e8 | |||
| 54825dc66f | |||
| d4056ac10a | |||
| 8f409a8fe2 | |||
| d369d988b0 | |||
| 2a74736761 | |||
| 6bd0bf6e69 | |||
| 53cee177e8 | |||
| a8afc62db7 | |||
| 14328eb601 | |||
| 2184755fdf | |||
| 3a3cd1f856 | |||
| 24a3a41cd6 | |||
| 197f6b05ae | |||
| c2e887a86e | |||
| 12b16577ef | |||
| 409165dec6 | |||
| 4870d59a43 | |||
| 70c3bb3288 | |||
| 36156997ee | |||
| 2c2728448c | |||
| d1781a7c47 | |||
| dc1459438c | |||
| 00e6da9d64 | |||
| 68b3d75705 | |||
| 3e538b732a | |||
| 833341dea7 | |||
| bc3efe2f4c | |||
| 10e4c59f2e | |||
| d9016b7979 | |||
| d975610ecd | |||
| 5d1251f6d8 | |||
| bdf802e64a | |||
| f2b888f9ae | |||
| 9583007769 | |||
| eb81c33308 | |||
| 8d734f5cc4 | |||
| 3375ff6152 | |||
| 80fc58f83e | |||
| 17c0124747 | |||
| c220d4dd17 | |||
| 15146725e3 | |||
| ddfab824c3 | |||
| 8b5a00ca27 | |||
| 04a7f14c0e | |||
| 18f14b828c | |||
| 0a92e12a62 | |||
| 5b71281ec4 | |||
| 08fdc4f1fc | |||
| c726bef740 | |||
| 94e0ac3f54 | |||
| 284f7fc4f7 | |||
| e629460942 | |||
| 904e531113 | |||
| ca2f2adc90 | |||
| 78a3e329f5 | |||
| 5938e0f821 | |||
| 4a6ae3b46c | |||
| 2327d661b9 | |||
| 9790e37154 | |||
| f97d751343 | |||
| 81c1f6bd8e | |||
| e3a5a4239b | |||
| fcec85881f | |||
| cfefb8b2e0 | |||
| e81a2a5011 | |||
| d62b488459 | |||
| 932bd92b95 | |||
| 9fd1f95ab8 | |||
| cf414cb9cb | |||
| f676d32f96 | |||
| 939c9afeb4 | |||
| 7d88c48c39 | |||
| 26337a6bd4 | |||
| 1263a5bfc0 | |||
| fe21ca5b95 | |||
| 0fe9dad515 | |||
| 75b33c906d | |||
| 835fa77964 | |||
| 3e13186560 | |||
| 01f191289d | |||
| 6586791655 | |||
| b4f6774ca8 | |||
| 75d346fe69 | |||
| 27780c7327 | |||
| 100a8882f1 | |||
| 983bd1a57b | |||
| 810f7949f4 | |||
| 28c502bd85 | |||
| b8c313965f | |||
| 8a2dcbbcff | |||
| 263b9fa611 | |||
| 793e15f80c | |||
| 23d1394fb2 | |||
| f97bb23c9d | |||
| d557739a28 | |||
| 8d06243b57 | |||
| 9a4b73b942 | |||
| d73e0dd13c | |||
| 2f3818fe4b | |||
| d3d773079c | |||
| 0b2acec50c | |||
| 3501e4f44d | |||
| 384c540197 | |||
| 1b78ffc018 | |||
| 79f4f0adbf | |||
| 98d71308a8 | |||
| 4f0fa66575 | |||
| ecac3a0f16 | |||
| d1898b9a0b | |||
| 868c7b170e | |||
| b1c5c53687 | |||
| 6704886c6e | |||
| 7e45283ba2 | |||
| ff67d876b2 | |||
| 4975a0a8d8 | |||
| e34a4338a1 | |||
| 0b4986b47a | |||
| 937eab5f27 | |||
| 70378bfac8 | |||
| 29d87f692a | |||
| b1b2798be1 | |||
| 2b74ad8b5f | |||
| 3098fa6855 | |||
| 53883a7f1f | |||
| 2c048376d4 | |||
| b583240d58 | |||
| 844be11d43 | |||
| 53b739139b | |||
| d09d1d72e6 | |||
| 01d927aceb | |||
| 59abfcbd6d | |||
| 4c2ec15f70 | |||
| 2b6dfbf4eb | |||
| eb8372eb91 | |||
| c6b2967da0 | |||
| 042f51e58f | |||
| c72cf46db7 | |||
| 2a7aac76d9 | |||
| a569495f5d | |||
| 59e56600bc | |||
| 915dec7ba5 | |||
| 909bd3dd2d | |||
| d50fad615f | |||
| b036bedbc3 | |||
| 55c05d1a6e | |||
| 344c0f6427 | |||
| 8ab1a7268b | |||
| e5f31dbe8e | |||
| 783c5c12e9 | |||
| c972485555 | |||
| c507382d19 | |||
| fbbcbc8753 | |||
| a5fa595627 | |||
| 502045f1fa | |||
| e9280777fd | |||
| c36f402b88 | |||
| 3a68dd50ce | |||
| eb06c0da08 | |||
| 6528567746 | |||
| 09229812f4 | |||
| aaa37a3e0d | |||
| c5531b1bd8 | |||
| 021115b463 | |||
| 698d9c208f | |||
| 01a6b432f3 | |||
| a5f44b3ed6 | |||
| a3ba99c682 | |||
| 7c709fddba | |||
| 8f313b4603 | |||
| 41c0a5ee3b | |||
| 346f7aadd6 | |||
| be611c1920 | |||
| e33a866a63 | |||
| c846eeed9d | |||
| d052eac019 | |||
| 9dbd134601 | |||
| 6451e1cfe2 | |||
| 9f3f715527 | |||
| 0d8e5b139b | |||
| 5d5dda548a | |||
| 1d32e5267c | |||
| a300a25419 | |||
| 4eaf03b922 | |||
| 4401ea388c | |||
| dfe6ad3a32 | |||
| e3ef870b29 | |||
| 7deb5bfdf2 | |||
| 0e46a4402a | |||
| 33a15e69bb | |||
| ebe11fdb1e | |||
| f9a7c46868 | |||
| c80c23e8e8 | |||
| 5e6c81a98e | |||
| 214cc83d4a | |||
| 8e643fbf87 | |||
| 6008d9e12b | |||
| 81da453ec4 | |||
| f34835463d | |||
| eb3419f3fc | |||
| 5886a07300 | |||
| 69e7c27fd0 | |||
| 165cf6809f | |||
| 9b2b8b6796 | |||
| 3ed6d1dec1 | |||
| 9ad1d1c25d | |||
| 667e614bf3 | |||
| d49da1fdd0 | |||
| 85b0733169 | |||
| 7f2bba7c4a | |||
| 664ec62396 | |||
| b4a9e45214 | |||
| 2eab7044ba | |||
| 8d449f91c6 | |||
| be8a836528 | |||
| 423782fd2b | |||
| dc1dc8dffa | |||
| 16a77e2975 | |||
| df69a70dd7 | |||
| 0638c86211 | |||
| 8c0de22c14 | |||
| f83568c6c9 | |||
| 10d472728c | |||
| 2c3cb3f5ce | |||
| fbfe3fd5ed | |||
| b280a26317 | |||
| 640db8af7d | |||
| 98d9357208 | |||
| f3b6c7c09b | |||
| 3a622f111a | |||
| e0b1ed87e8 | |||
| 63578affa4 | |||
| 74b188fa46 | |||
| fadaf852b7 | |||
| ac6124951a | |||
| 89e42af149 | |||
| cf5987b2b4 | |||
| 069d8d376c | |||
| fe3d8ea2be | |||
| 3ac03b43e1 | |||
| eaf1a532f4 | |||
| f2b0116c1e | |||
| 155b5fa831 | |||
| 130c77a305 | |||
| 2e168d152f | |||
| e0890541ea | |||
| 1447b62999 | |||
| 518ae8044d | |||
| 314a90995a | |||
| 8f29e32577 | |||
| b6e25a353d | |||
| 635ed02198 | |||
| cd81a54062 | |||
| 1035d787ab | |||
| 29567df407 | |||
| 79cb4668f1 | |||
| 9bdc19e2fd | |||
| 25cd6106f5 | |||
| 13fbe59164 | |||
| c261c3367a | |||
| 8b92ab25c7 | |||
| 0aa1031270 | |||
| dec8bdb39d | |||
| f318aeb67c | |||
| 8b791e77d6 | |||
| 260b72fec1 | |||
| 7d0beafce0 | |||
| 3c2f8b65ce | |||
| 5f73e8b3bf | |||
| 74afeeb85f | |||
| f8920e5fef | |||
| dd76313084 | |||
| 627ff6f26e | |||
| 705db0b9cf | |||
| 47a958d81d | |||
| 906fc9cc1d | |||
| 44d9525476 | |||
| 8b2a549fab | |||
| 7312e34f46 | |||
| 696be858f6 | |||
| e1f4fd0c7b | |||
| f51320d1bc | |||
| a0764190f2 | |||
| 33c5b35444 | |||
| 04e10f81b5 | |||
| 7f2545a9ef | |||
| a2a16f3f23 | |||
| ab2a947992 | |||
| 7d0a73a6b0 | |||
| e3c3a68566 | |||
| 4fc026b13c | |||
| c0fed4d2c3 | |||
| b656e14453 | |||
| fbab3964e6 | |||
| d9b270b477 | |||
| 7f53a19647 | |||
| 9f1e90d007 | |||
| 9a439e1941 | |||
| 4e4c69993c | |||
| 0d085d500f | |||
| f734c0475b | |||
| a30951dc91 | |||
| c4b37950a9 | |||
| 7cf832a2f4 | |||
| 1f07e7978d | |||
| 5adab2739b | |||
| 2be76760de | |||
| 28c125a3ec | |||
| bdf8a37a8f | |||
| 838711e2ac | |||
| c085691c54 | |||
| 47506d70ed | |||
| efc7cc4980 | |||
| f2016a8aa5 | |||
| d6bbc375c4 | |||
| 885996c5cf | |||
| 4e4604e00a | |||
| b057d4fcb7 | |||
| cdf27296e4 | |||
| 889f111300 | |||
| 520b4f92ab | |||
| feb1d4ebcc | |||
| c11a7589e2 | |||
| c332b7cb40 | |||
| 418dcedc4e | |||
| a21eb9d59e | |||
| 25ed8fe044 | |||
| b079c79390 | |||
| d7a89ef122 | |||
| b95035e7a2 | |||
| e28d29f276 | |||
| c29d78ac0d | |||
| ad9106b815 | |||
| f3ea24f9f9 | |||
| 96fdece478 | |||
| c30a5782df | |||
| c924fcb91f | |||
| 46e7b6d6df | |||
| bb8ecf2f84 | |||
| 7123a6d647 | |||
| eb4ef8b3d7 | |||
| 0d346610a2 | |||
| fe0c1acd79 | |||
| b3552d8c2c | |||
| 206a15191f | |||
| 22de3980d1 | |||
| af35beefc2 | |||
| 532258bea8 | |||
| 5b257293eb | |||
| 8e6d23ddd6 | |||
| 6d5d61c842 | |||
| 9d2e2a1739 | |||
| 19e2642ec1 | |||
| f9df522b41 | |||
| b3e5c4a4aa | |||
| 06ed6c81a7 | |||
| d1e4dbb603 | |||
| abe8079296 | |||
| 033cb2790c | |||
| 188edce258 | |||
| 34858b36c1 | |||
| 044ef3447c | |||
| 2660439160 | |||
| 9502120ee3 | |||
| 7f1a3320dd | |||
| 8a4fd7f182 | |||
| b0a4d15d64 | |||
| 3f6f96cfb4 | |||
| 99a1c98ae0 | |||
| fd718dfd5c | |||
| 31cb2f1999 | |||
| a6a8e32be7 | |||
| 594bb8a76b | |||
| 228bbc1e8e | |||
| b14c2878b3 | |||
| 57f10040e1 | |||
| 0fb67c78a9 | |||
| ff0f7f49da | |||
| 9682e37547 | |||
| 7197d9480b | |||
| 3315c9c7f4 | |||
| f57eff4195 | |||
| f0c8e48403 | |||
| de87bed375 | |||
| 5cdfaab2db | |||
| acb0b029b9 | |||
| 4c74cbbbe9 | |||
| ad64e068db | |||
| 6bed3f3f09 | |||
| d02e55da06 | |||
| d662a8f2b9 | |||
| 13a93102a5 | |||
| 0d6a1e6610 | |||
| 05cd9eebb8 | |||
| d93d8ab1cc | |||
| 540fa0e669 | |||
| 17a10cf6bb | |||
| 11d0f9db03 | |||
| f024ceecdd | |||
| 08c07a0785 | |||
| b843f91b3c | |||
| 4b2c5b3321 | |||
| 2b43f2682a | |||
| 7da0124286 | |||
| feaeef6482 | |||
| 15bcfeec1d | |||
| 5fb002ab4c | |||
| f56ddbb1e0 | |||
| 6bd2a7c962 | |||
| 9d591ae806 | |||
| 7d30e3913c | |||
| 19d7dd7aa3 | |||
| 45444253fd | |||
| 308ade6a7e | |||
| 66d54ccd54 | |||
| ccf8d91f01 | |||
| 7c940a0480 | |||
| 277a2edb57 | |||
| bd742689e9 | |||
| 9ca0c3c41d | |||
| ce8650b4de | |||
| 4bce9d440e | |||
| adc691f516 | |||
| fc67a801e3 | |||
| 6a3657ca87 | |||
| 0537c5f273 | |||
| cc4a5f30b6 | |||
| b0d7c3e9b1 | |||
| 3bf7c44fc9 | |||
| 4ff4e63a11 | |||
| 72a35ba58b | |||
| b6a31979f2 | |||
| 7c710e22cc | |||
| ab58e7a225 | |||
| c9fb97cd7c | |||
| 789f3e1584 | |||
| 0fc8229be1 | |||
| a1e555267e | |||
| 0ac88c0cb5 | |||
| d43a6da62b | |||
| 940455f786 | |||
| 0f74456f30 | |||
| 7840fa6d90 | |||
| 95ccc99fee | |||
| 7b0a156bba | |||
| 0d8ae7bb37 | |||
| 9491cff1df | |||
| 51dc5d6e37 | |||
| f4c739ab92 | |||
| 0dd8ae3d77 | |||
| 7d2878d81c | |||
| bd70a05861 | |||
| 0605c7b2bc | |||
| 8e83a55143 | |||
| 4ab4eb8ef2 | |||
| d1e6150874 | |||
| 4121c99f36 | |||
| 827040f487 | |||
| 9032489786 | |||
| 8ea7bd4913 | |||
| 97b021efaf | |||
| b3f9a77ba7 | |||
| 63fdc1f876 | |||
| 17cf354c58 | |||
| c6fd8bcb99 | |||
| 1684465e04 | |||
| fe2df96953 | |||
| ee9d0cfd99 | |||
| 7b7e18e752 | |||
| 928be4151b | |||
| 37dd648686 | |||
| 93a590774e | |||
| 22b99b6d3e | |||
| 101d626d4f | |||
| 3633c19208 | |||
| e302f328f7 | |||
| f74ba95e95 | |||
| c38982d286 | |||
| fe9bac096b | |||
| 5b809c4fc6 | |||
| 4729e51e14 | |||
| 960cf7a34b | |||
| 852ab19760 | |||
| 2e45d9fc6b | |||
| 74b71b92b6 | |||
| bbc14ba74f | |||
| 45c7829cd8 | |||
| f2aa3afbbb | |||
| 909b01241b | |||
| abb58c58a0 | |||
| 700e10d32c | |||
| 4ac48d0e4a | |||
| 345b2cb835 | |||
| b962309498 | |||
| e99cb9bfb8 | |||
| 9e12e18f90 | |||
| 66fc9b38df | |||
| 5dbe429e6b | |||
| b2481ea6c1 | |||
| 86a294ce4b | |||
| a8d1eadfbf | |||
| b07d3c5403 | |||
| 892db55ae1 | |||
| 93615fef65 | |||
| 87452706ef | |||
| 3569615b21 | |||
| 86f7d09d31 | |||
| d5d1254393 | |||
| 4df90cfb9e | |||
| ec6862d31a | |||
| 6f23010382 | |||
| c672f105d3 | |||
| e60d501e4a | |||
| 0d7175058b | |||
| 3b0bd9d1d1 | |||
| bd28ac6e1f | |||
| 0c2d00c792 | |||
| 140ba653b9 | |||
| f64f008f77 | |||
| a6315bef05 | |||
| f810d7c82a | |||
| cf61dedc79 | |||
| 2ab9587f5f | |||
| 4950b52359 | |||
| 03af444735 | |||
| 7f6221b409 |
@@ -0,0 +1,105 @@
|
||||
---
|
||||
description: For tasks requiring sending Telegram server API requests or working with generated API types.
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# Telegram Desktop API Usage
|
||||
|
||||
## API Schema
|
||||
|
||||
The API definitions are described using [TL Language]\(https:/core.telegram.org/mtproto/TL) in two main schema files:
|
||||
|
||||
1. **`Telegram/SourceFiles/mtproto/scheme/mtproto.tl`**
|
||||
* Defines the core MTProto protocol types and methods used for basic communication, encryption, authorization, service messages, etc.
|
||||
* Some fundamental types and methods from this schema (like basic types, RPC calls, containers) are often implemented directly in the C++ MTProto core (`SourceFiles/mtproto/`) and may be skipped during the C++ code generation phase.
|
||||
* Other parts of `mtproto.tl` might still be processed by the code generator.
|
||||
|
||||
2. **`Telegram/SourceFiles/mtproto/scheme/api.tl`**
|
||||
* Defines the higher-level Telegram API layer, including all the methods and types related to chat functionality, user profiles, messages, channels, stickers, etc.
|
||||
* This is the primary schema used when making functional API requests within the application.
|
||||
|
||||
Both files use the same TL syntax to describe API methods (functions) and types (constructors).
|
||||
|
||||
## Code Generation
|
||||
|
||||
A custom code generation tool processes `api.tl` (and parts of `mtproto.tl`) to create corresponding C++ classes and types. These generated headers are typically included via the Precompiled Header (PCH) for the main `Telegram` project.
|
||||
|
||||
Generated types often follow the pattern `MTP[Type]` (e.g., `MTPUser`, `MTPMessage`) and methods correspond to functions within the `MTP` namespace or related classes (e.g., `MTPmessages_SendMessage`).
|
||||
|
||||
## Making API Requests
|
||||
|
||||
API requests are made using a standard pattern involving the `api()` object (providing access to the `MTP::Instance`), the generated `MTP...` request object, callback handlers for success (`.done()`) and failure (`.fail()`), and the `.send()` method.
|
||||
|
||||
Here's the general structure:
|
||||
|
||||
```cpp
|
||||
// Include necessary headers if not already in PCH
|
||||
|
||||
// Obtain the API instance (usually via api() or MTP::Instance::Get())
|
||||
api().request(MTPnamespace_MethodName(
|
||||
// Constructor arguments based on the api.tl definition for the method
|
||||
MTP_flags(flags_value), // Use MTP_flags if the method has flags
|
||||
MTP_inputPeer(peer), // Use MTP_... types for parameters
|
||||
MTP_string(messageText),
|
||||
MTP_long(randomId),
|
||||
// ... other arguments matching the TL definition
|
||||
MTP_vector<MTPMessageEntity>() // Example for a vector argument
|
||||
)).done([=]\(const MTPResponseType &result) {
|
||||
// Handle the successful response (result).
|
||||
// 'result' will be of the C++ type corresponding to the TL type
|
||||
// specified after the '=' in the api.tl method definition.
|
||||
// How to access data depends on whether the TL type has one or multiple constructors:
|
||||
|
||||
// 1. Multiple Constructors (e.g., User = User | UserEmpty):
|
||||
// Use .match() with lambdas for each constructor:
|
||||
result.match([&]\(const MTPDuser &data) {
|
||||
/* use data.vfirst_name().v, etc. */
|
||||
}, [&]\(const MTPDuserEmpty &data) {
|
||||
/* handle empty user */
|
||||
});
|
||||
|
||||
// Alternatively, check the type explicitly and use the constructor getter:
|
||||
if (result.type() == mtpc_user) {
|
||||
const auto &data = result.c_user(); // Asserts if type is not mtpc_user!
|
||||
// use data.vfirst_name().v
|
||||
} else if (result.type() == mtpc_userEmpty) {
|
||||
const auto &data = result.c_userEmpty();
|
||||
// handle empty user
|
||||
}
|
||||
|
||||
// 2. Single Constructor (e.g., Messages = messages { msgs: vector<Message> }):
|
||||
// Use .match() with a single lambda:
|
||||
result.match([&]\(const MTPDmessages &data) { /* use data.vmessages().v */ });
|
||||
|
||||
// Or check the type explicitly and use the constructor getter:
|
||||
if (result.type() == mtpc_messages) {
|
||||
const auto &data = result.c_messages(); // Asserts if type is not mtpc_messages!
|
||||
// use data.vmessages().v
|
||||
}
|
||||
|
||||
// Or use the shortcut .data() for single-constructor types:
|
||||
const auto &data = result.data(); // Only works for single-constructor types!
|
||||
// use data.vmessages().v
|
||||
|
||||
}).fail([=]\(const MTP::Error &error) {
|
||||
// Handle the API error (error).
|
||||
// 'error' is an MTP::Error object containing the error code (error.type())
|
||||
// and description (error.description()). Check for specific error strings.
|
||||
if (error.type() == u"FLOOD_WAIT_X"_q) {
|
||||
// Handle flood wait
|
||||
} else {
|
||||
Ui::show(Box<InformBox>(Lang::Hard::ServerError())); // Example generic error handling
|
||||
}
|
||||
}).handleFloodErrors().send(); // handleFloodErrors() is common, then send()
|
||||
```
|
||||
|
||||
**Key Points:**
|
||||
|
||||
* Always refer to `Telegram/SourceFiles/mtproto/scheme/api.tl` for the correct method names, parameters (names and types), and response types.
|
||||
* Use the generated `MTP...` types/classes for request parameters (e.g., `MTP_int`, `MTP_string`, `MTP_bool`, `MTP_vector`, `MTPInputUser`, etc.) and response handling.
|
||||
* The `.done()` lambda receives the specific C++ `MTP...` type corresponding to the TL return type.
|
||||
* For types with **multiple constructors** (e.g., `User = User | UserEmpty`), use `result.match([&]\(const MTPDuser &d){ ... }, [&]\(const MTPDuserEmpty &d){ ... })` to handle each case, or check `result.type() == mtpc_user` / `mtpc_userEmpty` and call the specific `result.c_user()` / `result.c_userEmpty()` getter (which asserts on type mismatch).
|
||||
* For types with a **single constructor** (e.g., `Messages = messages{...}`), you can use `result.match([&]\(const MTPDmessages &d){ ... })` with one lambda, or check `type()` and call `c_messages()`, or use the shortcut `result.data()` to access the fields directly.
|
||||
* The `.fail()` lambda receives an `MTP::Error` object. Check `error.type()` against known error strings (often defined as constants or using `u"..."_q` literals).
|
||||
* Directly construct the `MTPnamespace_MethodName(...)` object inside `request()`.
|
||||
* Include `.handleFloodErrors()` before `.send()` for standard flood wait handling.
|
||||
@@ -0,0 +1,164 @@
|
||||
---
|
||||
description: For tasks requiring changing or adding user facing phrases and text parts.
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# Telegram Desktop Localization
|
||||
|
||||
## Coding Style Note
|
||||
|
||||
**Use `auto`:** In the actual codebase, variable types are almost always deduced using `auto` (or `const auto`, `const auto &`) rather than being written out explicitly. Examples in this guide may use explicit types for clarity, but prefer `auto` in practice.
|
||||
|
||||
```cpp
|
||||
// Prefer this:
|
||||
auto currentTitle = tr::lng_settings_title(tr::now);
|
||||
auto nameProducer = GetNameProducer(); // Returns rpl::producer<...>
|
||||
|
||||
// Instead of this:
|
||||
QString currentTitle = tr::lng_settings_title(tr::now);
|
||||
rpl::producer<QString> nameProducer = GetNameProducer();
|
||||
```
|
||||
|
||||
## String Resource File
|
||||
|
||||
Base user-facing English strings are defined in the `lang.strings` file:
|
||||
|
||||
`Telegram/Resources/langs/lang.strings`
|
||||
|
||||
This file uses a key-value format with named placeholders:
|
||||
|
||||
```
|
||||
"lng_settings_title" = "Settings";
|
||||
"lng_confirm_delete_item" = "Are you sure you want to delete {item_name}?";
|
||||
"lng_files_selected" = "{count} files selected"; // Simple count example (see Pluralization)
|
||||
```
|
||||
|
||||
Placeholders are enclosed in curly braces, e.g., `{name}`, `{user}`. A special placeholder `{count}` is used for pluralization rules.
|
||||
|
||||
### Pluralization
|
||||
|
||||
For keys that depend on a number (using the `{count}` placeholder), English typically requires two forms: singular and plural. These are defined in `lang.strings` using `#one` and `#other` suffixes:
|
||||
|
||||
```
|
||||
"lng_files_selected#one" = "{count} file selected";
|
||||
"lng_files_selected#other" = "{count} files selected";
|
||||
```
|
||||
|
||||
While only `#one` and `#other` are defined in the base `lang.strings`, the code generation process creates C++ accessors for all six CLDR plural categories (`#zero`, `#one`, `#two`, `#few`, `#many`, `#other`) to support languages with more complex pluralization rules.
|
||||
|
||||
## Translation Process
|
||||
|
||||
While `lang.strings` provides the base English text and the keys, the actual translations are managed via Telegram's translations platform (translations.telegram.org) and loaded dynamically at runtime from the API. The keys from `lang.strings` (including the `#one`/`#other` variants) are used on the platform.
|
||||
|
||||
## Code Generation
|
||||
|
||||
A code generation tool processes `lang.strings` to create C++ structures and accessors within the `tr` namespace. These allow type-safe access to strings and handling of placeholders and pluralization. Generated keys typically follow the pattern `tr::lng_key_name`.
|
||||
|
||||
## String Usage in Code
|
||||
|
||||
Strings are accessed in C++ code using the generated objects within the `tr::` namespace. There are two main ways to use them: reactively (returning an `rpl::producer`) or immediately (returning the current value).
|
||||
|
||||
### 1. Reactive Usage (rpl::producer)
|
||||
|
||||
Calling a generated string function directly returns a reactive producer, typically `rpl::producer<QString>`. This producer automatically updates its value whenever the application language changes.
|
||||
|
||||
```cpp
|
||||
// Key: "settings_title" = "Settings";
|
||||
auto titleProducer = tr::lng_settings_title(); // Type: rpl::producer<QString>
|
||||
|
||||
// Key: "confirm_delete_item" = "Are you sure you want to delete {item_name}?";
|
||||
auto itemNameProducer = /* ... */; // Type: rpl::producer<QString>
|
||||
auto confirmationProducer = tr::lng_confirm_delete_item( // Type: rpl::producer<QString>
|
||||
tr::now, // NOTE: tr::now is NOT passed here for reactive result
|
||||
lt_item_name,
|
||||
std::move(itemNameProducer)); // Placeholder producers should be moved
|
||||
```
|
||||
|
||||
### 2. Immediate Usage (Current Value)
|
||||
|
||||
Passing `tr::now` as the first argument retrieves the string's current value in the active language (typically as a `QString`).
|
||||
|
||||
```cpp
|
||||
// Key: "settings_title" = "Settings";
|
||||
auto currentTitle = tr::lng_settings_title(tr::now); // Type: QString
|
||||
|
||||
// Key: "confirm_delete_item" = "Are you sure you want to delete {item_name}?";
|
||||
const auto currentItemName = QString("My Document"); // Type: QString
|
||||
auto currentConfirmation = tr::lng_confirm_delete_item( // Type: QString
|
||||
tr::now, // Pass tr::now for immediate value
|
||||
lt_item_name, currentItemName); // Placeholder value is a direct QString (or convertible)
|
||||
```
|
||||
|
||||
### 3. Placeholders (`{tag}`)
|
||||
|
||||
Placeholders like `{item_name}` are replaced by providing arguments after `tr::now` (for immediate) or as the initial arguments (for reactive). A corresponding `lt_tag_name` constant is passed before the value.
|
||||
|
||||
* **Immediate:** Pass the direct value (e.g., `QString`, `int`).
|
||||
* **Reactive:** Pass an `rpl::producer` of the corresponding type (e.g., `rpl::producer<QString>`). Remember to `std::move` the producer or use `rpl::duplicate` if you need to reuse the original producer afterwards.
|
||||
|
||||
### 4. Pluralization (`{count}`)
|
||||
|
||||
Keys using `{count}` require a numeric value for the `lt_count` placeholder. The correct plural form (`#zero`, `#one`, ..., `#other`) is automatically selected based on this value and the current language rules.
|
||||
|
||||
* **Immediate (`tr::now`):** Pass a `float64` or `int` (which is auto-converted to `float64`).
|
||||
```cpp
|
||||
int count = 1;
|
||||
auto filesText = tr::lng_files_selected(tr::now, lt_count, count); // Type: QString
|
||||
count = 5;
|
||||
filesText = tr::lng_files_selected(tr::now, lt_count, count); // Uses "files_selected#other"
|
||||
```
|
||||
|
||||
* **Reactive:** Pass an `rpl::producer<float64>`. Use the `tr::to_count()` helper to convert an `rpl::producer<int>` or wrap a single value.
|
||||
```cpp
|
||||
// From an existing int producer:
|
||||
auto countProducer = /* ... */; // Type: rpl::producer<int>
|
||||
auto filesTextProducer = tr::lng_files_selected( // Type: rpl::producer<QString>
|
||||
lt_count,
|
||||
countProducer | tr::to_count()); // Use tr::to_count() for conversion
|
||||
|
||||
// From a single int value wrapped reactively:
|
||||
int currentCount = 5;
|
||||
auto filesTextProducerSingle = tr::lng_files_selected( // Type: rpl::producer<QString>
|
||||
lt_count,
|
||||
rpl::single(currentCount) | tr::to_count());
|
||||
// Alternative for single values (less common): rpl::single(currentCount * 1.)
|
||||
```
|
||||
|
||||
### 5. Custom Projectors
|
||||
|
||||
An optional final argument can be a projector function (like `Ui::Text::Upper` or `Ui::Text::WithEntities`) to transform the output.
|
||||
|
||||
* If the projector returns `OutputType`, the string function returns `OutputType` (immediate) or `rpl::producer<OutputType>` (reactive).
|
||||
* Placeholder values must match the projector's *input* requirements. For `Ui::Text::WithEntities`, placeholders expect `TextWithEntities` (immediate) or `rpl::producer<TextWithEntities>` (reactive).
|
||||
|
||||
```cpp
|
||||
// Immediate with Ui::Text::WithEntities projector
|
||||
// Key: "user_posted_photo" = "{user} posted a photo";
|
||||
const auto userName = TextWithEntities{ /* ... */ }; // Type: TextWithEntities
|
||||
auto message = tr::lng_user_posted_photo( // Type: TextWithEntities
|
||||
tr::now,
|
||||
lt_user,
|
||||
userName, // Must be TextWithEntities
|
||||
Ui::Text::WithEntities); // Projector
|
||||
|
||||
// Reactive with Ui::Text::WithEntities projector
|
||||
auto userNameProducer = /* ... */; // Type: rpl::producer<TextWithEntities>
|
||||
auto messageProducer = tr::lng_user_posted_photo( // Type: rpl::producer<TextWithEntities>
|
||||
lt_user,
|
||||
std::move(userNameProducer), // Move placeholder producers
|
||||
Ui::Text::WithEntities); // Projector
|
||||
```
|
||||
|
||||
## Key Summary
|
||||
|
||||
* Keys are defined in `Resources/langs/lang.strings` using `{tag}` placeholders.
|
||||
* Plural keys use `{count}` and have `#one`/`#other` variants in `lang.strings`.
|
||||
* Access keys via `tr::lng_key_name(...)` in C++.
|
||||
* Call with `tr::now` as the first argument for the immediate `QString` (or projected type).
|
||||
* Call without `tr::now` for the reactive `rpl::producer<QString>` (or projected type).
|
||||
* Provide placeholder values (`lt_tag_name, value`) matching the usage (direct value for immediate, `rpl::producer` for reactive). Producers should typically be moved via `std::move`.
|
||||
* For `{count}`:
|
||||
* Immediate: Pass `int` or `float64`.
|
||||
* Reactive: Pass `rpl::producer<float64>`, typically by converting an `int` producer using `| tr::to_count()`.
|
||||
* Optional projector function as the last argument modifies the output type and required placeholder types.
|
||||
* Actual translations are loaded at runtime from the API.
|
||||
@@ -0,0 +1,216 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
# RPL (Reactive Programming Library) Guide
|
||||
|
||||
## Coding Style Note
|
||||
|
||||
**Use `auto`:** In the actual codebase, variable types are almost always deduced using `auto` (or `const auto`, `const auto &`) rather than being written out explicitly. Examples in this guide may use explicit types for clarity, but prefer `auto` in practice.
|
||||
|
||||
```cpp
|
||||
// Prefer this:
|
||||
auto intProducer = rpl::single(123);
|
||||
const auto &lifetime = existingLifetime;
|
||||
|
||||
// Instead of this:
|
||||
rpl::producer<int> intProducer = rpl::single(123);
|
||||
const rpl::lifetime &lifetime = existingLifetime;
|
||||
|
||||
// Sometimes needed if deduction is ambiguous or needs help:
|
||||
auto user = std::make_shared<UserData>();
|
||||
auto data = QByteArray::fromHex("...");
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
RPL is the reactive programming library used in this project, residing in the `rpl::` namespace. It allows handling asynchronous streams of data over time.
|
||||
|
||||
The core concept is the `rpl::producer`, which represents a stream of values that can be generated over a certain lifetime.
|
||||
|
||||
## Producers: `rpl::producer<Type, Error = no_error>`
|
||||
|
||||
The fundamental building block is `rpl::producer<Type, Error>`. It produces values of `Type` and can optionally signal an error of type `Error`. By default, `Error` is `rpl::no_error`, indicating that the producer does not explicitly handle error signaling through this mechanism.
|
||||
|
||||
```cpp
|
||||
// A producer that emits integers.
|
||||
auto intProducer = /* ... */; // Type: rpl::producer<int>
|
||||
|
||||
// A producer that emits strings and can potentially emit a CustomError.
|
||||
auto stringProducerWithError = /* ... */; // Type: rpl::producer<QString, CustomError>
|
||||
```
|
||||
|
||||
Producers are typically lazy; they don't start emitting values until someone subscribes to them.
|
||||
|
||||
## Lifetime Management: `rpl::lifetime`
|
||||
|
||||
Reactive pipelines have a limited duration, managed by `rpl::lifetime`. An `rpl::lifetime` object essentially holds a collection of cleanup callbacks. When the lifetime ends (either explicitly destroyed or goes out of scope), these callbacks are executed, tearing down the associated pipeline and freeing resources.
|
||||
|
||||
```cpp
|
||||
rpl::lifetime myLifetime;
|
||||
// ... later ...
|
||||
// myLifetime is destroyed, cleanup happens.
|
||||
|
||||
// Or, pass a lifetime instance to manage a pipeline's duration.
|
||||
rpl::lifetime &parentLifetime = /* ... get lifetime from context ... */;
|
||||
```
|
||||
|
||||
## Starting a Pipeline: `rpl::start_...`
|
||||
|
||||
To consume values from a producer, you start a pipeline using one of the `rpl::start_...` methods. These methods subscribe to the producer and execute callbacks for the events they handle.
|
||||
|
||||
The most common method is `rpl::on_next`:
|
||||
|
||||
```cpp
|
||||
auto counter = /* ... */; // Type: rpl::producer<int>
|
||||
rpl::lifetime lifetime;
|
||||
|
||||
// Counter is consumed here, use std::move if it's an l-value.
|
||||
std::move(
|
||||
counter
|
||||
) | rpl::on_next([=]\(int nextValue) {
|
||||
// Process the next integer value emitted by the producer.
|
||||
qDebug() << "Received: " << nextValue;
|
||||
}, lifetime); // Pass the lifetime to manage the subscription.
|
||||
// Note: `counter` is now in a moved-from state and likely invalid.
|
||||
|
||||
// If you need to start the same producer multiple times, duplicate it:
|
||||
// rpl::duplicate(counter) | rpl::on_next(...);
|
||||
|
||||
// If you DON'T pass a lifetime to a start_... method:
|
||||
auto counter2 = /* ... */; // Type: rpl::producer<int>
|
||||
rpl::lifetime subscriptionLifetime = std::move(
|
||||
counter2
|
||||
) | rpl::on_next([=]\(int nextValue) { /* ... */ });
|
||||
// The returned lifetime MUST be stored. If it's discarded immediately,
|
||||
// the subscription stops instantly.
|
||||
// `counter2` is also moved-from here.
|
||||
```
|
||||
|
||||
Other variants allow handling errors (`_error`) and completion (`_done`):
|
||||
|
||||
```cpp
|
||||
auto dataStream = /* ... */; // Type: rpl::producer<QString, Error>
|
||||
rpl::lifetime lifetime;
|
||||
|
||||
// Assuming dataStream might be used again, we duplicate it for the first start.
|
||||
// If it's the only use, std::move(dataStream) would be preferred.
|
||||
rpl::duplicate(
|
||||
dataStream
|
||||
) | rpl::on_error([=]\(Error &&error) {
|
||||
// Handle the error signaled by the producer.
|
||||
qDebug() << "Error: " << error.text();
|
||||
}, lifetime);
|
||||
|
||||
// Using dataStream again, perhaps duplicated again or moved if last use.
|
||||
rpl::duplicate(
|
||||
dataStream
|
||||
) | rpl::on_done([=] {
|
||||
// Execute when the producer signals it's finished emitting values.
|
||||
qDebug() << "Stream finished.";
|
||||
}, lifetime);
|
||||
|
||||
// Last use of dataStream, so we move it.
|
||||
std::move(
|
||||
dataStream
|
||||
) | rpl::on_next_error_done(
|
||||
[=]\(QString &&value) { /* handle next value */ },
|
||||
[=]\(Error &&error) { /* handle error */ },
|
||||
[=] { /* handle done */ },
|
||||
lifetime);
|
||||
```
|
||||
|
||||
## Transforming Producers
|
||||
|
||||
RPL provides functions to create new producers by transforming existing ones:
|
||||
|
||||
* `rpl::map`: Transforms each value emitted by a producer.
|
||||
```cpp
|
||||
auto ints = /* ... */; // Type: rpl::producer<int>
|
||||
// The pipe operator often handles the move implicitly for chained transformations.
|
||||
auto strings = std::move(
|
||||
ints // Explicit move is safer
|
||||
) | rpl::map([](int value) {
|
||||
return QString::number(value * 2);
|
||||
}); // Emits strings like "0", "2", "4", ...
|
||||
```
|
||||
|
||||
* `rpl::filter`: Emits only the values from a producer that satisfy a condition.
|
||||
```cpp
|
||||
auto ints = /* ... */; // Type: rpl::producer<int>
|
||||
auto evenInts = std::move(
|
||||
ints // Explicit move is safer
|
||||
) | rpl::filter([](int value) {
|
||||
return (value % 2 == 0);
|
||||
}); // Emits only even numbers.
|
||||
```
|
||||
|
||||
## Combining Producers
|
||||
|
||||
You can combine multiple producers into one:
|
||||
|
||||
* `rpl::combine`: Combines the latest values from multiple producers whenever *any* of them emits a new value. Requires all producers to have emitted at least one value initially.
|
||||
While it produces a `std::tuple`, subsequent operators like `map`, `filter`, and `start_with_next` can automatically unpack this tuple into separate lambda arguments.
|
||||
```cpp
|
||||
auto countProducer = rpl::single(1); // Type: rpl::producer<int>
|
||||
auto textProducer = rpl::single(u"hello"_q); // Type: rpl::producer<QString>
|
||||
rpl::lifetime lifetime;
|
||||
|
||||
// rpl::combine takes producers by const-ref internally and duplicates,
|
||||
// so move/duplicate is usually not strictly needed here unless you
|
||||
// want to signal intent or manage the lifetime of p1/p2 explicitly.
|
||||
auto combined = rpl::combine(
|
||||
countProducer, // or rpl::duplicate(countProducer)
|
||||
textProducer // or rpl::duplicate(textProducer)
|
||||
);
|
||||
|
||||
// Starting the combined producer consumes it.
|
||||
// The lambda receives unpacked arguments, not the tuple itself.
|
||||
std::move(
|
||||
combined
|
||||
) | rpl::on_next([=]\(int count, const QString &text) {
|
||||
// No need for std::get<0>(latest), etc.
|
||||
qDebug() << "Combined: Count=" << count << ", Text=" << text;
|
||||
}, lifetime);
|
||||
|
||||
// This also works with map, filter, etc.
|
||||
std::move(
|
||||
combined
|
||||
) | rpl::filter([=]\(int count, const QString &text) {
|
||||
return count > 0 && !text.isEmpty();
|
||||
}) | rpl::map([=]\(int count, const QString &text) {
|
||||
return text.repeated(count);
|
||||
}) | rpl::on_next([=]\(const QString &result) {
|
||||
qDebug() << "Mapped & Filtered: " << result;
|
||||
}, lifetime);
|
||||
```
|
||||
|
||||
* `rpl::merge`: Merges the output of multiple producers of the *same type* into a single producer. It emits a value whenever *any* of the source producers emits a value.
|
||||
```cpp
|
||||
auto sourceA = /* ... */; // Type: rpl::producer<QString>
|
||||
auto sourceB = /* ... */; // Type: rpl::producer<QString>
|
||||
|
||||
// rpl::merge also duplicates internally.
|
||||
auto merged = rpl::merge(sourceA, sourceB);
|
||||
|
||||
// Starting the merged producer consumes it.
|
||||
std::move(
|
||||
merged
|
||||
) | rpl::on_next([=]\(QString &&value) {
|
||||
// Receives values from either sourceA or sourceB as they arrive.
|
||||
qDebug() << "Merged value: " << value;
|
||||
}, lifetime);
|
||||
```
|
||||
|
||||
## Key Concepts Summary
|
||||
|
||||
* Use `rpl::producer<Type, Error>` to represent streams of values.
|
||||
* Manage subscription duration using `rpl::lifetime`.
|
||||
* Pass `rpl::lifetime` to `rpl::start_...` methods.
|
||||
* If `rpl::lifetime` is not passed, **store the returned lifetime** to keep the subscription active.
|
||||
* Use operators like `| rpl::map`, `| rpl::filter` to transform streams.
|
||||
* Use `rpl::combine` or `rpl::merge` to combine streams.
|
||||
* When starting a chain (`std::move(producer) | rpl::map(...)`), explicitly move the initial producer.
|
||||
* These functions typically duplicate their input producers internally.
|
||||
* Starting a pipeline consumes the producer; use `
|
||||
@@ -0,0 +1,154 @@
|
||||
---
|
||||
description: For tasks requiring working with user facing UI components.
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# Telegram Desktop UI Styling
|
||||
|
||||
## Style Definition Files
|
||||
|
||||
UI element styles (colors, fonts, paddings, margins, icons, etc.) are defined in `.style` files using a custom syntax. These files are located alongside the C++ source files they correspond to within specific UI component directories (e.g., `Telegram/SourceFiles/ui/chat/chat.style`).
|
||||
|
||||
Definitions from other `.style` files can be included using the `using` directive at the top of the file:
|
||||
```style
|
||||
using "ui/basic.style";
|
||||
using "ui/widgets/widgets.style";
|
||||
```
|
||||
|
||||
The central definition of named colors happens in `Telegram/SourceFiles/ui/colors.palette`. This file allows for theme generation and loading colors from various sources.
|
||||
|
||||
### Syntax Overview
|
||||
|
||||
1. **Built-in Types:** The syntax recognizes several base types inferred from the value assigned:
|
||||
* `int`: Integer numbers (e.g., `lineHeight: 20;`)
|
||||
* `bool`: Boolean values (e.g., `useShadow: true;`)
|
||||
* `pixels`: Pixel values, ending with `px` (e.g., `borderWidth: 1px;`). Generated as `int` in C++.
|
||||
* `color`: Named colors defined in `colors.palette` (e.g., `background: windowBg;`)
|
||||
* `icon`: Defined inline using a specific syntax (see below). Generates `style::icon`.
|
||||
* `margins`: Four pixel values for margins or padding. Requires `margins(top, right, bottom, left)` syntax (e.g., `margin: margins(10px, 5px, 10px, 5px);` or `padding: margins(8px, 8px, 8px, 8px);`). Generates `style::margins` (an alias for `QMargins`).
|
||||
* `size`: Two pixel values for width and height (e.g., `iconSize: size(16px, 16px);`). Generates `style::size`.
|
||||
* `point`: Two pixel values for x and y coordinates (e.g., `textPos: point(5px, 2px);`). Generates `style::point`.
|
||||
* `align`: Alignment keywords (e.g., `textAlign: align(center);` or `iconAlign: align(left);`). Generates `style::align`.
|
||||
* `font`: Font definitions (e.g., `font: font(14px semibold);`). Generates `style::font`.
|
||||
* `double`: Floating point numbers (e.g., `disabledOpacity: 0.5;`)
|
||||
|
||||
*Note on Borders:* Borders are typically defined using multiple fields like `border: pixels;` (for width) and `borderFg: color;` (for color), rather than a single CSS-like property.
|
||||
|
||||
2. **Structure Definition:** You can define complex data structures directly within the `.style` file:
|
||||
```style
|
||||
MyButtonStyle { // Defines a structure named 'MyButtonStyle'
|
||||
textPadding: margins; // Field 'textPadding' expects margins type
|
||||
icon: icon; // Field 'icon' of type icon
|
||||
height: pixels; // Field 'height' of type pixels
|
||||
}
|
||||
```
|
||||
This generates a `struct MyButtonStyle { ... };` inside the `namespace style`. Fields will have corresponding C++ types (`style::margins`, `style::icon`, `int`).
|
||||
|
||||
3. **Variable Definition & Inheritance:** Variables are defined using `name: value;` or `groupName { ... }`. They can be of built-in types or custom structures. Structures can be initialized inline or inherit from existing variables.
|
||||
|
||||
**Icon Definition Syntax:** Icons are defined inline using the `icon{...}` syntax. The generator probes for `.svg` files or `.png` files (including `@2x`, `@3x` variants) based on the provided path stem.
|
||||
```style
|
||||
// Single-part icon definition:
|
||||
myIconSearch: icon{{ "gui/icons/search", iconColor }};
|
||||
// Multi-part icon definition (layers drawn bottom-up):
|
||||
myComplexIcon: icon{
|
||||
{ "gui/icons/background", iconBgColor },
|
||||
{ "gui/icons/foreground", iconFgColor }
|
||||
};
|
||||
// Icon with path modifiers (PNG only for flips, SVG only for size):
|
||||
myFlippedIcon: icon{{ "gui/icons/arrow-flip_horizontal", arrowColor }};
|
||||
myResizedIcon: icon{{ "gui/icons/logo-128x128", logoColor }}; // Forces 128x128 for SVG
|
||||
```
|
||||
|
||||
**Other Variable Examples:**
|
||||
```style
|
||||
// Simple variables
|
||||
buttonHeight: 30px;
|
||||
activeButtonColor: buttonBgActive; // Named color from colors.palette
|
||||
|
||||
// Variable of a custom structure type, initialized inline
|
||||
defaultButton: MyButtonStyle {
|
||||
textPadding: margins(10px, 15px, 10px, 15px); // Use margins(...) syntax
|
||||
icon: myIconSearch; // Assign the previously defined icon variable
|
||||
height: buttonHeight; // Reference another variable
|
||||
}
|
||||
|
||||
// Another variable inheriting from 'defaultButton' and overriding/adding fields
|
||||
primaryButton: MyButtonStyle(defaultButton) {
|
||||
icon: myComplexIcon; // Override icon with the multi-part one
|
||||
backgroundColor: activeButtonColor; // Add a field not in MyButtonStyle definition
|
||||
}
|
||||
|
||||
// Style group (often used for specific UI elements)
|
||||
chatInput { // Example using separate border properties and explicit padding
|
||||
border: 1px; // Border width
|
||||
borderFg: defaultInputFieldBorder; // Border color (named color)
|
||||
padding: margins(5px, 10px, 5px, 10px); // Use margins(...) syntax for padding field
|
||||
backgroundColor: defaultChatBg; // Background color
|
||||
}
|
||||
```
|
||||
|
||||
## Code Generation
|
||||
|
||||
A code generation tool processes these `.style` files and `colors.palette` to create C++ objects.
|
||||
- The `using` directives resolve dependencies between `.style` files.
|
||||
- Custom structure definitions (like `MyButtonStyle`) generate corresponding `struct MyButtonStyle { ... };` within the `namespace style`.
|
||||
- Style variables/groups (like `defaultButton`, `primaryButton`, `chatInput`) are generated as objects/structs within the `st` namespace (e.g., `st::defaultButton`, `st::primaryButton`, `st::chatInput`). These generated structs contain members corresponding to the fields defined in the `.style` file.
|
||||
- Color objects are generated into the `st` namespace as well, based on their names in `colors.palette` (e.g., `st::windowBg`, `st::buttonBgActive`).
|
||||
- The generated header files for styles are placed in the `Telegram/SourceFiles/styles/` directory with a `style_` prefix (e.g., `styles/style_widgets.h` for `ui/widgets/widgets.style`). You include them like `#include "styles/style_widgets.h"`.
|
||||
|
||||
Generated C++ types correspond to the `.style` types: `style::color`, `style::font`, `style::margins` (used for both `margin:` and `padding:` fields), `style::icon`, `style::size`, `style::point`, `style::align`, and `int` or `bool` for simple types.
|
||||
|
||||
## Style Usage in Code
|
||||
|
||||
Styles are applied in C++ code by referencing the generated `st::...` objects and their members.
|
||||
|
||||
```cpp
|
||||
// Example: Including the generated style header
|
||||
#include "styles/style_widgets.h" // For styles defined in ui/widgets/widgets.style
|
||||
|
||||
// ... inside some UI class code ...
|
||||
|
||||
// Accessing members of a generated style struct
|
||||
int height = st::primaryButton.height; // Accessing the 'height' field (pixels -> int)
|
||||
const style::icon &icon = st::primaryButton.icon; // Accessing the 'icon' field (st::myComplexIcon)
|
||||
style::margins padding = st::primaryButton.textPadding; // Accessing 'textPadding'
|
||||
style::color bgColor = st::primaryButton.backgroundColor; // Accessing the color (st::activeButtonColor)
|
||||
|
||||
// Applying styles (conceptual examples)
|
||||
myButton->setIcon(st::primaryButton.icon);
|
||||
myButton->setHeight(st::primaryButton.height);
|
||||
myButton->setPadding(st::primaryButton.textPadding);
|
||||
myButton->setBackgroundColor(st::primaryButton.backgroundColor);
|
||||
|
||||
// Using styles directly in painting
|
||||
void MyWidget::paintEvent(QPaintEvent *e) {
|
||||
Painter p(this);
|
||||
p.fillRect(rect(), st::chatInput.backgroundColor); // Use color from chatInput style
|
||||
|
||||
// Border painting requires width and color
|
||||
int borderWidth = st::chatInput.border; // Access border width (pixels -> int)
|
||||
style::color borderColor = st::chatInput.borderFg; // Access border color
|
||||
if (borderWidth > 0) {
|
||||
p.setPen(QPen(borderColor, borderWidth));
|
||||
// Adjust rect for pen width if needed before drawing
|
||||
p.drawRect(rect().adjusted(borderWidth / 2, borderWidth / 2, -borderWidth / 2, -borderWidth / 2));
|
||||
}
|
||||
|
||||
// Access padding (style::margins)
|
||||
style::margins inputPadding = st::chatInput.padding;
|
||||
// ... use inputPadding.top(), inputPadding.left() etc. for content layout ...
|
||||
}
|
||||
```
|
||||
|
||||
**Key Points:**
|
||||
|
||||
* Styles are defined in `.style` files next to their corresponding C++ source files.
|
||||
* `using "path/to/other.style";` includes definitions from other style files.
|
||||
* Named colors are defined centrally in `ui/colors.palette`.
|
||||
* `.style` syntax supports built-in types (like `pixels`, `color`, `margins`, `point`, `size`, `align`, `font`, `double`), custom structure definitions (`Name { field: type; ... }`), variable definitions (`name: value;`), and inheritance (`child: Name(parent) { ... }`).
|
||||
* Values must match the expected type (e.g., fields declared as `margins` type, like `margin:` or `padding:`, require `margins(...)` syntax). Borders are typically set via separate `border: pixels;` and `borderFg: color;` fields.
|
||||
* Icons are defined inline using `name: icon{{ "path_stem", color }};` or `name: icon{ { "path1", c1 }, ... };` syntax, with optional path modifiers.
|
||||
* Code generation creates `struct` definitions in the `style` namespace for custom types and objects/structs in the `st` namespace for defined variables/groups.
|
||||
* Generated headers are in `styles/` with a `style_` prefix and must be included.
|
||||
* Access style properties via the generated `st::` objects (e.g., `st::primaryButton.height`, `st::chatInput.backgroundColor`).
|
||||
@@ -0,0 +1,2 @@
|
||||
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
|
||||
Telegram/ThirdParty/
|
||||
@@ -5,14 +5,9 @@
|
||||
"vscode": {
|
||||
"settings": {
|
||||
"C_Cpp.intelliSenseEngine": "disabled",
|
||||
"clangd.arguments": [
|
||||
"--compile-commands-dir=${workspaceFolder}/out"
|
||||
],
|
||||
"cmake.generator": "Ninja Multi-Config",
|
||||
"cmake.buildDirectory": "${workspaceFolder}/out",
|
||||
"cmake.configureSettings": {
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
"cmake.copyCompileCommands": "${workspaceFolder}/compile_commands.json"
|
||||
},
|
||||
"extensions": [
|
||||
"ms-vscode.cpptools-extension-pack",
|
||||
|
||||
@@ -5,7 +5,7 @@ body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting issues of Telegram Desktop!
|
||||
Thanks for reporting issues of AyuGram Desktop!
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
@@ -39,12 +39,9 @@ body:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Version of Telegram Desktop
|
||||
label: Version of AyuGram Desktop
|
||||
description: >
|
||||
Please note we don't support versions from Linux distro repositories.
|
||||
If you need support for these versions, **please contact your distro maintainer**
|
||||
or your distro bugtracker.
|
||||
**Don't use 'latest'**, specify actual version, **that's a reason to close your issue**.
|
||||
**Don't use 'latest'**, specify actual version.
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -52,11 +49,10 @@ body:
|
||||
label: Installation source
|
||||
multiple: false
|
||||
options:
|
||||
- Static binary from official website
|
||||
- Microsoft Store
|
||||
- Mac App Store
|
||||
- Flatpak
|
||||
- Snap
|
||||
- Binary from GitHub / @AyuGramReleases channel
|
||||
- Arch Linux (ayugram-desktop / ayugram-desktop-git)
|
||||
- Arch Linux (ayugram-desktop-bin)
|
||||
- flatpak by 0FL01
|
||||
- Other (unofficial) source
|
||||
validations:
|
||||
required: true
|
||||
@@ -65,9 +61,7 @@ body:
|
||||
label: Crash ID
|
||||
description: >
|
||||
If you're reporting a crash, please enter the crash ID from the crash reporter
|
||||
opening on the next launch after crash. **You have to enable beta versions
|
||||
installation in Settings -> Advanced for the reporter to appear.**
|
||||
You don't have to wait for a beta version to arrive.
|
||||
opening on the next launch after crash.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
|
||||
@@ -7,5 +7,5 @@ contact_links:
|
||||
url: https://bugs.telegram.org
|
||||
about: Any bug report or feature request not about Telegram Desktop.
|
||||
- name: Question
|
||||
url: https://t.me/TelegramDesktopTalk
|
||||
url: https://t.me/ayugramchat
|
||||
about: Ask a question.
|
||||
|
||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 142 KiB |
@@ -1,6 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
@@ -1,125 +0,0 @@
|
||||
name: Linux.
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '**.md'
|
||||
- 'changelog.txt'
|
||||
- 'LEGAL'
|
||||
- 'LICENSE'
|
||||
- '.github/**'
|
||||
- '!.github/workflows/linux.yml'
|
||||
- 'snap/**'
|
||||
- 'Telegram/build/**'
|
||||
- 'Telegram/Resources/uwp/**'
|
||||
- 'Telegram/Resources/winrc/**'
|
||||
- 'Telegram/SourceFiles/platform/win/**'
|
||||
- 'Telegram/SourceFiles/platform/mac/**'
|
||||
- 'Telegram/Telegram/**'
|
||||
- 'Telegram/configure.bat'
|
||||
- 'Telegram/Telegram.plist'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '**.md'
|
||||
- 'changelog.txt'
|
||||
- 'LEGAL'
|
||||
- 'LICENSE'
|
||||
- '.github/**'
|
||||
- '!.github/workflows/linux.yml'
|
||||
- 'snap/**'
|
||||
- 'Telegram/build/**'
|
||||
- 'Telegram/Resources/uwp/**'
|
||||
- 'Telegram/Resources/winrc/**'
|
||||
- 'Telegram/SourceFiles/platform/win/**'
|
||||
- 'Telegram/SourceFiles/platform/mac/**'
|
||||
- 'Telegram/Telegram/**'
|
||||
- 'Telegram/configure.bat'
|
||||
- 'Telegram/Telegram.plist'
|
||||
|
||||
jobs:
|
||||
|
||||
linux:
|
||||
name: Rocky Linux 8
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
defines:
|
||||
- ""
|
||||
- "DESKTOP_APP_DISABLE_X11_INTEGRATION"
|
||||
|
||||
env:
|
||||
UPLOAD_ARTIFACT: "true"
|
||||
|
||||
steps:
|
||||
- name: Get repository name.
|
||||
run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{ env.REPO_NAME }}
|
||||
|
||||
- name: First set up.
|
||||
run: |
|
||||
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
|
||||
docker pull ghcr.io/$GITHUB_REPOSITORY/centos_env
|
||||
docker tag ghcr.io/$GITHUB_REPOSITORY/centos_env tdesktop:centos_env
|
||||
|
||||
- name: Telegram Desktop build.
|
||||
run: |
|
||||
cd $REPO_NAME
|
||||
|
||||
DEFINE=""
|
||||
if [ -n "${{ matrix.defines }}" ]; then
|
||||
DEFINE="-D ${{ matrix.defines }}=ON"
|
||||
echo Define from matrix: $DEFINE
|
||||
echo "ARTIFACT_NAME=Telegram_${{ matrix.defines }}" >> $GITHUB_ENV
|
||||
else
|
||||
echo "ARTIFACT_NAME=Telegram" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
docker run --rm \
|
||||
-u $(id -u) \
|
||||
-v $PWD:/usr/src/tdesktop \
|
||||
-e CONFIG=Debug \
|
||||
tdesktop:centos_env \
|
||||
/usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \
|
||||
-D CMAKE_C_FLAGS_DEBUG="" \
|
||||
-D CMAKE_CXX_FLAGS_DEBUG="" \
|
||||
-D CMAKE_C_FLAGS="-Werror" \
|
||||
-D CMAKE_CXX_FLAGS="-Werror" \
|
||||
-D CMAKE_EXE_LINKER_FLAGS="-s" \
|
||||
-D TDESKTOP_API_TEST=ON \
|
||||
-D DESKTOP_APP_DISABLE_AUTOUPDATE=OFF \
|
||||
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF \
|
||||
$DEFINE
|
||||
|
||||
- name: Check.
|
||||
run: |
|
||||
filePath="$REPO_NAME/out/Debug/Telegram"
|
||||
if test -f "$filePath"; then
|
||||
echo "Build successfully done! :)"
|
||||
|
||||
size=$(stat -c %s "$filePath")
|
||||
echo "File size of ${filePath}: ${size} Bytes."
|
||||
else
|
||||
echo "Build error, output file does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Move artifact.
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
run: |
|
||||
cd $REPO_NAME/out/Debug
|
||||
mkdir artifact
|
||||
mv {Telegram,Updater} artifact/
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
name: Upload artifact.
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_NAME }}
|
||||
path: ${{ env.REPO_NAME }}/out/Debug/artifact/
|
||||
@@ -1,201 +0,0 @@
|
||||
name: Windows.
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '**.md'
|
||||
- 'changelog.txt'
|
||||
- 'LEGAL'
|
||||
- 'LICENSE'
|
||||
- '.github/**'
|
||||
- '!.github/workflows/win.yml'
|
||||
- 'lib/xdg/**'
|
||||
- 'snap/**'
|
||||
- 'Telegram/build/docker/**'
|
||||
- 'Telegram/Resources/uwp/**'
|
||||
- 'Telegram/SourceFiles/platform/linux/**'
|
||||
- 'Telegram/SourceFiles/platform/mac/**'
|
||||
- 'Telegram/Telegram/**'
|
||||
- 'Telegram/configure.sh'
|
||||
- 'Telegram/Telegram.plist'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '**.md'
|
||||
- 'changelog.txt'
|
||||
- 'LEGAL'
|
||||
- 'LICENSE'
|
||||
- '.github/**'
|
||||
- '!.github/workflows/win.yml'
|
||||
- 'lib/xdg/**'
|
||||
- 'snap/**'
|
||||
- 'Telegram/build/docker/**'
|
||||
- 'Telegram/Resources/uwp/**'
|
||||
- 'Telegram/SourceFiles/platform/linux/**'
|
||||
- 'Telegram/SourceFiles/platform/mac/**'
|
||||
- 'Telegram/Telegram/**'
|
||||
- 'Telegram/configure.sh'
|
||||
- 'Telegram/Telegram.plist'
|
||||
|
||||
jobs:
|
||||
|
||||
windows:
|
||||
name: Windows
|
||||
runs-on: windows-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [Win32, x64]
|
||||
generator: ["", "Ninja Multi-Config"]
|
||||
|
||||
env:
|
||||
UPLOAD_ARTIFACT: "true"
|
||||
ONLY_CACHE: "false"
|
||||
PREPARE_PATH: "Telegram/build/prepare/prepare.py"
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: cmd
|
||||
|
||||
steps:
|
||||
- name: Prepare directories.
|
||||
run: |
|
||||
mkdir %userprofile%\TBuild\Libraries
|
||||
mklink /d %GITHUB_WORKSPACE%\TBuild %userprofile%\TBuild
|
||||
echo TBUILD=%GITHUB_WORKSPACE%\TBuild>>%GITHUB_ENV%
|
||||
|
||||
- name: Get repository name.
|
||||
shell: bash
|
||||
run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||
name: Native Tools Command Prompt.
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{ env.TBUILD }}\${{ env.REPO_NAME }}
|
||||
|
||||
- name: Set up environment paths.
|
||||
shell: bash
|
||||
run: |
|
||||
echo "CACHE_KEY=$(sha256sum $TBUILD/$REPO_NAME/$PREPARE_PATH | awk '{ print $1 }')" >> $GITHUB_ENV
|
||||
|
||||
echo "Configurate git for cherry-picks."
|
||||
git config --global user.email "you@example.com"
|
||||
git config --global user.name "Sample"
|
||||
|
||||
- name: NuGet sources.
|
||||
run: |
|
||||
nuget sources Disable -Name "Microsoft Visual Studio Offline Packages"
|
||||
nuget sources Add -Source https://api.nuget.org/v3/index.json & exit 0
|
||||
|
||||
- name: ThirdParty cache.
|
||||
id: cache-third-party
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ env.TBUILD }}\ThirdParty
|
||||
key: ${{ runner.OS }}-${{ matrix.arch }}-third-party-${{ env.CACHE_KEY }}
|
||||
restore-keys: ${{ runner.OS }}-${{ matrix.arch }}-third-party-
|
||||
|
||||
- name: Libraries cache.
|
||||
id: cache-libs
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ env.TBUILD }}\Libraries
|
||||
key: ${{ runner.OS }}-${{ matrix.arch }}-libs-${{ env.CACHE_KEY }}
|
||||
restore-keys: ${{ runner.OS }}-${{ matrix.arch }}-libs-
|
||||
|
||||
- name: Libraries.
|
||||
env:
|
||||
GYP_MSVS_OVERRIDE_PATH: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\'
|
||||
GYP_MSVS_VERSION: 2022
|
||||
run: |
|
||||
cd %TBUILD%
|
||||
%REPO_NAME%\Telegram\build\prepare\win.bat skip-release silent
|
||||
|
||||
- name: Read configuration matrix.
|
||||
shell: bash
|
||||
run: |
|
||||
ARTIFACT_NAME="Telegram"
|
||||
|
||||
ARCH=""
|
||||
if [ -n "${{ matrix.arch }}" ]; then
|
||||
case "${{ matrix.arch }}" in
|
||||
Win32) ARCH="x86";;
|
||||
*) ARCH="${{ matrix.arch }}";;
|
||||
esac
|
||||
echo "Architecture from matrix: $ARCH"
|
||||
ARTIFACT_NAME="${ARTIFACT_NAME}_${{ matrix.arch }}"
|
||||
fi
|
||||
|
||||
GENERATOR=""
|
||||
if [ -n "${{ matrix.generator }}" ]; then
|
||||
GENERATOR="-G \"${{ matrix.generator }}\""
|
||||
echo "Generator from matrix: $GENERATOR"
|
||||
ARTIFACT_NAME="${ARTIFACT_NAME}_${{ matrix.generator }}"
|
||||
fi
|
||||
echo "TDESKTOP_BUILD_GENERATOR=$GENERATOR" >> $GITHUB_ENV
|
||||
|
||||
[ -n "$GENERATOR" ] && ARCH=""
|
||||
echo "TDESKTOP_BUILD_ARCH=$ARCH" >> $GITHUB_ENV
|
||||
|
||||
DEFINE=""
|
||||
if [ -n "${{ matrix.defines }}" ]; then
|
||||
DEFINE="-D ${{ matrix.defines }}=ON"
|
||||
echo "Define from matrix: $DEFINE"
|
||||
ARTIFACT_NAME="${ARTIFACT_NAME}_${{ matrix.defines }}"
|
||||
fi
|
||||
echo "TDESKTOP_BUILD_DEFINE=$DEFINE" >> $GITHUB_ENV
|
||||
|
||||
echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV
|
||||
|
||||
API="-D TDESKTOP_API_TEST=ON"
|
||||
if [ $GITHUB_REF == 'refs/heads/nightly' ]; then
|
||||
echo "Use the open credentials."
|
||||
API="-D TDESKTOP_API_ID=611335 -D TDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
|
||||
fi
|
||||
echo "TDESKTOP_BUILD_API=$API" >> $GITHUB_ENV
|
||||
|
||||
- name: Free up some disk space.
|
||||
run: |
|
||||
cd %TBUILD%
|
||||
del /S Libraries\*.pdb
|
||||
del /S Libraries\*.pch
|
||||
del /S Libraries\*.obj
|
||||
|
||||
- name: Telegram Desktop build.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
run: |
|
||||
cd %TBUILD%\%REPO_NAME%\Telegram
|
||||
|
||||
call configure.bat ^
|
||||
%TDESKTOP_BUILD_GENERATOR% ^
|
||||
%TDESKTOP_BUILD_ARCH% ^
|
||||
%TDESKTOP_BUILD_API% ^
|
||||
-D CMAKE_C_FLAGS="/WX" ^
|
||||
-D CMAKE_CXX_FLAGS="/WX" ^
|
||||
-D DESKTOP_APP_DISABLE_AUTOUPDATE=OFF ^
|
||||
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF ^
|
||||
-D DESKTOP_APP_NO_PDB=ON ^
|
||||
%TDESKTOP_BUILD_DEFINE%
|
||||
|
||||
cmake --build ..\out --config Debug --parallel
|
||||
|
||||
- name: Move artifact.
|
||||
if: (env.UPLOAD_ARTIFACT == 'true') || (github.ref == 'refs/heads/nightly')
|
||||
run: |
|
||||
set OUT=%TBUILD%\%REPO_NAME%\out\Debug
|
||||
mkdir artifact
|
||||
move %OUT%\Telegram.exe artifact/
|
||||
move %OUT%\Updater.exe artifact/
|
||||
- uses: actions/upload-artifact@v4
|
||||
name: Upload artifact.
|
||||
if: (env.UPLOAD_ARTIFACT == 'true') || (github.ref == 'refs/heads/nightly')
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_NAME }}
|
||||
path: artifact\
|
||||
@@ -20,6 +20,7 @@ ipch/
|
||||
.vs/
|
||||
.vscode/
|
||||
.cache/
|
||||
compile_commands.json
|
||||
|
||||
/Telegram/log.txt
|
||||
/Telegram/data
|
||||
@@ -53,5 +54,16 @@ stage
|
||||
.idea/
|
||||
cmake-build-debug/
|
||||
|
||||
# Local configuration files
|
||||
settings.local.json
|
||||
*.local.json
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Cursor IDE local settings (but keep .cursor/rules/)
|
||||
.cursor/*
|
||||
!.cursor/rules/
|
||||
|
||||
# Project specific
|
||||
Telegram/SourceFiles/_other/packer_private.h
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
[submodule "Telegram/ThirdParty/libtgvoip"]
|
||||
path = Telegram/ThirdParty/libtgvoip
|
||||
url = https://github.com/telegramdesktop/libtgvoip
|
||||
[submodule "Telegram/ThirdParty/GSL"]
|
||||
path = Telegram/ThirdParty/GSL
|
||||
url = https://github.com/Microsoft/GSL.git
|
||||
@@ -76,9 +73,6 @@
|
||||
[submodule "Telegram/lib_webview"]
|
||||
path = Telegram/lib_webview
|
||||
url = https://github.com/desktop-app/lib_webview.git
|
||||
[submodule "Telegram/ThirdParty/jemalloc"]
|
||||
path = Telegram/ThirdParty/jemalloc
|
||||
url = https://github.com/jemalloc/jemalloc
|
||||
[submodule "Telegram/ThirdParty/dispatch"]
|
||||
path = Telegram/ThirdParty/dispatch
|
||||
url = https://github.com/apple/swift-corelibs-libdispatch
|
||||
@@ -97,3 +91,6 @@
|
||||
[submodule "Telegram/ThirdParty/xdg-desktop-portal"]
|
||||
path = Telegram/ThirdParty/xdg-desktop-portal
|
||||
url = https://github.com/flatpak/xdg-desktop-portal.git
|
||||
[submodule "Telegram/lib_icu"]
|
||||
path = Telegram/lib_icu
|
||||
url = https://github.com/AyuGram/lib_icu.git
|
||||
|
||||
@@ -4,15 +4,7 @@
|
||||
# For license and copyright information please follow this link:
|
||||
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
if (APPLE)
|
||||
# target_precompile_headers with COMPILE_LANGUAGE restriction.
|
||||
cmake_minimum_required(VERSION 3.23)
|
||||
else()
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
endif()
|
||||
if (POLICY CMP0149)
|
||||
cmake_policy(SET CMP0149 NEW)
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.25...3.31)
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
@@ -20,19 +12,17 @@ include(cmake/validate_special_target.cmake)
|
||||
include(cmake/version.cmake)
|
||||
desktop_app_parse_version(Telegram/build/version)
|
||||
|
||||
set(project_langs C CXX)
|
||||
if (APPLE)
|
||||
list(APPEND project_langs OBJC OBJCXX)
|
||||
elseif (LINUX)
|
||||
list(APPEND project_langs ASM)
|
||||
endif()
|
||||
|
||||
project(Telegram
|
||||
LANGUAGES ${project_langs}
|
||||
LANGUAGES C CXX
|
||||
VERSION ${desktop_app_version_cmake}
|
||||
DESCRIPTION "AyuGram Desktop"
|
||||
HOMEPAGE_URL "https://ayugram.one"
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
enable_language(OBJC OBJCXX)
|
||||
endif()
|
||||
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Telegram)
|
||||
|
||||
get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
|
||||
@@ -47,9 +37,7 @@ include(cmake/variables.cmake)
|
||||
include(cmake/nice_target_sources.cmake)
|
||||
include(cmake/target_compile_options_if_exists.cmake)
|
||||
include(cmake/target_link_frameworks.cmake)
|
||||
include(cmake/target_link_optional_libraries.cmake)
|
||||
include(cmake/target_link_options_if_exists.cmake)
|
||||
include(cmake/target_link_static_libraries.cmake)
|
||||
include(cmake/init_target.cmake)
|
||||
include(cmake/generate_target.cmake)
|
||||
include(cmake/nuget.cmake)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
- Кастомизация шрифта
|
||||
- Режим Стримера
|
||||
- Локальный телеграм премиум
|
||||
- Переводчик
|
||||
- Превью медиа и быстрая реакция при сильном нажатии на тачпад (macOS)
|
||||
- Улучшенный вид
|
||||
|
||||
@@ -18,11 +19,18 @@
|
||||
|
||||
<h3>
|
||||
<details>
|
||||
<summary>Скриншоты настроек</summary>
|
||||
<img src='.github/demos/demo1.png' width='268'>
|
||||
<img src='.github/demos/demo2.png' width='268'>
|
||||
<img src='.github/demos/demo3.png' width='268'>
|
||||
<img src='.github/demos/demo4.png' width='268'>
|
||||
<summary>Превью</summary>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src='.github/demos/demo1.png' width='268' alt='Preferences'></td>
|
||||
<td><img src='.github/demos/demo2.png' width='268' alt='AyuGram Options'></td>
|
||||
<td><img src='.github/demos/demo3.png' width='268' alt='Message Filters'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src='.github/demos/demo4.png' width='268' alt='Appearance'></td>
|
||||
<td><img src='.github/demos/demo5.png' width='268' alt='Chats'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</details>
|
||||
</h3>
|
||||
|
||||
@@ -30,10 +38,10 @@
|
||||
|
||||
### Windows
|
||||
|
||||
#### Официальный вариант
|
||||
#### Официальная версия
|
||||
|
||||
Вы можете скачать готовый бинарный файл со вкладки [Releases](https://github.com/AyuGram/AyuGramDesktop/releases) или из
|
||||
[Телеграм чата](https://t.me/ayugramchat/12788).
|
||||
[Телеграм канала](https://t.me/AyuGramReleases).
|
||||
|
||||
#### Winget
|
||||
|
||||
@@ -55,19 +63,49 @@ scoop install ayugram
|
||||
|
||||
### macOS
|
||||
|
||||
#### Официальная версия
|
||||
|
||||
Вы можете скачать подписанный пакет со вкладки [Releases](https://github.com/AyuGram/AyuGramDesktop/releases).
|
||||
|
||||
#### Homebrew
|
||||
|
||||
```bash
|
||||
brew install --cask ayugram
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
|
||||
Вы можете установить `ayugram-desktop` из [AUR](https://aur.archlinux.org/packages?O=0&K=ayugram).
|
||||
#### Из исходников (рекомендованный способ)
|
||||
|
||||
Установите `ayugram-desktop` из [AUR](https://aur.archlinux.org/packages/ayugram-desktop).
|
||||
|
||||
#### Готовые бинарники
|
||||
|
||||
Установите `ayugram-desktop-bin` из [AUR](https://aur.archlinux.org/packages/ayugram-desktop-bin).
|
||||
|
||||
Примечание: данный пакет собирается не нами.
|
||||
|
||||
### NixOS
|
||||
|
||||
Попробуйте [этот репозиторий](https://github.com/ayugram-port/ayugram-desktop).
|
||||
|
||||
### ALT Linux
|
||||
|
||||
[Sisyphus](https://packages.altlinux.org/en/sisyphus/srpms/ayugram-desktop/)
|
||||
|
||||
### Gentoo Linux
|
||||
|
||||
Инструкцию по установке можно найти в [этом репозитории](https://github.com/OverLessArtem/ayugram-ebuild-gentoo).
|
||||
|
||||
### EPM
|
||||
|
||||
`epm play ayugram`
|
||||
|
||||
### Любой другой Линукс дистрибутив
|
||||
|
||||
Следуйте [официальному руководству](https://github.com/AyuGram/AyuGramDesktop/blob/dev/docs/building-linux.md).
|
||||
Flatpak: https://github.com/0FL01/AyuGramDesktop-flatpak
|
||||
|
||||
Или следуйте [официальному руководству](https://github.com/AyuGram/AyuGramDesktop/blob/dev/docs/building-linux.md).
|
||||
|
||||
### Примечания для Windows
|
||||
|
||||
@@ -101,3 +139,7 @@ scoop install ayugram
|
||||
### Иконки
|
||||
|
||||
- [Solar Icon Set](https://www.figma.com/community/file/1166831539721848736)
|
||||
|
||||
### Боты
|
||||
|
||||
- [TelegramDB](https://t.me/tgdatabase) для получения юзернейма по ID
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
- Font customization
|
||||
- Streamer mode
|
||||
- Local Telegram Premium
|
||||
- Translator
|
||||
- Media preview & quick reaction on force click (macOS)
|
||||
- Enhanced appearance
|
||||
|
||||
@@ -19,11 +20,18 @@ And many more. Check out our [Documentation](https://docs.ayugram.one/desktop/).
|
||||
|
||||
<h3>
|
||||
<details>
|
||||
<summary>Preferences screenshots</summary>
|
||||
<img src='.github/demos/demo1.png' width='268'>
|
||||
<img src='.github/demos/demo2.png' width='268'>
|
||||
<img src='.github/demos/demo3.png' width='268'>
|
||||
<img src='.github/demos/demo4.png' width='268'>
|
||||
<summary>Preview</summary>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src='.github/demos/demo1.png' width='268' alt='Preferences'></td>
|
||||
<td><img src='.github/demos/demo2.png' width='268' alt='AyuGram Options'></td>
|
||||
<td><img src='.github/demos/demo3.png' width='268' alt='Message Filters'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src='.github/demos/demo4.png' width='268' alt='Appearance'></td>
|
||||
<td><img src='.github/demos/demo5.png' width='268' alt='Chats'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</details>
|
||||
</h3>
|
||||
|
||||
@@ -34,7 +42,7 @@ And many more. Check out our [Documentation](https://docs.ayugram.one/desktop/).
|
||||
#### Official
|
||||
|
||||
You can download prebuilt Windows binary from [Releases tab](https://github.com/AyuGram/AyuGramDesktop/releases) or from
|
||||
the [Telegram topic](https://t.me/ayugramchat/12788).
|
||||
the [Telegram channel](https://t.me/AyuGramReleases).
|
||||
|
||||
#### Winget
|
||||
|
||||
@@ -56,19 +64,49 @@ build by yourself.
|
||||
|
||||
### macOS
|
||||
|
||||
#### Official
|
||||
|
||||
You can download prebuilt macOS package from [Releases tab](https://github.com/AyuGram/AyuGramDesktop/releases).
|
||||
|
||||
#### Homebrew
|
||||
|
||||
```bash
|
||||
brew install --cask ayugram
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
|
||||
You can install `ayugram-desktop` from [AUR](https://aur.archlinux.org/packages?O=0&K=ayugram).
|
||||
#### From source (recommended)
|
||||
|
||||
Install `ayugram-desktop` from [AUR](https://aur.archlinux.org/packages/ayugram-desktop).
|
||||
|
||||
#### Prebuilt binaries
|
||||
|
||||
Install `ayugram-desktop-bin` from [AUR](https://aur.archlinux.org/packages/ayugram-desktop-bin).
|
||||
|
||||
Note: these binaries aren't officially maintained by us.
|
||||
|
||||
### NixOS
|
||||
|
||||
See [this repository](https://github.com/ayugram-port/ayugram-desktop) for installation manual.
|
||||
|
||||
### ALT Linux
|
||||
|
||||
[Sisyphus](https://packages.altlinux.org/en/sisyphus/srpms/ayugram-desktop/)
|
||||
|
||||
### Gentoo Linux
|
||||
|
||||
See [this repository](https://github.com/OverLessArtem/ayugram-ebuild-gentoo) for installation manual.
|
||||
|
||||
### EPM
|
||||
|
||||
`epm play ayugram`
|
||||
|
||||
### Any other Linux distro
|
||||
|
||||
Follow the [official guide](https://github.com/AyuGram/AyuGramDesktop/blob/dev/docs/building-linux.md).
|
||||
Flatpak: https://github.com/0FL01/AyuGramDesktop-flatpak
|
||||
|
||||
Or follow the [official guide](https://github.com/AyuGram/AyuGramDesktop/blob/dev/docs/building-linux.md).
|
||||
|
||||
### Remarks for Windows
|
||||
|
||||
@@ -98,7 +136,12 @@ Enjoy using **AyuGram**? Consider sending us a tip!
|
||||
- [JSON for Modern C++](https://github.com/nlohmann/json)
|
||||
- [SQLite](https://github.com/sqlite/sqlite)
|
||||
- [sqlite_orm](https://github.com/fnc12/sqlite_orm)
|
||||
- [androidx sources](https://github.com/androidx/androidx)
|
||||
|
||||
### Icons
|
||||
|
||||
- [Solar Icon Set](https://www.figma.com/community/file/1166831539721848736)
|
||||
|
||||
### Bots
|
||||
|
||||
- [TelegramDB](https://t.me/tgdatabase) for username lookup by ID
|
||||
|
||||
@@ -20,13 +20,16 @@ add_subdirectory(lib_webrtc)
|
||||
add_subdirectory(lib_webview)
|
||||
add_subdirectory(codegen)
|
||||
|
||||
# AyuGram filters
|
||||
add_subdirectory(lib_icu)
|
||||
# AyuGram filters
|
||||
|
||||
get_filename_component(src_loc SourceFiles REALPATH)
|
||||
get_filename_component(res_loc Resources REALPATH)
|
||||
|
||||
include(cmake/telegram_options.cmake)
|
||||
include(cmake/lib_ffmpeg.cmake)
|
||||
include(cmake/lib_stripe.cmake)
|
||||
include(cmake/lib_tgvoip.cmake)
|
||||
include(cmake/lib_tgcalls.cmake)
|
||||
include(cmake/lib_prisma.cmake)
|
||||
include(cmake/td_export.cmake)
|
||||
@@ -34,8 +37,9 @@ include(cmake/td_iv.cmake)
|
||||
include(cmake/td_lang.cmake)
|
||||
include(cmake/td_mtproto.cmake)
|
||||
include(cmake/td_scheme.cmake)
|
||||
include(cmake/td_tde2e.cmake)
|
||||
include(cmake/td_ui.cmake)
|
||||
include(cmake/generate_appdata_changelog.cmake)
|
||||
include(cmake/generate_appstream_changelog.cmake)
|
||||
|
||||
if (DESKTOP_APP_TEST_APPS)
|
||||
include(cmake/tests.cmake)
|
||||
@@ -47,17 +51,13 @@ if (WIN32)
|
||||
platform/win/windows_quiethours.idl
|
||||
platform/win/windows_toastactivator.idl
|
||||
)
|
||||
|
||||
nuget_add_winrt(Telegram)
|
||||
endif()
|
||||
|
||||
set_target_properties(Telegram PROPERTIES AUTOMOC ON)
|
||||
|
||||
target_link_libraries(Telegram
|
||||
PRIVATE
|
||||
tdesktop::lib_tgcalls_legacy
|
||||
tdesktop::lib_tgcalls
|
||||
tdesktop::lib_tgvoip
|
||||
|
||||
# Order in this list defines the order of include paths in command line.
|
||||
# We need to place desktop-app::external_minizip this early to have its
|
||||
@@ -71,6 +71,7 @@ PRIVATE
|
||||
tdesktop::td_lang
|
||||
tdesktop::td_mtproto
|
||||
tdesktop::td_scheme
|
||||
tdesktop::td_tde2e
|
||||
tdesktop::td_ui
|
||||
desktop-app::lib_webrtc
|
||||
desktop-app::lib_base
|
||||
@@ -95,6 +96,9 @@ PRIVATE
|
||||
desktop-app::external_openssl
|
||||
desktop-app::external_openal
|
||||
desktop-app::external_xxhash
|
||||
|
||||
# AyuGram filters
|
||||
ayugram::lib_icu
|
||||
)
|
||||
|
||||
set(ayugram_files
|
||||
@@ -110,7 +114,6 @@ set(ayugram_files
|
||||
ayu/ayu_lang.h
|
||||
ayu/ayu_infra.cpp
|
||||
ayu/ayu_infra.h
|
||||
ayu/ayu_constants.h
|
||||
ayu/utils/ayu_mapper.cpp
|
||||
ayu/utils/ayu_mapper.h
|
||||
ayu/utils/qt_key_modifiers_extended.h
|
||||
@@ -130,10 +133,36 @@ set(ayugram_files
|
||||
ayu/ui/ayu_logo.h
|
||||
ayu/ui/utils/ayu_profile_values.cpp
|
||||
ayu/ui/utils/ayu_profile_values.h
|
||||
ayu/ui/settings/icon_picker.cpp
|
||||
ayu/ui/settings/icon_picker.h
|
||||
ayu/ui/utils/color_cut_quantizer.cpp
|
||||
ayu/ui/utils/color_cut_quantizer.h
|
||||
ayu/ui/utils/color_utils.cpp
|
||||
ayu/ui/utils/color_utils.h
|
||||
ayu/ui/utils/palette.cpp
|
||||
ayu/ui/utils/palette.h
|
||||
ayu/ui/utils/itunes_search.cpp
|
||||
ayu/ui/utils/itunes_search.h
|
||||
ayu/ui/settings/settings_appearance.cpp
|
||||
ayu/ui/settings/settings_appearance.h
|
||||
ayu/ui/settings/settings_ayu_utils.cpp
|
||||
ayu/ui/settings/settings_ayu_utils.h
|
||||
ayu/ui/settings/settings_chats.cpp
|
||||
ayu/ui/settings/settings_chats.h
|
||||
ayu/ui/settings/settings_general.cpp
|
||||
ayu/ui/settings/settings_general.h
|
||||
ayu/ui/settings/settings_ayu.cpp
|
||||
ayu/ui/settings/settings_ayu.h
|
||||
ayu/ui/settings/settings_filters.cpp
|
||||
ayu/ui/settings/settings_filters.h
|
||||
ayu/ui/settings/settings_main.cpp
|
||||
ayu/ui/settings/settings_main.h
|
||||
ayu/ui/settings/settings_other.cpp
|
||||
ayu/ui/settings/settings_other.h
|
||||
ayu/ui/settings/filters/settings_filters_list.cpp
|
||||
ayu/ui/settings/filters/settings_filters_list.h
|
||||
ayu/ui/settings/filters/per_dialog_filter.cpp
|
||||
ayu/ui/settings/filters/per_dialog_filter.h
|
||||
ayu/ui/settings/filters/edit_filter.cpp
|
||||
ayu/ui/settings/filters/edit_filter.h
|
||||
ayu/ui/context_menu/context_menu.cpp
|
||||
ayu/ui/context_menu/context_menu.h
|
||||
ayu/ui/context_menu/menu_item_subtext.cpp
|
||||
@@ -144,18 +173,26 @@ set(ayugram_files
|
||||
ayu/ui/message_history/history_item.h
|
||||
ayu/ui/message_history/history_section.cpp
|
||||
ayu/ui/message_history/history_section.h
|
||||
ayu/ui/boxes/edit_deleted_mark.cpp
|
||||
ayu/ui/boxes/edit_deleted_mark.h
|
||||
ayu/ui/boxes/edit_edited_mark.cpp
|
||||
ayu/ui/boxes/edit_edited_mark.h
|
||||
ayu/ui/boxes/edit_mark_box.cpp
|
||||
ayu/ui/boxes/edit_mark_box.h
|
||||
ayu/ui/boxes/font_selector.cpp
|
||||
ayu/ui/boxes/font_selector.h
|
||||
ayu/ui/boxes/import_filters_box.cpp
|
||||
ayu/ui/boxes/import_filters_box.h
|
||||
ayu/ui/boxes/theme_selector_box.cpp
|
||||
ayu/ui/boxes/theme_selector_box.h
|
||||
ayu/ui/boxes/message_shot_box.cpp
|
||||
ayu/ui/boxes/message_shot_box.h
|
||||
ayu/ui/boxes/donate_qr_box.cpp
|
||||
ayu/ui/boxes/donate_qr_box.h
|
||||
ayu/ui/boxes/donate_info_box.cpp
|
||||
ayu/ui/boxes/donate_info_box.h
|
||||
ayu/ui/components/image_view.cpp
|
||||
ayu/ui/components/image_view.h
|
||||
ayu/ui/components/icon_picker.cpp
|
||||
ayu/ui/components/icon_picker.h
|
||||
ayu/ui/components/saved_music.cpp
|
||||
ayu/ui/components/saved_music.h
|
||||
ayu/libs/json.hpp
|
||||
ayu/libs/json_ext.hpp
|
||||
ayu/libs/sqlite/sqlite3.c
|
||||
@@ -169,13 +206,40 @@ set(ayugram_files
|
||||
ayu/features/streamer_mode/platform/streamer_mode_mac.h
|
||||
ayu/features/streamer_mode/streamer_mode.cpp
|
||||
ayu/features/streamer_mode/streamer_mode.h
|
||||
ayu/features/messageshot/message_shot.cpp
|
||||
ayu/features/messageshot/message_shot.h
|
||||
ayu/features/message_shot/message_shot.cpp
|
||||
ayu/features/message_shot/message_shot.h
|
||||
ayu/features/forward/ayu_forward.cpp
|
||||
ayu/features/forward/ayu_forward.h
|
||||
ayu/features/forward/ayu_sync.cpp
|
||||
ayu/features/forward/ayu_sync.h
|
||||
ayu/features/translator/ayu_translator.cpp
|
||||
ayu/features/translator/ayu_translator.h
|
||||
ayu/features/translator/html_parser.cpp
|
||||
ayu/features/translator/html_parser.h
|
||||
ayu/features/translator/implementations/google.cpp
|
||||
ayu/features/translator/implementations/google.h
|
||||
ayu/features/translator/implementations/yandex.cpp
|
||||
ayu/features/translator/implementations/yandex.h
|
||||
ayu/features/translator/implementations/telegram.cpp
|
||||
ayu/features/translator/implementations/telegram.h
|
||||
ayu/features/translator/implementations/base.cpp
|
||||
ayu/features/translator/implementations/base.h
|
||||
ayu/features/filters/filters_controller.cpp
|
||||
ayu/features/filters/filters_controller.h
|
||||
ayu/features/filters/filters_cache_controller.cpp
|
||||
ayu/features/filters/filters_cache_controller.h
|
||||
ayu/features/filters/filters_utils.cpp
|
||||
ayu/features/filters/filters_utils.h
|
||||
ayu/features/filters/shadow_ban_utils.cpp
|
||||
ayu/features/filters/shadow_ban_utils.h
|
||||
ayu/data/messages_storage.cpp
|
||||
ayu/data/messages_storage.h
|
||||
ayu/data/entities.h
|
||||
ayu/data/ayu_database.cpp
|
||||
ayu/data/ayu_database.h
|
||||
|
||||
info/profile/info_profile_music_button.cpp
|
||||
info/profile/info_profile_music_button.h
|
||||
)
|
||||
|
||||
target_precompile_headers(Telegram PRIVATE $<$<COMPILE_LANGUAGE:CXX,OBJCXX>:${src_loc}/stdafx.h>)
|
||||
@@ -210,6 +274,8 @@ PRIVATE
|
||||
api/api_confirm_phone.h
|
||||
api/api_credits.cpp
|
||||
api/api_credits.h
|
||||
api/api_credits_history_entry.cpp
|
||||
api/api_credits_history_entry.h
|
||||
api/api_earn.cpp
|
||||
api/api_earn.h
|
||||
api/api_editing.cpp
|
||||
@@ -231,6 +297,8 @@ PRIVATE
|
||||
api/api_peer_colors.h
|
||||
api/api_peer_photo.cpp
|
||||
api/api_peer_photo.h
|
||||
api/api_peer_search.cpp
|
||||
api/api_peer_search.h
|
||||
api/api_polls.cpp
|
||||
api/api_polls.h
|
||||
api/api_premium.cpp
|
||||
@@ -257,8 +325,12 @@ PRIVATE
|
||||
api/api_statistics_data_deserialize.h
|
||||
api/api_statistics_sender.cpp
|
||||
api/api_statistics_sender.h
|
||||
api/api_suggest_post.cpp
|
||||
api/api_suggest_post.h
|
||||
api/api_text_entities.cpp
|
||||
api/api_text_entities.h
|
||||
api/api_todo_lists.cpp
|
||||
api/api_todo_lists.h
|
||||
api/api_toggling_media.cpp
|
||||
api/api_toggling_media.h
|
||||
api/api_transcribes.cpp
|
||||
@@ -295,8 +367,8 @@ PRIVATE
|
||||
boxes/peers/edit_contact_box.h
|
||||
boxes/peers/edit_forum_topic_box.cpp
|
||||
boxes/peers/edit_forum_topic_box.h
|
||||
boxes/peers/edit_linked_chat_box.cpp
|
||||
boxes/peers/edit_linked_chat_box.h
|
||||
boxes/peers/edit_discussion_link_box.cpp
|
||||
boxes/peers/edit_discussion_link_box.h
|
||||
boxes/peers/edit_members_visible.cpp
|
||||
boxes/peers/edit_members_visible.h
|
||||
boxes/peers/edit_participant_box.cpp
|
||||
@@ -362,6 +434,8 @@ PRIVATE
|
||||
boxes/edit_caption_box.h
|
||||
boxes/edit_privacy_box.cpp
|
||||
boxes/edit_privacy_box.h
|
||||
boxes/edit_todo_list_box.cpp
|
||||
boxes/edit_todo_list_box.h
|
||||
boxes/gift_credits_box.cpp
|
||||
boxes/gift_credits_box.h
|
||||
boxes/gift_premium_box.cpp
|
||||
@@ -408,8 +482,14 @@ PRIVATE
|
||||
boxes/send_files_box.h
|
||||
boxes/share_box.cpp
|
||||
boxes/share_box.h
|
||||
boxes/star_gift_auction_box.cpp
|
||||
boxes/star_gift_auction_box.h
|
||||
boxes/star_gift_box.cpp
|
||||
boxes/star_gift_box.h
|
||||
boxes/star_gift_preview_box.cpp
|
||||
boxes/star_gift_preview_box.h
|
||||
boxes/star_gift_resale_box.cpp
|
||||
boxes/star_gift_resale_box.h
|
||||
boxes/sticker_set_box.cpp
|
||||
boxes/sticker_set_box.h
|
||||
boxes/stickers_box.cpp
|
||||
@@ -438,12 +518,22 @@ PRIVATE
|
||||
calls/group/calls_group_members_row.h
|
||||
calls/group/calls_group_menu.cpp
|
||||
calls/group/calls_group_menu.h
|
||||
calls/group/calls_group_message_encryption.cpp
|
||||
calls/group/calls_group_message_encryption.h
|
||||
calls/group/calls_group_message_field.cpp
|
||||
calls/group/calls_group_message_field.h
|
||||
calls/group/calls_group_messages.cpp
|
||||
calls/group/calls_group_messages.h
|
||||
calls/group/calls_group_messages_ui.cpp
|
||||
calls/group/calls_group_messages_ui.h
|
||||
calls/group/calls_group_panel.cpp
|
||||
calls/group/calls_group_panel.h
|
||||
calls/group/calls_group_rtmp.cpp
|
||||
calls/group/calls_group_rtmp.h
|
||||
calls/group/calls_group_settings.cpp
|
||||
calls/group/calls_group_settings.h
|
||||
calls/group/calls_group_stars_box.cpp
|
||||
calls/group/calls_group_stars_box.h
|
||||
calls/group/calls_group_toasts.cpp
|
||||
calls/group/calls_group_toasts.h
|
||||
calls/group/calls_group_viewport.cpp
|
||||
@@ -466,6 +556,8 @@ PRIVATE
|
||||
calls/calls_instance.h
|
||||
calls/calls_panel.cpp
|
||||
calls/calls_panel.h
|
||||
calls/calls_panel_background.cpp
|
||||
calls/calls_panel_background.h
|
||||
calls/calls_signal_bars.cpp
|
||||
calls/calls_signal_bars.h
|
||||
calls/calls_top_bar.cpp
|
||||
@@ -476,6 +568,8 @@ PRIVATE
|
||||
calls/calls_video_bubble.h
|
||||
calls/calls_video_incoming.cpp
|
||||
calls/calls_video_incoming.h
|
||||
calls/calls_window.cpp
|
||||
calls/calls_window.h
|
||||
chat_helpers/compose/compose_features.h
|
||||
chat_helpers/compose/compose_show.cpp
|
||||
chat_helpers/compose/compose_show.h
|
||||
@@ -525,6 +619,8 @@ PRIVATE
|
||||
chat_helpers/ttl_media_layer_widget.h
|
||||
core/application.cpp
|
||||
core/application.h
|
||||
core/bank_card_click_handler.cpp
|
||||
core/bank_card_click_handler.h
|
||||
core/base_integration.cpp
|
||||
core/base_integration.h
|
||||
core/changelogs.cpp
|
||||
@@ -541,6 +637,7 @@ PRIVATE
|
||||
core/crash_report_window.h
|
||||
core/crash_reports.cpp
|
||||
core/crash_reports.h
|
||||
core/credits_amount.h
|
||||
core/deadlock_detector.h
|
||||
core/file_utilities.cpp
|
||||
core/file_utilities.h
|
||||
@@ -554,7 +651,6 @@ PRIVATE
|
||||
core/sandbox.h
|
||||
core/shortcuts.cpp
|
||||
core/shortcuts.h
|
||||
core/stars_amount.h
|
||||
core/ui_integration.cpp
|
||||
core/ui_integration.h
|
||||
core/update_checker.cpp
|
||||
@@ -576,10 +672,18 @@ PRIVATE
|
||||
data/components/credits.h
|
||||
data/components/factchecks.cpp
|
||||
data/components/factchecks.h
|
||||
data/components/gift_auctions.cpp
|
||||
data/components/gift_auctions.h
|
||||
data/components/location_pickers.cpp
|
||||
data/components/location_pickers.h
|
||||
data/components/passkeys.cpp
|
||||
data/components/passkeys.h
|
||||
data/components/promo_suggestions.cpp
|
||||
data/components/promo_suggestions.h
|
||||
data/components/recent_peers.cpp
|
||||
data/components/recent_peers.h
|
||||
data/components/recent_shared_media_gifts.cpp
|
||||
data/components/recent_shared_media_gifts.h
|
||||
data/components/scheduled_messages.cpp
|
||||
data/components/scheduled_messages.h
|
||||
data/components/sponsored_messages.cpp
|
||||
@@ -590,6 +694,8 @@ PRIVATE
|
||||
data/notify/data_notify_settings.h
|
||||
data/notify/data_peer_notify_settings.cpp
|
||||
data/notify/data_peer_notify_settings.h
|
||||
data/notify/data_peer_notify_volume.cpp
|
||||
data/notify/data_peer_notify_volume.h
|
||||
data/stickers/data_custom_emoji.cpp
|
||||
data/stickers/data_custom_emoji.h
|
||||
data/stickers/data_stickers_set.cpp
|
||||
@@ -679,6 +785,7 @@ PRIVATE
|
||||
data/data_peer_bot_command.h
|
||||
data/data_peer_bot_commands.cpp
|
||||
data/data_peer_bot_commands.h
|
||||
data/data_peer_common.h
|
||||
data/data_peer_id.cpp
|
||||
data/data_peer_id.h
|
||||
data/data_peer_values.cpp
|
||||
@@ -700,6 +807,8 @@ PRIVATE
|
||||
data/data_report.h
|
||||
data/data_saved_messages.cpp
|
||||
data/data_saved_messages.h
|
||||
data/data_saved_music.cpp
|
||||
data/data_saved_music.h
|
||||
data/data_saved_sublist.cpp
|
||||
data/data_saved_sublist.h
|
||||
data/data_search_controller.cpp
|
||||
@@ -712,6 +821,7 @@ PRIVATE
|
||||
data/data_shared_media.h
|
||||
data/data_sparse_ids.cpp
|
||||
data/data_sparse_ids.h
|
||||
data/data_star_gift.cpp
|
||||
data/data_star_gift.h
|
||||
data/data_statistics.h
|
||||
data/data_stories.cpp
|
||||
@@ -724,6 +834,8 @@ PRIVATE
|
||||
data/data_streaming.h
|
||||
data/data_thread.cpp
|
||||
data/data_thread.h
|
||||
data/data_todo_list.cpp
|
||||
data/data_todo_list.h
|
||||
data/data_types.cpp
|
||||
data/data_types.h
|
||||
data/data_unread_value.cpp
|
||||
@@ -764,12 +876,18 @@ PRIVATE
|
||||
dialogs/dialogs_main_list.h
|
||||
dialogs/dialogs_pinned_list.cpp
|
||||
dialogs/dialogs_pinned_list.h
|
||||
dialogs/dialogs_quick_action.cpp
|
||||
dialogs/dialogs_quick_action.h
|
||||
dialogs/dialogs_row.cpp
|
||||
dialogs/dialogs_row.h
|
||||
dialogs/dialogs_search_from_controllers.cpp
|
||||
dialogs/dialogs_search_from_controllers.h
|
||||
dialogs/dialogs_search_tags.cpp
|
||||
dialogs/dialogs_search_tags.h
|
||||
dialogs/dialogs_search_posts.cpp
|
||||
dialogs/dialogs_search_posts.h
|
||||
dialogs/dialogs_top_bar_suggestion.cpp
|
||||
dialogs/dialogs_top_bar_suggestion.h
|
||||
dialogs/dialogs_widget.cpp
|
||||
dialogs/dialogs_widget.h
|
||||
editor/color_picker.cpp
|
||||
@@ -820,12 +938,16 @@ PRIVATE
|
||||
history/view/controls/history_view_draft_options.h
|
||||
history/view/controls/history_view_forward_panel.cpp
|
||||
history/view/controls/history_view_forward_panel.h
|
||||
history/view/controls/history_view_suggest_options.cpp
|
||||
history/view/controls/history_view_suggest_options.h
|
||||
history/view/controls/history_view_ttl_button.cpp
|
||||
history/view/controls/history_view_ttl_button.h
|
||||
history/view/controls/history_view_voice_record_bar.cpp
|
||||
history/view/controls/history_view_voice_record_bar.h
|
||||
history/view/controls/history_view_webpage_processor.cpp
|
||||
history/view/controls/history_view_webpage_processor.h
|
||||
history/view/media/history_view_birthday_suggestion.cpp
|
||||
history/view/media/history_view_birthday_suggestion.h
|
||||
history/view/media/history_view_call.cpp
|
||||
history/view/media/history_view_call.h
|
||||
history/view/media/history_view_contact.cpp
|
||||
@@ -868,6 +990,8 @@ PRIVATE
|
||||
history/view/media/history_view_poll.h
|
||||
history/view/media/history_view_premium_gift.cpp
|
||||
history/view/media/history_view_premium_gift.h
|
||||
history/view/media/history_view_save_document_action.cpp
|
||||
history/view/media/history_view_save_document_action.h
|
||||
history/view/media/history_view_service_box.cpp
|
||||
history/view/media/history_view_service_box.h
|
||||
history/view/media/history_view_similar_channels.cpp
|
||||
@@ -881,8 +1005,12 @@ PRIVATE
|
||||
history/view/media/history_view_sticker_player_abstract.h
|
||||
history/view/media/history_view_story_mention.cpp
|
||||
history/view/media/history_view_story_mention.h
|
||||
history/view/media/history_view_suggest_decision.cpp
|
||||
history/view/media/history_view_suggest_decision.h
|
||||
history/view/media/history_view_theme_document.cpp
|
||||
history/view/media/history_view_theme_document.h
|
||||
history/view/media/history_view_todo_list.cpp
|
||||
history/view/media/history_view_todo_list.h
|
||||
history/view/media/history_view_unique_gift.cpp
|
||||
history/view/media/history_view_unique_gift.h
|
||||
history/view/media/history_view_userpic_suggestion.cpp
|
||||
@@ -907,6 +1035,8 @@ PRIVATE
|
||||
history/view/history_view_bottom_info.h
|
||||
history/view/history_view_chat_preview.cpp
|
||||
history/view/history_view_chat_preview.h
|
||||
history/view/history_view_chat_section.cpp
|
||||
history/view/history_view_chat_section.h
|
||||
history/view/history_view_contact_status.cpp
|
||||
history/view/history_view_contact_status.h
|
||||
history/view/history_view_context_menu.cpp
|
||||
@@ -925,6 +1055,8 @@ PRIVATE
|
||||
history/view/history_view_fake_items.h
|
||||
history/view/history_view_group_call_bar.cpp
|
||||
history/view/history_view_group_call_bar.h
|
||||
history/view/history_view_group_members_widget.cpp
|
||||
history/view/history_view_group_members_widget.h
|
||||
history/view/history_view_item_preview.h
|
||||
history/view/history_view_list_widget.cpp
|
||||
history/view/history_view_list_widget.h
|
||||
@@ -941,8 +1073,8 @@ PRIVATE
|
||||
history/view/history_view_pinned_tracker.h
|
||||
history/view/history_view_quick_action.cpp
|
||||
history/view/history_view_quick_action.h
|
||||
history/view/history_view_replies_section.cpp
|
||||
history/view/history_view_replies_section.h
|
||||
history/view/history_view_reaction_preview.cpp
|
||||
history/view/history_view_reaction_preview.h
|
||||
history/view/history_view_reply.cpp
|
||||
history/view/history_view_reply.h
|
||||
history/view/history_view_requests_bar.cpp
|
||||
@@ -951,6 +1083,8 @@ PRIVATE
|
||||
history/view/history_view_schedule_box.h
|
||||
history/view/history_view_scheduled_section.cpp
|
||||
history/view/history_view_scheduled_section.h
|
||||
history/view/history_view_self_forwards_tagger.cpp
|
||||
history/view/history_view_self_forwards_tagger.h
|
||||
history/view/history_view_send_action.cpp
|
||||
history/view/history_view_send_action.h
|
||||
history/view/history_view_service_message.cpp
|
||||
@@ -959,8 +1093,8 @@ PRIVATE
|
||||
history/view/history_view_sponsored_click_handler.h
|
||||
history/view/history_view_sticker_toast.cpp
|
||||
history/view/history_view_sticker_toast.h
|
||||
history/view/history_view_sublist_section.cpp
|
||||
history/view/history_view_sublist_section.h
|
||||
history/view/history_view_subsection_tabs.cpp
|
||||
history/view/history_view_subsection_tabs.h
|
||||
history/view/history_view_text_helper.cpp
|
||||
history/view/history_view_text_helper.h
|
||||
history/view/history_view_transcribe_button.cpp
|
||||
@@ -995,12 +1129,16 @@ PRIVATE
|
||||
history/history_inner_widget.h
|
||||
history/history_location_manager.cpp
|
||||
history/history_location_manager.h
|
||||
history/history_streamed_drafts.cpp
|
||||
history/history_streamed_drafts.h
|
||||
history/history_translation.cpp
|
||||
history/history_translation.h
|
||||
history/history_unread_things.cpp
|
||||
history/history_unread_things.h
|
||||
history/history_view_highlight_manager.cpp
|
||||
history/history_view_highlight_manager.h
|
||||
history/history_view_swipe_back_session.cpp
|
||||
history/history_view_swipe_back_session.h
|
||||
history/history_widget.cpp
|
||||
history/history_widget.h
|
||||
info/bot/earn/info_bot_earn_list.cpp
|
||||
@@ -1059,6 +1197,8 @@ PRIVATE
|
||||
info/media/info_media_widget.h
|
||||
info/members/info_members_widget.cpp
|
||||
info/members/info_members_widget.h
|
||||
info/peer_gifts/info_peer_gifts_collections.cpp
|
||||
info/peer_gifts/info_peer_gifts_collections.h
|
||||
info/peer_gifts/info_peer_gifts_common.cpp
|
||||
info/peer_gifts/info_peer_gifts_common.h
|
||||
info/peer_gifts/info_peer_gifts_widget.cpp
|
||||
@@ -1069,6 +1209,8 @@ PRIVATE
|
||||
info/polls/info_polls_results_widget.h
|
||||
info/profile/info_profile_actions.cpp
|
||||
info/profile/info_profile_actions.h
|
||||
info/profile/info_profile_badge_tooltip.cpp
|
||||
info/profile/info_profile_badge_tooltip.h
|
||||
info/profile/info_profile_badge.cpp
|
||||
info/profile/info_profile_badge.h
|
||||
info/profile/info_profile_cover.cpp
|
||||
@@ -1083,8 +1225,10 @@ PRIVATE
|
||||
info/profile/info_profile_members_controllers.h
|
||||
info/profile/info_profile_phone_menu.cpp
|
||||
info/profile/info_profile_phone_menu.h
|
||||
info/profile/info_profile_text.cpp
|
||||
info/profile/info_profile_text.h
|
||||
info/profile/info_profile_status_label.cpp
|
||||
info/profile/info_profile_status_label.h
|
||||
info/profile/info_profile_top_bar.cpp
|
||||
info/profile/info_profile_top_bar.h
|
||||
info/profile/info_profile_values.cpp
|
||||
info/profile/info_profile_values.h
|
||||
info/profile/info_profile_widget.cpp
|
||||
@@ -1093,6 +1237,12 @@ PRIVATE
|
||||
info/reactions_list/info_reactions_list_widget.h
|
||||
info/requests_list/info_requests_list_widget.cpp
|
||||
info/requests_list/info_requests_list_widget.h
|
||||
info/saved/info_saved_music_common.cpp
|
||||
info/saved/info_saved_music_common.h
|
||||
info/saved/info_saved_music_provider.cpp
|
||||
info/saved/info_saved_music_provider.h
|
||||
info/saved/info_saved_music_widget.cpp
|
||||
info/saved/info_saved_music_widget.h
|
||||
info/saved/info_saved_sublists_widget.cpp
|
||||
info/saved/info_saved_sublists_widget.h
|
||||
info/settings/info_settings_widget.cpp
|
||||
@@ -1109,6 +1259,9 @@ PRIVATE
|
||||
info/statistics/info_statistics_tag.h
|
||||
info/statistics/info_statistics_widget.cpp
|
||||
info/statistics/info_statistics_widget.h
|
||||
info/stories/info_stories_albums.cpp
|
||||
info/stories/info_stories_albums.h
|
||||
info/stories/info_stories_common.h
|
||||
info/stories/info_stories_inner_widget.cpp
|
||||
info/stories/info_stories_inner_widget.h
|
||||
info/stories/info_stories_provider.cpp
|
||||
@@ -1155,12 +1308,16 @@ PRIVATE
|
||||
inline_bots/inline_bot_result.h
|
||||
inline_bots/inline_bot_send_data.cpp
|
||||
inline_bots/inline_bot_send_data.h
|
||||
inline_bots/inline_bot_storage.cpp
|
||||
inline_bots/inline_bot_storage.h
|
||||
inline_bots/inline_results_inner.cpp
|
||||
inline_bots/inline_results_inner.h
|
||||
inline_bots/inline_results_widget.cpp
|
||||
inline_bots/inline_results_widget.h
|
||||
intro/intro_code.cpp
|
||||
intro/intro_code.h
|
||||
intro/intro_email.cpp
|
||||
intro/intro_email.h
|
||||
intro/intro_password_check.cpp
|
||||
intro/intro_password_check.h
|
||||
intro/intro_phone.cpp
|
||||
@@ -1306,12 +1463,18 @@ PRIVATE
|
||||
media/view/media_view_playback_controls.h
|
||||
media/view/media_view_playback_progress.cpp
|
||||
media/view/media_view_playback_progress.h
|
||||
media/view/media_view_playback_sponsored.cpp
|
||||
media/view/media_view_playback_sponsored.h
|
||||
media/view/media_view_video_stream.cpp
|
||||
media/view/media_view_video_stream.h
|
||||
media/system_media_controls_manager.h
|
||||
media/system_media_controls_manager.cpp
|
||||
menu/menu_antispam_validator.cpp
|
||||
menu/menu_antispam_validator.h
|
||||
menu/menu_item_download_files.cpp
|
||||
menu/menu_item_download_files.h
|
||||
menu/menu_item_rate_transcribe_session.cpp
|
||||
menu/menu_item_rate_transcribe_session.h
|
||||
menu/menu_mute.cpp
|
||||
menu/menu_mute.h
|
||||
menu/menu_send.cpp
|
||||
@@ -1345,6 +1508,8 @@ PRIVATE
|
||||
mtproto/special_config_request.cpp
|
||||
mtproto/special_config_request.h
|
||||
mtproto/type_utils.h
|
||||
overview/overview_checkbox.cpp
|
||||
overview/overview_checkbox.h
|
||||
overview/overview_layout.cpp
|
||||
overview/overview_layout.h
|
||||
overview/overview_layout_delegate.h
|
||||
@@ -1391,6 +1556,7 @@ PRIVATE
|
||||
platform/linux/specific_linux.h
|
||||
platform/linux/tray_linux.cpp
|
||||
platform/linux/tray_linux.h
|
||||
platform/linux/webauthn_linux.cpp
|
||||
platform/mac/file_utilities_mac.mm
|
||||
platform/mac/file_utilities_mac.h
|
||||
platform/mac/launcher_mac.mm
|
||||
@@ -1410,6 +1576,7 @@ PRIVATE
|
||||
platform/mac/specific_mac_p.h
|
||||
platform/mac/tray_mac.mm
|
||||
platform/mac/tray_mac.h
|
||||
platform/mac/webauthn_mac.mm
|
||||
platform/mac/window_title_mac.mm
|
||||
platform/mac/touchbar/items/mac_formatter_item.h
|
||||
platform/mac/touchbar/items/mac_formatter_item.mm
|
||||
@@ -1444,6 +1611,7 @@ PRIVATE
|
||||
platform/win/specific_win.h
|
||||
platform/win/tray_win.cpp
|
||||
platform/win/tray_win.h
|
||||
platform/win/webauthn_win.cpp
|
||||
platform/win/windows_app_user_model_id.cpp
|
||||
platform/win/windows_app_user_model_id.h
|
||||
platform/win/windows_dlls.cpp
|
||||
@@ -1462,13 +1630,10 @@ PRIVATE
|
||||
platform/platform_overlay_widget.h
|
||||
platform/platform_specific.h
|
||||
platform/platform_tray.h
|
||||
platform/platform_webauthn.h
|
||||
platform/platform_window_title.h
|
||||
profile/profile_back_button.cpp
|
||||
profile/profile_back_button.h
|
||||
profile/profile_block_group_members.cpp
|
||||
profile/profile_block_group_members.h
|
||||
profile/profile_block_peer_list.cpp
|
||||
profile/profile_block_peer_list.h
|
||||
profile/profile_block_widget.cpp
|
||||
profile/profile_block_widget.h
|
||||
profile/profile_cover_drop_area.cpp
|
||||
@@ -1501,12 +1666,18 @@ PRIVATE
|
||||
settings/cloud_password/settings_cloud_password_hint.h
|
||||
settings/cloud_password/settings_cloud_password_input.cpp
|
||||
settings/cloud_password/settings_cloud_password_input.h
|
||||
settings/cloud_password/settings_cloud_password_login_email.cpp
|
||||
settings/cloud_password/settings_cloud_password_login_email.h
|
||||
settings/cloud_password/settings_cloud_password_login_email_confirm.cpp
|
||||
settings/cloud_password/settings_cloud_password_login_email_confirm.h
|
||||
settings/cloud_password/settings_cloud_password_manage.cpp
|
||||
settings/cloud_password/settings_cloud_password_manage.h
|
||||
settings/cloud_password/settings_cloud_password_start.cpp
|
||||
settings/cloud_password/settings_cloud_password_start.h
|
||||
settings/cloud_password/settings_cloud_password_step.cpp
|
||||
settings/cloud_password/settings_cloud_password_step.h
|
||||
settings/cloud_password/settings_cloud_password_validate_icon.cpp
|
||||
settings/cloud_password/settings_cloud_password_validate_icon.h
|
||||
settings/settings_active_sessions.cpp
|
||||
settings/settings_active_sessions.h
|
||||
settings/settings_advanced.cpp
|
||||
@@ -1545,6 +1716,8 @@ PRIVATE
|
||||
settings/settings_notifications.h
|
||||
settings/settings_notifications_type.cpp
|
||||
settings/settings_notifications_type.h
|
||||
settings/settings_passkeys.cpp
|
||||
settings/settings_passkeys.h
|
||||
settings/settings_power_saving.cpp
|
||||
settings/settings_power_saving.h
|
||||
settings/settings_premium.cpp
|
||||
@@ -1612,6 +1785,8 @@ PRIVATE
|
||||
support/support_preload.h
|
||||
support/support_templates.cpp
|
||||
support/support_templates.h
|
||||
tde2e/tde2e_integration.cpp
|
||||
tde2e/tde2e_integration.h
|
||||
ui/boxes/edit_invite_link_session.cpp
|
||||
ui/boxes/edit_invite_link_session.h
|
||||
ui/boxes/peer_qr_box.cpp
|
||||
@@ -1632,6 +1807,8 @@ PRIVATE
|
||||
ui/controls/location_picker.h
|
||||
ui/controls/silent_toggle.cpp
|
||||
ui/controls/silent_toggle.h
|
||||
ui/controls/table_rows.cpp
|
||||
ui/controls/table_rows.h
|
||||
ui/controls/userpic_button.cpp
|
||||
ui/controls/userpic_button.h
|
||||
ui/effects/credits_graphics.cpp
|
||||
@@ -1655,8 +1832,6 @@ PRIVATE
|
||||
ui/text/format_song_document_name.h
|
||||
ui/widgets/expandable_peer_list.cpp
|
||||
ui/widgets/expandable_peer_list.h
|
||||
ui/widgets/label_with_custom_emoji.cpp
|
||||
ui/widgets/label_with_custom_emoji.h
|
||||
ui/widgets/chat_filters_tabs_strip.cpp
|
||||
ui/widgets/chat_filters_tabs_strip.h
|
||||
ui/widgets/peer_bubble.cpp
|
||||
@@ -1672,8 +1847,12 @@ PRIVATE
|
||||
ui/item_text_options.cpp
|
||||
ui/item_text_options.h
|
||||
ui/resize_area.h
|
||||
ui/top_background_gradient.cpp
|
||||
ui/top_background_gradient.h
|
||||
ui/unread_badge.cpp
|
||||
ui/unread_badge.h
|
||||
ui/peer/video_userpic_player.cpp
|
||||
ui/peer/video_userpic_player.h
|
||||
window/main_window.cpp
|
||||
window/main_window.h
|
||||
window/notifications_manager.cpp
|
||||
@@ -1689,6 +1868,8 @@ PRIVATE
|
||||
window/window_adaptive.h
|
||||
window/window_chat_preview.cpp
|
||||
window/window_chat_preview.h
|
||||
window/window_chat_switch_process.cpp
|
||||
window/window_chat_switch_process.h
|
||||
window/window_connecting_widget.cpp
|
||||
window/window_connecting_widget.h
|
||||
window/window_controller.cpp
|
||||
@@ -1713,6 +1894,8 @@ PRIVATE
|
||||
window/window_session_controller.cpp
|
||||
window/window_session_controller.h
|
||||
window/window_session_controller_link_info.h
|
||||
window/window_setup_email.cpp
|
||||
window/window_setup_email.h
|
||||
window/window_top_bar_wrap.h
|
||||
window/themes/window_theme.cpp
|
||||
window/themes/window_theme.h
|
||||
@@ -1808,44 +1991,64 @@ if (WIN32)
|
||||
# COMMENT
|
||||
# $<IF:${release},"Appending compatibility manifest.","Finalizing build.">
|
||||
# )
|
||||
|
||||
if (QT_VERSION LESS 6)
|
||||
target_link_libraries(Telegram PRIVATE desktop-app::win_directx_helper)
|
||||
endif()
|
||||
|
||||
target_link_options(Telegram PRIVATE /PDBPAGESIZE:8192)
|
||||
elseif (APPLE)
|
||||
if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
target_link_libraries(Telegram PRIVATE desktop-app::external_iconv)
|
||||
endif()
|
||||
|
||||
set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets)
|
||||
# find_program(ACTOOL_EXECUTABLE actool)
|
||||
# if(NOT ACTOOL_EXECUTABLE)
|
||||
# message(FATAL_ERROR "actool not found.")
|
||||
# endif()
|
||||
|
||||
if (CMAKE_GENERATOR STREQUAL Xcode)
|
||||
target_add_resource(Telegram ${icons_path})
|
||||
else()
|
||||
set(icon_path ${icons_path}/Icon.iconset)
|
||||
find_program(ICONUTIL iconutil)
|
||||
find_program(PNG2ICNS png2icns)
|
||||
if (ICONUTIL)
|
||||
add_custom_command(
|
||||
OUTPUT Icon.icns
|
||||
COMMAND ${ICONUTIL}
|
||||
ARGS
|
||||
--convert icns
|
||||
--output Icon.icns
|
||||
${icon_path}
|
||||
set(ayugram_icons
|
||||
Default
|
||||
Alt
|
||||
Discord
|
||||
Spotify
|
||||
Extera
|
||||
Nothing
|
||||
Bard
|
||||
Yaplus
|
||||
Win95
|
||||
Chibi
|
||||
Chibi2
|
||||
Extera2
|
||||
)
|
||||
|
||||
# set(ICON_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/IconOutput")
|
||||
foreach (icon ${ayugram_icons})
|
||||
# add_custom_command(TARGET Telegram
|
||||
# PRE_LINK
|
||||
# COMMAND mkdir -p "${ICON_OUTPUT_DIR}"
|
||||
# COMMAND ${ACTOOL_EXECUTABLE}
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/Telegram/AppIcon-${icon}.icon"
|
||||
# --compile "${ICON_OUTPUT_DIR}"
|
||||
# --app-icon AppIcon-${icon}
|
||||
# --enable-on-demand-resources NO
|
||||
# --development-region en
|
||||
# --target-device mac
|
||||
# --platform macosx
|
||||
# --minimum-deployment-target 10.13
|
||||
# --output-partial-info-plist /dev/null
|
||||
# --output-format human-readable-text
|
||||
# COMMENT "Compiling icon ${icon}"
|
||||
# COMMAND cp "${ICON_OUTPUT_DIR}/AppIcon-${icon}.icns" "$<TARGET_FILE_DIR:Telegram>/../Resources"
|
||||
# )
|
||||
|
||||
# create resulting Assets.car with all icons
|
||||
target_add_resource(Telegram "${CMAKE_CURRENT_SOURCE_DIR}/Telegram/AppIcon-${icon}.icon")
|
||||
set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/Telegram/AppIcon-${icon}.icon" PROPERTIES
|
||||
XCODE_EXPLICIT_FILE_TYPE "folder.iconcomposer.icon"
|
||||
)
|
||||
elseif (PNG2ICNS)
|
||||
add_custom_command(
|
||||
OUTPUT Icon.icns
|
||||
COMMAND ${PNG2ICNS}
|
||||
ARGS
|
||||
Icon.icns
|
||||
${icon_path}/icon_16x16.png
|
||||
${icon_path}/icon_32x32.png
|
||||
${icon_path}/icon_128x128.png
|
||||
${icon_path}/icon_256x256.png
|
||||
${icon_path}/icon_512x512.png
|
||||
)
|
||||
endif()
|
||||
if (ICONUTIL OR PNG2ICNS)
|
||||
set_source_files_properties(Icon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
target_add_resource(Telegram Icon.icns)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(lang_packs
|
||||
@@ -1874,15 +2077,17 @@ elseif (APPLE)
|
||||
COMMAND cp ${CMAKE_BINARY_DIR}/lib_spellcheck.rcc $<TARGET_FILE_DIR:Telegram>/../Resources
|
||||
)
|
||||
if (NOT build_macstore AND NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
|
||||
if (DESKTOP_APP_MAC_ARCH STREQUAL "x86_64" OR DESKTOP_APP_MAC_ARCH STREQUAL "arm64")
|
||||
set(crashpad_dir_part ".${DESKTOP_APP_MAC_ARCH}")
|
||||
if (DESKTOP_APP_USE_PACKAGED)
|
||||
find_program(CRASHPAD_HANDLER crashpad_handler REQUIRED)
|
||||
elseif (DESKTOP_APP_MAC_ARCH STREQUAL "x86_64" OR DESKTOP_APP_MAC_ARCH STREQUAL "arm64")
|
||||
set(CRASHPAD_HANDLER "${libs_loc}/crashpad/out/$<IF:$<CONFIG:Debug>,Debug,Release>.${DESKTOP_APP_MAC_ARCH}/crashpad_handler")
|
||||
else()
|
||||
set(crashpad_dir_part "")
|
||||
set(CRASHPAD_HANDLER "${libs_loc}/crashpad/out/$<IF:$<CONFIG:Debug>,Debug,Release>/crashpad_handler")
|
||||
endif()
|
||||
add_custom_command(TARGET Telegram
|
||||
PRE_LINK
|
||||
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Helpers
|
||||
COMMAND cp ${libs_loc}/crashpad/out/$<IF:$<CONFIG:Debug>,Debug,Release>${crashpad_dir_part}/crashpad_handler $<TARGET_FILE_DIR:Telegram>/../Helpers/
|
||||
COMMAND cp ${CRASHPAD_HANDLER} $<TARGET_FILE_DIR:Telegram>/../Helpers/
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
@@ -1902,8 +2107,9 @@ if (build_macstore)
|
||||
set(bundle_identifier "org.telegram.desktop")
|
||||
set(bundle_entitlements "Telegram Lite.entitlements")
|
||||
set(output_name "Telegram Lite")
|
||||
set_target_properties(Telegram PROPERTIES
|
||||
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${libs_loc}/breakpad/src/client/mac/build/Release
|
||||
target_link_options(Telegram
|
||||
PRIVATE
|
||||
-F${libs_loc}/breakpad/src/client/mac/build/Release
|
||||
)
|
||||
target_link_frameworks(Telegram PRIVATE Breakpad)
|
||||
add_custom_command(TARGET Telegram
|
||||
@@ -1921,11 +2127,7 @@ else()
|
||||
set(bundle_identifier "one.ayugram.AyuGramDesktop")
|
||||
endif()
|
||||
set(bundle_entitlements "Telegram.entitlements")
|
||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
set(output_name "ayugram-desktop")
|
||||
else()
|
||||
set(output_name "AyuGram")
|
||||
endif()
|
||||
set(output_name "AyuGram")
|
||||
endif()
|
||||
|
||||
if (CMAKE_GENERATOR STREQUAL Xcode)
|
||||
@@ -1942,7 +2144,9 @@ set_target_properties(Telegram PROPERTIES
|
||||
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${bundle_identifier}
|
||||
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${desktop_app_version_string}
|
||||
XCODE_ATTRIBUTE_PRODUCT_NAME ${output_name}
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME AppIcon
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME AppIcon-Default
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES AppIcon-Alt AppIcon-Discord AppIcon-Spotify AppIcon-Extera AppIcon-Nothing AppIcon-Bard AppIcon-Yaplus AppIcon-Win95 AppIcon-Chibi AppIcon-Chibi2 AppIcon-Extera2
|
||||
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS YES
|
||||
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES
|
||||
XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES YES
|
||||
XCODE_ATTRIBUTE_COPY_PHASE_STRIP NO
|
||||
@@ -1965,10 +2169,12 @@ PRIVATE
|
||||
TDESKTOP_API_ID=${TDESKTOP_API_ID}
|
||||
TDESKTOP_API_HASH=${TDESKTOP_API_HASH}
|
||||
G_LOG_DOMAIN="Telegram"
|
||||
U_STATIC_IMPLEMENTATION=1 # AyuGram: do not use __declspec(dllimport) when including icu headers
|
||||
)
|
||||
|
||||
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if (APPLE
|
||||
OR "${CMAKE_GENERATOR}" STREQUAL "Ninja Multi-Config"
|
||||
OR is_multi_config
|
||||
OR NOT CMAKE_EXECUTABLE_SUFFIX STREQUAL ""
|
||||
OR NOT "${output_name}" STREQUAL "AyuGram")
|
||||
set(output_folder ${CMAKE_BINARY_DIR})
|
||||
@@ -1991,6 +2197,7 @@ if (MSVC)
|
||||
/DELAYLOAD:user32.dll
|
||||
/DELAYLOAD:gdi32.dll
|
||||
/DELAYLOAD:advapi32.dll
|
||||
/DELAYLOAD:avrt.dll
|
||||
/DELAYLOAD:shell32.dll
|
||||
/DELAYLOAD:ole32.dll
|
||||
/DELAYLOAD:oleaut32.dll
|
||||
@@ -2028,7 +2235,7 @@ if (MSVC)
|
||||
/DELAYLOAD:API-MS-Win-Core-ProcessThreads-l1-1-0.dll
|
||||
/DELAYLOAD:API-MS-Win-Core-Synch-l1-2-0.dll # Synchronization.lib
|
||||
/DELAYLOAD:API-MS-Win-Core-SysInfo-l1-1-0.dll
|
||||
/DELAYLOAD:API-MS-Win-Core-Timezone-l1-1-0.dll
|
||||
# /DELAYLOAD:API-MS-Win-Core-Timezone-l1-1-0.dll
|
||||
/DELAYLOAD:API-MS-Win-Core-WinRT-l1-1-0.dll
|
||||
/DELAYLOAD:API-MS-Win-Core-WinRT-Error-l1-1-0.dll
|
||||
/DELAYLOAD:API-MS-Win-Core-WinRT-String-l1-1-0.dll
|
||||
@@ -2093,7 +2300,7 @@ if (NOT DESKTOP_APP_DISABLE_AUTOUPDATE AND NOT build_macstore AND NOT build_wins
|
||||
endif()
|
||||
elseif (APPLE)
|
||||
add_custom_command(TARGET Updater
|
||||
PRE_LINK
|
||||
POST_BUILD
|
||||
COMMAND mkdir -p $<TARGET_FILE_DIR:Telegram>/../Frameworks
|
||||
COMMAND cp $<TARGET_FILE:Updater> $<TARGET_FILE_DIR:Telegram>/../Frameworks/
|
||||
)
|
||||
@@ -2119,6 +2326,10 @@ if (NOT DESKTOP_APP_DISABLE_AUTOUPDATE AND NOT build_macstore AND NOT build_wins
|
||||
desktop-app::external_openssl
|
||||
)
|
||||
|
||||
if (DESKTOP_APP_USE_PACKAGED)
|
||||
target_compile_definitions(Packer PRIVATE PACKER_USE_PACKAGED)
|
||||
endif()
|
||||
|
||||
set_target_properties(Packer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
|
||||
endif()
|
||||
elseif (build_winstore)
|
||||
@@ -2141,16 +2352,18 @@ if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
include(GNUInstallDirs)
|
||||
configure_file("../lib/xdg/com.ayugram.desktop.service" "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.service" @ONLY)
|
||||
configure_file("../lib/xdg/com.ayugram.desktop.metainfo.xml" "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.metainfo.xml" @ONLY)
|
||||
generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.metainfo.xml")
|
||||
generate_appstream_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.metainfo.xml")
|
||||
install(TARGETS Telegram RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "ayugram.png")
|
||||
install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "ayugram-symbolic.svg")
|
||||
install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "com.ayugram.desktop.png")
|
||||
install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "com.ayugram.desktop-symbolic.svg")
|
||||
install(FILES "Resources/icons/tray_monochrome_attention.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "com.ayugram.desktop-attention-symbolic.svg")
|
||||
install(FILES "Resources/icons/tray_monochrome_mute.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "com.ayugram.desktop-mute-symbolic.svg")
|
||||
install(FILES "../lib/xdg/com.ayugram.desktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.service" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.ayugram.desktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_97)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#9570FF"/>
|
||||
<g opacity="0.07">
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="white"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="white"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="white"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="white"/>
|
||||
</g>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="white"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="white"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="white"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1177_97">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,82 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_56)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#FDFDFD"/>
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="url(#paint0_radial_1177_56)" fill-opacity="0.04"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="url(#paint1_radial_1177_56)" fill-opacity="0.04"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="url(#paint2_radial_1177_56)" fill-opacity="0.04"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="url(#paint3_radial_1177_56)" fill-opacity="0.04"/>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="url(#paint4_radial_1177_56)"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="url(#paint5_radial_1177_56)"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="url(#paint6_radial_1177_56)"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="url(#paint7_radial_1177_56)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<radialGradient id="paint0_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(755.281 3220.39 -3836.69 634.576 -633.706 -1346.76)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1BA1E3"/>
|
||||
<stop offset="0.0001" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.300221" stop-color="#5489D6"/>
|
||||
<stop offset="0.545524" stop-color="#9B72CB"/>
|
||||
<stop offset="0.825372" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint1_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(755.281 3220.39 -3836.69 634.576 -633.706 -1346.76)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1BA1E3"/>
|
||||
<stop offset="0.0001" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.300221" stop-color="#5489D6"/>
|
||||
<stop offset="0.545524" stop-color="#9B72CB"/>
|
||||
<stop offset="0.825372" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint2_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(755.281 3220.39 -3836.69 634.576 -633.706 -1346.76)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1BA1E3"/>
|
||||
<stop offset="0.0001" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.300221" stop-color="#5489D6"/>
|
||||
<stop offset="0.545524" stop-color="#9B72CB"/>
|
||||
<stop offset="0.825372" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint3_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(755.281 3220.39 -3836.69 634.576 -633.706 -1346.76)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#1BA1E3"/>
|
||||
<stop offset="0.0001" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.300221" stop-color="#5489D6"/>
|
||||
<stop offset="0.545524" stop-color="#9B72CB"/>
|
||||
<stop offset="0.825372" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint4_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(274.644 1185.23 -1411.16 229.793 166.356 -110.23)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#22B1F8"/>
|
||||
<stop offset="0.242027" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.381789" stop-color="#5489D6"/>
|
||||
<stop offset="0.648677" stop-color="#9B72CB"/>
|
||||
<stop offset="0.866975" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint5_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(274.644 1185.23 -1411.16 229.793 166.356 -110.23)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#22B1F8"/>
|
||||
<stop offset="0.242027" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.381789" stop-color="#5489D6"/>
|
||||
<stop offset="0.648677" stop-color="#9B72CB"/>
|
||||
<stop offset="0.866975" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint6_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(274.644 1185.23 -1411.16 229.793 166.356 -110.23)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#22B1F8"/>
|
||||
<stop offset="0.242027" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.381789" stop-color="#5489D6"/>
|
||||
<stop offset="0.648677" stop-color="#9B72CB"/>
|
||||
<stop offset="0.866975" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint7_radial_1177_56" cx="0" cy="0" r="1" gradientTransform="matrix(274.644 1185.23 -1411.16 229.793 166.356 -110.23)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#22B1F8"/>
|
||||
<stop offset="0.242027" stop-color="#1BA1E3"/>
|
||||
<stop offset="0.381789" stop-color="#5489D6"/>
|
||||
<stop offset="0.648677" stop-color="#9B72CB"/>
|
||||
<stop offset="0.866975" stop-color="#D96570"/>
|
||||
<stop offset="1" stop-color="#F49C46"/>
|
||||
</radialGradient>
|
||||
<clipPath id="clip0_1177_56">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_50)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#2B2242"/>
|
||||
<g opacity="0.07">
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="#C3AEFF"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="#C3AEFF"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="#C3AEFF"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="#C3AEFF"/>
|
||||
</g>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="#C3AEFF"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="#DCCFFF"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="#F5F5F5"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="#F5F5F5"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1177_50">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_53)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#5865F2"/>
|
||||
<g opacity="0.13">
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="#C3AEFF"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="#C3AEFF"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="#C3AEFF"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="#C3AEFF"/>
|
||||
</g>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="white"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="white"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="white"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1177_53">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,36 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_68)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#E83030"/>
|
||||
<g opacity="0.09">
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="#F6F6F6"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="#F6F6F6"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="#F6F6F6"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="#F6F6F6"/>
|
||||
</g>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="url(#paint0_linear_1177_68)" fill-opacity="0.9"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="url(#paint1_linear_1177_68)" fill-opacity="0.9"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="url(#paint2_linear_1177_68)" fill-opacity="0.9"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="url(#paint3_linear_1177_68)" fill-opacity="0.9"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1177_68" x1="599.5" y1="259" x2="599.5" y2="940" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1177_68" x1="599.5" y1="259" x2="599.5" y2="940" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_1177_68" x1="599.5" y1="259" x2="599.5" y2="940" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_1177_68" x1="599.5" y1="259" x2="599.5" y2="940" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_1177_68">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="1200" height="1200" rx="600" fill="#E83030"/>
|
||||
<path d="M479.041 720.27C521.627 762.855 561.526 834.716 591.838 898.874C612.184 941.936 679.015 940.278 694.085 895.099L850.177 427.151C866.118 379.362 820.637 333.894 772.852 349.849L305.497 505.897C260.276 520.996 258.687 587.983 301.805 608.324C365.513 638.379 436.671 677.9 479.041 720.27Z" fill="url(#paint0_linear_1622_21)" fill-opacity="0.9"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1622_21" x1="527.775" y1="311.105" x2="527.775" y2="1033.51" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.6"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 766 B |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
@@ -0,0 +1,18 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_94)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#FDFDFD"/>
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="#F7F7F7" fill-opacity="0.8"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="#F7F7F7" fill-opacity="0.8"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="#F7F7F7" fill-opacity="0.8"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="#F7F7F7" fill-opacity="0.8"/>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="#D71A21"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="#1C1D1F"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="#1C1D1F"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="#1C1D1F"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1177_94">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="1200" height="1200" viewBox="0 0 1200 1200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1177_59)">
|
||||
<rect width="1200" height="1200" rx="600" fill="black"/>
|
||||
<g opacity="0.1">
|
||||
<path d="M806.896 -279.064C785.598 -313.026 733.108 -291.661 741.582 -252.479L1066.32 1248.94C1069.88 1265.41 1084.45 1277.16 1101.31 1277.16H1718.15C1746.29 1277.16 1763.42 1246.19 1748.47 1222.35L806.896 -279.064Z" fill="#F6F6F6"/>
|
||||
<path d="M669.079 1606.13C669.079 1640.4 712.592 1655.08 733.354 1627.82L935.184 1362.81C941.526 1354.48 943.905 1343.8 941.696 1333.57L739.866 399.014C730.809 357.077 669.079 363.667 669.079 406.57L669.079 1606.13Z" fill="#F6F6F6"/>
|
||||
<path d="M392.104 -279.064C413.403 -313.026 465.892 -291.661 457.418 -252.479L132.68 1248.94C129.117 1265.41 114.546 1277.16 97.692 1277.16H-519.146C-547.286 1277.16 -564.423 1246.19 -549.473 1222.35L392.104 -279.064Z" fill="#F6F6F6"/>
|
||||
<path d="M529.921 1606.13C529.921 1640.4 486.408 1655.08 465.646 1627.82L263.816 1362.81C257.474 1354.48 255.095 1343.8 257.304 1333.57L459.134 399.014C468.191 357.077 529.921 363.667 529.921 406.57V1606.13Z" fill="#F6F6F6"/>
|
||||
</g>
|
||||
<path d="M672.345 264.951C664.864 253.017 646.428 260.525 649.404 274.293L763.463 801.88C764.715 807.668 769.833 811.799 775.752 811.799H992.407C1002.29 811.799 1008.31 800.915 1003.06 792.538L672.345 264.951Z" fill="#1ED760"/>
|
||||
<path d="M623.939 927.397C623.939 939.438 639.222 944.597 646.514 935.018L717.404 841.895C719.631 838.969 720.467 835.214 719.691 831.618L648.801 503.223C645.62 488.487 623.939 490.802 623.939 505.878L623.939 927.397Z" fill="#1ED760"/>
|
||||
<path d="M526.655 264.951C534.136 253.017 552.572 260.525 549.596 274.293L435.537 801.88C434.285 807.668 429.167 811.799 423.248 811.799H206.593C196.709 811.799 190.69 800.915 195.941 792.538L526.655 264.951Z" fill="#1ED760"/>
|
||||
<path d="M575.061 927.397C575.061 939.438 559.778 944.597 552.486 935.018L481.596 841.895C479.369 838.969 478.533 835.214 479.309 831.618L550.199 503.223C553.38 488.487 575.061 490.802 575.061 505.878V927.397Z" fill="#1ED760"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1177_59">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |