Compare commits
1705 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a7552fdab | |||
| aa57a17af6 | |||
| 926c6a55ce | |||
| 3d005e8e87 | |||
| 35ea9070e4 | |||
| 67c5ff4939 | |||
| 4e8a6f4098 | |||
| 66a4b1a9f1 | |||
| b59115e27c | |||
| 4af1ca65ed | |||
| 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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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::start_with_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.
|
||||
|
||||
@@ -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)
|
||||
- Улучшенный вид
|
||||
|
||||
@@ -30,10 +31,10 @@
|
||||
|
||||
### Windows
|
||||
|
||||
#### Официальный вариант
|
||||
#### Официальная версия
|
||||
|
||||
Вы можете скачать готовый бинарный файл со вкладки [Releases](https://github.com/AyuGram/AyuGramDesktop/releases) или из
|
||||
[Телеграм чата](https://t.me/ayugramchat/12788).
|
||||
[Телеграм канала](https://t.me/AyuGramReleases).
|
||||
|
||||
#### Winget
|
||||
|
||||
@@ -55,19 +56,45 @@ 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/)
|
||||
|
||||
### 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 +128,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
|
||||
|
||||
@@ -34,7 +35,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 +57,45 @@ 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/)
|
||||
|
||||
### 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 +125,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
|
||||
@@ -438,6 +512,14 @@ 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
|
||||
@@ -476,6 +558,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 +609,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 +627,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 +641,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
|
||||
@@ -578,8 +664,12 @@ PRIVATE
|
||||
data/components/factchecks.h
|
||||
data/components/location_pickers.cpp
|
||||
data/components/location_pickers.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 +680,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 +771,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 +793,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 +807,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 +820,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 +862,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 +924,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 +976,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 +991,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 +1021,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 +1041,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 +1059,6 @@ 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_reply.cpp
|
||||
history/view/history_view_reply.h
|
||||
history/view/history_view_requests_bar.cpp
|
||||
@@ -951,6 +1067,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 +1077,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 +1113,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 +1181,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
|
||||
@@ -1083,8 +1207,6 @@ 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_values.cpp
|
||||
info/profile/info_profile_values.h
|
||||
info/profile/info_profile_widget.cpp
|
||||
@@ -1093,6 +1215,11 @@ 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.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 +1236,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 +1285,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 +1440,16 @@ 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/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 +1483,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
|
||||
@@ -1465,10 +1605,6 @@ PRIVATE
|
||||
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 +1637,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
|
||||
@@ -1612,6 +1754,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
|
||||
@@ -1655,8 +1799,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
|
||||
@@ -1689,6 +1831,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
|
||||
@@ -1808,44 +1952,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
|
||||
@@ -1921,11 +2085,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 +2102,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 +2127,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 +2155,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 +2193,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
|
||||
@@ -2119,6 +2284,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 +2310,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 |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,64 @@
|
||||
<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_62)">
|
||||
<rect width="1200" height="1200" rx="600" fill="#FDFDFD"/>
|
||||
<g opacity="0.04">
|
||||
<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_linear_1177_62)"/>
|
||||
<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_linear_1177_62)"/>
|
||||
<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_linear_1177_62)"/>
|
||||
<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_linear_1177_62)"/>
|
||||
</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="#D9D9D9"/>
|
||||
<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_linear_1177_62)"/>
|
||||
<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="#D9D9D9"/>
|
||||
<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_linear_1177_62)"/>
|
||||
<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="#D9D9D9"/>
|
||||
<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_linear_1177_62)"/>
|
||||
<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="#D9D9D9"/>
|
||||
<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_linear_1177_62)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1177_62" x1="-555" y1="543.798" x2="1754" y2="543.798" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1177_62" x1="-555" y1="543.798" x2="1754" y2="543.798" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_1177_62" x1="-555" y1="543.798" x2="1754" y2="543.798" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_1177_62" x1="-555" y1="543.798" x2="1754" y2="543.798" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear_1177_62" x1="194" y1="554.099" x2="1005" y2="554.099" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear_1177_62" x1="194" y1="554.099" x2="1005" y2="554.099" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint6_linear_1177_62" x1="194" y1="554.099" x2="1005" y2="554.099" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint7_linear_1177_62" x1="194" y1="554.099" x2="1005" y2="554.099" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF5C4D"/>
|
||||
<stop offset="0.4" stop-color="#EB469F"/>
|
||||
<stop offset="1" stop-color="#8341EF"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_1177_62">
|
||||
<rect width="1200" height="1200" rx="600" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M65.0957 43.2571C61.089 59.3287 44.8111 69.1096 28.7376 65.1018C12.6708 61.0951 2.88998 44.8162 6.89846 28.7459C10.9034 12.6726 27.1813 2.89099 43.2498 6.8977C59.3222 10.9044 69.1024 27.1851 65.0953 43.2574L65.0956 43.2571H65.0957Z" fill="#F7931A"/>
|
||||
<path d="M49.2257 31.7258C49.8228 27.7335 46.7833 25.5875 42.627 24.1558L43.9753 18.7479L40.6833 17.9276L39.3707 23.1932C38.5053 22.9773 37.6165 22.7739 36.7332 22.5723L38.0553 17.2719L34.7653 16.4517L33.4162 21.8579C32.7001 21.6948 31.9967 21.5337 31.3142 21.3639L31.318 21.3469L26.7783 20.2132L25.9026 23.7293C25.9026 23.7293 28.3449 24.2891 28.2935 24.3236C29.6266 24.6563 29.8676 25.5388 29.8276 26.2382L28.2917 32.3992C28.3835 32.4225 28.5026 32.4562 28.634 32.509C28.5241 32.4818 28.4073 32.452 28.286 32.423L26.1332 41.0536C25.9703 41.4586 25.5568 42.0664 24.6248 41.8356C24.6577 41.8834 22.2321 41.2385 22.2321 41.2385L20.5977 45.0068L24.8817 46.0747C25.6786 46.2746 26.4596 46.4837 27.2287 46.6803L25.8665 52.1504L29.1547 52.9706L30.5037 47.5587C31.402 47.8026 32.2738 48.0275 33.1272 48.2395L31.7827 53.626L35.0749 54.4463L36.437 48.9865C42.0505 50.0489 46.2715 49.6206 48.0482 44.5431C49.4798 40.4552 47.9769 38.0972 45.0236 36.5596C47.1746 36.0635 48.7948 34.6488 49.2268 31.7263L49.2258 31.7255L49.2257 31.7258ZM41.7042 42.2729C40.6868 46.3608 33.804 44.151 31.5724 43.5969L33.3802 36.35C35.6116 36.9071 42.7675 38.0095 41.7043 42.2729H41.7042ZM42.7223 31.6666C41.7942 35.385 36.0655 33.4959 34.2072 33.0327L35.8462 26.4602C37.7045 26.9235 43.6891 27.788 42.7226 31.6666H42.7223Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.5796 41.8413L22.9288 6H38.8335L35.6272 17.1111C35.5954 17.1746 35.5637 17.2381 35.532 17.3016L27.0875 46.6349H34.9605C31.6589 54.8571 29.0875 61.3016 27.2462 65.9683C12.7066 65.8095 8.64307 55.3968 12.1986 43.0794M27.3097 66L46.4843 38.4127H38.3574L45.4367 20.7302C57.5637 22 63.278 31.5556 59.9129 43.1111C56.3256 55.5238 41.7859 66 27.6272 66C27.5002 66 27.405 66 27.3097 66Z" fill="url(#paint0_linear_1491_36)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1491_36" x1="44.5725" y1="13.793" x2="24.0992" y2="83.6122" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#EF7829"/>
|
||||
<stop offset="0.0518954" stop-color="#F07529"/>
|
||||
<stop offset="0.3551" stop-color="#F0672B"/>
|
||||
<stop offset="0.6673" stop-color="#F15E2C"/>
|
||||
<stop offset="1" stop-color="#F15A2C"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 898 B |
@@ -0,0 +1,7 @@
|
||||
<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M36.414 28.1822V6L18 36.5512L36.414 28.1822Z" fill="#8A92B2"/>
|
||||
<path d="M36.414 47.4398V28.1822L18 36.5512L36.414 47.4398ZM36.414 28.1822L54.8279 36.5512L36.414 6V28.1822Z" fill="#62688F"/>
|
||||
<path d="M36.4141 28.1824V47.44L54.828 36.5513L36.4141 28.1824Z" fill="#454A75"/>
|
||||
<path d="M36.414 50.927L18 40.0496L36.414 66.0001V50.927Z" fill="#8A92B2"/>
|
||||
<path d="M54.8393 40.0496L36.4141 50.927V66.0001L54.8393 40.0496Z" fill="#62688F"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 544 B |
@@ -0,0 +1,19 @@
|
||||
<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.7481 47.8879C16.1101 47.5259 16.608 47.3147 17.1359 47.3147H65.0164C65.8914 47.3147 66.3288 48.3707 65.7103 48.9892L56.2519 58.4476C55.8899 58.8096 55.3921 59.0208 54.8641 59.0208H6.98358C6.10864 59.0208 5.67117 57.9649 6.28966 57.3464L15.7481 47.8879Z" fill="url(#paint0_linear_1498_44)"/>
|
||||
<path d="M15.7481 12.5732C16.1252 12.2112 16.623 12 17.1359 12H65.0164C65.8914 12 66.3288 13.056 65.7103 13.6745L56.2519 23.1329C55.8899 23.4949 55.3921 23.7061 54.8641 23.7061H6.98358C6.10864 23.7061 5.67117 22.6502 6.28966 22.0317L15.7481 12.5732Z" fill="url(#paint1_linear_1498_44)"/>
|
||||
<path d="M56.2519 30.1174C55.8899 29.7554 55.3921 29.5442 54.8641 29.5442H6.98358C6.10864 29.5442 5.67117 30.6002 6.28966 31.2186L15.7481 40.6771C16.1101 41.0391 16.608 41.2503 17.1359 41.2503H65.0164C65.8914 41.2503 66.3288 40.1944 65.7103 39.5759L56.2519 30.1174Z" fill="url(#paint2_linear_1498_44)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1498_44" x1="60.4424" y1="6.34998" x2="27.3053" y2="69.8209" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#00FFA3"/>
|
||||
<stop offset="1" stop-color="#DC1FFF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1498_44" x1="45.9531" y1="-1.21486" x2="12.816" y2="62.256" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#00FFA3"/>
|
||||
<stop offset="1" stop-color="#DC1FFF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_1498_44" x1="53.1517" y1="2.54346" x2="20.0145" y2="66.0144" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#00FFA3"/>
|
||||
<stop offset="1" stop-color="#DC1FFF"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" rx="40" fill="#E83030"/>
|
||||
<path d="M39.999 27.5657C50.4546 16.7028 63.2343 24.7157 63.2344 36.0149C63.2344 47.3141 53.8952 53.3355 47.0586 58.7249C44.6462 60.6266 42.3226 62.4172 39.999 62.4172C37.6755 62.4172 35.3519 60.6266 32.9395 58.7249C26.1029 53.3355 16.7637 47.3141 16.7637 36.0149C16.7638 24.7157 29.5435 16.7028 39.999 27.5657ZM48.2627 35.677C48.7923 34.089 47.2803 32.5775 45.6924 33.1077L30.1621 38.2932C28.6596 38.7949 28.6067 41.0213 30.0391 41.6975C32.1559 42.6961 34.5207 44.0094 35.9287 45.4172C37.3438 46.8324 38.6704 49.2208 39.6777 51.3528C40.354 52.7834 42.5744 52.728 43.0752 51.2268L48.2627 35.677Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 769 B |