sync: upstream to v2026.3.7 (893 commits)#2298
Merged
alexey-pelykh merged 1 commit intomainfrom Apr 12, 2026
Merged
Conversation
411cda7 to
ebecebf
Compare
Disposition: 1727 INCLUDE, 586 EXCLUDE, 62 EXTRACT (42 ported), 37 PROTECTED, 8 COLLISION (adopted). Key changes: - Plugin-SDK subpath exports (40 new entrypoints per channel) - Dependency bumps: grammy, oxlint 1.51, oxfmt, tsdown, tar, discord-api-types - Multi-stage Dockerfile rewrite - Telegram: text parts refactoring, debounce forward+media, mention helpers - Discord: ThreadUpdateListener, auto-presence auth profile tracking - Line: webhook validation, group keys, HEAD method support - Security: boundary-path DRY refactoring, channel secret SecretRef resolution - Config: plugin hooks, media ttlHours, overloaded retry, zod schema updates - Build: tsdown build scripts, vitest pool change, parallel test improvements EXTRACT skipped: 20 files (massive upstream refactoring targeting gutted subsystems -- model catalog, auth-choice, exec-approvals, context-engine, media-understanding). Upstream-range: v2026.3.2..v2026.3.7 Upstream-boundary: v2026.3.7 (42a1394c5c) Cherry-picked-from: @9083a3f2e3085bb9ee83d795d19a1dc513d2dd28 Cherry-picked-from: @0566845b7133515bfc50ae0e770c8c55d5198cd4 Cherry-picked-from: @a9ec75fe818bd88528a6436f580077d2d981a3e4 Cherry-picked-from: @2d67c9b2a075d8d6c7e1d15029f497f1905dafd3 Cherry-picked-from: @786ff6afca6e53354c165d67a7958e992e109361 Cherry-picked-from: @2a888c5703ea58efe884186367227af8b3b06acc Cherry-picked-from: @e1503349c3b741970a5cf2cd9038b8e7093f2a41 Cherry-picked-from: @b34530a05dff484ab1d5021be3697c3094116bec Cherry-picked-from: @0b3bbfec061f55a65975b6dce77c04dba1925f9c Cherry-picked-from: @9a5bfb1fe56d9000a6e089bf0c3fca8081710bb0 Cherry-picked-from: @de62ccbf81877f325326f60a6c5bcb303953e3b0 Cherry-picked-from: @b52c9f2575b68cf5e70c90750a2dd685c00dcafc Cherry-picked-from: @094140bdb11f8f9aefe9969bdcfdc735426ec728 Cherry-picked-from: @1d7a287cf6e52b23bc8365d17e8190a587086374 Cherry-picked-from: @fe92113472e9d80da7dacf671aba0e5a41ce1295 Cherry-picked-from: @dbccc73d7a1b6681c96c1f513ca42646755a0cae Cherry-picked-from: @75775f2fe6fdd9f6538e4951543b45c366c2ec9c Cherry-picked-from: @de9031da22bef3ac74155e616a8afbb16e5d3914 Cherry-picked-from: @997197c6c9eadcfda2520787aa74ba9c7c673a13 Cherry-picked-from: @5341b5c71ce48adb56f05e00f40e00f8d1d3e65a Cherry-picked-from: @b1b41eb44323ac7eda111eafe28f29e1f1593e3b Cherry-picked-from: @ae298421583b96031d4f2be45d11e1d1105e1fdd Cherry-picked-from: @2370ea5d1b8119408f1ca8e0df60ce458caa2e4e Cherry-picked-from: @4ffe15c6b2227254e48b7724053d3c5079c9be6f Cherry-picked-from: @4aa548cf7de9a6c3d9620d5f1c3c4af49cece7ac Cherry-picked-from: @6d118ab81521910c828e1aeaf139c415e25087f4 Cherry-picked-from: @9830b7c298ea6abce4bed441100a16822a92165b Cherry-picked-from: @5b8fc68ea2daa16f31de0a75221668854eab9ffe Cherry-picked-from: @5f95f46070bc92aa35f65237ad9617f370d600fd Cherry-picked-from: @1ded5cc9a937ae07476b8bdd2f3e29b8b1bc3381 Cherry-picked-from: @627813aba499a57acdbee8bdc670f7edb030c9eb Cherry-picked-from: @3fe4c19305883abf246312c0587ece47422d185a Cherry-picked-from: @53727c72f4d22e39b5eba07efc78e66344605c2a Cherry-picked-from: @171f305c3d923d4ce67dfee0696452050875884d Cherry-picked-from: @c8b45a4c5c04d0845364ffe235300cf4b5ebbcb5 Cherry-picked-from: @8e2e4b2ed58cd7128f770fcf7fb4ffcf874af715 Cherry-picked-from: @4abf398a17ad127935236f4f072a93e890e5581e Cherry-picked-from: @ca307c3fdf8a03869b3848bc01675f26e3dfed71 Cherry-picked-from: @d89e1e40f9d8d33d68bd146802d13827e5989b58 Cherry-picked-from: @606cd0d591c8fdcc81f14e32b3ce368c09fdeb14 Cherry-picked-from: @ec0eb9f8c35891675f6bbc11589c463d5d32ad5e Cherry-picked-from: @6593a576074c6bbf376efa6ca5f9f09fa2e8faf9 Cherry-picked-from: @5d16d45b20408ce851b3df70994c8e0ec24fb275 Cherry-picked-from: @66d06beec6f61fab49d6f77ffeed745c5750a771 Cherry-picked-from: @3b3738e41e2d2469bfa700318f880d5b9537ef56 Cherry-picked-from: @3ee8528b17cd1a75cc1f431e24105a4c46a57ed3 Cherry-picked-from: @6df57d963366e053d5b9a9f649d553b4177b5798 Cherry-picked-from: @a3112d6c5fa18313b25fe52df2abe9b6bf9ecfd0 Cherry-picked-from: @d493861c1692664ce7882516cf952fcb8dc02b67 Cherry-picked-from: @bf7061092a1e507a22e9fabe5b7f3554dbe0acc6 Cherry-picked-from: @a7a9a3d3c84a444977c8c70d93c89406aaf01f06 Cherry-picked-from: @3d998828b9300e531071d30cedd8923753cfaa96 Cherry-picked-from: @e28ff1215cf5cc43894269f23af09862ac1a965f Cherry-picked-from: @05446d6b6bc318147bca058f5f72a6f13937ffea Cherry-picked-from: @548b15d8e080dbb58775b4a16f8660460dc41b59 Cherry-picked-from: @0eef7a367dc371980cdc8d5cdf2d637aa6882b00 Cherry-picked-from: @b8b1eeb052fdbda2ea2d9f56892c7d53916a6338 Cherry-picked-from: @16ebbd24b5fdaa5c21efc407c1ba7e6a8b383049 Cherry-picked-from: @b0bcea03dbf4743cf67bac55c1d793d86b0684df Cherry-picked-from: @65816657c2ae799064a16d5353942eb91c6e35d3 Cherry-picked-from: @70c6bc8581595d6e11113093a71dfe5b2afc5f0a Cherry-picked-from: @490670128b82fa4f2d755e46dd7bb830d830db4c Cherry-picked-from: @2cd3be896d525e9f1343e15fa6e2bc5c3caf99a2 Cherry-picked-from: @44162e7ba564bd68bfecd68050ec594949a92358 Cherry-picked-from: @ff96e41c38b90f5aba54472cbaf93e773204b8ae Cherry-picked-from: @a9969e641add3b650198dfb63f084b7583c9881e Cherry-picked-from: @b02a07655de03ed907cc0f8fdf8ace07abc4238b Cherry-picked-from: @3ad3a90db31dd5c6466bee33b7ae3ffab051baa2 Cherry-picked-from: @e4b4486a96a969aa0fbd477ff999e214ab83feb5 Cherry-picked-from: @bcd58c26d325931af37da59c54c329fbcb32fcaa Cherry-picked-from: @a8dd9ffea174cbc8a034acd1c3bb3c7a40c72da9 Cherry-picked-from: @22e33ddda9d1668e4c94f912ed7828fa441de7cc Cherry-picked-from: @a36ccf4156f33a5c5bc8134e2a9d67fc6256fe53 Cherry-picked-from: @4c6dec84a671d4cf1cfae3eb0313872b476c080c Cherry-picked-from: @2a733a844454d0bc5f24beb4aff005fdc1c9ccaf Cherry-picked-from: @b1a735829d78083447e70eee06e68670154ddd1e Cherry-picked-from: @e8cb0484ce6c0e43a8e7ce3a6fdfba4c04c4be54 Cherry-picked-from: @d95cf256e755e3a804da55f13ef5afb3b6530afa Cherry-picked-from: @0d97101665c12e343876e69e7f934a7c73e88226 Cherry-picked-from: @4b17d6d8823c524ff1c3c3fa49a465cba5b560c1 Cherry-picked-from: @a4850b1b8f2c2cfc5a945af52930732a112d5230 Cherry-picked-from: @21e8d88c1d7d7b2e9722f8bcbf723c4f5191e609 Cherry-picked-from: @b7589b32a8e68a0cd40da34bfcd2e6efdad35c7c Cherry-picked-from: @caa748b9694f64d30d6aa1fa1b724f8e2b3ae579 Cherry-picked-from: @b10f438221ef37e69592f5eb61e0e3875bd0440c Cherry-picked-from: @6842877b2eff1431376da43fae3cc2993ca86887 Cherry-picked-from: @1c200ca7ae3cd4a3e2861b1a32fc16b917630f09 Cherry-picked-from: @1278ee92480390d6b73d8e769967b6ffd1ada58c Cherry-picked-from: @5ce53095c55a527b1f098342955a0de9ae5a4ff6 Cherry-picked-from: @575bd77196c306afb30f5d69b92bd1c981212a0e Cherry-picked-from: @9889c6da537c4cdd518394542ac79da64dd40d52 Cherry-picked-from: @87e6ce7c3a2f166eb1abec967ae20682e0d37ced Cherry-picked-from: @1be39d4250e3d124da12d0723705d0281b113c94 Cherry-picked-from: @7f2708a8c369d7c9065c2251ea02b42cda2feeb9 Cherry-picked-from: @58bc9a241b7e68cb1df56b8b7c384e626634a78f Cherry-picked-from: @8eeb049683fb2639d0485129b2c6de7fca3d0f37 Cherry-picked-from: @f74a04e4ba993860867f5b0a682b4289e2cddc04 Cherry-picked-from: @8a7d1aa973b052bbb2e257caa51c18a4d2452b22 Cherry-picked-from: @965ce31d8472912d9eeeea3be87ce8b7d5ef5ed0 Cherry-picked-from: @6962d2d79fedbbbed507f37b91bd3734cbdcc645 Cherry-picked-from: @4bc466422f045d63fdcb1dbac1b52a339254390f Cherry-picked-from: @b4e4e25e74517e10bf370d8c3fb3d30aef968550 Cherry-picked-from: @d5a7a32826422b4764a97e1b7d810566c6e2908b Cherry-picked-from: @230fea1ca6c9b77c7facc3f8c4281e5e7c75dc38 Cherry-picked-from: @a95a0be133982999f31ccd4c05dc582fc4bacb3f Cherry-picked-from: @dfb4cb87f9424787dc1a386e7b21050255d65add Cherry-picked-from: @4d183af0cf734127f2ebc3a3b310c12aff545478 Cherry-picked-from: @646817dd808b214eab635599a5c4909202f7bbd3 Cherry-picked-from: @802b9f6b191078f4168c689370be4c319bab8b80 Cherry-picked-from: @ff38bc7649ec7cfb1eb7a4cc8d7a49aa8b1cdfc6 Cherry-picked-from: @2bb63868c6278d1f94bb92267cc10b7b19343809 Cherry-picked-from: @56d98a50cfff2aee9b8e36bde12b9537783b7692 Cherry-picked-from: @73de1d038e6d7ce762294c03448b5b4c80e816b1 Cherry-picked-from: @1ebd1fdb2d4006f9ac8384a81e440e29b45bbfca Cherry-picked-from: @b4f60d900be298ba9886b70b14a9d2f45ea38046 Cherry-picked-from: @39a55844bc5dc02da225adad0b37c00f5d5f53ff Cherry-picked-from: @9b6101e382671fe5c8693d85e5fe28a2ad7e63bc Cherry-picked-from: @d9b8ec5afa7e87a7298ca0f4050e128bc3fd182a Cherry-picked-from: @b7df821372623ed8d0376c5be190f77e1bea19ab Cherry-picked-from: @15f7e329c24e4e51feb95f8b66b407cf06b02ef3 Cherry-picked-from: @009d4d115ada6825e6b6a8ac0b08d24d50d3da16 Cherry-picked-from: @b2188092a198b600aa2321e00cf32088adf3a74d Cherry-picked-from: @10bd6ae3c8e110027208aa3ff0b1d6d0b5363afb Cherry-picked-from: @ed29472af6176f4ef3705c9e6e85c132e5a95e6a Cherry-picked-from: @612ca670da55cc27b1206bc97d1a25f041510595 Cherry-picked-from: @de05186ad7d4c8d8c4cd9ae743271f288efe55a0 Cherry-picked-from: @96b0fce27c03f974dd05cf451635d3416f57d426 Cherry-picked-from: @7a9754c9271dcb80da8ef39a2c1d85110dfea8ea Cherry-picked-from: @9bf08c926b70fe2e51925025ba98d17d74638f9b Cherry-picked-from: @b0bca8d6e95c97156c72185e030a29ab115b2654 Cherry-picked-from: @9d102b762e24558c0584ed84b33efa33c6e913a1 Cherry-picked-from: @b361cac7534782d52fcb582138e8dbe64b2679f3 Cherry-picked-from: @dda86af8664f30e7d37ffa359849984a583ec47d Cherry-picked-from: @37a8caee42bdb94292f6e00480d896e96764e407 Cherry-picked-from: @26e014311f1a408e46c0f835a8643a4cefb46313 Cherry-picked-from: @9d941949c9ea47f3e6277aab744860d83f6c0dcd Cherry-picked-from: @7a2f5a0098d192944825f17d3be457af91d2bed1 Cherry-picked-from: @c7c25c89027376240587ca8190fa23df964e83c5 Cherry-picked-from: @9cfec9c05ec33afec502a0665c08543975925d10 Cherry-picked-from: @04ff4a0c267f39a1a8bed83d8ea74947a78865a0 Cherry-picked-from: @04385a61b7760a91a1d384f5e2181b6ee35f9ef2 Cherry-picked-from: @54d78bb423d9f760cc66e8d13daed8da2ed68d44 Cherry-picked-from: @ed857547223a730e6d2e63696d2c846bba62c7c0 Cherry-picked-from: @3e1ca111afcdeb7b310122a962817e2c496c19df Cherry-picked-from: @5174b386268185f91f1489a1a57347934bf28a2a Cherry-picked-from: @a1e21bc02de28af52aa564cb32bd48fa96422e41 Cherry-picked-from: @7b8e36583fc7ffc54da90d398887d7392ea6b8c7 Cherry-picked-from: @ccd2d7dc2795a86952ef6696496f62cd66091e2c Cherry-picked-from: @a5f56e8b4e7844c4c0ceee1c845d08881ec8ad7c Cherry-picked-from: @b69b2a7ae0c40157ba6a31c77317e42f98a6d8ac Cherry-picked-from: @b1922762837af91b1cbdc74f6c80392dbee28794 Cherry-picked-from: @61a2a3417f11cd6ac927978c8b4860622c8189f7 Cherry-picked-from: @6b19b7f37af39fff72c4786d5a676ce4f06086ac Cherry-picked-from: @e42d345aee1400455826b4bcdd7c549db2f7efd1 Cherry-picked-from: @adb400f9b1f8a6fd0b1c1f8b813ddd44f72c39f8 Cherry-picked-from: @20ed90f1ba5326336c7273e316c028a123fcdd5b Cherry-picked-from: @3dda4aaf08bac5b05b149dc81b9e3c9df5823a2d Cherry-picked-from: @c1c1af9d7bd4fbc334ef03e6d9993ffe5148d0e6 Cherry-picked-from: @71e62a77e8d45c675c01cf4096f74e2c696d7f54 Cherry-picked-from: @6521965e40de51c50438dfcc90c262916a880670 Cherry-picked-from: @65ffa676a51f58901eae0c64403ac8dc4e2b3734 Cherry-picked-from: @f006c5f5c1125b75b5f193906957e3a792a0ef5b Cherry-picked-from: @8377dbba309b204ba6b1f2b3a370c2eae8a3ff55 Cherry-picked-from: @7c96d821129ad46e0a4f61e6e2d97923d95b9693 Cherry-picked-from: @72e774431c1e425e34b64574aa429f9f88a2ceba Cherry-picked-from: @a9af9334868da48869719ed9640abc6142bd1a90 Cherry-picked-from: @bbf29201b8fefc507c7339421810fa61559743a6 Cherry-picked-from: @d25bf0d0ca035ed2735f63208d6aba26e15c9d15 Cherry-picked-from: @e9c7bb6e15185cdf40f19b66227c26beb362d06c Cherry-picked-from: @5c4ab999b022b3a420b02276281be8970df17a3c Cherry-picked-from: @ad9ceafec2b97bb6d5cec680f6457bc0a3d8d7d9 Cherry-picked-from: @6a40f69d4d823a26293ede43aa761b6ca9c29d56 Cherry-picked-from: @bd25182d5a9f04114873c5f5eb3d310bbf48938e Cherry-picked-from: @61f7cea48bd78190f5c73bedb32cab1411f87ddb Cherry-picked-from: @257e2f5338d13ca634869670c88c7baa73d8d059 Cherry-picked-from: @3cc1d5a92f481a6d93c686d7d013dfc5438ba868 Cherry-picked-from: @ed8e0a814609a070f46a0b6942dadc8e06ebf9d6 Cherry-picked-from: @ef4fa43df89bf442abd134eca58cdefc18116190 Cherry-picked-from: @7b5e64ef2e369258e2a4a613b7a62db3c21e5160 Cherry-picked-from: @c1bb07bd165f636744d9d7ed9d351d96c7fe89c4 Cherry-picked-from: @88ee57124e9fcadbf987d423f5b82849441958b8 Cherry-picked-from: @dc8253a84d9595972b3dfc4f559fbec3c8978ad9 Cherry-picked-from: @3fa43ec221c49c58b1b6fe813f0746c668c18692 Cherry-picked-from: @4fb40497d4b64dffa511562db11b94279704a4c3 Cherry-picked-from: @c8ebd48e0f4c110615981cc1485d4cb40374b825 Cherry-picked-from: @76bfd9b5e660a7ebfed3e258e849c9b2ec894b9f Cherry-picked-from: @7597fc556ca2d44776540c3c602d55943f8ea0cf Cherry-picked-from: @7531a3e30ad5ce83d73d7e35863f1651430860b1 Cherry-picked-from: @e6f0203ef395850fc459ce835f1a73c637ff03ca Cherry-picked-from: @efdf2ca0d79d10146429d040bc641f4fd2a5688d Cherry-picked-from: @bb07b2b93a9ef2f1f1b5f3d29cb78b0579dc6f75 Cherry-picked-from: @a970cae2dacebb5afb7e55d61abe2888db43d2d8 Cherry-picked-from: @698c200eba2c88a76f349644e49e65f4424eb849 Cherry-picked-from: @2123265c09f102763d1da955c22819ce4024e175 Cherry-picked-from: @4cc293d084286e5570d8bfb2d67e22d6f14354f1 Cherry-picked-from: @2b98cb6d8bfc20799813fd3014871ac1cfc77cb0 Cherry-picked-from: @df0f2e349f1e56dfe3dc395fc04244941a36a864 Cherry-picked-from: @53b2479eed4aac7ccd7d0dab980ebf5199102930 Cherry-picked-from: @4242c5152f59c86b232b70dfcc0e869ed1487bba Cherry-picked-from: @96021a2b175b0d05f731e5175142c5fed964864d Cherry-picked-from: @8c5692ac4a6c37529fbffe1194be9cf169c5aa9b Cherry-picked-from: @9c6847074d7758602a4bb491de62e24c2f063994 Cherry-picked-from: @b3fb881a731660c4340e2a8697ab5f1925e44dcb Cherry-picked-from: @ed05810d68b96e392a0ccfe76f6d4ae0ea09866a Cherry-picked-from: @809f9513acf0c4d8670164a1485834f959f484d9 Cherry-picked-from: @da0e245db66d992e328f66f6bc5d73e88144e672 Cherry-picked-from: @4d06c909d2fb61b4b1501d927a2c6816e9920ef6 Cherry-picked-from: @498948581a673b1fe13d18c42ab3882b90819796 Cherry-picked-from: @432e0222dde893b718893ae1c6417c14e3a08154 Cherry-picked-from: @63ce7c74bdc08f264e636d13923c7cfc16c3110b Cherry-picked-from: @68e68bfb57fa77893fd631d59b8c52f23087b2bf Cherry-picked-from: @8b8167d54751cf2761ea26d3538bf0cc6cf5bb64 Cherry-picked-from: @3bf6ed181e03ed150f762cf7628075e452038a83 Cherry-picked-from: @1059b406a8708d3211256ed9e639cda96b2ab953 Cherry-picked-from: @79d00ae39860af573e3cbec38c2ebb5acd1e7c40 Cherry-picked-from: @28dc2e8a400cc00c3e3e3028ac731678aebf3df4 Cherry-picked-from: @cc5dad81bc70e6119f9482f88590bb6f8195ee4f Cherry-picked-from: @4bd3469324e85b2153d5ac23de04ac256e5cba40 Cherry-picked-from: @5d5fa0dac8d378a493c85baa9f8fdbb4d42f89f2 Cherry-picked-from: @48decefbf429978330c2412bbc979801e9ac54d1 Cherry-picked-from: @fb4f52b71077e3f28b0dbc07988ab7d07af6e6e5 Cherry-picked-from: @b5a94d274bb8a5a27bfc79e0d2b3d838d3c19064 Cherry-picked-from: @1805735c639c1d61522f5c8ad8cade99837a0ace Cherry-picked-from: @987e47336484c0004f5147ec184e05a5991e3260 Cherry-picked-from: @ce0c13191fd8f47ffde193b892efef99b1eb69d5 Cherry-picked-from: @d9b69a61459ba24081f97de0f9049b0b52be0841 Cherry-picked-from: @8891e1e48d13c04fd666bbe6cc1d7c3d3f0a4232 Cherry-picked-from: @463fd4735e1b0c35bf1a789e7154b15303965446 Cherry-picked-from: @c4dab17ca984ef4371b151227ef659dd5313c55a Cherry-picked-from: @3a6b412f00a6f698159388f214db0ea92d25e3c1 Cherry-picked-from: @60849f33357882e00722216cc1a555f12337ac78 Cherry-picked-from: @2c8ee593b97213c6f72892fe56761d285aac5e26 Cherry-picked-from: @6a705a37f2cf856a6237eac430210859914f67d7 Cherry-picked-from: @c522154771efa94c0524b856475f77e45ca04672 Cherry-picked-from: @06ff25cce4d68b3398469bc07efc808d1be1103b Cherry-picked-from: @e5b6a4e19d5d73199ac7086747cdee02a52571bf Cherry-picked-from: @4dc0c66399e107cb089e090e745679da216ff105 Cherry-picked-from: @544abc927f097fd2e4b8171f1455c0e99ccaed38 Cherry-picked-from: @9741e91a64c8323b186d8199c4a0a9435a7d3740 Cherry-picked-from: @136ca87f7bb2f3b764548d8a897fa35c3debc81d Cherry-picked-from: @8d48235d3a655b16feadcbe4552b87978c1bebfc Cherry-picked-from: @ba223c776634963d5226c1f901487685e93859f7 Cherry-picked-from: @b9f3f8d737f11c0f5bab0360b09af68fc38a2858 Cherry-picked-from: @627b37e34fc94660b35710a603f140481d95ded5 Cherry-picked-from: @89b303c5533b56921b35de75a48053a0c8d14d3a Cherry-picked-from: @2972d6fa7929c293f4b62a606cd1dcb700ef5da7 Cherry-picked-from: @995ae73d5f4e14568d059ed80d614a34daef28bf Cherry-picked-from: @174eeea76ce2ee34744a2fc57e093811313affb3 Cherry-picked-from: @09c68f8f0ea8cea6408e0ebf58e3d25a7f332c44 Cherry-picked-from: @bc66a8fa81a862258c875c1cc1c9371c72f4008e Cherry-picked-from: @72cf9253fcb5b17f0705dbb0b6fb8d09fa9c7c54 Cherry-picked-from: @60a6d11116fdcac0ac26d94aa9c9975f147677cd Cherry-picked-from: @6c0376145fbefa545ba4bf91df46c45d627f54b2 Cherry-picked-from: @edc386e9a54d6943602336913e881d065fa1929e Cherry-picked-from: @709dc671e442f3977645b06fa7b294750e30516b Cherry-picked-from: @591264ef52040b5cc80582d9481a9323d0dedb49 Cherry-picked-from: @8ac7ce73b34a3adbb6b54f568b74b626479fc89d Cherry-picked-from: @f014e255dfb000620b02177cb374f34e717e9291 Cherry-picked-from: @029c4737273ab614b975090d9a49a6f4d2df70d4 Cherry-picked-from: @036c32971650f5c234eb67cbe9aee47e5c5100e3 Cherry-picked-from: @6859619e981ec5631d7bfa630efe9ec0fa724072 Cherry-picked-from: @837b7b4b948724a23962662625712a21054e3491 Cherry-picked-from: @1d3962a00033812278647f68485757c289af544f Cherry-picked-from: @6b2c1151678816b6a367eaa344cb05895ab38d7c Cherry-picked-from: @2b45eb0e52e254fb78f6addd476f4fac36d8093f Cherry-picked-from: @98aecab7bdc028953ce8249c43e2d1c06029f9bd Cherry-picked-from: @999b7e4edf8f973943f3f2c53ecd9e7abf0f03c4 Cherry-picked-from: @0c08e3f55fe48b3d71e84656fa2dddbb2c0d80d3 Cherry-picked-from: @49acb07f9f0abd22ed3abb7a8c4836e56a2ffba4 Cherry-picked-from: @aad372e15fb95f5b1e914465f16e302a5d724799 Cherry-picked-from: @60d33637d9e6e513b65f20796eb4f456bccf203b Cherry-picked-from: @a0b731e2ce1f75e964ee5c55e5fd919186c9f562 Cherry-picked-from: @7830366f3c255ce2b807e501d245a1f2e95a047f Cherry-picked-from: @b9a20dc97f5149e1c828504f6021cc443506a545 Cherry-picked-from: @97ea9df57f1e47494d3a4522e6b335ef58d0438f Cherry-picked-from: @063e493d3d6c0aa6a6260c6c930572a4a9ae0d8e Cherry-picked-from: @688b72e1581024769351f8b39b1097e65c630440 Cherry-picked-from: @f771ba8de94dd5d6acb8ad048cf4f211c8092c3a Cherry-picked-from: @6dfd39c32f7905d633dd9f41c202cf47cc05d492 Cherry-picked-from: @06a229f98f9e029bb4483f6a972d58a2a96c10ef Cherry-picked-from: @1a67cf57e3186b453423473118d920eb94bf4ed5 Cherry-picked-from: @c260e207b299fc8bac45558f19215622108961a6 Cherry-picked-from: @d86a12eb6223a97e5614bbb18804e1509609d1fc Cherry-picked-from: @3cd4978a09c47222233dfb8a150032f983c80024 Cherry-picked-from: @92b48921274bea999daf0a643ee90ae69d8d5343 Cherry-picked-from: @d58dafae8836d970799a35a64589e03911f681e8 Cherry-picked-from: @d326861eb470646ea1d419f733406b7bb75e5ebe Cherry-picked-from: @cec553509659417c1914e565c84c9fdd317be100 Cherry-picked-from: @fb289b7a79cdebc33911a161c5f827ede37252a1 Cherry-picked-from: @8088218f4699990662a23c822b4b8c4ae07b3a83 Cherry-picked-from: @94fdee2eac0703882cf7e6554dd44660cbe8e29b Cherry-picked-from: @6084c26d004626d9966f452f56392984171355f1 Cherry-picked-from: @7a22b3fa0b2c11be61f606fb8e780c532c586bf2 Cherry-picked-from: @1ab9393212b2256f3b3e257e567e49755309a293 Cherry-picked-from: @b39ca7eccb76bd4ddca73cdcb79d67bc784d1bf0 Cherry-picked-from: @909f26a26b73fc8cdf3cca52858853e32decdfdc Cherry-picked-from: @1efa7a88c4c15f2cd43c5b0e8509a858c4923f43 Cherry-picked-from: @604f22c42a9303211571b11babed074c1f1d510f Cherry-picked-from: @2f86ae71d574f3f17b7001ea6ef6ae78b8b872ff Cherry-picked-from: @71ec42127d8f77c641bcf9cdf296352f4ce63709 Cherry-picked-from: @fa3fafdde51617d3addf860897ede21c6f17c579 Cherry-picked-from: @81b93b9ce04b7b1af6c9e6e8c88b657bc79b12b7 Cherry-picked-from: @4daaea1190411b25c84c3e9786ab6761841152ad Cherry-picked-from: @05fb16d151d0a048977546192da458c6079b3666 Cherry-picked-from: @ce71fac7d6b116a2fed53101fc21350e95167875 Cherry-picked-from: @d45353f95b5774318c8e2e6c1e045925dfda9383 Cherry-picked-from: @36afd1b2b0ae38e90b0b05e41506ed01aaac285a Cherry-picked-from: @87e38da8268ccebe0cca43b746cf2a27b21113a9 Cherry-picked-from: @e5481ac79fe33ffaf8a3c638244e159fc3a04894 Cherry-picked-from: @d4021f4b92ddb316b77964b344a250c39cb7cd9a Cherry-picked-from: @16f9f4dd2203649ca8718d2a7a332b999a64b3db Cherry-picked-from: @91aed291dd8f3ecb7fbf12adef853ffd5110092a Cherry-picked-from: @428d1761b43ec0f312610df822d5a63a30d25b8e Cherry-picked-from: @9881a74e25500a2bf29ad919bcd6cd7028ce5eb1 Cherry-picked-from: @8f69e07eb37d782708affbd92202045fa3ddb8d4 Cherry-picked-from: @10fe82fef136fbc2a017e5a2ac5b20c3822fdca2 Cherry-picked-from: @4d9134fe9c4b4e15c0ff91f5e33b02abe3330ebe Cherry-picked-from: @8c85ad540a720d2b6405d2468a9e9f5b0e8c16d3 Cherry-picked-from: @5d4b04040d6977048fde2e104349e588ba24511e Cherry-picked-from: @8d4a2f2c59bb9ac16e794c2001b0c228c6e0e5e4 Cherry-picked-from: @0e4245063f200b84854b2513224068a7d9be7c26 Cherry-picked-from: @ca8091491d32624a8d760069a0150e7ce392f5cc Cherry-picked-from: @2671f04865784376efe02acffa65e91a6ec9651d Cherry-picked-from: @36e2e04a32c2a94eafc83fd7e1e82a89045e2e9f Cherry-picked-from: @9c86a9fd23469e7c10b80be3ed6503ee9cd8da0e Cherry-picked-from: @e11a0775e79dc5ade7e6f01edccfc7b6e024819d Cherry-picked-from: @8c2633a46fe87f01680eec30596bb568590f32a1 Cherry-picked-from: @6c39616ecd473328533a807657dc8c5a01c16817 Cherry-picked-from: @0e2bc588c49ec94089e80b3a8c86d5aa92321ba7 Cherry-picked-from: @726ef48c2ac8db3c7484e2a9219b0e072fd5a55a Cherry-picked-from: @9dab1545190cefc2d790ca373a4c44e169e3dcc4 Cherry-picked-from: @a939a15607a7f0e1a9cfdfc0ef8d7d99e673863d Cherry-picked-from: @dfe23b9cc44f4e912e84938e610d46fbfaa9189b Cherry-picked-from: @777af476cbb42b045d6547d83cf28b645556a93a Cherry-picked-from: @5fdcef7cbe9121b251291535081d553426733719 Cherry-picked-from: @ff334600d5475530a72605b86e66bd926edd1638 Cherry-picked-from: @a622aee45a29690e436a0ebe0a436eb965a733a9 Cherry-picked-from: @44ec3e411109fb16d2aa14a5936f48e16527b17a Cherry-picked-from: @30c0f7e89ff040a41a45b05316f60f30092dfa7e Cherry-picked-from: @c5828cbc087fc009e1668fa8780cf5e899cf6a98 Cherry-picked-from: @ff971955009a6314111891b9e353cf0a734f0d4e Cherry-picked-from: @5b03ce77f5148a8d2b44a35a1123e111ba640c62 Cherry-picked-from: @ee6f7b1bf0f865066ad07101b5f6b26f57b61fe8 Cherry-picked-from: @a65d70f84b4e332d9e83234be3fdb994a80a6444 Cherry-picked-from: @a4a490bae7edbe7f2fefc915e96e0f58ea914c35 Cherry-picked-from: @cbb96d9fe741551636886769cd12a677d6de4844 Cherry-picked-from: @bdd368533f52bd8497a0ac871d4174741c69e4b6 Cherry-picked-from: @f051c143253de5a6bb954b426a10b24c339fb203 Cherry-picked-from: @ae56597f08ce4f7abc0d6d9c4ff3bee3cdae9182 Cherry-picked-from: @01b20172b81182f02a065821daa1acdf7cb74e48 Cherry-picked-from: @4a80d48ea9c4c1377c163cdf45b484cb6aebbc02 Cherry-picked-from: @fa6c0e1b404f094e579b5fb192c6643c7822c1b6 Cherry-picked-from: @fee91fefceb4652933182ad14fb323a7e94d3c2d Cherry-picked-from: @9fed9f13023091b7d0d9d883113bc35a75a6f082 Cherry-picked-from: @e88f6605ec9768005f57e4ec5fd4f208b2fb4a6a Cherry-picked-from: @f788ba142a08d15cad298ffc9a705f967d4666a4 Cherry-picked-from: @eb2eebae22bb2eba9d0ddbd77a1da4d0b5ab218d Cherry-picked-from: @7cc3376f07ad0017dd656f42b017a3ba4db65561 Cherry-picked-from: @5470337b1c11e5a6c3f077859e9df4a6ba16ed36 Cherry-picked-from: @151f26070b04db162fe5afb515cfc4bbc5f4325d Cherry-picked-from: @86a89d96d7cb22048a3528462ad2e10907f9b032 Cherry-picked-from: @a820c63912d0f1bcd16a8a74f228d83509ff5e86 Cherry-picked-from: @37a3fb0f860d576ddd84471e70645b8fa60ef8bb Cherry-picked-from: @05c2cbf0e9199e5b35ebdcd4fc400ab9cc03e80c Cherry-picked-from: @9917a3fb778550e935c79bb20303b2291c033c28 Cherry-picked-from: @9c1786bdd6cc2d1662e2a1593f0152a8a3ccec36 Cherry-picked-from: @7c45d918bf81d4cfa8a7b00281f9d6c686eee11b Cherry-picked-from: @20038fb95543f6ed70aae6e19bf4d1258f7cc7ec Cherry-picked-from: @222d635aeec24dfd34e45fe02f3d72d30f52c7ff Cherry-picked-from: @a274ef929fb7a7b580f13ce53ea37add3dce4355 Cherry-picked-from: @f392b81e9502e9770360201650bf1d3c29defc68 Cherry-picked-from: @81f22ae109aebce955722cb2cd3d1cb2d99bb974 Cherry-picked-from: @9aceb513795c8f18a294d0aba7d6e9fa8bd3064b Cherry-picked-from: @6a9deb21b8a0f3c1e8e7d24f22ed5303ca70aae7 Cherry-picked-from: @d000316d1901a802f06a77bc8d1ddf52aa504012 Cherry-picked-from: @e6bf69b3663c627614391fa34960e579e0de26df Cherry-picked-from: @59895f9c5af82ab112ae6fd997936fa464bd00bd Cherry-picked-from: @f9d86b9256240762152a6c5cb07e99761ad80af9 Cherry-picked-from: @9521e61a22b4e9cb10f0b01e35c190b5fa535336 Cherry-picked-from: @b12733395e0795dbd77fc879a60faa76d1a5cafb Cherry-picked-from: @4ed5febc3884b18b8240c3958958e87e829c31c3 Cherry-picked-from: @d070c44091ff82de9835585c0f575bdeef5b59e5 Cherry-picked-from: @57f19f0d5c10a54319e3d05f000c1213f17f3601 Cherry-picked-from: @e3390bfb70c9bd4f475953d1cb1bebcfb50cf8fa Cherry-picked-from: @b782538743c360f195da716cacd5d989f26e81cc Cherry-picked-from: @3e967cbc229eb0bc9f5c2a371959a57cde49e164 Cherry-picked-from: @8f834ff87d548450bbe7afd5626e52d9b9b8ac71 Cherry-picked-from: @9a1a63a667a1666e0c7d67516ee69d20f1724d13 Cherry-picked-from: @3d7bc5958dbd7f5c739b815e977b892e6fb40584 Cherry-picked-from: @067ec4f0f9d5c529f4615151d73b87e99d7038f7 Cherry-picked-from: @afdbc472a4727994091421497f65b8eb6666a537 Cherry-picked-from: @60d20f9dafc133c4f7b981d08465f637dd7c98b2 Cherry-picked-from: @5e05a9cb79685f5aa528b1748505019a2d0bced7 Cherry-picked-from: @38f46e80b07269b54425f372970bf87821b591c7 Cherry-picked-from: @084dfd2ecc0e26f9e2c1ef86ed216c7ac9e99703 Cherry-picked-from: @ec3df0dd8fec86e56010d1b6fbfe618ef3d7bc57 Cherry-picked-from: @b529b7c6b7cd8096cc25e155f162b416f4277835 Cherry-picked-from: @66112980aad31382e74a6ce02f3fe4cb318a0576 Cherry-picked-from: @042b2c867ddf66bb29412ceba8c62f2238ba4289 Cherry-picked-from: @e9919ead49d0cbfd2553e277486060dbf0d4010e Cherry-picked-from: @9c464c274cd40114321ca74fe2ff03b3fca3fa67 Cherry-picked-from: @82eebc905d7e8530190e7b48f147e3c71c33195a Cherry-picked-from: @9c55299a82830401edf57e45b43562b5d8dacfa7 Cherry-picked-from: @768736dc1971648a565639810de8ae616ba2ffdd Cherry-picked-from: @b70d3c4af3804ddf39d5dedc60bbcf973140db27 Cherry-picked-from: @b17baca871dd0dbdd00fb0b7fb35652855984e50 Cherry-picked-from: @ab5fcfcc01281f1f6cd6e8f43f7c302c12806feb Cherry-picked-from: @7ce79c8972429d7bc94326662998c3c47f52c4fa Cherry-picked-from: @20db7afd5f2bf55fc23e97c4ad81ea03cd9e7f9c Cherry-picked-from: @864a1ecae7d0df2fb16b911bbb255001219ce4fc Cherry-picked-from: @c301c5d08345f532e00de6b47aeecb64f25ac2c5 Cherry-picked-from: @91494b259690e274174fe9620b451a2d6ba0a718 Cherry-picked-from: @e601bf2d8ef41a4c799c6742e7a9cd875e83e9f7 Cherry-picked-from: @110ca23bab2793a1dc89672425a670f73bdb1e0c Cherry-picked-from: @6e962d8b9e55f19c33f23a5a6973bcb7b7556589 Cherry-picked-from: @a1902209671daa316c3192214d2354ccfb1db081 Cherry-picked-from: @455430a6f8dd4767612b8d708db9dc21369de36e Cherry-picked-from: @03b9abab84865122a27300e669c4afc1982ae394 Cherry-picked-from: @ae96a8191649c5d1d44c6e06f8503015216cd880 Cherry-picked-from: @48b3c4a043e3e0bbd24ccc01631ab4adc7db715d Cherry-picked-from: @942c53e7f0795b157be41ec06554e0c05fe0e0a6 Cherry-picked-from: @5320ee7731676382398520fe94a01a94929a6587 Cherry-picked-from: @adb9234d0375df93d1ec96ce4008107788cc46c2 Cherry-picked-from: @3070fafec14867a305f6ac729927b41cc9af4be3 Cherry-picked-from: @42e3d8d693141ea442ba411a6a8a5d1bbbc9a24e Cherry-picked-from: @063b9aabe28ae13812424982acca4158a9ec7f30 Cherry-picked-from: @74959fc1fded97cf3de2d6f1acd6dfda87f5d593 Cherry-picked-from: @2d52c88dadd50c0643af18ce5f69c1b1307f88dd Cherry-picked-from: @75981b05c372ae33374c901ddc867efee426e38d Cherry-picked-from: @bf623a580bc586f893673c93a5f11900ced498b0 Cherry-picked-from: @563a125c66b1e4273eb1daf6b67b740f7e9c546b Cherry-picked-from: @ba9eaf2ee2193bf060620f1fe71d24033004889e Cherry-picked-from: @a01978ba96cc155c73bc8fd784f8bfa7976a5ae1 Cherry-picked-from: @fa69f836c4630348dbcb182868b2a022c989b5bc Cherry-picked-from: @1a022a31de8360191c93623f0d6d192296d32f34 Cherry-picked-from: @6017b738b1ab87cee16192e99cb597e2fc095da0 Cherry-picked-from: @e309a15d73270ad1a430211d306c4d3d64281c33 Cherry-picked-from: @024af2b738d109851abd8266e6a6993917fe2360 Cherry-picked-from: @15a5e39da2b7f34abe88c2c9bbeabaf5896cbb69 Cherry-picked-from: @77ef6724683087548279bb7e0ebf6b47464260fe Cherry-picked-from: @059aedeb08fd4e125995c497895e4553cb143fec Cherry-picked-from: @c943747d6b28a0d66273b56c34d13dc4585311f3 Cherry-picked-from: @e802840b62eebb388f106f3ea1af7b0dbdc89ffd Cherry-picked-from: @2e31aead39ddd666dfced4e0fad854450aa46fbc Cherry-picked-from: @a5c07fa1157d744a0c56d0a734d153f5e45fcd46 Cherry-picked-from: @8873e13f1e6f86afd5a2781d2257cc2efc2c11b2 Cherry-picked-from: @5568b393a86d7b32b3348d6ceebf32e0dc993bfb Cherry-picked-from: @2018d8aa99c4dbfdc280d7767452ac294845040f Cherry-picked-from: @84f5d7dc1d1b041382c126384c6eb28cad2f53fa Cherry-picked-from: @997a9f5b9ea9f9fdfc2645a0c85a07f5e4b00e64 Cherry-picked-from: @f358c6f2fb1ee3ed598d86cb2da64d26769cf4c2 Cherry-picked-from: @14c61bb33faf5d6d4a2f012c9f49523b54904e0a Cherry-picked-from: @3c71e2bd4866bbbb8d468d9ea5e60b63d1546a2f Cherry-picked-from: @1aa77e4603fc2ac8af13b49ca2a66dc58ec15c9a Cherry-picked-from: @b85005194e506065de3c2c5f9736300e750aef18 Cherry-picked-from: @8db5d67768e44d264d946b231cc2b7a77f4239f3 Cherry-picked-from: @3efafab21bd5d14bac5f82bbfd5a91b7a9af921c Cherry-picked-from: @9d99370027523a5c86475719a0b56c05ea3227fb Cherry-picked-from: @ac63f30cd2d3b175486062e4535018cd59b34fc4 Cherry-picked-from: @addd290f88f75f2374d5eeda01eec935da790814 Cherry-picked-from: @26c979673664cccff6cc1ab17110ec244c51b2e4 Cherry-picked-from: @05c240fad6fea1caed99ddf8b2d093eff4ee1f31 Cherry-picked-from: @e8f419c4e07edd8c20f5ee816abf8263d41903de Cherry-picked-from: @bfc36cc86d368df70fc6c41a5b9ec7a8e19bdec2 Cherry-picked-from: @9e1de97a69df6e1645413f4b4e61086e61659afa Cherry-picked-from: @53a7e3b6e56ac35c5da652ee294564d30dc1d33b Cherry-picked-from: @4bf902de5851304cae53c57889b5ae90fa7367a8 Cherry-picked-from: @d25b493c7f79d13e7dca0278f66aeeb6c05f4d72 Cherry-picked-from: @bdd0f74188bfae6b4fa7da94697a999730570849 Cherry-picked-from: @4c0b873a4dd215072dfe44d75030f512f79904a1 Cherry-picked-from: @43ab4f33ad63422b92d9e6e6553f8400e2686a43 Cherry-picked-from: @0bac6e4d67d2058223cddcc32d77f6386f08c84f Cherry-picked-from: @1eb7198badbba14963935e4da8cd356880501402 Cherry-picked-from: @786ec21b5a8937556cda98e5487cc96195380d6a Cherry-picked-from: @33e73948617f0a8fc63e4d224f4671bd32cd132f Cherry-picked-from: @4f08dcccfd7130bb8853072e26284820bd61ff2c Cherry-picked-from: @f03f305ade0cd8e4b0c69875adc0c5ac9a5f707c Cherry-picked-from: @1dd4f92ea275a8c754cfa6a23ce5cb60171d4eb4 Cherry-picked-from: @3a50e46cbfe79cd6c5d9abc0dbbfa76992872948 Cherry-picked-from: @44881b0222e2c6e017a1543ac054008d3067d11b Cherry-picked-from: @b393b9e8ffedfbe76772845e43ce1d80df946111 Cherry-picked-from: @74912037dcbcdddf9b9c10466dd350b5ba824e05 Cherry-picked-from: @70da80bcb5574a10925469048d2ebb2abf882e73 Cherry-picked-from: @4204c961058d32eb376b50bc37a71ce90a22af39 Cherry-picked-from: @d01cb7b65f3902fa990c884c2fa77110acd94abd Cherry-picked-from: @398bf516597d8eea1760e5ca3e773687a0fca2af Cherry-picked-from: @d02ef9efc210a72da78d22b99f730c9497956208 Cherry-picked-from: @f7fef07725e788630155ad31a7db89ba0e7c5184 Cherry-picked-from: @b3fd537740c211393939117f5a89f4eb7665b163 Cherry-picked-from: @e51bad0c3a7873cd0242b6a39a7d4d1f27b047b3 Cherry-picked-from: @134c1e23d3558952e4654b4b48dbeb8e984a853e Cherry-picked-from: @a82df52753d9c5985a0bf4d681c6ea74e9cfe095 Cherry-picked-from: @c1eb973e327a4c2647dfd6afda38aab1450e0f81 Cherry-picked-from: @4575bbbb694629aa8af28414cfb62c9f576051fc Cherry-picked-from: @5d37139ee52a775ff5e7f10c49e7516131dc6cc9 Cherry-picked-from: @969b9029c095cd70c916c6924ddc4175f5bdaae2 Cherry-picked-from: @08aae60dc9196bb2b8f7d3d1a4a59be23766f098 Cherry-picked-from: @d33efeef10ba345a83e4b3f78ea82d6d6a8e14e2 Cherry-picked-from: @949beca0c24bb184fa5b56626678b6ca96bc1cca Cherry-picked-from: @3381efc5c15cf0ca9f33e8f72633fcce6b08fb2e Cherry-picked-from: @9849ee83907aabf21e4b56c88c87f506895df49b Cherry-picked-from: @bffec0f5d5857558622bc1a8153176bd251bdd6a Cherry-picked-from: @d103918891dbcd522f2595cdbe0e57522b649b15 Cherry-picked-from: @8fd043abac71f5522501d3b414a0fe1aeb0ca866 Cherry-picked-from: @0a73328053c459b3e5c0e62b8496926f04538a40 Cherry-picked-from: @8e6acded8274ccaf788fa098162013f8e2d2e97e Cherry-picked-from: @6f3990ddcad0d48e1d51ef2add41ec25bdc09dfd Cherry-picked-from: @b08337b902c335574912b4539087da69133dcb75 Cherry-picked-from: @8e20dd22d8900ae0f76cfc38a7d9c81ee4f23f29 Cherry-picked-from: @630485ac989a7ad2ef1d41d6d506ddddde45874c Cherry-picked-from: @46715371b0612a6f9114dffd1466941ac476cef5 Cherry-picked-from: @4de697f8fa01974a578dc9fed55a12ddd88bc1b2 Cherry-picked-from: @7735a0b85c72a39b4cb88793e5f46e0f73538b87 Cherry-picked-from: @c6472c189f830c9b6d975b2ea03108bd40878c19 Cherry-picked-from: @a31d3cad96c63cb4b9709e3d8ddc4ed05663d09b Cherry-picked-from: @1fc11ea7d80987f23ea26ee7a785712678505435 Cherry-picked-from: @90a41aa1f7f3ef314a843df987ba1d6b18c66811 Cherry-picked-from: @d918fe3ecf5a6cb3577cfe44a6890d3d4a8bb697 Cherry-picked-from: @41e0c35b61a3a6c1a16bd8a262ab0d4c8e04a673 Cherry-picked-from: @c5bb6db85b2d2ddfc94d14d64459b45b6548cf46 Cherry-picked-from: @6b778c404846b6b283b3ce1d378ce9655df1a0f4 Cherry-picked-from: @3d18c6ecec62d7bf6b6b2db979a297fe800f4070 Cherry-picked-from: @4113a0f39e538e11be034bc42c684049973107fd Cherry-picked-from: @c1a8f8150e2576b4c8195e7231c5cb3e89437e3b Cherry-picked-from: @4e8fcc1d3d0b21d5681e470c9998b3caa598628f Cherry-picked-from: @53c1ae229fe6ee90c4db5ca55f4e44ecbce077e4 Cherry-picked-from: @e41613f6ec66b959f5a74734987254fc05e38c09 Cherry-picked-from: @2891c6c93c8118cb5e0e4eb05af4396ab38ff922 Cherry-picked-from: @2d4a0c79a34d65b1cb70a49867971c593fa27e99 Cherry-picked-from: @02b3e85eacbb4c3f9b200b9440a0ea2cc78083aa Cherry-picked-from: @ca49372a8d3efe62eb0fa2da816aeff5cbfda7da Cherry-picked-from: @b7733d6f5ce19582f497648000a2ffaa7c2f88ce Cherry-picked-from: @49df8ab7b6da27dd26b8c198cc5cad38d81e13d4 Cherry-picked-from: @25efbdafce6bb4d1ec1ad604f949a62971b3b51c Cherry-picked-from: @f7a7f08e158c18c7375faee55de47487b1270c04 Cherry-picked-from: @0de6778f135f963a7ea5ee0e9238eca2217dbf7d Cherry-picked-from: @4cdf867cb19f1c7c133294d720498065ea8120b1 Cherry-picked-from: @19245dd5475e3af8bbe4d72b9d42a3471e335e8b Cherry-picked-from: @7e94dec67988d59faf8bdbabf5012478b3671726 Cherry-picked-from: @72df4bd624c6d47e77a6f6b21e81255f37465662 Cherry-picked-from: @ac5f018877348e2ec22118f5f364f3f9cad0fe10 Cherry-picked-from: @7fddb357cb97720432905166f3483183339045e9 Cherry-picked-from: @6b0785028f5bd0fab09b10da157254a4bf515fd7 Cherry-picked-from: @98ed7f57c609acdcf28503f5915e3ba87f5ec7e8 Cherry-picked-from: @a96ef12061769ce3247462a14fb56cc209831e64 Cherry-picked-from: @e60b28fd1fd7104b85764f6790067da86beff230 Cherry-picked-from: @66de964c59da097cbd2d035ed17f96ebcc4c8e78 Cherry-picked-from: @bcb587a3bca61ae3486233319d731c3d9345b1c0 Cherry-picked-from: @5f56333016d4bca1cb0a9dccb7aa7bb5c02d404f Cherry-picked-from: @ce9719c6548480747bae4bbf16c83768d973c0d2 Cherry-picked-from: @7eb48d3cf874905545d76228b0a18747466d7d73 Cherry-picked-from: @9dc759023ba29a7bdf49495ed88f234511908698 Cherry-picked-from: @278e5220ec3bb8b9c58515e5c78e4f51879de875 Cherry-picked-from: @262fef6ac8f57661151afc2a27df2835d747142f Cherry-picked-from: @44820dceadac65ac7c0ce8fc0ffba8c2bd9fae89 Cherry-picked-from: @46e324e269c80a98047195fcab4eb0b7f9d91e89 Cherry-picked-from: @e4d80ed5566c028f7cd82205177f3f3e3e934679 Cherry-picked-from: @61273c072c2e901005f72fc865c11bdf1db773a1 Cherry-picked-from: @de7848e2275f43a01dca66948b54be2f5adf276d Cherry-picked-from: @912f7a55251da6f19db71fabd5ab8b5d971dbdfa Cherry-picked-from: @5290d97574bb85b8c7ffd5a63abc60db1fbe638e Cherry-picked-from: @3acf46ed45d5b58ebf19964ecaf802e3556570ed Cherry-picked-from: @f966dde476aee19fbf96798bfc2435be97133c9e Cherry-picked-from: @10d0e3f3ca92326df0ca071fabffe463742f263c Cherry-picked-from: @fbb9bb08c5e350b22b0aed7ab4a7dc00e4b14bc0 Cherry-picked-from: @52e7d4295e73f38df0fb525f2373fe4e69af9a4f Cherry-picked-from: @8bd0eb54248f3ec45e0342e47ea8b12d2ef22912 Cherry-picked-from: @729ee165ed48ef51954e1ecbda56b4e62bbb9108 Cherry-picked-from: @02f99c0ff379a94b61f76a15625baeee27cdf2c4 Cherry-picked-from: @2ada1b71b67e75d450a28eae98ce3a1817a97f1f Cherry-picked-from: @2f59a3cff3419ca4d657438dfb1a424b8f0db853 Cherry-picked-from: @231c1fa37a2b6c9584fac4af83b95573bd5069b9 Cherry-picked-from: @5effa6043e4860c36cffd1e23c9c76c17a323fc4 Cherry-picked-from: @253e159700599a04d971ae9b804525cd434b82cf Cherry-picked-from: @0f5317797179f53c9daed3c554a6f7e8d483ea46 Cherry-picked-from: @31acad4e8f17fb636b3eb8035892e37d276bbdc6 Cherry-picked-from: @143eca8e8677892f0162d5e78bc6dff4754562e4 Cherry-picked-from: @8928aba7ee1cc74e78e2c59aea23e33396153bb1 Cherry-picked-from: @0848a47c97c6c2540a292dc54bc1f25800eb995a Cherry-picked-from: @acf3ff91e4464b8edb2f2ffd4a4ff5a3f86cef34 Cherry-picked-from: @6bfae2714f6f2d8a9d8bdc170d18428e08d66b29 Cherry-picked-from: @74ecdec9bab0d5b11ca0b03cfeef41a41c6b96f4 Cherry-picked-from: @70be8ce15cf42197b78ec0f00893c1541790c7c9 Cherry-picked-from: @6aa80844b82e9bb991e71e1d4a5ea62655a5bb25 Cherry-picked-from: @e27bbe4982439da6864160fd1b66445058f74801 Cherry-picked-from: @537c97cce96d2f2b2d81ca84ad74c1e60c04e4c0 Cherry-picked-from: @c06014d50cc7f31c3cde32906e11dbd2b7491e48 Cherry-picked-from: @d72734946ab4b68cf205e5f0de9caf875f8621ca Cherry-picked-from: @499c1ee6e32d3f30a2eddcd9fd9b458ce1b67582 Cherry-picked-from: @de2ccffec16610bad7884dbbd6c4942657e84804 Cherry-picked-from: @17ab46aedd689ae73541f07365422b717e9e1d74 Cherry-picked-from: @724d2d58facf2c140c62bb0c818264216cfc70f4 Cherry-picked-from: @5f8f58ae25e2a78f31b06edcf26532d634ca554e Cherry-picked-from: @0e4603ac71d96135ac2d159ca8183471a78d836f Cherry-picked-from: @4c2cb73055c8defa4e094c8a861712f390c8a687 Cherry-picked-from: @e4497234c79433f55feb60c5a849104435bcd423 Cherry-picked-from: @43b36bfe8cc7507a70c4aa3901b0b065dcd142da Cherry-picked-from: @cf290e31bd6f73f342abb6b1aa8210cc2eec7c88 Cherry-picked-from: @ac86deccee98752aaff0375b19e05d417e538806 Cherry-picked-from: @3c1176110a63f58e54c41bff4f2fe1778bda7963 Cherry-picked-from: @80a6eb3131f0962b4392fa5f1d1ed664dd074800 Cherry-picked-from: @d6f28a3da7f3d32700a80a7e402e63b35808bb1c Cherry-picked-from: @4682f3cace3fbf85f41247ec9e4d94e9999f3cf8 Cherry-picked-from: @97f9e2552567e2300c33b9abad20441ff9246a67 Cherry-picked-from: @e554c59aac684c19bee394d18341027c8469bd35 Cherry-picked-from: @dab0e97c222c4dc3faebfd3f7fef219ea965041a Cherry-picked-from: @2bcd56cfacea3166a6a8d0985c662427b2b6b7e6 Cherry-picked-from: @7242777d63efc4849b0ef9dc95701cd40717781f Cherry-picked-from: @2ee8b807f8782e5dc201728c617ff6c164b30ece Cherry-picked-from: @b0ac284dae4863a6daaad345032cbb27d7a2521f Cherry-picked-from: @b9e7521463287714b736481c5683ff9ab937a761 Cherry-picked-from: @95fe282a17335ca140fec75b4c960abd69a03dea Cherry-picked-from: @30d091b2fb2e37f7fe967b78403dbdcb1287a350 Cherry-picked-from: @3ec81709d72d01ad50884ef63b18a8feca33a607 Cherry-picked-from: @f17f2f918c71a274d7af884b8590d03ccb3cdb33 Cherry-picked-from: @9b4a114eb68b9a728debfe4271e818974e8c9e68 Cherry-picked-from: @2015ab3194d908944c8f3f62d1da0a9d0370cd8a Cherry-picked-from: @330579ef9612c89c89c1e22a948dcb581edc8e96 Cherry-picked-from: @f2a92e7c8427d2afb209841030f6ccc9b85bf3da Cherry-picked-from: @c0c2f82147aea3c832bd4bd5697626e5cb7eb255 Cherry-picked-from: @168e4159adbf924b113a09430019b3753dff0a4b Cherry-picked-from: @f0b05869fc4a8f486daae3cca424d4604602bca9 Cherry-picked-from: @a91731a83119c81f5677018c52663374ffc5949f Cherry-picked-from: @b955ba168829059fca067eb2a887472cc1209a55 Cherry-picked-from: @804d989b2984802a119591ef115abba8b464f1d3 Cherry-picked-from: @dfe8cd028eb73a4154137768b0b9fd8f332f1e16 Cherry-picked-from: @c35f529fac4bc0f09076cb500aa376c7aaa8f100 Cherry-picked-from: @a3db68f9abb4d4433c93bd55639dc6da864dcd94 Cherry-picked-from: @92f5a2e2525838a4c755b36c6e0528f068316d66 Cherry-picked-from: @76497123566a1a9ef2a94db4deaaf7a9e301dc7c Cherry-picked-from: @f51cac277c87f3409ba550a21aa9bb7082c66835 Cherry-picked-from: @b9dd6e99b677cd44ed5d04fcfface0effdcbc83a Cherry-picked-from: @e3c21c913d520a16ec0df762324071a4c26d89cb Cherry-picked-from: @a617cd7b7956c3206539fb5f6c5b5b48f2846081 Cherry-picked-from: @6181fe22c77a87648bc65d092ec40c92ee3273ad Cherry-picked-from: @1835d5808f118f3b49b1e49fa8c6ee7d7ba83e18 Cherry-picked-from: @cc7e61612aa83e057db683dedc0f2ce170225d55 Cherry-picked-from: @e20f44509924b961e51b16338b5b63a831ad173b Cherry-picked-from: @eb616b709ff030e5fad9b9f653a2e82eb8f8924a Cherry-picked-from: @4dcd93092334789ed3c32c539ff81730275ff5a7 Cherry-picked-from: @be9ea991de31974b51f68ee9c40a3af792d00c29 Cherry-picked-from: @c934dd51c0b917a8b38b0ce9be6949abb35eb081 Cherry-picked-from: @42bf4998d31950849ca445785978cfc4cff4c520 Cherry-picked-from: @733f7af92b0109f2d5f0f27876a2eb4db697dfe8 Cherry-picked-from: @3a2fdc51366f169cacc7d06e774b4135db230fac Cherry-picked-from: @b4bac484e34bac48f241640365a762c1ba79ee33 Cherry-picked-from: @8ca326caa9d65e6986bfcdcf7e996cd4f80d461d Cherry-picked-from: @3a74dc00bfb7a8fc6b520cfbc53b9c67833fd8d5 Cherry-picked-from: @f53e10e3fd753d91fe1858d46511586458402f01 Cherry-picked-from: @99de6515a09a443c62542ebca54f6e4accf0359a Cherry-picked-from: @e45d62ba26ab6565cb78c47bfe5d47d163981550 Cherry-picked-from: @ab704b7acae04af84a12ab91b88cef73cf9495d3 Cherry-picked-from: @3a761fbcf83735af9be5f222b33bb1fc6f8a0495 Cherry-picked-from: @e83094e63f594100662152d1a3e5e07fe006d8a5 Cherry-picked-from: @265367d99bc8c2dd477ef39ed4cd0ced2eb82471 Cherry-picked-from: @3ca023bf44d64c53b86de80b67c97c38e9c87e73 Cherry-picked-from: @708187f28c3babfcc80a2fb598668207716535bb Cherry-picked-from: @bfbe80ab7d5b4ac7fdd41c1a3efaffa182198856 Cherry-picked-from: @c76d29208bf6a7f058d2cf582519d28069e42240 Cherry-picked-from: @7ab49a7fb7f7e97e2f2ce79ebe080e95a11f1414 Cherry-picked-from: @5b27b0cecfabfff5a33595d23b0a7d5dbcc27345 Cherry-picked-from: @1d1757b16f48f1a93cd16ab0ad7e2c3c63ce727d Cherry-picked-from: @5f26970200b2165100dd3eb7fb680a0da7cc9b70 Cherry-picked-from: @fecca6fd8d97c4a3b46a261d0a46fbf6ff8d66a2 Cherry-picked-from: @6b1c82c4f14f1e24d9aa863504db96ae87ca19eb Cherry-picked-from: @5eba663c38335057a73b9e3ad025f3fcec504ec2 Cherry-picked-from: @27dad962fee567e50ed7e293a4d8eb67cc7da8e6 Cherry-picked-from: @4b61779a463fa9da0720eb7c59a80e7ebec6f943 Cherry-picked-from: @8e0e76697af8b46e18ad467ddd0c6910abb6f1cc Cherry-picked-from: @7230b96cc7de780bd290fdeb8047139e562d51d7 Cherry-picked-from: @b4566499749449c7c25f14fb41530036fcea7338 Cherry-picked-from: @b7d03ea1f593b147bd9a9619d7b48f9b02b084c6 Cherry-picked-from: @621063a956b662cf3ba3099552a49ab36eca9dd4 Cherry-picked-from: @5bbca5be9125490311be3f2aa818b5dece9dd1f4 Cherry-picked-from: @c91bfa830af6ccff207c748c5f695dab9dda3e55 Cherry-picked-from: @feac26c3b72e2fb7e8b10fc58ab5c550c814e4c6 Cherry-picked-from: @556aa8a702fc9a4dcbcb500e166cfb374c741d4b Cherry-picked-from: @6647d02846d3ec854fa8648382b724d8500a4021 Cherry-picked-from: @d228a6214329aa94268a7ccacff64f3c5aa7a30e Cherry-picked-from: @8c15b8600c272b61b5241261d77ef9809493feca Cherry-picked-from: @99d14a820ab39d9651f3048d75a031db1b52b6a9 Cherry-picked-from: @c5bd84309aeb634834c16fd8a7cff1159ffd18ac Cherry-picked-from: @c9128e1f3ff7a7c8564553daf5705ab2fa3e4203 Cherry-picked-from: @4956271da10f1621806faa583e7aa8099fb3ec37 Cherry-picked-from: @dc92f2e19d9e93bed1669fe339aadd4af2a6cced Cherry-picked-from: @1aaca517e30d07cb159987e10db69330e135f36a Cherry-picked-from: @939b18475d734ed75173f59507e3ebbdfe1992b7 Cherry-picked-from: @adf4eb487b367e9765820a07162d5aaef363fd3e Cherry-picked-from: @2fc95a7cfc1eb9306356510b0251b6d51fb1c0b0 Cherry-picked-from: @ada4ee08d9659e26a8c3366a402007194dc3a98b Cherry-picked-from: @f304ca09b162ffe3c58123b6cd3ba0a974427696 Cherry-picked-from: @eeba93d63dcc77693fcc9640a36683ef7a34c06f Cherry-picked-from: @ab54532c8f420cf2e79e7d4d3ca5c232bef51898 Cherry-picked-from: @07cccfc926259e49d490d95685c5830196def60f Cherry-picked-from: @d5803cc4ee17e4a6575334bf3e534fd137b70ae2 Cherry-picked-from: @81140a778ba783953fa53c1efefd82edb78f43da Cherry-picked-from: @3ae61d57a30fef914c8ed8c59a0d0a6b5aa309d9 Cherry-picked-from: @936f0a7f22efbde2b8d0d7c5dd6b62313565497d Cherry-picked-from: @c5fb6617427e3356cf8d7a98966c57e581a25cad Cherry-picked-from: @029fdd42080800a6f8276bd49665f0d9b2f6dfe2 Cherry-picked-from: @766d76ef9a9fe2852e3f0b8a8fbe9ceff42dae03 Cherry-picked-from: @f319ec2dac01b68883059349b5a7180378d27317 Cherry-picked-from: @b0d924676838e6414beebe1b8eccff0eb0278108 Cherry-picked-from: @b6318d4df4a69c3a445fc9e4315224e9c67ffc57 Cherry-picked-from: @846ec320e234621255d1157146ae9d79fdc67126 Cherry-picked-from: @2b540705264291b45e108e65b0c1e7752f4e377e Cherry-picked-from: @566a821e5dd8ce27e5cb2ca28d29216ab69cd486 Cherry-picked-from: @cc03c097c5eb0044266c7c0fef500be0db1ab966 Cherry-picked-from: @990fc36cbdaaa01024fd3a7d181484056f0e8713 Cherry-picked-from: @3800f6700acc69de41131c160f158944f4804f99 Cherry-picked-from: @7c5d6c3dc9f1dd8c82bcf99e998ed3e2de1433f6 Cherry-picked-from: @a4ffebbef47bd6944706d690dab9d861058bde6a Cherry-picked-from: @9d3469c914a2f9b795011d453365d895e563e2ed Cherry-picked-from: @d15a3d3454d40b654c4e88e1dbb4b56a8bb35742 Cherry-picked-from: @3b1be1a08c22b7db452797c7e244a5399e964681 Cherry-picked-from: @168c65aa26b16842eacfec908ff0432c468747b5 Cherry-picked-from: @5f50823abf4fe193498fb002452fea02aa2d7013 Cherry-picked-from: @8a469a12b2e269d2b540655c9579baa6d06426fb Cherry-picked-from: @4e07bdbdfd1bb0b838dcb78df2be0dd38e26f7c0 Cherry-picked-from: @bda035768f3c022ecf8f004e12996eef207f6be1 Cherry-picked-from: @61000b8e4ded919ca1a825d4700db4cb3fdc56e3 Cherry-picked-from: @eed403dc74b5e9cde9651c855c1dee05f5b9a1d2 Cherry-picked-from: @efdff9c738f7dcf42fc99b7fe4d071ab73cccf03 Cherry-picked-from: @9856d8432d56535a4e39798e0c11821f41321403 Cherry-picked-from: @8f40b132f96a0fc948a9c31f58990a24822d340b Cherry-picked-from: @e47b63acaaeaaa4fd267bdd81ff41ffad66ffdc3 Cherry-picked-from: @2a5158295e2c58a000ae2f34e161a7795f5a030d Cherry-picked-from: @1b034f08e0deeb4313dba956c993634e59d109cc Cherry-picked-from: @566f30828d21c528f88145a689e535615646b470 Cherry-picked-from: @4cd81b0c7bd7f922651a932b6483e9cce6f4048c Cherry-picked-from: @7980dc59e34940fda41f2f9ce5f0ab52a8a238ba Cherry-picked-from: @43fd45f038e70ed83ef200206aff67385c3d24ba Cherry-picked-from: @4b02a4eacf894796a0b250d61194ee0f16aac33b Cherry-picked-from: @4b0d55dadfc7268b007b35b92831ad556fc49be6 Cherry-picked-from: @4cc619f06ce5d10274db3f854723e57881ae4d4f Cherry-picked-from: @6b2adf663ead86ac4ff83c320ca336f944f7f230 Cherry-picked-from: @603567754559d789346db16742b9eb7670e62fc8 Cherry-picked-from: @c7c5c0edaaab396d58c38b13260ae4d5eb3bde7c Cherry-picked-from: @4bcef8631c068688d7fb48fd4d53ad795b12fecc Cherry-picked-from: @d899990b44f6dbea59a7052686a82d2afca708cd Cherry-picked-from: @e9cf3506fdb599a59a892a69f32ffa99a4e6bc66 Cherry-picked-from: @b46ac250d160561c5ccd64e0a286d4e397152ba2 Cherry-picked-from: @5b0fa341fb871aebbd92d04a2080fb123d61b814 Cherry-picked-from: @d83f2c145a6b0584e48304184e4985dea61852e5 Cherry-picked-from: @475b0cb49a4bfc5bf1eb5b325ea114aed8c53f98 Cherry-picked-from: @889a60e1220e82464fee862f35d050e7dc9c3d9c Cherry-picked-from: @ace64831e0b2cfdc35fa06ccf347000a55e55704 Cherry-picked-from: @a7c605ec4ab0ab5e359a853b4c1138d6e5d9b6fc Cherry-picked-from: @27b6b0c119d79cc867d207551635f100757b4a98 Cherry-picked-from: @73e510cdf45711c99ef5455ba177173b8d9861cf Cherry-picked-from: @a7f6e0a9216c60f2220bc8671e20e77f30be0691 Cherry-picked-from: @25252ab5ab1510b28ed3f6f76589ff27478064ab Cherry-picked-from: @79e3d1f9561951eb8a02872f21ba3a61473b6e36 Cherry-picked-from: @173132165d275c2ef823e58abfe416cfbfd7c4c0 Cherry-picked-from: @13ed6afe6006579063b974bd4c3838880a1f73a9 Cherry-picked-from: @240b143bdeb188ca751c59d0addb82a70bf0bf9e Cherry-picked-from: @c6575891c793b78ee903aa6eae340a8ed1aa4149 Cherry-picked-from: @ca37a4e82e41ca0f637f8a37aa3cceb233246ed6 Cherry-picked-from: @9d2b2929989a025f5a5b2b334d87b17840104803 Cherry-picked-from: @f195af0b22a2e071a935938b6b4fd93a713a3917 Cherry-picked-from: @a56841b98c8d55787408ac8ca5de371141fee872 Cherry-picked-from: @60441c8ced55847f77fc2f777890e0e8d922a368 Cherry-picked-from: @83290c5cef0cf9f7a74136ce6b70d3cf87cb53db Cherry-picked-from: @ac02529844607fdf73c1bae18d630bc00e8aa55a Cherry-picked-from: @fcb990e36950f5db44e9bf4d39a9024c9cc75a9c Cherry-picked-from: @0d66834f94471da3be7f632ecc612d812acce6e8 Cherry-picked-from: @02eef1d45aa98c71bae0196f002840e33c403ea0 Cherry-picked-from: @7ac7b39efff19d2c5c36344e51b747fa9394ac58 Cherry-picked-from: @e758d493616ea3a29eb18841774abe48412d04cc Cherry-picked-from: @6b18ec479c0f295c7913e383ad1b650305147316 Cherry-picked-from: @45d3e62f5068d6e6595d57ce50f0f1a4adf48eba Cherry-picked-from: @9b99787c31972a75a7cd2779b234f23fc7519c05 Cherry-picked-from: @e66c418c4533a985ce3142a224191e1bae17af33 Cherry-picked-from: @149ae45bad4d27c2b1821c6cad5c77fdf62089dc Cherry-picked-from: @5edcab2eee11d290ca97db58e29b67e0c701e2e3 Cherry-picked-from: @d6d04f361e1c49cdac81e8371ece13238da74133 Cherry-picked-from: @4869e249150598ab42afdecdd1cdf8841a9f4f22 Cherry-picked-from: @a505be78ab4407e9da5ed8ce650a4de6b94af850 Cherry-picked-from: @09cfcf9dd533c4ea7daaaba7cfc883e1eabd7744 Cherry-picked-from: @eb09d8dd716b0ca55b42fe66083966df28b5e795 Cherry-picked-from: @40dfba85d87ff06e1f37032ecf252ba6d64c1213 Cherry-picked-from: @6337666ac05a5f3ed9472ec3887db32d61042fe4 Cherry-picked-from: @cf1c2cc208ff23e2bb07b5771911fdfb8c9fef3c Cherry-picked-from: @bc91ae9ca0614ebe3644d40e6375f7fffb9055ad Cherry-picked-from: @99cfd271d00b2ab0f7825bf7831de59e4ff6aec1 Cherry-picked-from: @ad052d661bd0c260a30822c1cce25e4ff43c7d90 Cherry-picked-from: @a2cb80b9c4bee9bf3181a5c14d83106333b4bee2 Cherry-picked-from: @f236742dc13cbb5a90c9bdab8aab8735b0d116a7 Cherry-picked-from: @da88d9209912b0632074f6c35575e27d3559331b Cherry-picked-from: @bebde34b98663f73c2c9a7d740a8100ff438aee3 Cherry-picked-from: @7e59803df2830854874f1c9f48d30f4e89f6a980 Cherry-picked-from: @f866e57de3d67251451b9c80dbea67980b02e05e Cherry-picked-from: @7b9a34939aadd6ee6e3d11a439c27b78812424ef Cherry-picked-from: @3987ca409963faca60cf4ee299d98e9ddd25922d Cherry-picked-from: @1135b7f12f44be2937920437be68182a7003921f Cherry-picked-from: @269cc22b61d5de1f8a93a3bc22165a82ac21957c Cherry-picked-from: @c1d07b09ce3481f4066ab933bb5e0892a8b22f54 Cherry-picked-from: @74e3c071b2af5641c0c39ddbc4de10ee79c90508 Cherry-picked-from: @189cd99377bf3e5b699c109b8292d80a06edbaa6 Cherry-picked-from: @9d10697227df6ca7f1044ff7dbd0980206388771 Cherry-picked-from: @8f719e541ab60f6478c857ee38ccb59d9362770e Cherry-picked-from: @ad7399b6e60512d7fb1fd6b27dead5dcd2918478 Cherry-picked-from: @eb9e78d6d046221d497e13c6fb2d33b134cf9faf Cherry-picked-from: @08597e817d04b3c2fdfce9f58e29e47b4ad26d45 Cherry-picked-from: @547436bca75ddc946789dfa77da059cec4d75a33 Cherry-picked-from: @6016e22cc0ca8bf05fddfc9b3088c0375e2a02ce Cherry-picked-from: @e381ab630e2466798f1c3d00b3c0378b890e8def Cherry-picked-from: @8cc477b87359148841c07581bdd6532932418c06 Cherry-picked-from: @c22a4450eee84bcf147291168e8107153077a5e3 Cherry-picked-from: @556a74d25914d434ceec892733b5d71a32f03998 Cherry-picked-from: @ad80ecd4452cbfbd10d38fddd07a753046b1c278 Cherry-picked-from: @69a6c0a9dd88238b686a9306263008ae54ec2783 Cherry-picked-from: @2ec478cf6816e20227fd40f86b8eae1f3a0e6eaa Cherry-picked-from: @5b30c9d3d7bcccf0f9798f7d81bf5b2873946a44 Cherry-picked-from: @01833c5111d1e3e3d1626d64c3b86a778eac82cc Cherry-picked-from: @7e946b3c6c25ad26cece0a855b3503aabf055c0e Cherry-picked-from: @1831dbb63fb963c832ad00407c1f6823027913e5 Cherry-picked-from: @2c7fb549560c01d928e34396c65d3b781d3ccb9b Cherry-picked-from: @daecd2d8c349695e3d68a51783325e81956d1093 Cherry-picked-from: @1b9e4800ebd4cfd4689040e1e80c116185be8754 Cherry-picked-from: @5b257c65d5a7c22684ef6bb13d28ddac9c57a417 Cherry-picked-from: @ae15e3fd60cdec894974c4787aef254d919e793f Cherry-picked-from: @f494e46ea055215c17aae31f56f605c70638cf5a Cherry-picked-from: @0018f47661d415e40deafdf71ab194a4635234c8 Cherry-picked-from: @066d589b8aaa8ae5f6cf1a16af7409f5af51e769 Cherry-picked-from: @1e05f14f3a6290a14c96df3b8a9d7bcefd3d1ccb Cherry-picked-from: @49261b0d822e126b7105e20615ab0ae20e818796 Cherry-picked-from: @b2f8f5e4ddd07523e51cbf8b1d69b244bab53611 Cherry-picked-from: @6a8081a7f33ea7ee32a957908c7ad2fd0136c09e Cherry-picked-from: @e7056272bc53c6897e83936dfe5817e47e0ff2f6 Cherry-picked-from: @01cff3a7a63ee5afafd3a65a13df7eafe76307bb Cherry-picked-from: @44e7c1142e6044e8ae93b42c0987e55e146fe109 Cherry-picked-from: @a679049c3859b2d0b2557fd3e0e00d0ec7ae97f8 Cherry-picked-from: @c2e1ae68a9e1c4c48c64d759f12232b9e2bd3e64 Cherry-picked-from: @31564bed1d06e8030634f7f643a495f1bd570e68 Cherry-picked-from: @4062aa5e5d476283594fb27b01a356be0a152b0b Cherry-picked-from: @bf9c362129e293fdab75dc440d7d12d81745e3a1 Cherry-picked-from: @1e3daa637382404bd92764d268b8f0f872e33ed0 Cherry-picked-from: @c0a7c302f3356513a69ba79cf44b9145ab08fcaa Cherry-picked-from: @c6ff137a6fba9a8b98a9127c17af2b57576eefc2 Cherry-picked-from: @96f4f50f510e67392470a7b7d9cb82e4f41fa0ad Cherry-picked-from: @0125bd9639c8dc6126c74b264e2d4f7835502872 Cherry-picked-from: @1ef8d6a01b5b9d0cd823fd0d770af7798b17f8eb Cherry-picked-from: @9d7d961db82a7381288372ceb33fd0cb083586c8 Cherry-picked-from: @76a028a50acb6a3cbced4c26f570f46d2032fa9c Cherry-picked-from: @46008178d1bab4a9cbb8ea270468b0f370cec370 Cherry-picked-from: @100da9f45c593a51c27ac724d7c82d040f791501 Cherry-picked-from: @6cb889da8cb7ff95743e6782afa6ff076286f6c0 Cherry-picked-from: @af9d76b79a1e0a1ba88780ffbcc54b87e81c3ae8 Cherry-picked-from: @a8c67affd8b3aec80bc98ef9c796b0e208eef24c Cherry-picked-from: @28b72e5cb07348c499c2b132d0b0448b1baa6408 Cherry-picked-from: @442f2c36b36d47c244f69cd497c4ab40c87014e0 Cherry-picked-from: @14916fbc709980b8b51078088ea246a89fa9b443 Cherry-picked-from: @b8b65692c0224dcfd9920cc696d42c1972cdc9ed Cherry-picked-from: @b1f7cf46d8e9d51a3ba99bcc1046052c9df95309 Cherry-picked-from: @244aabb0cb1294878ea33cf3881c89f41fd770dc Cherry-picked-from: @7f44bc5e94b7eb3455521100aa944733e93fb59e Cherry-picked-from: @56cd0084d92ee2089e6600740f8aff21b10969e8 Cherry-picked-from: @e45fcc57ed3aa5febf6ea525b4795505ce4c1668 Cherry-picked-from: @722c5e5d33ec017ebe63ebe4c36eb096b380b208 Cherry-picked-from: @5759b93dda5d202cf34f3663d9c70b95291fa34d Cherry-picked-from: @3087893ef968828f615442d6d9bcde783da1adda Cherry-picked-from: @2646739d23346945c047f4304af7bdb0f7f29d2f Cherry-picked-from: @fd1e481624b7498229b8a27abfb116c28f3bb575 Cherry-picked-from: @380eb1c072c1a992e8f4c567f6294881c6c103d4 Cherry-picked-from: @bd413263b2e27927941af080a7ebb3ad2785c54d Cherry-picked-from: @f6c7ff3e0efe0a3fabbc95b6b426fa0ad51edc4a Cherry-picked-from: @7d2b146d8d89faf6c3aa9ca6578ecfd948f4f0b5 Cherry-picked-from: @d902bae554ca49614b642dba381a7546f134f64e Cherry-picked-from: @9c8e34da9dfa7f857b9ddb8a0041b8930f74cdbe Cherry-picked-from: @f72114173c6669264277d521177d1e6e528eefb3 Cherry-picked-from: @5659d7f985eb7d333cb9aa913490e5220b14caf7 Cherry-picked-from: @ed437434afcdb5f2819f6e1f47b6c88cb7e8bf6f Cherry-picked-from: @f2a4bdf06942a72d56493095b188e7977947a56f Cherry-picked-from: @75a44dee8f8722699c3c19d1a866a67acd3c250f Cherry-picked-from: @c743fd9c4c25ebb55023e4c8bddc6a050533ebc6 Cherry-picked-from: @930caeaafb1e5ab281067dd7ac26ed66a32271d9 Cherry-picked-from: @5214859c52f7ebce9c7c4a03f816ebb4f443b74f Cherry-picked-from: @dc78725d47934e7bb948267117a33c05746f9d1d Cherry-picked-from: @1b3d8ee2506d563b9621eedc2277e03314dfc04b Cherry-picked-from: @21df014d56030eaf8a40fb137c9b5eaa89c7c1d7 Cherry-picked-from: @a035a3ce48e45b925f45bd0e289ba07b7e2b5991 Cherry-picked-from: @dd8fd98ad4e3bea8203288164f0cbbb01c3fea94 Cherry-picked-from: @3596a46868caba5f8ffdde0e41c3b1cdad44b4d9 Cherry-picked-from: @d9670093cb39f677f4c72d7b5d70818548412b67 Cherry-picked-from: @fcdc1a13e182a63d862114289760e33eb5361487 Cherry-picked-from: @c6a8ab69c6e651bd6faeef74dfb1972fd2c34e0d Cherry-picked-from: @06ffef8465f5e7deab8ccd9762a4332cdd938d2d Cherry-picked-from: @59102a1ff7686668c41cdc0fa8f6557a2f8384e7 Cherry-picked-from: @5d22bd0297a6bbfe1a122e64c76b89d806ea3497 Cherry-picked-from: @e0f80cf0e9150bf4ce7cd887a29a8750401a3362 Cherry-picked-from: @c3810346f9451e4ef7089f0fc94bd9c0f902e60b Cherry-picked-from: @42a1394c5c0fb86706f61598e68e0db30e8c99c1 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ebecebf to
5649d3d
Compare
alexey-pelykh
added a commit
that referenced
this pull request
Apr 12, 2026
Remove dead Zod schemas, TypeScript types, help text, labels, and legacy migration rules for three gutted subsystems: memory (MemorySchema / MemoryQmd* / MemorySearchSchema), web search/fetch (ToolsWebSearchSchema / ToolsWebFetchSchema / ToolsWebSchema), and Pi orchestrator (embeddedPi). Zod compat stubs (`z.unknown().optional()`) are kept at every config field location so existing user configs with memory/web/embeddedPi sections still parse after upgrade — same pattern used by #2291 before upstream sync #2298 re-introduced the schemas. Scope note: `ToolsConfig.web?` TypeScript shape is intentionally preserved because upstream-synced runtime consumers (`onboard-search.ts`, `configure.wizard.ts`, `audit-extra.sync.ts`, `wizard/onboarding.finalize.ts`) still read `tools.web.search/fetch` fields. The Zod schema is gutted (parsed as `unknown`), and the full removal of those consumers is tracked as follow-up work. Marked with `@deprecated` JSDoc. Tests updated: drop memorySearch assertions from `schema.help.quality.test`, `schema.hints.test`, and the legacy config detection test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
alexey-pelykh
added a commit
that referenced
this pull request
Apr 12, 2026
…2329) Remove dead Zod schemas, TypeScript types, help text, labels, and legacy migration rules for three gutted subsystems: memory (MemorySchema / MemoryQmd* / MemorySearchSchema), web search/fetch (ToolsWebSearchSchema / ToolsWebFetchSchema / ToolsWebSchema), and Pi orchestrator (embeddedPi). Zod compat stubs (`z.unknown().optional()`) are kept at every config field location so existing user configs with memory/web/embeddedPi sections still parse after upgrade — same pattern used by #2291 before upstream sync #2298 re-introduced the schemas. Scope note: `ToolsConfig.web?` TypeScript shape is intentionally preserved because upstream-synced runtime consumers (`onboard-search.ts`, `configure.wizard.ts`, `audit-extra.sync.ts`, `wizard/onboarding.finalize.ts`) still read `tools.web.search/fetch` fields. The Zod schema is gutted (parsed as `unknown`), and the full removal of those consumers is tracked as follow-up work. Marked with `@deprecated` JSDoc. Tests updated: drop memorySearch assertions from `schema.help.quality.test`, `schema.hints.test`, and the legacy config detection test. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This was referenced Apr 13, 2026
alexey-pelykh
added a commit
that referenced
this pull request
Apr 13, 2026
…regression (#2337) Targeted audit (fork HEAD 44b4f92) confirmed 19 provider/model files re-introduced by the v2026.3.7 upstream sync merge (#2298). Re-applies the cascade for the files whose only live consumers are already-dead paths or have in-tree rewire targets. Defers two groups to follow-ups for coordination reasons documented in the PR body. Clean stub deletions (zero external consumers): - agents/pi-embedded-messaging.ts, model-compat.ts, test-helpers/pi-tool-stubs.ts - agents/pi-tools.before-tool-call.{ts,runtime.ts} - auto-reply/reply.directive.directive-behavior.model-directive-test-utils.ts - commands/openai-codex-model-default.ts Stub deletions with rewired consumers: - agents/custom-api-registry.ts — drop dead ensureCustomApiRegistered call in tts/tts-core.ts plus test mock/assertion in tts.test.ts - agents/pi-model-discovery.ts — drop vestigial ModelRegistry vi.mock in gateway/test-helpers.mocks.ts plus the unused piSdkMock state - agents/model-catalog.ts — Telegram vision cascade: remove loadModelCatalog / findModelInCatalog / modelSupportsVision chain from telegram/ bot-message-context.body.ts, bot-message-dispatch.ts, sticker-cache.ts; middleware/runtimes own mediaCapabilities, not the model catalog. Drop catalog mocks in reply.block-streaming.test.ts, session.test.ts, agent.test.ts, cron/isolated-agent/run.test-harness.ts Gateway models/skills cascade: - Delete gateway/server-methods/{models,skills}.ts plus imports, spreads, method list entries, and scope entries in server-methods.ts, server-methods-list.ts, method-scopes.ts - Schema split: rename protocol/schema/agents-models-skills.ts to agents-tools.ts and prune ModelChoice, ModelsList*, SkillsStatus, SkillsBins, SkillsInstall, SkillsUpdate, SkillsSearch, SkillsDetail schemas, types, validators, and protocol-schemas registry entries TUI listModels cascade: - Drop listModels + GatewayModelChoice from tui/gateway-chat.ts - Drop openModelSelector + /model-no-args + /models + Ctrl+L binding from tui-command-handlers.ts and tui.ts. /model <provider/model> still works Session reset model cascade (unblocks #2339 Wave 2): - Delete auto-reply/reply/session-reset-model.ts stub, its import and applyResetModelOverride call block in get-reply.ts, its vi.mock in get-reply.test-mocks.ts, and the 3 applyResetModelOverride test cases in session.test.ts Deferred to follow-ups (documented in PR body): - 6 provider files coupled to onboard-auth.* (huggingface/synthetic/ together/venice/models-config.providers, provider-env-vars) — blocked on #2338 landing first (parallel PR deletes the onboard-auth cluster) - commands-models.ts + Discord/Mattermost model-picker cascade (~2500 LoC) — defer to a dedicated follow-up PR for reviewability Why: v2026.3.7 sync silently re-introduced gutted files; three restored stubs (model-catalog, gateway models/skills handlers) were wired into live call sites, silently neutering Telegram vision detection, node-host skill bins, and TUI listModels. How verified: pnpm check passes (format + tsgo + oxlint), pnpm build passes, pnpm test passes (725 files, 6340 tests, 0 failures), zombie- import gate passes, rebrand leakage check passes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7 tasks
alexey-pelykh
added a commit
that referenced
this pull request
Apr 13, 2026
…regression (#2337) (#2350) Targeted audit (fork HEAD 44b4f92) confirmed 19 provider/model files re-introduced by the v2026.3.7 upstream sync merge (#2298). Re-applies the cascade for the files whose only live consumers are already-dead paths or have in-tree rewire targets. Defers two groups to follow-ups for coordination reasons documented in the PR body. Clean stub deletions (zero external consumers): - agents/pi-embedded-messaging.ts, model-compat.ts, test-helpers/pi-tool-stubs.ts - agents/pi-tools.before-tool-call.{ts,runtime.ts} - auto-reply/reply.directive.directive-behavior.model-directive-test-utils.ts - commands/openai-codex-model-default.ts Stub deletions with rewired consumers: - agents/custom-api-registry.ts — drop dead ensureCustomApiRegistered call in tts/tts-core.ts plus test mock/assertion in tts.test.ts - agents/pi-model-discovery.ts — drop vestigial ModelRegistry vi.mock in gateway/test-helpers.mocks.ts plus the unused piSdkMock state - agents/model-catalog.ts — Telegram vision cascade: remove loadModelCatalog / findModelInCatalog / modelSupportsVision chain from telegram/ bot-message-context.body.ts, bot-message-dispatch.ts, sticker-cache.ts; middleware/runtimes own mediaCapabilities, not the model catalog. Drop catalog mocks in reply.block-streaming.test.ts, session.test.ts, agent.test.ts, cron/isolated-agent/run.test-harness.ts Gateway models/skills cascade: - Delete gateway/server-methods/{models,skills}.ts plus imports, spreads, method list entries, and scope entries in server-methods.ts, server-methods-list.ts, method-scopes.ts - Schema split: rename protocol/schema/agents-models-skills.ts to agents-tools.ts and prune ModelChoice, ModelsList*, SkillsStatus, SkillsBins, SkillsInstall, SkillsUpdate, SkillsSearch, SkillsDetail schemas, types, validators, and protocol-schemas registry entries TUI listModels cascade: - Drop listModels + GatewayModelChoice from tui/gateway-chat.ts - Drop openModelSelector + /model-no-args + /models + Ctrl+L binding from tui-command-handlers.ts and tui.ts. /model <provider/model> still works Session reset model cascade (unblocks #2339 Wave 2): - Delete auto-reply/reply/session-reset-model.ts stub, its import and applyResetModelOverride call block in get-reply.ts, its vi.mock in get-reply.test-mocks.ts, and the 3 applyResetModelOverride test cases in session.test.ts Deferred to follow-ups (documented in PR body): - 6 provider files coupled to onboard-auth.* (huggingface/synthetic/ together/venice/models-config.providers, provider-env-vars) — blocked on #2338 landing first (parallel PR deletes the onboard-auth cluster) - commands-models.ts + Discord/Mattermost model-picker cascade (~2500 LoC) — defer to a dedicated follow-up PR for reviewability Why: v2026.3.7 sync silently re-introduced gutted files; three restored stubs (model-catalog, gateway models/skills handlers) were wired into live call sites, silently neutering Telegram vision detection, node-host skill bins, and TUI listModels. How verified: pnpm check passes (format + tsgo + oxlint), pnpm build passes, pnpm test passes (725 files, 6340 tests, 0 failures), zombie- import gate passes, rebrand leakage check passes. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This was referenced Apr 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DIFF-SYNC batch B5: upstream v2026.3.2 to v2026.3.7 (893 commits, 1963 files).
Disposition: 1727 INCLUDE, 586 EXCLUDE, 62 EXTRACT (42 ported), 37 PROTECTED, 8 COLLISION (adopted).
Key changes
EXTRACT skipped
20 files targeting gutted subsystems (model catalog, auth-choice, exec-approvals, context-engine, media-understanding).
Adversarial audit
0 WRONG, 5 NEEDS REVIEW (all fixed in-batch).
Upstream-range: v2026.3.2..v2026.3.7
893 Cherry-picked-from trailers included.
Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com