diff --git a/Telegram_Buck.xcworkspace/buck-project.meta.json b/Telegram_Buck.xcworkspace/buck-project.meta.json
index 91edc129f0..ea47a3d535 100644
--- a/Telegram_Buck.xcworkspace/buck-project.meta.json
+++ b/Telegram_Buck.xcworkspace/buck-project.meta.json
@@ -1 +1 @@
-{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file","//submodules/openssl:openssl_build_merged","//submodules/openssl:openssl_header_openssl_sub_aes.h","//submodules/openssl:openssl_header_openssl_sub_asn1.h","//submodules/openssl:openssl_header_openssl_sub_asn1_mac.h","//submodules/openssl:openssl_header_openssl_sub_asn1err.h","//submodules/openssl:openssl_header_openssl_sub_asn1t.h","//submodules/openssl:openssl_header_openssl_sub_async.h","//submodules/openssl:openssl_header_openssl_sub_asyncerr.h","//submodules/openssl:openssl_header_openssl_sub_bio.h","//submodules/openssl:openssl_header_openssl_sub_bioerr.h","//submodules/openssl:openssl_header_openssl_sub_blowfish.h","//submodules/openssl:openssl_header_openssl_sub_bn.h","//submodules/openssl:openssl_header_openssl_sub_bnerr.h","//submodules/openssl:openssl_header_openssl_sub_buffer.h","//submodules/openssl:openssl_header_openssl_sub_buffererr.h","//submodules/openssl:openssl_header_openssl_sub_camellia.h","//submodules/openssl:openssl_header_openssl_sub_cast.h","//submodules/openssl:openssl_header_openssl_sub_cmac.h","//submodules/openssl:openssl_header_openssl_sub_cms.h","//submodules/openssl:openssl_header_openssl_sub_cmserr.h","//submodules/openssl:openssl_header_openssl_sub_comp.h","//submodules/openssl:openssl_header_openssl_sub_comperr.h","//submodules/openssl:openssl_header_openssl_sub_conf.h","//submodules/openssl:openssl_header_openssl_sub_conf_api.h","//submodules/openssl:openssl_header_openssl_sub_conferr.h","//submodules/openssl:openssl_header_openssl_sub_crypto.h","//submodules/openssl:openssl_header_openssl_sub_cryptoerr.h","//submodules/openssl:openssl_header_openssl_sub_ct.h","//submodules/openssl:openssl_header_openssl_sub_cterr.h","//submodules/openssl:openssl_header_openssl_sub_des.h","//submodules/openssl:openssl_header_openssl_sub_dh.h","//submodules/openssl:openssl_header_openssl_sub_dherr.h","//submodules/openssl:openssl_header_openssl_sub_dsa.h","//submodules/openssl:openssl_header_openssl_sub_dsaerr.h","//submodules/openssl:openssl_header_openssl_sub_dtls1.h","//submodules/openssl:openssl_header_openssl_sub_e_os2.h","//submodules/openssl:openssl_header_openssl_sub_ebcdic.h","//submodules/openssl:openssl_header_openssl_sub_ec.h","//submodules/openssl:openssl_header_openssl_sub_ecdh.h","//submodules/openssl:openssl_header_openssl_sub_ecdsa.h","//submodules/openssl:openssl_header_openssl_sub_ecerr.h","//submodules/openssl:openssl_header_openssl_sub_engine.h","//submodules/openssl:openssl_header_openssl_sub_engineerr.h","//submodules/openssl:openssl_header_openssl_sub_err.h","//submodules/openssl:openssl_header_openssl_sub_evp.h","//submodules/openssl:openssl_header_openssl_sub_evperr.h","//submodules/openssl:openssl_header_openssl_sub_hmac.h","//submodules/openssl:openssl_header_openssl_sub_idea.h","//submodules/openssl:openssl_header_openssl_sub_kdf.h","//submodules/openssl:openssl_header_openssl_sub_kdferr.h","//submodules/openssl:openssl_header_openssl_sub_lhash.h","//submodules/openssl:openssl_header_openssl_sub_md2.h","//submodules/openssl:openssl_header_openssl_sub_md4.h","//submodules/openssl:openssl_header_openssl_sub_md5.h","//submodules/openssl:openssl_header_openssl_sub_mdc2.h","//submodules/openssl:openssl_header_openssl_sub_modes.h","//submodules/openssl:openssl_header_openssl_sub_obj_mac.h","//submodules/openssl:openssl_header_openssl_sub_objects.h","//submodules/openssl:openssl_header_openssl_sub_objectserr.h","//submodules/openssl:openssl_header_openssl_sub_ocsp.h","//submodules/openssl:openssl_header_openssl_sub_ocsperr.h","//submodules/openssl:openssl_header_openssl_sub_opensslconf.h","//submodules/openssl:openssl_header_openssl_sub_opensslv.h","//submodules/openssl:openssl_header_openssl_sub_ossl_typ.h","//submodules/openssl:openssl_header_openssl_sub_pem.h","//submodules/openssl:openssl_header_openssl_sub_pem2.h","//submodules/openssl:openssl_header_openssl_sub_pemerr.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12err.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7err.h","//submodules/openssl:openssl_header_openssl_sub_rand.h","//submodules/openssl:openssl_header_openssl_sub_rand_drbg.h","//submodules/openssl:openssl_header_openssl_sub_randerr.h","//submodules/openssl:openssl_header_openssl_sub_rc2.h","//submodules/openssl:openssl_header_openssl_sub_rc4.h","//submodules/openssl:openssl_header_openssl_sub_rc5.h","//submodules/openssl:openssl_header_openssl_sub_ripemd.h","//submodules/openssl:openssl_header_openssl_sub_rsa.h","//submodules/openssl:openssl_header_openssl_sub_rsaerr.h","//submodules/openssl:openssl_header_openssl_sub_safestack.h","//submodules/openssl:openssl_header_openssl_sub_seed.h","//submodules/openssl:openssl_header_openssl_sub_sha.h","//submodules/openssl:openssl_header_openssl_sub_srp.h","//submodules/openssl:openssl_header_openssl_sub_srtp.h","//submodules/openssl:openssl_header_openssl_sub_ssl.h","//submodules/openssl:openssl_header_openssl_sub_ssl2.h","//submodules/openssl:openssl_header_openssl_sub_ssl3.h","//submodules/openssl:openssl_header_openssl_sub_sslerr.h","//submodules/openssl:openssl_header_openssl_sub_stack.h","//submodules/openssl:openssl_header_openssl_sub_store.h","//submodules/openssl:openssl_header_openssl_sub_storeerr.h","//submodules/openssl:openssl_header_openssl_sub_symhacks.h","//submodules/openssl:openssl_header_openssl_sub_tls1.h","//submodules/openssl:openssl_header_openssl_sub_ts.h","//submodules/openssl:openssl_header_openssl_sub_tserr.h","//submodules/openssl:openssl_header_openssl_sub_txt_db.h","//submodules/openssl:openssl_header_openssl_sub_ui.h","//submodules/openssl:openssl_header_openssl_sub_uierr.h","//submodules/openssl:openssl_header_openssl_sub_whrlpool.h","//submodules/openssl:openssl_header_openssl_sub_x509.h","//submodules/openssl:openssl_header_openssl_sub_x509_vfy.h","//submodules/openssl:openssl_header_openssl_sub_x509err.h","//submodules/openssl:openssl_header_openssl_sub_x509v3.h","//submodules/openssl:openssl_header_openssl_sub_x509v3err.h","//submodules/ton:ton_build","//submodules/ton:ton_header_auto_sub_tl_sub_tonlib_api.h","//submodules/ton:ton_header_td_sub_utils_sub_SharedSlice.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice-decl.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice.h","//submodules/ton:ton_header_td_sub_utils_sub_check.h","//submodules/ton:ton_header_td_sub_utils_sub_common.h","//submodules/ton:ton_header_td_sub_utils_sub_config.h","//submodules/ton:ton_header_td_sub_utils_sub_int_types.h","//submodules/ton:ton_header_td_sub_utils_sub_port_sub_platform.h","//submodules/ton:ton_header_td_sub_utils_sub_unique_ptr.h","//submodules/ton:ton_header_tl_sub_TlObject.h","//submodules/ton:ton_header_tonlib_sub_Client.h","//submodules/ton:ton_header_tonlib_sub_tonlib_client_json.h","//submodules/ton:ton_header_tonlib_sub_tonlibjson_export.h"],"xcconfig-paths":["buck-out/gen/AppLibrary-Debug.xcconfig","buck-out/gen/AppLibrary-Profile.xcconfig","buck-out/gen/AppLibrary-Release.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/Telegram-Debug.xcconfig","buck-out/gen/Telegram-Profile.xcconfig","buck-out/gen/Telegram-Release.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Release.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Release.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/Camera/Camera-Debug.xcconfig","buck-out/gen/submodules/Camera/Camera-Profile.xcconfig","buck-out/gen/submodules/Camera/Camera-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Debug.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Profile.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Debug.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Profile.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/openssl/openssl-Debug.xcconfig","buck-out/gen/submodules/openssl/openssl-Profile.xcconfig","buck-out/gen/submodules/openssl/openssl-Release.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Debug.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Profile.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig","buck-out/gen/submodules/ton/ton-Debug.xcconfig","buck-out/gen/submodules/ton/ton-Profile.xcconfig","buck-out/gen/submodules/ton/ton-Release.xcconfig"],"copy-in-xcode":[]}
\ No newline at end of file
+{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file","//submodules/openssl:openssl_build_merged","//submodules/openssl:openssl_header_openssl_sub_aes.h","//submodules/openssl:openssl_header_openssl_sub_asn1.h","//submodules/openssl:openssl_header_openssl_sub_asn1_mac.h","//submodules/openssl:openssl_header_openssl_sub_asn1err.h","//submodules/openssl:openssl_header_openssl_sub_asn1t.h","//submodules/openssl:openssl_header_openssl_sub_async.h","//submodules/openssl:openssl_header_openssl_sub_asyncerr.h","//submodules/openssl:openssl_header_openssl_sub_bio.h","//submodules/openssl:openssl_header_openssl_sub_bioerr.h","//submodules/openssl:openssl_header_openssl_sub_blowfish.h","//submodules/openssl:openssl_header_openssl_sub_bn.h","//submodules/openssl:openssl_header_openssl_sub_bnerr.h","//submodules/openssl:openssl_header_openssl_sub_buffer.h","//submodules/openssl:openssl_header_openssl_sub_buffererr.h","//submodules/openssl:openssl_header_openssl_sub_camellia.h","//submodules/openssl:openssl_header_openssl_sub_cast.h","//submodules/openssl:openssl_header_openssl_sub_cmac.h","//submodules/openssl:openssl_header_openssl_sub_cms.h","//submodules/openssl:openssl_header_openssl_sub_cmserr.h","//submodules/openssl:openssl_header_openssl_sub_comp.h","//submodules/openssl:openssl_header_openssl_sub_comperr.h","//submodules/openssl:openssl_header_openssl_sub_conf.h","//submodules/openssl:openssl_header_openssl_sub_conf_api.h","//submodules/openssl:openssl_header_openssl_sub_conferr.h","//submodules/openssl:openssl_header_openssl_sub_crypto.h","//submodules/openssl:openssl_header_openssl_sub_cryptoerr.h","//submodules/openssl:openssl_header_openssl_sub_ct.h","//submodules/openssl:openssl_header_openssl_sub_cterr.h","//submodules/openssl:openssl_header_openssl_sub_des.h","//submodules/openssl:openssl_header_openssl_sub_dh.h","//submodules/openssl:openssl_header_openssl_sub_dherr.h","//submodules/openssl:openssl_header_openssl_sub_dsa.h","//submodules/openssl:openssl_header_openssl_sub_dsaerr.h","//submodules/openssl:openssl_header_openssl_sub_dtls1.h","//submodules/openssl:openssl_header_openssl_sub_e_os2.h","//submodules/openssl:openssl_header_openssl_sub_ebcdic.h","//submodules/openssl:openssl_header_openssl_sub_ec.h","//submodules/openssl:openssl_header_openssl_sub_ecdh.h","//submodules/openssl:openssl_header_openssl_sub_ecdsa.h","//submodules/openssl:openssl_header_openssl_sub_ecerr.h","//submodules/openssl:openssl_header_openssl_sub_engine.h","//submodules/openssl:openssl_header_openssl_sub_engineerr.h","//submodules/openssl:openssl_header_openssl_sub_err.h","//submodules/openssl:openssl_header_openssl_sub_evp.h","//submodules/openssl:openssl_header_openssl_sub_evperr.h","//submodules/openssl:openssl_header_openssl_sub_hmac.h","//submodules/openssl:openssl_header_openssl_sub_idea.h","//submodules/openssl:openssl_header_openssl_sub_kdf.h","//submodules/openssl:openssl_header_openssl_sub_kdferr.h","//submodules/openssl:openssl_header_openssl_sub_lhash.h","//submodules/openssl:openssl_header_openssl_sub_md2.h","//submodules/openssl:openssl_header_openssl_sub_md4.h","//submodules/openssl:openssl_header_openssl_sub_md5.h","//submodules/openssl:openssl_header_openssl_sub_mdc2.h","//submodules/openssl:openssl_header_openssl_sub_modes.h","//submodules/openssl:openssl_header_openssl_sub_obj_mac.h","//submodules/openssl:openssl_header_openssl_sub_objects.h","//submodules/openssl:openssl_header_openssl_sub_objectserr.h","//submodules/openssl:openssl_header_openssl_sub_ocsp.h","//submodules/openssl:openssl_header_openssl_sub_ocsperr.h","//submodules/openssl:openssl_header_openssl_sub_opensslconf.h","//submodules/openssl:openssl_header_openssl_sub_opensslv.h","//submodules/openssl:openssl_header_openssl_sub_ossl_typ.h","//submodules/openssl:openssl_header_openssl_sub_pem.h","//submodules/openssl:openssl_header_openssl_sub_pem2.h","//submodules/openssl:openssl_header_openssl_sub_pemerr.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12.h","//submodules/openssl:openssl_header_openssl_sub_pkcs12err.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7.h","//submodules/openssl:openssl_header_openssl_sub_pkcs7err.h","//submodules/openssl:openssl_header_openssl_sub_rand.h","//submodules/openssl:openssl_header_openssl_sub_rand_drbg.h","//submodules/openssl:openssl_header_openssl_sub_randerr.h","//submodules/openssl:openssl_header_openssl_sub_rc2.h","//submodules/openssl:openssl_header_openssl_sub_rc4.h","//submodules/openssl:openssl_header_openssl_sub_rc5.h","//submodules/openssl:openssl_header_openssl_sub_ripemd.h","//submodules/openssl:openssl_header_openssl_sub_rsa.h","//submodules/openssl:openssl_header_openssl_sub_rsaerr.h","//submodules/openssl:openssl_header_openssl_sub_safestack.h","//submodules/openssl:openssl_header_openssl_sub_seed.h","//submodules/openssl:openssl_header_openssl_sub_sha.h","//submodules/openssl:openssl_header_openssl_sub_srp.h","//submodules/openssl:openssl_header_openssl_sub_srtp.h","//submodules/openssl:openssl_header_openssl_sub_ssl.h","//submodules/openssl:openssl_header_openssl_sub_ssl2.h","//submodules/openssl:openssl_header_openssl_sub_ssl3.h","//submodules/openssl:openssl_header_openssl_sub_sslerr.h","//submodules/openssl:openssl_header_openssl_sub_stack.h","//submodules/openssl:openssl_header_openssl_sub_store.h","//submodules/openssl:openssl_header_openssl_sub_storeerr.h","//submodules/openssl:openssl_header_openssl_sub_symhacks.h","//submodules/openssl:openssl_header_openssl_sub_tls1.h","//submodules/openssl:openssl_header_openssl_sub_ts.h","//submodules/openssl:openssl_header_openssl_sub_tserr.h","//submodules/openssl:openssl_header_openssl_sub_txt_db.h","//submodules/openssl:openssl_header_openssl_sub_ui.h","//submodules/openssl:openssl_header_openssl_sub_uierr.h","//submodules/openssl:openssl_header_openssl_sub_whrlpool.h","//submodules/openssl:openssl_header_openssl_sub_x509.h","//submodules/openssl:openssl_header_openssl_sub_x509_vfy.h","//submodules/openssl:openssl_header_openssl_sub_x509err.h","//submodules/openssl:openssl_header_openssl_sub_x509v3.h","//submodules/openssl:openssl_header_openssl_sub_x509v3err.h","//submodules/ton:ton_build","//submodules/ton:ton_header_auto_sub_tl_sub_tonlib_api.h","//submodules/ton:ton_header_td_sub_utils_sub_SharedSlice.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice-decl.h","//submodules/ton:ton_header_td_sub_utils_sub_Slice.h","//submodules/ton:ton_header_td_sub_utils_sub_check.h","//submodules/ton:ton_header_td_sub_utils_sub_common.h","//submodules/ton:ton_header_td_sub_utils_sub_config.h","//submodules/ton:ton_header_td_sub_utils_sub_int_types.h","//submodules/ton:ton_header_td_sub_utils_sub_port_sub_platform.h","//submodules/ton:ton_header_td_sub_utils_sub_unique_ptr.h","//submodules/ton:ton_header_tl_sub_TlObject.h","//submodules/ton:ton_header_tonlib_sub_Client.h","//submodules/ton:ton_header_tonlib_sub_tonlib_client_json.h","//submodules/ton:ton_header_tonlib_sub_tonlibjson_export.h"],"xcconfig-paths":["buck-out/gen/AppLibrary-Debug.xcconfig","buck-out/gen/AppLibrary-Profile.xcconfig","buck-out/gen/AppLibrary-Release.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/IntentsExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationContentExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/NotificationServiceExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/ShareExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/Telegram-Debug.xcconfig","buck-out/gen/Telegram-Profile.xcconfig","buck-out/gen/Telegram-Release.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchApp#watchsimulator-i386-Release.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Debug.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Profile.xcconfig","buck-out/gen/WatchAppExtension#watchsimulator-i386-Release.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Debug.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Profile.xcconfig","buck-out/gen/WidgetExtension#iphonesimulator-x86_64-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/Camera/Camera-Debug.xcconfig","buck-out/gen/submodules/Camera/Camera-Profile.xcconfig","buck-out/gen/submodules/Camera/Camera-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Debug.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Profile.xcconfig","buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Debug.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Profile.xcconfig","buck-out/gen/submodules/SegmentedControlNode/SegmentedControlNode-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Debug.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Profile.xcconfig","buck-out/gen/submodules/WalletUI/WalletUI-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/Host/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/openssl/openssl-Debug.xcconfig","buck-out/gen/submodules/openssl/openssl-Profile.xcconfig","buck-out/gen/submodules/openssl/openssl-Release.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Debug.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Profile.xcconfig","buck-out/gen/submodules/rlottie/RLottieBinding-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig","buck-out/gen/submodules/ton/ton-Debug.xcconfig","buck-out/gen/submodules/ton/ton-Profile.xcconfig","buck-out/gen/submodules/ton/ton-Release.xcconfig"],"copy-in-xcode":[]}
\ No newline at end of file
diff --git a/Telegram_Buck.xcworkspace/contents.xcworkspacedata b/Telegram_Buck.xcworkspace/contents.xcworkspacedata
index 56b76f1d96..149ca31975 100644
--- a/Telegram_Buck.xcworkspace/contents.xcworkspacedata
+++ b/Telegram_Buck.xcworkspace/contents.xcworkspacedata
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme b/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme
index 49314580e4..4a01a62522 100644
--- a/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme
+++ b/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme
@@ -1980,6 +1980,20 @@
ReferencedContainer = "container:submodules/OpusBinding/OpusBinding.xcodeproj">
+
+
+
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..c4da1b46f9
--- /dev/null
+++ b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/project.pbxproj
@@ -0,0 +1,401 @@
+
+
+
+
+ archiveVersion
+ 1
+ classes
+
+
+ objectVersion
+ 46
+ objects
+
+ 1DD70E2954723C0500000000
+
+ isa
+ PBXFileReference
+ name
+ PasscodeInputFieldNode-Debug.xcconfig
+ path
+ ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Debug.xcconfig
+ sourceTree
+ SOURCE_ROOT
+ explicitFileType
+ text.xcconfig
+
+ 1DD70E29E5F5E62F00000000
+
+ isa
+ PBXFileReference
+ name
+ PasscodeInputFieldNode-Profile.xcconfig
+ path
+ ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Profile.xcconfig
+ sourceTree
+ SOURCE_ROOT
+ explicitFileType
+ text.xcconfig
+
+ 1DD70E29598C919100000000
+
+ isa
+ PBXFileReference
+ name
+ PasscodeInputFieldNode-Release.xcconfig
+ path
+ ../../buck-out/gen/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode-Release.xcconfig
+ sourceTree
+ SOURCE_ROOT
+ explicitFileType
+ text.xcconfig
+
+ B401C9792F7F325000000000
+
+ isa
+ PBXGroup
+ name
+ Buck (Do Not Modify)
+ sourceTree
+ ]]>
+ children
+
+ 1DD70E2954723C0500000000
+ 1DD70E29E5F5E62F00000000
+ 1DD70E29598C919100000000
+
+
+ B401C979B781F65D00000000
+
+ isa
+ PBXGroup
+ name
+ Configurations
+ sourceTree
+ ]]>
+ children
+
+ B401C9792F7F325000000000
+
+
+ 1DD70E29FF334B1F00000000
+
+ isa
+ PBXFileReference
+ name
+ libDisplay.dylib
+ path
+ libDisplay.dylib
+ sourceTree
+ BUILT_PRODUCTS_DIR
+ explicitFileType
+ compiled.mach-o.dylib
+
+ 1DD70E29D65BA68200000000
+
+ isa
+ PBXFileReference
+ name
+ libSwiftSignalKit.dylib
+ path
+ libSwiftSignalKit.dylib
+ sourceTree
+ BUILT_PRODUCTS_DIR
+ explicitFileType
+ compiled.mach-o.dylib
+
+ B401C97968022A5500000000
+
+ isa
+ PBXGroup
+ name
+ Frameworks
+ sourceTree
+ ]]>
+ children
+
+ 1DD70E29FF334B1F00000000
+ 1DD70E29D65BA68200000000
+
+
+ 1DD70E29001F47FB00000000
+
+ isa
+ PBXFileReference
+ name
+ BUCK
+ path
+ BUCK
+ sourceTree
+ SOURCE_ROOT
+ explicitFileType
+ text.script.python
+
+ 1DD70E290BCAAD5500000000
+
+ isa
+ PBXFileReference
+ name
+ PasscodeInputFieldNode.swift
+ path
+ Sources/PasscodeInputFieldNode.swift
+ sourceTree
+ SOURCE_ROOT
+
+ B401C979EAB5339800000000
+
+ isa
+ PBXGroup
+ name
+ Sources
+ sourceTree
+ ]]>
+ children
+
+ 1DD70E290BCAAD5500000000
+
+
+ B401C979928346B000000000
+
+ isa
+ PBXGroup
+ name
+ PasscodeInputFieldNode
+ sourceTree
+ ]]>
+ children
+
+ 1DD70E29001F47FB00000000
+ B401C979EAB5339800000000
+
+
+ 1DD70E2989A0042800000000
+
+ isa
+ PBXFileReference
+ name
+ libPasscodeInputFieldNode.a
+ path
+ libPasscodeInputFieldNode.a
+ sourceTree
+ BUILT_PRODUCTS_DIR
+ explicitFileType
+ archive.ar
+
+ B401C979C806358400000000
+
+ isa
+ PBXGroup
+ name
+ Products
+ sourceTree
+ ]]>
+ children
+
+ 1DD70E2989A0042800000000
+
+
+ B401C979EFB6AC4600000000
+
+ isa
+ PBXGroup
+ name
+ mainGroup
+ sourceTree
+ ]]>
+ children
+
+ B401C979B781F65D00000000
+ B401C97968022A5500000000
+ B401C979928346B000000000
+ B401C979C806358400000000
+
+
+ E7A30F040BCAAD5500000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E290BCAAD5500000000
+
+ 1870857F0000000000000000
+
+ isa
+ PBXSourcesBuildPhase
+ files
+
+ E7A30F040BCAAD5500000000
+
+
+ E7A30F04FF334B1F00000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E29FF334B1F00000000
+
+ E7A30F04D65BA68200000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E29D65BA68200000000
+
+ FAF5FAC90000000000000000
+
+ isa
+ PBXCopyFilesBuildPhase
+ files
+
+ E7A30F04FF334B1F00000000
+ E7A30F04D65BA68200000000
+
+ name
+ Fake Swift Dependencies (Copy Files Phase)
+ runOnlyForDeploymentPostprocessing
+ 1
+ dstSubfolderSpec
+ 16
+ dstPath
+
+
+ 4952437303EDA63300000000
+
+ isa
+ XCBuildConfiguration
+ name
+ Debug
+ buildSettings
+
+
+ baseConfigurationReference
+ 1DD70E2954723C0500000000
+
+ 4952437350C7218900000000
+
+ isa
+ XCBuildConfiguration
+ name
+ Profile
+ buildSettings
+
+
+ baseConfigurationReference
+ 1DD70E29E5F5E62F00000000
+
+ 49524373A439BFE700000000
+
+ isa
+ XCBuildConfiguration
+ name
+ Release
+ buildSettings
+
+
+ baseConfigurationReference
+ 1DD70E29598C919100000000
+
+ 218C37090000000000000000
+
+ isa
+ XCConfigurationList
+ buildConfigurations
+
+ 4952437303EDA63300000000
+ 4952437350C7218900000000
+ 49524373A439BFE700000000
+
+ defaultConfigurationIsVisible
+
+
+ E66DC04E928346B000000000
+
+ isa
+ PBXNativeTarget
+ name
+ PasscodeInputFieldNode
+ productName
+ PasscodeInputFieldNode
+ productReference
+ 1DD70E2989A0042800000000
+ productType
+ com.apple.product-type.library.static
+ dependencies
+
+
+ buildPhases
+
+ 1870857F0000000000000000
+ FAF5FAC90000000000000000
+
+ buildConfigurationList
+ 218C37090000000000000000
+
+ 4952437303EDA63300000001
+
+ isa
+ XCBuildConfiguration
+ name
+ Debug
+ buildSettings
+
+
+
+ 4952437350C7218900000001
+
+ isa
+ XCBuildConfiguration
+ name
+ Profile
+ buildSettings
+
+
+
+ 49524373A439BFE700000001
+
+ isa
+ XCBuildConfiguration
+ name
+ Release
+ buildSettings
+
+
+
+ 218C37090000000000000001
+
+ isa
+ XCConfigurationList
+ buildConfigurations
+
+ 4952437303EDA63300000001
+ 4952437350C7218900000001
+ 49524373A439BFE700000001
+
+ defaultConfigurationIsVisible
+
+
+ 96C84793928346B000000000
+
+ isa
+ PBXProject
+ mainGroup
+ B401C979EFB6AC4600000000
+ targets
+
+ E66DC04E928346B000000000
+
+ buildConfigurationList
+ 218C37090000000000000001
+ compatibilityVersion
+ Xcode 3.2
+ attributes
+
+ LastUpgradeCheck
+ 9999
+
+
+
+ rootObject
+ 96C84793928346B000000000
+
+
\ No newline at end of file
diff --git a/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme
new file mode 100644
index 0000000000..066bbb9dbf
--- /dev/null
+++ b/submodules/PasscodeInputFieldNode/PasscodeInputFieldNode.xcodeproj/xcshareddata/xcschemes/PasscodeInputFieldNode.xcscheme
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h
new file mode 100644
index 0000000000..62f02bccf8
--- /dev/null
+++ b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.h
@@ -0,0 +1,11 @@
+#import
+
+//! Project version number for PasscodeInputFieldNode.
+FOUNDATION_EXPORT double PasscodeInputFieldNodeVersionNumber;
+
+//! Project version string for PasscodeInputFieldNode.
+FOUNDATION_EXPORT const unsigned char PasscodeInputFieldNodeVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift
similarity index 88%
rename from submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift
rename to submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift
index 119811902c..8e899a6421 100644
--- a/submodules/PasscodeUI/Sources/PasscodeEntryInputFieldNode.swift
+++ b/submodules/PasscodeInputFieldNode/Sources/PasscodeInputFieldNode.swift
@@ -24,19 +24,19 @@ private func generateDotImage(color: UIColor, filled: Bool) -> UIImage? {
})
}
-private func generateFieldBackgroundImage(background: PasscodeBackground, frame: CGRect) -> UIImage? {
+private func generateFieldBackgroundImage(backgroundImage: UIImage, backgroundSize: CGSize, frame: CGRect) -> UIImage? {
return generateImage(frame.size, contextGenerator: { size, context in
let bounds = CGRect(origin: CGPoint(), size: size)
context.clear(bounds)
- let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - background.size.height + frame.size.height
- , width: background.size.width, height: background.size.height)
+ let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - backgroundSize.height + frame.size.height
+ , width: backgroundSize.width, height: backgroundSize.height)
let path = UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height), cornerRadius: 6.0)
context.addPath(path.cgPath)
context.clip()
- context.draw(background.foregroundImage.cgImage!, in: relativeFrame)
+ context.draw(backgroundImage.cgImage!, in: relativeFrame)
context.setBlendMode(.clear)
context.setFillColor(UIColor.clear.cgColor)
@@ -128,8 +128,8 @@ private class PasscodeEntryDotNode: ASImageNode {
}
}
-public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelegate {
- private var background: PasscodeBackground?
+public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate {
+ private var background: (UIImage, CGSize)?
private var color: UIColor
private var accentColor: UIColor
private var fieldType: PasscodeEntryFieldType
@@ -139,7 +139,7 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega
private let borderNode: ASImageNode
private let dotNodes: [PasscodeEntryDotNode]
- private var validLayout: PasscodeLayout?
+ private var validLayout: (ContainerViewLayout, CGFloat)?
public var complete: ((String) -> Void)?
@@ -202,15 +202,15 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega
self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType
- if let validLayout = self.validLayout {
- let _ = self.updateLayout(layout: validLayout, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate)
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate)
}
}
- func updateBackground(_ background: PasscodeBackground) {
- self.background = background
- if let validLayout = self.validLayout {
- let _ = self.updateLayout(layout: validLayout, transition: .immediate)
+ func updateBackground(_ image: UIImage, size: CGSize) {
+ self.background = (image, size)
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate)
}
}
@@ -302,13 +302,13 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega
self.textFieldNode.textField.text = ""
}
self.fieldType = fieldType
- if let validLayout = self.validLayout {
- let _ = self.updateLayout(layout: validLayout, transition: .immediate)
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate)
}
}
- public func updateLayout(layout: PasscodeLayout, transition: ContainedViewLayoutTransition) -> CGRect {
- self.validLayout = layout
+ public func updateLayout(layout: ContainerViewLayout, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect {
+ self.validLayout = (layout, topOffset)
let fieldAlpha: CGFloat
switch self.fieldType {
@@ -321,7 +321,7 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega
transition.updateAlpha(node: self.textFieldNode, alpha: fieldAlpha)
transition.updateAlpha(node: self.borderNode, alpha: fieldAlpha)
- let origin = CGPoint(x: floor((layout.layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: layout.inputFieldOffset)
+ let origin = CGPoint(x: floor((layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset)
for i in 0 ..< self.dotNodes.count {
let node = self.dotNodes[i]
let dotAlpha: CGFloat
@@ -343,11 +343,11 @@ public final class PasscodeEntryInputFieldNode: ASDisplayNode, UITextFieldDelega
if !self.useCustomNumpad {
inset = 16.0
}
- let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.layout.size.width - inset * 2.0, height: fieldHeight)
+ let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.size.width - inset * 2.0, height: fieldHeight)
transition.updateFrame(node: self.borderNode, frame: fieldFrame)
transition.updateFrame(node: self.textFieldNode, frame: fieldFrame.insetBy(dx: 13.0, dy: 0.0))
- if let background = self.background {
- self.borderNode.image = generateFieldBackgroundImage(background: background, frame: fieldFrame)
+ if let (backgroundImage, backgroundSize) = self.background {
+ self.borderNode.image = generateFieldBackgroundImage(backgroundImage: backgroundImage, backgroundSize: backgroundSize, frame: fieldFrame)
}
return fieldFrame
diff --git a/submodules/PasscodeUI/BUCK b/submodules/PasscodeUI/BUCK
index 306511e065..5dd70b8987 100644
--- a/submodules/PasscodeUI/BUCK
+++ b/submodules/PasscodeUI/BUCK
@@ -19,6 +19,7 @@ static_library(
"//submodules/TelegramStringFormatting:TelegramStringFormatting",
"//submodules/ImageBlur:ImageBlur",
"//submodules/AppBundle:AppBundle",
+ "//submodules/PasscodeInputFieldNode:PasscodeInputFieldNode",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
diff --git a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj
index 769fc9bc55..61d552d99e 100644
--- a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj
+++ b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj
@@ -169,6 +169,19 @@
explicitFileType
archive.ar
+ 1DD70E2989A0042800000000
+
+ isa
+ PBXFileReference
+ name
+ libPasscodeInputFieldNode.a
+ path
+ libPasscodeInputFieldNode.a
+ sourceTree
+ BUILT_PRODUCTS_DIR
+ explicitFileType
+ archive.ar
+
1DD70E290F1A3C6400000000
isa
@@ -329,6 +342,7 @@
1DD70E29A889192100000000
1DD70E29CE34063500000000
1DD70E2936DE2CF900000000
+ 1DD70E2989A0042800000000
1DD70E290F1A3C6400000000
1DD70E29DB6520C800000000
1DD70E29D65BA68200000000
@@ -388,17 +402,6 @@
sourceTree
SOURCE_ROOT
- 1DD70E293E85462B00000000
-
- isa
- PBXFileReference
- name
- PasscodeEntryInputFieldNode.swift
- path
- Sources/PasscodeEntryInputFieldNode.swift
- sourceTree
- SOURCE_ROOT
-
1DD70E293E99570200000000
isa
@@ -421,6 +424,17 @@
sourceTree
SOURCE_ROOT
+ 1DD70E290BCAAD5500000000
+
+ isa
+ PBXFileReference
+ name
+ PasscodeInputFieldNode.swift
+ path
+ Sources/PasscodeInputFieldNode.swift
+ sourceTree
+ SOURCE_ROOT
+
1DD70E299AE87B0D00000000
isa
@@ -478,9 +492,9 @@
1DD70E2944FAB31100000000
1DD70E298C702AD500000000
1DD70E297F6C137700000000
- 1DD70E293E85462B00000000
1DD70E293E99570200000000
1DD70E29A75DC52700000000
+ 1DD70E290BCAAD5500000000
1DD70E299AE87B0D00000000
1DD70E29E2D8E4C900000000
1DD70E298FD9E6E000000000
@@ -564,13 +578,6 @@
fileRef
1DD70E297F6C137700000000
- E7A30F043E85462B00000000
-
- isa
- PBXBuildFile
- fileRef
- 1DD70E293E85462B00000000
-
E7A30F043E99570200000000
isa
@@ -585,6 +592,13 @@
fileRef
1DD70E29A75DC52700000000
+ E7A30F040BCAAD5500000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E290BCAAD5500000000
+
E7A30F049AE87B0D00000000
isa
@@ -622,9 +636,9 @@
E7A30F0444FAB31100000000
E7A30F048C702AD500000000
E7A30F047F6C137700000000
- E7A30F043E85462B00000000
E7A30F043E99570200000000
E7A30F04A75DC52700000000
+ E7A30F040BCAAD5500000000
E7A30F049AE87B0D00000000
E7A30F04E2D8E4C900000000
E7A30F048FD9E6E000000000
@@ -757,6 +771,13 @@
fileRef
1DD70E29A889192100000000
+ E7A30F0489A0042800000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E2989A0042800000000
+
FAF5FAC90000000000000000
isa
@@ -781,6 +802,7 @@
E7A30F049D2580DA00000000
E7A30F04D6F14E1000000000
E7A30F04A889192100000000
+ E7A30F0489A0042800000000
name
Fake Swift Dependencies (Copy Files Phase)
diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift
index 964b471071..445a8ffbb3 100644
--- a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift
+++ b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift
@@ -9,6 +9,7 @@ import TelegramPresentationData
import AccountContext
import LocalAuth
import AppBundle
+import PasscodeInputFieldNode
private let titleFont = Font.regular(20.0)
private let subtitleFont = Font.regular(15.0)
@@ -29,7 +30,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode {
private let backgroundNode: ASImageNode
private let iconNode: PasscodeLockIconNode
private let titleNode: PasscodeEntryLabelNode
- private let inputFieldNode: PasscodeEntryInputFieldNode
+ private let inputFieldNode: PasscodeInputFieldNode
private let subtitleNode: PasscodeEntryLabelNode
private let keyboardNode: PasscodeEntryKeyboardNode
private let cancelButtonNode: HighlightableButtonNode
@@ -62,7 +63,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode {
self.iconNode = PasscodeLockIconNode()
self.titleNode = PasscodeEntryLabelNode()
- self.inputFieldNode = PasscodeEntryInputFieldNode(color: .white, accentColor: .white, fieldType: passcodeType, keyboardAppearance: .dark, useCustomNumpad: true)
+ self.inputFieldNode = PasscodeInputFieldNode(color: .white, accentColor: .white, fieldType: passcodeType, keyboardAppearance: .dark, useCustomNumpad: true)
self.subtitleNode = PasscodeEntryLabelNode()
self.keyboardNode = PasscodeEntryKeyboardNode()
self.cancelButtonNode = HighlightableButtonNode()
@@ -188,7 +189,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode {
if let background = self.background {
self.backgroundNode.image = background.backgroundImage
self.keyboardNode.updateBackground(background)
- self.inputFieldNode.updateBackground(background)
+ self.inputFieldNode.updateBackground(background.foregroundImage, size: background.size)
}
}
@@ -346,7 +347,7 @@ final class PasscodeEntryControllerNode: ASDisplayNode {
let passcodeLayout = PasscodeLayout(layout: layout)
- let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout, transition: transition)
+ let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout.layout, topOffset: passcodeLayout.inputFieldOffset, transition: transition)
transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size))
let titleSize = self.titleNode.updateLayout(layout: layout, transition: transition)
diff --git a/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift
new file mode 100644
index 0000000000..8e899a6421
--- /dev/null
+++ b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift
@@ -0,0 +1,382 @@
+import Foundation
+import UIKit
+import AsyncDisplayKit
+import Display
+import SwiftSignalKit
+
+private let dotDiameter: CGFloat = 13.0
+private let dotSpacing: CGFloat = 24.0
+private let fieldHeight: CGFloat = 38.0
+
+private func generateDotImage(color: UIColor, filled: Bool) -> UIImage? {
+ return generateImage(CGSize(width: dotDiameter, height: dotDiameter), contextGenerator: { size, context in
+ let bounds = CGRect(origin: CGPoint(), size: size)
+ context.clear(bounds)
+
+ if filled {
+ context.setFillColor(color.cgColor)
+ context.fillEllipse(in: bounds)
+ } else {
+ context.setStrokeColor(color.cgColor)
+ context.setLineWidth(1.0)
+ context.strokeEllipse(in: bounds.insetBy(dx: 0.5, dy: 0.5))
+ }
+ })
+}
+
+private func generateFieldBackgroundImage(backgroundImage: UIImage, backgroundSize: CGSize, frame: CGRect) -> UIImage? {
+ return generateImage(frame.size, contextGenerator: { size, context in
+ let bounds = CGRect(origin: CGPoint(), size: size)
+ context.clear(bounds)
+
+ let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - backgroundSize.height + frame.size.height
+ , width: backgroundSize.width, height: backgroundSize.height)
+
+ let path = UIBezierPath(roundedRect: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height), cornerRadius: 6.0)
+ context.addPath(path.cgPath)
+ context.clip()
+
+ context.draw(backgroundImage.cgImage!, in: relativeFrame)
+
+ context.setBlendMode(.clear)
+ context.setFillColor(UIColor.clear.cgColor)
+
+ let innerPath = UIBezierPath(roundedRect: CGRect(x: 1.0, y: 1.0, width: size.width - 2.0, height: size.height - 2.0), cornerRadius: 6.0)
+ context.addPath(innerPath.cgPath)
+ context.fillPath()
+ })
+}
+
+private let validDigitsSet: CharacterSet = {
+ return CharacterSet(charactersIn: "0".unicodeScalars.first! ... "9".unicodeScalars.first!)
+}()
+
+public enum PasscodeEntryFieldType {
+ case digits6
+ case digits4
+ case alphanumeric
+
+ public var maxLength: Int? {
+ switch self {
+ case .digits6:
+ return 6
+ case .digits4:
+ return 4
+ case .alphanumeric:
+ return nil
+ }
+ }
+
+ public var allowedCharacters: CharacterSet? {
+ switch self {
+ case .digits6, .digits4:
+ return validDigitsSet
+ case .alphanumeric:
+ return nil
+ }
+ }
+
+ public var keyboardType: UIKeyboardType {
+ switch self {
+ case .digits6, .digits4:
+ if #available(iOS 10.0, *) {
+ return .asciiCapableNumberPad
+ } else {
+ return .numberPad
+ }
+ case .alphanumeric:
+ return .default
+ }
+ }
+}
+
+private class PasscodeEntryInputView: UIView {
+
+}
+
+private class PasscodeEntryDotNode: ASImageNode {
+ private let regularImage: UIImage
+ private let filledImage: UIImage
+ private var currentImage: UIImage
+
+ init(color: UIColor) {
+ self.regularImage = generateDotImage(color: color, filled: false)!
+ self.filledImage = generateDotImage(color: color, filled: true)!
+ self.currentImage = self.regularImage
+
+ super.init()
+
+ self.image = self.currentImage
+ }
+
+ func updateState(filled: Bool, animated: Bool = false, delay: Double = 0.0) {
+ let image = filled ? self.filledImage : self.regularImage
+ if self.currentImage !== image {
+ let currentContents = self.layer.contents
+ self.layer.removeAnimation(forKey: "contents")
+ if let currentContents = currentContents, animated {
+ self.layer.animate(from: currentContents as AnyObject, to: image.cgImage!, keyPath: "contents", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, duration: image === self.regularImage ? 0.25 : 0.05, delay: delay, removeOnCompletion: false, completion: { finished in
+ if finished {
+ self.image = image
+ }
+ })
+ } else {
+ self.image = image
+ }
+ self.currentImage = image
+ }
+ }
+}
+
+public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate {
+ private var background: (UIImage, CGSize)?
+ private var color: UIColor
+ private var accentColor: UIColor
+ private var fieldType: PasscodeEntryFieldType
+ private let useCustomNumpad: Bool
+
+ private let textFieldNode: TextFieldNode
+ private let borderNode: ASImageNode
+ private let dotNodes: [PasscodeEntryDotNode]
+
+ private var validLayout: (ContainerViewLayout, CGFloat)?
+
+ public var complete: ((String) -> Void)?
+
+ public var text: String {
+ return self.textFieldNode.textField.text ?? ""
+ }
+
+ public var keyboardAppearance: UIKeyboardAppearance {
+ didSet {
+ self.textFieldNode.textField.keyboardAppearance = self.keyboardAppearance
+ }
+ }
+
+ public init(color: UIColor, accentColor: UIColor, fieldType: PasscodeEntryFieldType, keyboardAppearance: UIKeyboardAppearance, useCustomNumpad: Bool = false) {
+ self.color = color
+ self.accentColor = accentColor
+ self.fieldType = fieldType
+ self.keyboardAppearance = keyboardAppearance
+ self.useCustomNumpad = useCustomNumpad
+
+ self.textFieldNode = TextFieldNode()
+ self.borderNode = ASImageNode()
+ self.dotNodes = (0 ..< 6).map { _ in PasscodeEntryDotNode(color: color) }
+
+ super.init()
+
+ self.isUserInteractionEnabled = false
+
+ for node in self.dotNodes {
+ self.addSubnode(node)
+ }
+ self.addSubnode(self.textFieldNode)
+ self.addSubnode(self.borderNode)
+ }
+
+ override public func didLoad() {
+ super.didLoad()
+
+ self.textFieldNode.textField.isSecureTextEntry = true
+ self.textFieldNode.textField.textColor = self.color
+ self.textFieldNode.textField.delegate = self
+ self.textFieldNode.textField.returnKeyType = .done
+ self.textFieldNode.textField.tintColor = self.accentColor
+ self.textFieldNode.textField.keyboardAppearance = self.keyboardAppearance
+ self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType
+ self.textFieldNode.textField.tintColor = self.accentColor
+
+ if self.useCustomNumpad {
+ switch self.fieldType {
+ case .digits6, .digits4:
+ self.textFieldNode.textField.inputView = PasscodeEntryInputView()
+ case .alphanumeric:
+ break
+ }
+ }
+ }
+
+ func updateFieldType(_ fieldType: PasscodeEntryFieldType, animated: Bool) {
+ self.fieldType = fieldType
+
+ self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType
+
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate)
+ }
+ }
+
+ func updateBackground(_ image: UIImage, size: CGSize) {
+ self.background = (image, size)
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate)
+ }
+ }
+
+ public func activateInput() {
+ self.textFieldNode.textField.becomeFirstResponder()
+ }
+
+ func animateIn() {
+ switch self.fieldType {
+ case .digits6, .digits4:
+ for node in self.dotNodes {
+ node.layer.animateScale(from: 0.0001, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue)
+ }
+ case .alphanumeric:
+ self.textFieldNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue)
+ self.borderNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue)
+ }
+ }
+
+ func animateSuccess() {
+ switch self.fieldType {
+ case .digits6, .digits4:
+ var delay: Double = 0.0
+ for node in self.dotNodes {
+ node.updateState(filled: true, animated: true, delay: delay)
+ delay += 0.01
+ }
+ case .alphanumeric:
+ if (self.textFieldNode.textField.text ?? "").isEmpty {
+ self.textFieldNode.textField.text = "passwordpassword"
+ }
+ }
+ }
+
+ public func reset(animated: Bool = true) {
+ var delay: Double = 0.0
+ for node in self.dotNodes.reversed() {
+ if node.alpha < 1.0 {
+ continue
+ }
+
+ node.updateState(filled: false, animated: animated, delay: delay)
+ delay += 0.05
+ }
+ self.textFieldNode.textField.text = ""
+ }
+
+ func append(_ string: String) {
+ var text = (self.textFieldNode.textField.text ?? "") + string
+ let maxLength = self.fieldType.maxLength
+ if let maxLength = maxLength, text.count > maxLength {
+ return
+ }
+ self.textFieldNode.textField.text = text
+
+ text = self.textFieldNode.textField.text ?? "" + string
+ self.updateDots(count: text.count, animated: false)
+
+ if let maxLength = maxLength, text.count == maxLength {
+ Queue.mainQueue().after(0.2) {
+ self.complete?(text)
+ }
+ }
+ }
+
+ func delete() {
+ var text = self.textFieldNode.textField.text ?? ""
+ guard !text.isEmpty else {
+ return
+ }
+ text = String(text[text.startIndex ..< text.index(text.endIndex, offsetBy: -1)])
+ self.textFieldNode.textField.text = text
+ self.updateDots(count: text.count, animated: true)
+ }
+
+ func updateDots(count: Int, animated: Bool) {
+ var i = -1
+ for node in self.dotNodes {
+ if node.alpha < 1.0 {
+ continue
+ }
+ i += 1
+ node.updateState(filled: i < count, animated: animated)
+ }
+ }
+
+ public func update(fieldType: PasscodeEntryFieldType) {
+ if fieldType != self.fieldType {
+ self.textFieldNode.textField.text = ""
+ }
+ self.fieldType = fieldType
+ if let (layout, topOffset) = self.validLayout {
+ let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate)
+ }
+ }
+
+ public func updateLayout(layout: ContainerViewLayout, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect {
+ self.validLayout = (layout, topOffset)
+
+ let fieldAlpha: CGFloat
+ switch self.fieldType {
+ case .digits6, .digits4:
+ fieldAlpha = 0.0
+ case .alphanumeric:
+ fieldAlpha = 1.0
+ }
+
+ transition.updateAlpha(node: self.textFieldNode, alpha: fieldAlpha)
+ transition.updateAlpha(node: self.borderNode, alpha: fieldAlpha)
+
+ let origin = CGPoint(x: floor((layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset)
+ for i in 0 ..< self.dotNodes.count {
+ let node = self.dotNodes[i]
+ let dotAlpha: CGFloat
+ switch self.fieldType {
+ case .digits6:
+ dotAlpha = 1.0
+ case .digits4:
+ dotAlpha = (i > 0 && i < self.dotNodes.count - 1) ? 1.0 : 0.0
+ case .alphanumeric:
+ dotAlpha = 0.0
+ }
+ transition.updateAlpha(node: node, alpha: dotAlpha)
+
+ let dotFrame = CGRect(x: origin.x + CGFloat(i) * (dotDiameter + dotSpacing), y: origin.y, width: dotDiameter, height: dotDiameter)
+ transition.updateFrame(node: node, frame: dotFrame)
+ }
+
+ var inset: CGFloat = 50.0
+ if !self.useCustomNumpad {
+ inset = 16.0
+ }
+ let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.size.width - inset * 2.0, height: fieldHeight)
+ transition.updateFrame(node: self.borderNode, frame: fieldFrame)
+ transition.updateFrame(node: self.textFieldNode, frame: fieldFrame.insetBy(dx: 13.0, dy: 0.0))
+ if let (backgroundImage, backgroundSize) = self.background {
+ self.borderNode.image = generateFieldBackgroundImage(backgroundImage: backgroundImage, backgroundSize: backgroundSize, frame: fieldFrame)
+ }
+
+ return fieldFrame
+ }
+
+ public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
+ let currentText = textField.text ?? ""
+ let text = (currentText as NSString).replacingCharacters(in: range, with: string)
+ if let maxLength = self.fieldType.maxLength, text.count > maxLength {
+ return false
+ }
+ if let allowedCharacters = self.fieldType.allowedCharacters, let _ = text.rangeOfCharacter(from: allowedCharacters.inverted) {
+ return false
+ }
+ self.updateDots(count: text.count, animated: text.count < currentText.count)
+
+ if string == "\n" {
+ Queue.mainQueue().after(0.2) {
+ self.complete?(currentText)
+ }
+ return false
+ }
+
+ if let maxLength = self.fieldType.maxLength, text.count == maxLength {
+ Queue.mainQueue().after(0.2) {
+ self.complete?(text)
+ }
+ }
+ return true
+ }
+}
+
diff --git a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift
index e59a0f9749..41ed465470 100644
--- a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift
+++ b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift
@@ -4,6 +4,7 @@ import AsyncDisplayKit
import Display
import TelegramCore
import TelegramPresentationData
+import PasscodeInputFieldNode
enum PasscodeSetupInitialState {
case createPasscode
@@ -36,7 +37,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode {
private let titleNode: ASTextNode
private let subtitleNode: ASTextNode
- private let inputFieldNode: PasscodeEntryInputFieldNode
+ private let inputFieldNode: PasscodeInputFieldNode
private let inputFieldBackgroundNode: ASImageNode
private let modeButtonNode: HighlightableButtonNode
@@ -82,7 +83,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode {
passcodeType = .digits6
}
- self.inputFieldNode = PasscodeEntryInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: passcodeType, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance)
+ self.inputFieldNode = PasscodeInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: passcodeType, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance)
self.inputFieldBackgroundNode = ASImageNode()
self.inputFieldBackgroundNode.alpha = passcodeType == .alphanumeric ? 1.0 : 0.0
self.inputFieldBackgroundNode.contentMode = .scaleToFill
@@ -145,8 +146,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode {
self.wrapperNode.frame = CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: layout.size.height)
- let passcodeLayout = PasscodeLayout(layout: layout, titleOffset: 0.0, subtitleOffset: 0.0, inputFieldOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0))
- let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout, transition: transition)
+ let inputFieldFrame = self.inputFieldNode.updateLayout(layout: layout, topOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0), transition: transition)
transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size))
transition.updateFrame(node: self.inputFieldBackgroundNode, frame: CGRect(x: 0.0, y: inputFieldFrame.minY - 6.0, width: layout.size.width, height: 48.0))
diff --git a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj
index dbbce2fb6b..4a3bb76ff3 100644
--- a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj
+++ b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj
@@ -832,6 +832,19 @@
explicitFileType
archive.ar
+ 1DD70E2989A0042800000000
+
+ isa
+ PBXFileReference
+ name
+ libPasscodeInputFieldNode.a
+ path
+ libPasscodeInputFieldNode.a
+ sourceTree
+ BUILT_PRODUCTS_DIR
+ explicitFileType
+ archive.ar
+
1DD70E29D0DBC52A00000000
isa
@@ -1602,6 +1615,7 @@
1DD70E2937C1167400000000
1DD70E29AF00DC4900000000
1DD70E29BBAF750C00000000
+ 1DD70E2989A0042800000000
1DD70E29D0DBC52A00000000
1DD70E29300245BE00000000
1DD70E299856EB2400000000
@@ -4691,6 +4705,13 @@
fileRef
1DD70E2937C1167400000000
+ E7A30F0489A0042800000000
+
+ isa
+ PBXBuildFile
+ fileRef
+ 1DD70E2989A0042800000000
+
E7A30F04D0DBC52A00000000
isa
@@ -4899,6 +4920,7 @@
E7A30F04A889192100000000
E7A30F04A3994F2C00000000
E7A30F0437C1167400000000
+ E7A30F0489A0042800000000
E7A30F04D0DBC52A00000000
E7A30F0479E58A0000000000
E7A30F049856EB2400000000
diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json
deleted file mode 100644
index 77b88f3827..0000000000
--- a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "Test.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png b/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png
deleted file mode 100644
index ef1d2a3710..0000000000
Binary files a/submodules/TelegramUI/Images.xcassets/Settings/Test.imageset/Test.png and /dev/null differ
diff --git a/submodules/WalletUI/BUCK b/submodules/WalletUI/BUCK
index a7060bad25..e4ba0f4f53 100644
--- a/submodules/WalletUI/BUCK
+++ b/submodules/WalletUI/BUCK
@@ -16,16 +16,16 @@ static_library(
"//submodules/AppBundle:AppBundle",
"//submodules/SolidRoundedButtonNode:SolidRoundedButtonNode",
"//submodules/ItemListUI:ItemListUI",
- "//submodules/AccountContext:AccountContext",
- "//submodules/UndoUI:UndoUI",
- "//submodules/AlertUI:AlertUI",
+ "//submodules/AccountContext:AccountContext",
+ "//submodules/UndoUI:UndoUI",
+ "//submodules/AlertUI:AlertUI",
"//submodules/TextFormat:TextFormat",
"//submodules/Camera:Camera",
"//submodules/ShareController:ShareController",
- "//submodules/PasscodeUI:PasscodeUI",
+ "//submodules/PasscodeInputFieldNode:PasscodeInputFieldNode",
"//submodules/QrCode:QrCode",
- "//submodules/MergeLists:MergeLists",
- "//submodules/TelegramStringFormatting:TelegramStringFormatting",
+ "//submodules/MergeLists:MergeLists",
+ "//submodules/TelegramStringFormatting:TelegramStringFormatting",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
diff --git a/submodules/WalletUI/Sources/WalletPasscodeScreen.swift b/submodules/WalletUI/Sources/WalletPasscodeScreen.swift
index 903a6d6327..71e401ac10 100644
--- a/submodules/WalletUI/Sources/WalletPasscodeScreen.swift
+++ b/submodules/WalletUI/Sources/WalletPasscodeScreen.swift
@@ -10,7 +10,7 @@ import TelegramCore
import AnimationUI
import SwiftSignalKit
import OverlayStatusController
-import PasscodeUI
+import PasscodeInputFieldNode
public enum WalletPasscodeMode {
case setup
@@ -118,7 +118,7 @@ private final class WalletPasscodeScreenNode: ViewControllerTracingNode {
private let titleNode: ImmediateTextNode
private let biometricsActionTitleNode: ImmediateTextNode
private let biometricsActionButtonNode: HighlightTrackingButtonNode
- private let inputFieldNode: PasscodeEntryInputFieldNode
+ private let inputFieldNode: PasscodeInputFieldNode
private let hapticFeedback = HapticFeedback()
@@ -154,7 +154,7 @@ private final class WalletPasscodeScreenNode: ViewControllerTracingNode {
self.biometricsActionButtonNode = HighlightTrackingButtonNode()
- self.inputFieldNode = PasscodeEntryInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: .digits4, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance)
+ self.inputFieldNode = PasscodeInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: .digits4, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance)
super.init()
@@ -221,8 +221,7 @@ private final class WalletPasscodeScreenNode: ViewControllerTracingNode {
let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: iconFrame.maxY + iconSpacing), size: titleSize)
transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame)
- let passcodeLayout = PasscodeLayout(layout: layout, titleOffset: 0.0, subtitleOffset: 0.0, inputFieldOffset: titleFrame.maxY + titleSpacing)
- let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout, transition: transition)
+ let inputFieldFrame = self.inputFieldNode.updateLayout(layout: layout, topOffset: titleFrame.maxY + titleSpacing, transition: transition)
transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size))
let minimalBottomInset: CGFloat = 60.0
diff --git a/submodules/WalletUI/Sources/WalletQrScanScreen.swift b/submodules/WalletUI/Sources/WalletQrScanScreen.swift
index e904b1f0f1..54522f7c85 100644
--- a/submodules/WalletUI/Sources/WalletQrScanScreen.swift
+++ b/submodules/WalletUI/Sources/WalletQrScanScreen.swift
@@ -56,11 +56,6 @@ public final class WalletQrScanScreen: ViewController {
private final class WalletQrScanScreenNode: ViewControllerTracingNode, UIScrollViewDelegate {
private var presentationData: PresentationData
- private let navigationBackgroundNode: ASDisplayNode
- private let navigationSeparatorNode: ASDisplayNode
- private let navigationTitleNode: ImmediateTextNode
- private let scrollNode: ASScrollNode
- private let iconNode: ASImageNode
private let titleNode: ImmediateTextNode
private let textNode: ImmediateTextNode
@@ -69,23 +64,9 @@ private final class WalletQrScanScreenNode: ViewControllerTracingNode, UIScrollV
init(presentationData: PresentationData) {
self.presentationData = presentationData
- self.navigationBackgroundNode = ASDisplayNode()
- self.navigationBackgroundNode.backgroundColor = self.presentationData.theme.rootController.navigationBar.backgroundColor
- self.navigationBackgroundNode.alpha = 0.0
- self.navigationSeparatorNode = ASDisplayNode()
- self.navigationSeparatorNode.backgroundColor = self.presentationData.theme.rootController.navigationBar.separatorColor
-
- self.scrollNode = ASScrollNode()
-
- self.iconNode = ASImageNode()
- self.iconNode.displayWithoutProcessing = true
- self.iconNode.displaysAsynchronously = false
-
- let title: String = "24 Secret Words"
- let text: String = "Write down these 24 words in the correct order and store them in a secret place.\n\nUse these secret words to restore access to your wallet if you lose your passcode or Telegram account."
- let buttonText: String = "Done"
-
- self.iconNode.image = UIImage(bundleImageName: "Settings/Wallet/WordsDisplayIcon")
+
+ let title: String = ""
+ let text: String = ""
self.titleNode = ImmediateTextNode()
self.titleNode.displaysAsynchronously = false
@@ -93,12 +74,6 @@ private final class WalletQrScanScreenNode: ViewControllerTracingNode, UIScrollV
self.titleNode.maximumNumberOfLines = 0
self.titleNode.textAlignment = .center
- self.navigationTitleNode = ImmediateTextNode()
- self.navigationTitleNode.displaysAsynchronously = false
- self.navigationTitleNode.attributedText = NSAttributedString(string: title, font: Font.bold(17.0), textColor: self.presentationData.theme.list.itemPrimaryTextColor)
- self.navigationTitleNode.maximumNumberOfLines = 0
- self.navigationTitleNode.textAlignment = .center
-
self.textNode = ImmediateTextNode()
self.textNode.displaysAsynchronously = false
self.textNode.attributedText = NSAttributedString(string: text, font: Font.regular(16.0), textColor: self.presentationData.theme.list.itemPrimaryTextColor)
@@ -110,75 +85,29 @@ private final class WalletQrScanScreenNode: ViewControllerTracingNode, UIScrollV
self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor
- self.addSubnode(self.scrollNode)
-
- self.scrollNode.addSubnode(self.iconNode)
- self.scrollNode.addSubnode(self.titleNode)
- self.scrollNode.addSubnode(self.textNode)
-
- self.navigationBackgroundNode.addSubnode(self.navigationSeparatorNode)
- self.navigationBackgroundNode.addSubnode(self.navigationTitleNode)
- self.addSubnode(self.navigationBackgroundNode)
- }
-
- override func didLoad() {
- super.didLoad()
-
- self.scrollNode.view.alwaysBounceVertical = false
- self.scrollNode.view.showsVerticalScrollIndicator = false
- self.scrollNode.view.showsHorizontalScrollIndicator = false
- if #available(iOSApplicationExtension 11.0, iOS 11.0, *) {
- self.scrollNode.view.contentInsetAdjustmentBehavior = .never
- }
- self.scrollNode.view.delegate = self
- }
-
- func scrollViewDidScroll(_ scrollView: UIScrollView) {
- let navigationHeight = self.navigationHeight ?? 0.0
- let alpha: CGFloat = scrollView.contentOffset.y >= (self.titleNode.frame.maxY - navigationHeight) ? 1.0 : 0.0
- if self.navigationBackgroundNode.alpha != alpha {
- let transition: ContainedViewLayoutTransition = .animated(duration: 0.12, curve: .easeInOut)
- transition.updateAlpha(node: self.navigationBackgroundNode, alpha: alpha, beginWithCurrentState: true)
- }
+ self.addSubnode(self.titleNode)
+ self.addSubnode(self.textNode)
}
func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) {
self.navigationHeight = navigationHeight
let sideInset: CGFloat = 32.0
- let buttonSideInset: CGFloat = 48.0
- let iconSpacing: CGFloat = 5.0
let titleSpacing: CGFloat = 19.0
let textSpacing: CGFloat = 37.0
- let buttonHeight: CGFloat = 50.0
- let buttonSpacing: CGFloat = 45.0
- let wordSpacing: CGFloat = 12.0
- let indexSpacing: CGFloat = 4.0
-
- transition.updateFrame(node: self.navigationBackgroundNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: layout.size.width, height: navigationHeight)))
- transition.updateFrame(node: self.navigationSeparatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: navigationHeight), size: CGSize(width: layout.size.width, height: UIScreenPixel)))
-
- transition.updateFrame(node: self.scrollNode, frame: CGRect(origin: CGPoint(), size: layout.size))
-
- let iconSize = self.iconNode.image?.size ?? CGSize(width: 50.0, height: 50.0)
let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
- let navigationTitleSize = self.navigationTitleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
let textSize = self.textNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
var contentHeight: CGFloat = 0.0
let contentVerticalOrigin = navigationHeight + 10.0
- let iconFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0), y: contentVerticalOrigin), size: iconSize)
- transition.updateFrameAdditive(node: self.iconNode, frame: iconFrame)
- let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: iconFrame.maxY + iconSpacing), size: titleSize)
+ let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: contentVerticalOrigin), size: titleSize)
transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame)
let textFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - textSize.width) / 2.0), y: titleFrame.maxY + titleSpacing), size: textSize)
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
- transition.updateFrameAdditive(node: self.navigationTitleNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - navigationTitleSize.width) / 2.0), y: navigationHeight - 44.0 + floor((44.0 - navigationTitleSize.height) / 2.0)), size: navigationTitleSize))
-
contentHeight = textFrame.maxY + textSpacing
}
}
diff --git a/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj b/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj
index 554ce1660e..0bc91d1cfb 100644
--- a/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj
+++ b/submodules/WalletUI/WalletUI.xcodeproj/project.pbxproj
@@ -299,19 +299,6 @@
explicitFileType
archive.ar
- 1DD70E29A889192100000000
-
- isa
- PBXFileReference
- name
- libLocalAuth.a
- path
- libLocalAuth.a
- sourceTree
- BUILT_PRODUCTS_DIR
- explicitFileType
- archive.ar
-
1DD70E29CE34063500000000
isa
@@ -364,14 +351,14 @@
explicitFileType
archive.ar
- 1DD70E29D0DBC52A00000000
+ 1DD70E2989A0042800000000
isa
PBXFileReference
name
- libPasscodeUI.a
+ libPasscodeInputFieldNode.a
path
- libPasscodeUI.a
+ libPasscodeInputFieldNode.a
sourceTree
BUILT_PRODUCTS_DIR
explicitFileType
@@ -768,12 +755,11 @@
1DD70E29D6F14E1000000000
1DD70E295A26607D00000000
1DD70E29AC43662400000000
- 1DD70E29A889192100000000
1DD70E29CE34063500000000
1DD70E2936DE2CF900000000
1DD70E29C37F741500000000
1DD70E29BBAF750C00000000
- 1DD70E29D0DBC52A00000000
+ 1DD70E2989A0042800000000
1DD70E29928D142900000000
1DD70E29D233F68C00000000
1DD70E290F1A3C6400000000
@@ -1363,19 +1349,12 @@
fileRef
1DD70E29BBAF750C00000000
- E7A30F04A889192100000000
+ E7A30F0489A0042800000000
isa
PBXBuildFile
fileRef
- 1DD70E29A889192100000000
-
- E7A30F04D0DBC52A00000000
-
- isa
- PBXBuildFile
- fileRef
- 1DD70E29D0DBC52A00000000
+ 1DD70E2989A0042800000000
E7A30F04AA32BBC600000000
@@ -1546,8 +1525,7 @@
E7A30F0425BBFEEE00000000
E7A30F045A26607D00000000
E7A30F04BBAF750C00000000
- E7A30F04A889192100000000
- E7A30F04D0DBC52A00000000
+ E7A30F0489A0042800000000
E7A30F04AA32BBC600000000
E7A30F04A54A195300000000
E7A30F041E16CC6C00000000